Algoritma dan Pemrograman Review Algoritma & Pemrograman Ptputraastawa@gmail.com Ptputraastawa.wordpress.com
Sistem Komputer Sebuah sistem komputer terdiri dari : Hardware (perangkat keras) Software (perangkat lunak) dan Brainware. Sedangkan Software dapat dikelompokan menjadi : Operating System Software, Programming Language Software, Dan Application Program Software. Slide 1-2/29
Definisi Program Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer. Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan. Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan. Mempunyai komponen-komponen : input, output, proses, percabangan dan perulangan. Slide 1-3/29
Bahasa Pemrograman Adalah tata cara penulisan program Yaitu Sintax adalah aturan aturan yang mengatur tata cara penulisan kata, ekspresi dan pernyataan. semantik adalah aturan - aturan untuk menyatukan suatu arti. Cotoh : C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll. Perbedaan : cara memberikan instruksi Persamaan : bertujuan menghasilkan output yang sama. Slide 1-4/29
Pemrograman Pemrograman merupakan proses mengimplementasikan urutan langkah untuk menyelesaikann suatu masalah dengan menggunkan suatu bahasa pemrograman Slide 1-5/29
Apa Itu Algoritma? Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Kata logis disini berarti benar sesuai dengan logika manusia. Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar. Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah Slide 1-6/29
Domain algoritma Masalah : motivasi untuk membuat algoritma. Algoritma : prosedur untuk menyelesaikan masalah. Seringkali satu masalah dapat diselesaikan dengan lebih dari satu cara (banyak kemungkinan). Program: representasi formal dari suatu algoritma dengan menggunakan bahasa pemrograman yang bisa dimengerti oleh komputer. Proses : aktivitas menjalankan langkah-langkah dalam algoritma. Slide 1-7/29
Hal yang harus dipenuhi dlm Algoritma Input : data yang harus diberikan pada komputer Output: informasi yang akan diperoleh dari komputer Logika: Merencanakan proses program. Terdiri dari sejumlah instruksi yang mengubah input menjadi output yang diinginkan. Slide 1-8/29
Penulisan Algoritma Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya) Tapi sering membingungkan (ambiguous) Menggunakan flow chart (diagram alir) Bagus secara visual akan tetapi repot kalau algoritmanya panjang Menggunakan pseudo-code Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman Slide 1-9/29
Flowchart Simbol-simbol dalam flowchart SIMBOL NAMA FUNGSI TERMINATOR Permulaan/akhir program GARIS ALIR (FLOW LINE) PREPARATION PROSES INPUT/OUTPUT DATA Arah aliran program Proses inisialisasi/pemberian harga awal Proses perhitungan/proses pengolahan data Proses input/output data, parameter, informasi Slide 1-10/29
Flowchart (cont,.) Simbol-simbol dalam flowchart PREDEFINED PROCESS (SUB PROGRAM) DECISION ON PAGE CONNECTOR OFF PAGE CONNECTOR Permulaan sub program/proses menjalankan sub program Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya Penghubung bagian-bagian flowchart yang berada pada satu halaman Penghubung bagian-bagian flowchart yang berada pada halaman berbeda Slide 1-11/29
Contoh : algoritma 1 Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas? teh kopi Slide 1-12/29
Contoh: algoritma 1 (cont,.) Algoritma Siapkan gelas cadangan X X Tuangkan gelas yang berisi teh ke gelas cadangan X teh Tuangkan gelas yang berisi kopi ke gelas yang awalnya dipakai teh kopi teh Tuangkan isi gelas cadangan ke gelas yang awalnya berisi kopi kopi X Slide 1-13/29
Contoh: algoritma 2 Requirement Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan Nantinya ini bisa digeneralisir menjadinbuah bilangan Slide 1-14/29
Algoritma Dalam Bahasa Natural 1. Ambil bilangan pertama dan set maks sama dengan bilangan pertama 2. Ambil bilangan kedua dan bandingkan dengan maks 3. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua 4. Ambil blangan ketiga dan bandingan dengan maks 5. Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga 6. Variabel maks berisi bilangan terbesar. Tayangkan hasilnya Slide 1-15/29
Algoritma dengan Flowchart Mulai Maks = bilangan pertama Maks < bilangan kedua Ya Maks = bilangan kedua Tidak Maks < bilangan ketiga Ya Maks = bilangan ketiga Tidak Selesai Slide 1-16/29
Algoritma dengan pseudo-code maks bilangan pertama if (maks < bilangan kedua) maks bilangan kedua if (maks < bilangan ketiga) maks bilangan ketiga Slide 1-17/29
Contoh: algoritma 3 Requirement Algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. Slide 1-18/29
Algoritma Dalam Bahasa Natural 1. Masukkan bilangan sembarang 2. Bagi bilangan dengan bilangan 2 3. Hitung sisa hasil bagi pada langkah b. 4. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil. Slide 1-19/29
Algoritma Dengan Flowchart Flowchart untuk menentukan bilangan genap/ganjil Start A Input Bilanga n Apaka h Sisa = 0 T Hitung sisa bagi antara bilangan dengan 2 Cetak Genap Y Cetak Ganjil A End Slide 1-20/29
Algoritma dengan pseudo-code bil bilangan sembarang if (bil mod 2) =0 bil bilangan genap if (bilmod 2 <> 0) bil bilangan ganjil Slide 1-21/29
Aspek Penting dari Algoritma 1. Finiteness Algoritma harus berhenti after a finite number of steps 2. Definiteness(pasti) Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) 3. Input Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan 4. Output Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input 5. Effectiveness Setiap algoritma diharapkan miliki sifat efektif Slide 1-22/29
Kriteria Algoritma (Donald E. Knuth) Input algoritma dapat memiliki nol atau lebih inputan dari luar. Output algoritma harus memiliki minimal satu buah output. Definiteness(pasti) algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu. Finiteness(ada batas) algoritma harus memiliki titik berhenti (stopping rule). Effectiveness(tepat dan efisien) algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Slide 1-23/29
Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran dan menampilkan hasilnya 2. Mengecek bilangan, di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya Slide 1-24/29
Referensi Donald Knuth, The Art Of Computer Programming, Volume 1 Fundamental Algorithms, 2 nd edition, Addison Wesley Algorithms, Yi-Shin Chen, Addison-Wesley Computing Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Penerbit Informatika Bandung Slide 1-25/29
Slide 1-26/29