LOGIKA ALGORITMA Pertemuan 6 By: Augury augury@pribadiraharjacom
Sequence Algoritma yang merupakan runtunan (sequence) satu atau lebih instruksi, yaitu berarti: 1 Tiap instruksi dikerjakan satu persatu 2 Tiap instruksi dilaksanakan (tanpa perulangan) 3 Urutan dilaksanakan sesuai urutan 4 Akhir dari instruksi terakhir merupakan akhir algoritma
Sequence Perhatikan diagram di bawah, Berdasarkan diagram tersebut, algoritmanya terdiri dari 3 instruksi yang dimulai dari instruksi A, kemudian dilanjukan instruksi B dan setelah instruksi B dilanjutkan instruksi C A Instruksi A B Instruksi B C Instruksi C
Sequence Pengaruh Urutan Instruksi Urutan instruksi dalam algoritma sangat penting Urutan instruksi yang berbeda akan menghasilkan keluaran yang berbeda Perhatikan contoh:
Contoh Algoritma_Sequence_1 {Contoh algoritma yang menghasilkan keluaran berbeda jika urutan berbeda DEKLARASI DESKRIPSI A, B : Integer A 10 A 2 * A B A write (B) {nilai B yang dicetak ke piranti keluaran = 20 Algoritma_Sequence_2 {Contoh algoritma yang menghasilkan keluaran berbeda jika urutan berbeda DEKLARASI A, B : Integer DESKRIPSI A 10 B A A 2 * A write (B) {nilai B yang dicetak ke piranti keluaran = 10
Contoh Algoritma_Luas_Segitiga {Contoh algoritma menghitung luas segitiga DEKLARASI a : Integer {Alas Segitiga t : Integer {Tinggi Segitiga L : Integer {Luas Segitiga DESKRIPSI read (a) read (t) L a * t /2 write (L) Contoh kasus: 1 misalkan nilai A=8 dan nilai B=5 Lakukan pertukaran nilai A dengan nilai B sehingga nilai A=5 (nilai B) dan nilai B=8 (nilai A) 2 Lakukan pembacaan dari piranti input untuk nilai A, lakukan pembacaan dari piranti input untuk nilai B, tampilkan nilai A dan nilai B ke piranti keluaran Lakukan pertukaran antara nilai A dan nilai B, tampilkan nilai A dan nilai B ke piranti keluaran
Contoh Contoh kasus: 1 misalkan nilai A=8 dan nilai B=5 Lakukan pertukaran nilai A dengan nilai B sehingga nilai A=5 (nilai B) dan nilai B=8 (nilai A) 2 Lakukan pembacaan dari piranti input untuk nilai A, lakukan pembacaan dari piranti input untuk nilai B, tampilkan nilai A dan nilai B ke piranti keluaran Lakukan pertukaran antara nilai A dan nilai B, tampilkan nilai A dan nilai B ke piranti keluaran 3 Menghitung komisi yang diterima salesman berdasarkan jumlah penjualan yang dicapainya Salesman mendapat komisi 10% dari hasil penjualannya Masukan algoritma adalah nama salesman dan jumlah penjualannya, tampilkan ke piranti keluaran nama salesman dan besar komisi yang diperolehnya
SELECTION (PEMILIHAN ) IF IF (Simple selection without false branch) if <kondisi> then instruksi Contoh: if (kondisi) { instruksi if x > 100 then x x + 1 if ketemu=true then if a <= 10 then read(b) if (x>100) { x = x + 1; if (ketemu==true) { if (a<=10) { scanf( %d,&b);
SELECTION (PEMILIHAN ) IF ELSE IF ELSE (Simple selection) if <kondisi> then instruksi_1 else instruksi_2 Contoh: if nilai >= 60 then write ( Lulus ) else write ( Tidak Lulus ) if (kondisi) { instruksi_1 else { instruksi_2 if (nilai>=60) { printf( Lulus ); else { printf( Tidak Lulus );
SELECTION (PEMILIHAN ) Nested IF Nested IF (Nested selection) Linear nested IF statement Non linear nested IF statement if <kondisi_1> then Instruksi_1 else if <kondisi_2> then Instruksi_2 else if <kondisi_3> then Instruksi_3 else Instruksi_4 if <kondisi_1> then if <kondisi_2> then if <kondisi_3> then Instruksi_1 else Instruksi_2 else Instruksi_3 else Instruksi_4
SELECTION (PEMILIHAN ) CASE CASE case (nama_variable_yang_diuji) <kondisi_1> : instruksi_1 <kondisi_2> : instruksi_2 <kondisi_3> : instruksi_3 <kondisi_n> : instruksi_n Otherwise instruksi_x endcase switch (nama_variable_yang_diuji) { case nilai_1 : instruksi_1; break; case nilai_2 : instruksi_2; break; case nilai_3 : instruksi_3; break; default : instruksi_4; break;
SELECTION (PEMILIHAN ) CASE Contoh: Algoritma_Keterangan_grade_nilai { Menampilkan keterangan untuk grade nilai DEKLARASI chrnilai : char DESKRIPSI write ( Nilai huruf yang didapat? ) read (chrnilai) case (chrnilai) chrnilai== A : write ( Sangat Baik ) chrnilai== B : write ( Baik ) chrnilai== C : write ( Cukup ) chrnilai== D : write ( Kurang ) chrnilai== E or chrnilai== F : write ( Gagal ) otherwise write( isi dengan huruf antara (A F)! ) #include<stdioh> endcase void main() { char chrnilai; printf( Nilai huruf yang didapat? ); scanff( %s, &chrnilai); switch (chrnilai){ case A : printf( Sangat Baik ); break; case B : printf( Baik ); break; case C : printf( Cukup ); break; case D : printf( Kurang ); break; case E : printf( Gagal ); break; case F : printf( Gagal ); break; default : printf( isi dengan huruf antara (A F)! ); break;
Repetition (PERULANGAN) while - do while - do while <kondisi> do instruksi_1 instruksi_2 endwhile while (<kondisi>) { instruksi_1 instruksi_2 Contoh: Algoritma_Cetak_Hello_Sebanyak_10_Kali { Menampilkan tulisan Hello sebanyak 10 kali DEKLARASI i : integer {sebagai pencacah perulangan DESKRIPSI i 1 while i<=10 do write ( Halo ) i++; endwhile #include<stdioh> void main() { int i; i = 1; while (i<=10) { printf ( Halo ); i++;
Repetition (PERULANGAN) repeat - until repeat - until repeat instruksi_1 instruksi_2 Until <kondisi> do { instruksi_1 instruksi_2 while (<kondisi>) Contoh: Algoritma_Cetak_Hello_Sebanyak_10_Kali { Menampilkan tulisan Hello sebanyak 10 kali DEKLARASI i : integer {sebagai pencacah perulangan DESKRIPSI i 1 Repeat write ( Halo ) i++ until i<=10 #include<stdioh> void main() { int i; i = 1; do { printf ( Halo ); i++ while (i<=10)
Repetition (PERULANGAN) for for Contoh: for namavar awal to akhir do instruksi_1 instruksi_2 endfor for (namavar=awal; namavar<=akhir;namavar++) { instruksi_1 instruksi_2 Algoritma_Cetak_Hello_Sebanyak_10_Kali { Menampilkan tulisan Hello sebanyak 10 kali DEKLARASI DESKRIPSI for k 1 to 10 do write (k, Halo ) endfor #include<stdioh> void main() { for (int k=1; k<=10; k++) { printf ( %d Halo, k);
Thanks