Modul PVB-POLINEMA V1.0 MODUL I DASAR-DASAR ALGORITMA MATERI 1. Definisi 2. Sekilas Bahasa Pemrograman 3. Kriteria Algoritma 4. Jenis Proses Algoritma 5. Ciri Algoritma yang baik 6. Contoh Algoritma 7. Pseudocode 8. Langkah membuat program komputer STANDAR KOMPETENSI Mengerti pengertian algoritma, konteks pemakaiannya dan cara membuatnnya Definisi Algoritma adalah urutan langkah-langkah logis penyeselaian masalah yang disusun secara sistematis dan logis. Kata logis (logika) merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus dapat ditentukan bernilai benar atau salah. Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa alKhowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M Algoritma dan Pemrograman Modul PVB-POLINEMA V1.0 Beberapa pengertian lain dari Algoritma diantaranya adalah sebagai berikut: Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998) Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1) Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun algoritma juga digunakan dalam kehidupan sehari-hari, contohnya resep makanan. Di dalam resep makanan terdapat langkah-langkah yang merupakan algoritma. Selain itu masih banyak contoh algoritma yang lain. Disadari atau tidak, dalam kehidupan sehari-hari ktia sering bersinggungan langsung dengan algoritma. Sebagai contoh kejadian-kejadian berikut ini: Ketika ingin bepergian ke suatu tempat dari Poltek Malang Jl. Soekarno Hatta ke Matos. Yang perlu dilakukan urutan proses nya adalah sebagai berikut: o Menyiapkan kendaraan Algoritma dan Pemrograman Modul PVB-POLINEMA V1.0 o Menyalakan kendaraan dan mulai berangkat keluar dari gedung Poltek menuju Soekarno Hatta dan menuju ke arah Universitas Brawijaya o Di persimpanagan, kita dihadapkan pilihan, jalur mana yang akan ditempuh. Ada 3 kemungkinan yaitu Belok ke kanan melalui Jl MT Haryono - Jl Gajayana - Jl Veteran – MATOS Lurus melalui Jalur Tembus Univ Brawijaya – Jl. Veteran – MATOS Belok ke kiri melalui Jl. Pannjaitan – Jl Bandung – Jl. Veteran - MATOS Jika seorang ingin memasak urutan langkah yang harus dilakukan adalah : o Menyiapkan bumbu o Menghaluskan bumbu o Memasukkan bumbu dan bahan yang akan dimasak ke dalam tungku pemasak o Mencicipi Jika kurang asin tambah garam, ulangi cicipi lagi Jika kurang manis tambah gula, ulangi cicipi lagi Jika terlalu asin atau manis, tambah air, ulangi cicipi lagi Jika sudah pas, lanjutkan dan tunggu sampai masak Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah: o Menulis surat o Memasukkan ke amplop o Memasukkan ke kantor pos Algoritma dan Pemrograman Modul PVB-POLINEMA V1.0 Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien. Pelaksana algoritma adalah komputer. Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program. Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman. Bahasa Pemrograman Untuk melaksanakan suatu algoritma diperlukan suatu bahasa pemrograman, contoh bahasa pemrograman adalah : Java, Pascal, C++, PHP, Phyton, Basic, dll. Notasi algoritma dapat diterjemahkan kedalam bahasa pemrograman apapun, dengan kata lain notasi algoritma bersifat independen. Kriteria Algoritma [KNU-08] 1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar. 2. Output: algoritma harus memiliki minimal satu buah output keluaran. 3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu. 4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1 Jenis Proses Algoritma Algoritma dan Pemrograman Modul PVB-POLINEMA V1.0 1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan. 2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu 3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu. 4. Concurrent Process: beberapa instruksi dikerjakan secara bersama. Ciri Algoritma yang Baik Tepat Sasaran : dapat menyelesaikan masalah dengan benar dan sesuai dengan yang diharapkan Fleksibel dan Portabel: o Fleksibel untuk dikembangkan lebih lanjut o Potabel untuk digunakan pada berbagai sistem atau mesin Bersih dari kesalahan sistem atau kesalahan logika Efektif : langkah penyelesaian masalah hendaknya bisa bekerja secara sederhana sehingga mempersingkat waktu eksekusi Didokumentasi dengan baik Tidak ambigu Contoh Algoritma Algoritma menghitung Hasil perkalian dua bilangan 1. Masukkan bilangan 1 (bil1) 2. Masukkan bilangan 2 (bil2) 3. hasil ← bil1 * bil2 4. PRINT hasil Algoritma Mengecek suatu bilangan apakah positif atau negatif 1. Masukkan bilangan (bil) 2. IF bil < 0 THEN PRINT “Negatif” 3. IF bil = 0 THEN PRINT “Nol” Algoritma dan Pemrograman 4. ELSE Tampilkan “Positif” Modul PVB-POLINEMA V1.0 Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun. Jadi Algoritma bersifat umum, tidak spesifik terhadap suatu platform pemgrograman tertentu. Pseudo-code Kode atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma. Problem: mencari bilangan terbesar dari dua bilangan yang diinputkan Contoh Pseudo-code: 1. Masukkan bilangan pertama 2. Masukkan bilangan kedua 3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5. 4. Tampilkan bilangan pertama 5. Tampilkan bilangan kedua Contoh Algoritma 1. Masukkan bilangan pertama (a) 2. Masukkan bilangan kedua (b) 3. if a > b then kerjakan langkah 4 4. print a 5. print b Contoh Lain Algortima dan Pseudo-code: Algoritma dan Pemrograman Modul PVB-POLINEMA V1.0 Pseudo-Code Algoritma hasil = a * b hasil a * b Jika a > b , maka hasil = a – b, jika IF a > b THEN hasil a – b tidak maka hasil = b - a ELSE hasil b - a Jika a < 0 maka tampilkan “a adalah IF a < 0 THEN PRINT “a adalah negatif” negatif” Langkah-langkah dalam pemrograman komputer 1. Mendefinisikan masalah Sebelum membuat program, sebaiknya tentukan lebih dulu masalah apa yang akan dipecahkan. BIasanya terkait dengan Input apa saja yang dibutuhkan Out apa yang ingin dihasilkan Proses untuk mengolah input agar menjadi utput itu seperti apa 2. Membuat algoritma Dari definisi masalah yang sudah dibuat, kita terjemahkan kedalam algoritma 3. Menulis program Dari algoritma, kemudian tulis ke dalam kode program dengan menggunakan salah satu bahasa pemrograman (missal C, C++, Java, PHP, basic dsb) 4. Menulis dokumentasi Jangan lupa untuk menulis dokumentasi. Karena ada kemiungkinan di masa yang akan dating dibutuhkan untuk memperbaiki atau mengembangkan Algoritma dan Pemrograman Modul PVB-POLINEMA V1.0 kembali program tersebut. Sehingga dengan dokumentasi, bisa dijadikan acuan dan memudahkan dalam mengembangkan program. Paling tidak di dalam baris kode program, tulislah komentar-komentar untuk memudahkan membaca dan mengingat program. Seperti c di bawah ini // kalikan a * b dan simpan di c komentar yang tidak dianggap // sebagai kode program c = a * b; 5 Menguji program Uji program apa sudah sesuai dengan kebutuhan apa belum. Jika belum, maka perbaiki. Demikian seterusnya. Algoritma dan Pemrograman