BAB II NOTASI ALGORITMA DAN CONTOH PENGGUNAANNYA PADA DATA TUNGGAL Pendahuluan Pada bab ini akan dijelaskan 3 notasi algoritma dan contoh penggunaannya pada beberapa algoritma sederhana. Diharapkan mahasiswa dapat menuliskan algoritma untuk suatu penyelesaian masalah. Penyajian 2.1 Notasi Algoritma Notasi algoritma bukan notasi bahasa pemrograman. Ada beberapa notasi yang digunakan dalam penulisan algoritma. 1. Notasi I : menyatakan langkah-langkah algoritma dengan kalimat deskriptif. Algoritma Euclidean Diberikan dua buah bilangan bulat tak negatif m dan n (m>=n). Carilah FPB dari kedua bilangan tersebut. Deskripsi 1. Jika n = 0, maka m adalah jawabannya; stop.Tetapi jika n<>0, lanjutkan ke langkah 2. 2. Bagilah m dengan n, misalkan r adalah sisanya. 3. Ganti nilai m dengan n, dan nilai n dengan r. Ulang kembali ke langkah 1 2.Notasi II :menggunakan diagram alir (flowchart) Flowchart adalah serangkaian bagan-bagan yang menggambarkan alir program. Flowchart atau diagram alir memiliki bagan-bagan yang melambangkan fungsi tertentu. Bagan, nama dan fungsinya seperti yang disajikan pada tabel berikut : Tabel 2.1 Bagan Flowchart BAGAN NAMA FUNGSI TERMINATOR Awal atau akhir program FLOW Arah aliran program PREPARATION inisialisasi/pemberian nilai awal PROCES Proses/pengolahan data INPUT/OUTPUT input/output data DATA SUB PROGRAM sub program DECISION Seleksi atau kondisi ON PAGE Penghubung bagian-bagian CONNECTOR flowchart pada halaman yang sama OFF PAGE Penghubung bagian-bagian CONNECTOR flowchart pada halaman yang berbeda COMMENT Tempat komentar tentang suatu proses Flowchart selalu diawali dan diakhiri oleh bagan terminator. Aliran selalu dari atas ke bawah, satu demi satu langkah. Tidak ada proses yang dikerjakan bersamaan, semua dikerjakan satu persatu. Proses yang dilakukan komputer sebenarnya hanya ada 3 proses: input, proses data dan output. Misal Masalah 1: bagaimana menentukan bahwa suatu bilangan itu adalah bilangan genap atau ganjil? Input : bilangan bulat. Proses : menentukan bilangan ganjil atau genap dengan melakukan pembagian bilangan dengan bilangan 2. Jika sisa pembagian NOL maka bilangan tersebut genap, sebaliknya ganjil. Output : Bilangan Ganjil atau Bilangan Genap Gambaran penyelesaian dengan Flowchart : mulai Masukkan Bilangan Bulat Bilangan dibagi 2 dengan operasi sisa bagi YA Sisa bagi=0 ? Tidak Tulis “GANJIL” Selesai Tulis “GENAP” 3. Notasi III : menggunakan pseudo-code Pseudo-code adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya Bahasa Pascal dan C. Algoritma Euclidean {Dibaca dua buah bilangan bulat tak negatif m dan n (m>=n). Carilah FPB dari kedua bilangan tersebut.} Deklarasi m,n,r : integer Deskripsi read(m,n) while n<> 0 do r m mod n m n n r endwhile write(m) Contoh algoritma yang lain, misalnya : 1. Menghitung Luas Lingkaran Algoritma LuasLingkaran deklarasi jari2, Luas : real deskripsi read(jari2) Luas314*jari2*jari2 write(Luas) 2. Menghitung selisih waktu Algoritma SelisihWaktu {menghitung selisih waktu antara jam1 : menit 1: detik1 dengan jam2: menit2 : detik2} deklarasi jam1,menit1, detik1,jam2, menit2,detik2 : integer; sisa, tdetik2, tdetik1, selisih,sjam, smenit,sdetik : integer; deskripsi read(jam1,menit1,detik1) read(jam2,menit2,detik2) tdetik1 3600*jam1+60*menit1*detik1 tdetik2 3600*jam2+60*menit2*detik2 selisihtdeti2-tdetik1 sjamselisih div 3600 sisa selisih mod 3600 smenitselisih div 60 sdetikselisih mod 60 write(sjam,smenit,sdetik) Penutup Latihan soal : 1. Tulislah algoritma menentukan bilangan terbesar dari 3 bilangan bulat A, B, C menggunakan notasi bahasa alami. 2. Tulislah algoritma mengurutkan dari kecil ke besar 3 bilangan bulat A, B, C menggunakan notasi diagram alir. 3. Tulislah algoritma menghitung luas segi tiga menggunakan pseudocode.