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: 1. Tuangkan larutan bejana A ke bejana C 2. Tuangkan larutan bejana B ke bejana A 3. 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. 1. 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: 1.Tulis kalimat “saya siswa SMA 1 Yogyakarta” 2.Tulis kalimat “saya siswa SMA 1 Yogyakarta” 3.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