Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya...

40
Algorithmic Thinking Sisilia Thya Safitri, MT Citra Wiguna, M.Kom

Transcript of Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya...

Page 1: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

Algorithmic ThinkingSisilia Thya Safitri, MT

Citra Wiguna, M.Kom

Page 2: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya
Page 3: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Von Neumann Architecture

• Spreadsheets• Spreadsheet Structure

• Formulas/Expressions

• Numbers

• Operators

• Arity

• Precedence

• Associativity

• Evaluation Example

• Parentheses

• Cell References

• Functions

• Ranges

Outline

Page 4: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Text Processing• String Basics

• String Operations• Indexing

• Length

• Concatenation

• Naming

• Substring

• Searching

Outline

Page 5: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Patterns• How to Write a Pattern

• Case Study: Hugs and Kisses Pattern

• Case Study: Social Security Numbers

• Repetition Rules

• Character Class Rules

• Case Study : DNA Sequencing

Outline

Page 6: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Komputer awalnya diciptakan dengan menggunakankonsep fixed-program architecture. Dimana konsep inihanya dapat menjalankan satu instruksi dasar sajasehingga dia tidak bisa diprogram untuk pengelolaanteks atau instant messaging

• Berbeda dengan fixed-program architecture, John Von Neumann menemukan sebuah konsep yang bernamastored-program architecture.

Von Neumann Architecture

Page 7: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Konsep Stored-program architecture ini dikenalkan olehJohn von Neumann pada sebuah artikel yang ditulisnyadengan judul “First Draft of a Report on the EDVAC” pada tahun 1945.

• Pada artikelnya tersebut menggambarkan komputerdengan unit pengolahan, unit kontrol yang berisi register instruksi dan program counter, memori eksternal, danmemori internal untuk menyimpan data dan instruksi

Von Neumann Architecture

Page 8: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Arsitektur Von Neumann memungkinkan bahwa outpunyang dihasilkan oleh komputer tidak hanya berupa data saja tetapi kumpulan instrukssi juga dapat dijadikanoutput pada pengelolaan yang dilakukan oleh komputer

• Dengan kata lain, arsitektur von Neumann tersebutmemungkinkan sebuah program dapat memprogramulang sendiri atau self-modifying code

Von Neumann Architecture

Page 9: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Spreadsheet adalah program interaktif yang dirancanguntuk mengatur, mengolah, dan menampilkan data dalam bentuk tabular.

• Meskipun awalnya Spreadsheet hanya digunakan untukmendukung usaha pembukuan keuangan, namunsesungguhnya Spreadsheet terdiri dari pengolahankode dan data

Spreadsheets

Page 10: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Apa itu single worksheet?

• Apa itu cell? Bagaimana penamaan cell?

• Setiap sel spreadsheet dapat berisi angka, teks, ataurumus.

• Rumus yang ada pada spreadsheet dapat digunakanuntuk mendapatkan data baru dari data yang sudah ada, ataupun dapat sebagai hasil dari beberapa keluaranformula lainnya dari tempat lain pada sebuahspreadsheet.

SpreadsheetsSpreadsheet Structure

Page 11: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Formula/Rumus adalah elemen komputasi utama pada spreadsheet.

• Rumus merupakan perhitungan yang diperlukan untuk mengambil data masukan dan menghasilkan sebuah output

• Pada pemrograman komputer juga mengacu pada formula/rumussebagai sebuah ekspresi perintah

• Pada spreadsheet, rumus ditulis setelah tanda samadengan (=)

• Sebuah Rumus terdiri dari unsur berikut ini:

SpreadsheetsFormulas/Expressions

Page 12: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Angka adalah elemen formula yang paling sederhana.

SpreadsheetsFormulas/Expressions - Numbers

Page 13: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Dalam pemrograman komputer, operator adalah simbol yang mewakilisebuah tindakan komputasi.

• Setiap operator dapat menerima satu atau lebih inputan / operand dantepat menghasilkan satu output.

• Operator aritmatika melakukan operasi numerik dasar sepertipenambahan dan pengurangan

• Operator perbandingan membandingkan dua nilai

• Ketika sebuah Rumus menggunakan lebih dari 1 operator, maka harusada urutan dalam pengerjaan rumus tersebut. Urutan pengerjaanoperator ditentukan berdasarkan sifat operator arity, precedence, and associativity

SpreadsheetsFormulas/Expressions - Operators

Page 14: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions - Operators

Page 15: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions – Operators - Arity

• Operator arity adlah jumlah input yang dibutuhkan olehoperator

• Istilah arity jarang digunakan dalam bahasapemrograman ataupun operasi aritmatika

Page 16: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions – Operators - Precedence

• Precedence urutan pengerjaan sebuah operator

• Pengerjaan operator dimulai dari urutan kiri-ke-kanan

• Gambar berikut ini menunjukkan derajad pengerjaanoperator

Page 17: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions – Operators - Associativity

• Asosiatifmenerapkan urutan pengerjaan operator

• Asosiatif diberikan apabila terdapat 2 identik operator dalam satu rumus.

• Asosiatif dibedakan menjadi 2 yaitu from left to rightassociative, and right to lest associative

Page 18: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions – Operators – Evaluation Example

• Contoh pengerjaanRumus denganberbagai operasiadalah sebagaiberikut

Page 19: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions – Operators – Parentheses

• Tanda kurung dapat digunakan untuk mengubah urutanoperator yang akan dikerjakan.

• Pemberian tanda kurung menunjukkan tingkatpengerjaan yang dilakukan terlebih dahulu.

Page 20: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions – Cell References

• Sel spreadsheet merupakan kotak atau cell yang berisidata.

• Cell memiliki nama yang unik sehingga dapat diaksesdatanya.

Page 21: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions – Functions

• Dalam ilmu komputer, fungsiurutan urutan instruksiuntuk menghasilkan output dari input yang diberikan.

• Cara penulisan sebuah function adalah sebagai berikut

Page 22: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

SpreadsheetsFormulas/Expressions – Functions – Ranges

• Penulisan ranges pada spreadsheets dimulai dengan menuliskancell pertama dan diikuti tanda titik dua kemudian cell akhir padaranges tersebut

• Penggunaan ranges biasanya digunakan untuk rumus MAX, MIN, SUM, AVERAGE

Page 23: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Data yang diolah oleh komputer tidak hanya berupadata angka saja.

• Kumpulan karakter atau biasa disebut string jugamerupakan data yang terkadang harus diolah agar menghasilkan sebuah informasi

• String tidak ada yang bernilai negatif

• Sebuah string dapat terdiri dari NOL karakter jikamemang tidak memiliki karakter penyusunnya

Text ProcessingProlog

Page 24: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Dalam kebanyakan bahasa pemrograman, data string dilambangkan dengan menggunakan double petik untukmengelilingi teks. Misalnya, "Hallo" adalah string yang memiliki lima karakter. Setiap urutan karakter yang disertakan dengan tanda kutip ganda dikenal sebagaistring literal. Tanda kutip ganda bukan bagian dari string; karena hanya berfungsi memberi tahu komputer bahwateks terlampir adalah sebuah string literal

Text ProcessingString Basics

Page 25: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Karakter pertama pada string dimulai pada indeks 0, karakter kedua pada indeks 1, dst..

• Untuk setiap string dengan panjang N, yang Index terbesar yang valid adalah N – 1, karena indeks terkecilselalu dimulai dari 0

Text ProcessingString Basics

Page 26: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Index pada string literal dapat digunakan untukmengakses elemen pada string tersebut.

• Misal pada gambar berikut ini. Index yang diaksesadalah index 3 atau karakter ke-4 yang bearti ‘C’ daristring “Popcorn”

Text ProcessingString Operations - Indexing

Page 27: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Length digunakan untuk menghitung panjang ataujumlah karakter pada sebuah string.

• Penulisannya adalah dengan menuliskan length di akhirstring

• Pada contoh dibawah ini, maka length popcorn adalah 7

Text ProcessingString Operations - Length

Page 28: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Concatenation pada String merupakan penggabungan 2 buah string

• Penggabungan dua buah string ini dengan menggunakan(+)

Text ProcessingString Operations - Concatenation

Page 29: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Pengisian sebuah variabel biasanya menggunakan tandapanah kiri (),hal ini pun dilakukan apabila sebuahvariabel ingin diberikan nilai sebuah string

Text ProcessingString Operations - Naming

Page 30: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Fungsi substring adalah fungsi yang digunakan untukmemotong string dari kumpulan string yang ada

• Output pada gambar ini adalah “put”. Dimana data yang diambil adalah index 3 – 5. 6 pada rumus ini adalahkarakter pertama yang tidak termasuk output

Text ProcessingString Operations - Substring

Page 31: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Searching pada sebuah string difungsikan untuk mencaristring pada sebuah kumpulan string. Misalnya padasebuah alamat email: [email protected] dimanasesungguhnya alamat email tersebut terdiri dari duabagian yang dipisahkan dengan tanda “@”

• Pencarian pada string dapat menggunakan fungsiindexOf

Text ProcessingString Operations - Searching

Page 32: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

• Pola adalah teknik yang digunakan untuk melakukanproses data tekstual.

• In computer programming, patterns are known as regular expressions. A regular expression defines a pattern such that a particular string will either match the pattern or will not match the pattern. Regular expressions are extremely powerful techniques for processing textual data; particularly for finding elements in large textual databases.

PatternsPola

Page 33: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

PatternsPola

Page 34: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

PatternsHow to write a pattern – Case Study : Hugs and Kisses Pattern

Page 35: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

PatternsHow to write a pattern – Case Study : Social Security Numbers

Page 36: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

PatternsRepetition Rules

• Gambar 8.35 memberikan beberapa aturan tambahan untukpenulisan pola. Aturan tambahan ini memungkinkan seorangprogrammer mengontrol frekuensi elemen yang dapat diulanguntuk suatu pola.

Page 37: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

PatternsRepetition Rules

• Figure 8.36 shows how we can rewrite the Social Security number pattern using repetition rules.

Page 38: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

PatternsCharacter Class Rules

• Kelas karakter adalah pola ringkas untuk mendefinisikan sebuahkumpulan karakter.

• Gambar 8.37 merupakan contoh aturan dalam membuat class character

Page 39: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

PatternsCharacter Class Rules – Case Study : DNA Sequencing

• DNA atau Deoxyribonucleic acid merupakan molekul yang mengandung sifat genetika makhluk hidup. Untuk menemukansifat – sifat genetika pada makhluk hidup, maka dapat diketahuidengan meneliti DNA.

• Dimana DNA tersusun atas 4 huruf (ACGT) yang setiap hurufnyamemiliki arti masing-masing, yaitu Huruf A mewakili adenin, C mewakili sitosin, G mewakili guanin, dan T mewakili timin.

Page 40: Algorithmic Thinking · 2018. 1. 18. · John von Neumann pada sebuah artikel yang ditulisnya dengan judul “First Draft of a Report on the EDVAC” pada tahun 1945. •Pada artikelnya

PatternsTerimakasih