Pemrograman Komputer
Pendahuluan Komputer ≠ Mesin ‘pintar’ Fakta: - Komputer vs Gary Kasparov - Komputer dapat meramal - Film Komputer = alat bantu Komputer perlu instruksi yang ‘dimasukkan’ ke dalam komputer Instruksi = program
Instruksi harus ditulis dalam suatu bahasa komputer Bahasa untuk ‘berkomunikasi’ dengan komputer = bahasa pemrograman Bahasa pemrograman: - Bahasa tingkat rendah : primitif : sulit dipahami - Bahasa tingkat tinggi : bahasa manusia : bahasa inggris : mudah dipelajari
Dahulu: sebuah bahasa pemrograman hanya untuk sebuah sistem operasi tertentu Sekarang: sebaliknya Ditekankan pada sebuah design suatu pemecahan masalah. Design ini berisi langkah-langkah untuk mencapai penyelesaian.
Urutan langkah-langkah yang sistematis untuk menyelesaikan sebuah masalah algoritma. Notasi untuk menuliskan algoritma notasi algoritmik. Notasi algoritmik ≠ Notasi bahasa pemrograman.
Algoritma ≠ Logaritma Algorism dari buku Arab Abu Ja’far Muhammad ibnu Musa al-Khuwarizmi al-Khuwarizmi algorism : proses menghitung dengan angka arab Algorism Algorithm Algoritma
1950 ‘algoritma Euclidean’ (Euclid’s algorithm) : proses untuk menemukan pembagi bersama terbesar (common greatest divisor) dari dua bilangan bulat. “Diberikan dua buah bilangan bulat positif m dan n (m ≥ n). Carilah pembagi bersama terbesar (pbt) dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.”
Bagilah m dengan n. Kemudian misalkan r adalah sisanya. Langkah-langkah: Bagilah m dengan n. Kemudian misalkan r adalah sisanya. Jika r = 0 maka n adalah jawabannya; stop. Tetapi jika r ≠ 0, lanjutkan ke langkah 3 3. Ganti nilai m dengan nilai n, dan ganti nilai n dengan r, lalu ulangi langkah 1. #Contoh m = 30, n = 12
Contoh: m=30 , n=12 Hitung m/n = 30/12 = 2, sisanya r = 6 Karena r = 6 ≠ 0, maka lanjutkan ke lankah 3. Nilai m = n = 12, dan n = r = 6. Kembali ke langkah 1. 1. Hitung m/n = 12/6 = 2, sisanya r = 0 2. Karena r = 0, maka n = 6 adalah jawabannya. Stop
Definisi Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Kamus Besar Bahasa Indonesia, 1998 Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.
Logis nilai kebenarannya harus dapat ditentukan, benar atau salah. Langkah tidak benar hasil pasti salah
Contoh A B Kita ingin menukar isi kedua bejana itu sedemikian sehinga bejana A berisi larutan biru dan bejana B berisi larutan merah.
Algoritma TUKAR ISI BEJANA Langkah-langkah: Tuangkan larutan dari bejana A ke dalam bejana B Tuangkan larutan dari bejana B ke dalam bejana A
Tidak Logis !!! Algoritma salah !! Hasil tidak tercapai !!
Tuangkan larutan dari bejana A ke dalam bejana C Solusi: Kita memerlukan bejana tambahan, bejana C Algoritma: Tuangkan larutan dari bejana A ke dalam bejana C Tuangkan larutan dari bejana B ke dalam bejana A Tuangkan larutan dari bejana C ke dalam bejana B
Logis !!! Algoritma Benar !!! Hasil tercapai !!!
Ciri penting Algoritma Donald E. Knuth, The Art of Computer Programming Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Program yang tidak pernah berhenti algoritma salah. 2. Setiap langkah harus didefinisikan dengan tepat dan tidak ambiguous. “bagilah p dengan beberapa buah bil. bulat positif” “bagilah p dengan 10 buah bil. bulat positif”
Ciri penting Algoritma 3. Algoritma memiliki nol atau lebih masukan (input) besaran yg diberikan ke algoritma sebelum algoritma mulai bekerja. 4. Algoritma memiliki nol atau lebih keluaran (output). bisa mempunyai hubungan dengan input. 5. Algoritma harus efektif.