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.