STRUKTUR DASAR ALGORITMA 1. 2. 3.
Sequence Selection Repetition
Mei 2005
satriyo-Algoritma
1
SEQUENCE Sebuah runtutan terdiri dari satu atau lebih intruksi. Intruksi dilaksanakan setelah intruksi sebelumnya dilaksanakan. Urutan intruksi menentukan keadaan akhir algoritma. 1 2 3 4 A1 A2 A3 A4
Mei 2005
satriyo-Algoritma
2
Contoh: Algoritma Tukar_Isi_Bejana Terdapat dua buah bejana, bejana A berisi larutan berwarna merah dan bejana B berisi larutan berwarna putih. Kedua bejana tersebut dipertukarkan isinya, sehingga isi bejana A berganti dengan isi bejana B dan sebaliknya, tanpa terjadi percampuran diantara isi dua bejana tersebut. Deskripsi: 6. Tuangkan larutan bejana A ke bejana C 7. Tuangkan larutan bejana B ke bejana A 8. Tuangkan larutan bejana C ke bejana B Selesai Mei 2005
satriyo-Algoritma
3
SELECTION Berlaku untuk suatu kasus yang disertai syarat tertentu. -
-
If kondisi then aksi If kondisi then aksi 1 else aksi 2
Contoh: Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan Mei 2005
satriyo-Algoritma
4
Penyelesaian: Maks = bilangan pertama If x > y then if x> y then tulis x sebagai bilangan terbesar else tulis y sebgai bilangan terbesar Else if y> z then tulis y sebagai bilangan terbesar else tulis z sebagai bilangan terbesar
Mei 2005
satriyo-Algoritma
5
REPETITION Kondisi yang dilaksanakan secara berulang-ulang. 2. For …….. Do for kondisi do aksi Contoh: Buatlah algoritma untuk memunculkan tulisan “ saya siswa SMA 1 Yogyakarta” sebanyak 700 kali.
Mei 2005
satriyo-Algoritma
6
Algoritma menulis_700 kalimat Menulis kalimat saya siswa SMA 1 Yogyakarta sebanyak 700 kali Deskripsi: 5.Tulis kalimat “saya siswa SMA 1 Yogyakarta” 6.Tulis kalimat “saya siswa SMA 1 Yogyakarta” 7.Tulis kalimat “saya siswa SMA 1 Yogyakarta” . . 699. Tulis kalimat “saya siswa SMA 1 Yogyakarta” 700. Tulis kalimat “saya siswa SMA 1 Yogyakarta” Mei 2005
satriyo-Algoritma
7
Algoritma menulis_700 kalimat Menulis kalimat saya siswa SMA 1 Yogyakarta sebanyak 700 kali Deskripsi: for I dari 1 sampai 700 do tulis kalimat “saya siswa SMA 1 Yogyakarta” selesai
Mei 2005
satriyo-Algoritma
8
2. Repeat … until repeat aksi until kondisi Contoh: Pencarian data dalam tabel Nis Nama 12345 Hardian 12346 Ananto 12347 Ahmad … …… 12500 Widuri Mei 2005
Telepon 0812xxxxxx 0818xxxxxx 0899xxxxxx …………. 081321xxxx
satriyo-Algoritma
9
Algoritma Pencarian data dalam tabel Sebuah tabel berisi nis, nama dan telepon siswa. Carilah dalam tabel alamat seorang siswa dengan nis = x. diasumsikan tabel berisi minimal satu entry. Deskripsi: tinjau entry pertama tabel repeat if nis pada entry tabel=nis yang dicari then ambil data nomor telepon dari nis tersebut else tinjau entry berikutnya dalam tabel Until nis yang dicari ditemukan atau akhir tabel sudah terlampaui Mei 2005
satriyo-Algoritma
10
3. While …. Do while kondisi do aksi
Algoritma Pencarian data dalam tabel Sebuah tabel berisi nis, nama dan telepon siswa. Carilah dalam tabel alamat seorang siswa dengan nis = x. diasumsikan tabel berisi minimal satu entry. Deskripsi: tinjau entry pertama tabel while nis yang dicari belum ditemukan dan akhir tabel berlum terlampaui do if nis pada entry tabel=nis yang dicari then ambil data nomor telepon dari nis tersebut else tinjau entry berikutnya dalam tabel Mei 2005
satriyo-Algoritma
11
1.
Buatlah algoritma sebuah lampu pengatur lalu lintas.
Mei 2005
satriyo-Algoritma
12
ATURAN PENULISAN ALGORITMA a. Judul Algoritma b. Deklarasi c. Deskripsi
Mei 2005
satriyo-Algoritma
13
Judul Algoritma Algoritma Menghitung_nilai_rata_rata judul algoritma {menghitung rerata bilangan bulat yang dibaca dari piranti masukan} spesifikasi algoritma
Mei 2005
satriyo-Algoritma
14
Deklarasi X: Integer {variabel bil. Bulat} N: Integer {banyaknya data bil. Bulat, N>0} K: Integer {pencacah jumlah pengulangan} Jumlah:integer {jumlah seluruh data bilangan bulat} Rata: real {rata-rata bil.bulat}
Mei 2005
satriyo-Algoritma
15
Deskripsi Read (N) K 1 Jumlah 0
{baca banyaknya data} {mulai dari data pertama}
While k <=N do read(x) jumlah jumlah + x K k + 1 {cacah pengulangan selanjutnya} Endwhile {k>N} Rata jumlah/N {rata-rata data bil.bulat} Write (rata) Mei 2005
satriyo-Algoritma
16
Program menghitung_nilai_rata_rata; Var
x:integer; N:integer; K:integer; jumlah:integer; rata:real;
Begin write(‘masukan jumlah data: ‘); readln(N); k:=1; jumlah:=0; while k<= N do begin write(x= ?); readln(x); jumlah:=jumlah + x; k:=k+1; end; rata:=jumlah/N; writeln(‘rata-rata seluruh data= ‘, rata); End. Mei 2005
satriyo-Algoritma
17
Program menghitung_nilai_rata_rata; Var
x,N,k,jumlah:integer; rata:real;
Begin write(‘masukan jumlah data: ‘); readln(N); k:=1; jumlah:=0; while k<= N do begin write(x= ?); readln(x); jumlah:=jumlah + x; k:=k+1; end; rata:=jumlah/N; writeln(‘rata-rata seluruh data= ‘, rata); End. Mei 2005
satriyo-Algoritma
18