bab ii notasi algoritma

advertisement
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)
Luas314*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
selisihtdeti2-tdetik1
sjamselisih div 3600
sisa selisih mod 3600
smenitselisih div 60
sdetikselisih 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.
Download