LOGIKA ALGORITMA Pertemuan 6
By: Augury
[email protected] [email protected]
Sequence
Algoritma yang merupakan runtunan (sequence) satu atau lebih instruksi, yaitu berarti: 1. 2. 3. 4.
Tiap instruksi dikerjakan satu persatu. Tiap instruksi dilaksanakan (tanpa perulangan). Urutan dilaksanakan sesuai urutan. 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 Algoritma_Sequence_1 {Contoh {Contoh algoritma algoritma yang yang menghasilkan menghasilkan keluaran keluaran berbeda berbeda jika jika urutan urutan berbeda} berbeda} DEKLARASI DEKLARASI A, A, BB
:: Integer Integer
DESKRIPSI DESKRIPSI AA Å Å 10 10 AA Å 2 Å 2 ** AA BB Å Å AA write write (B) (B) {nilai {nilai BB yang yang dicetak dicetak ke ke piranti piranti keluaran keluaran == 20} 20} Algoritma_Sequence_2 Algoritma_Sequence_2 {Contoh {Contoh algoritma algoritma yang yang menghasilkan menghasilkan keluaran keluaran berbeda berbeda jika jika urutan berbeda} urutan berbeda} DEKLARASI DEKLARASI A, A, BB
:: Integer Integer
DESKRIPSI DESKRIPSI AA Å Å 10 10 BB Å Å AA AA Å Å 22 ** AA write write (B) (B) {nilai {nilai BB yang yang dicetak dicetak ke ke piranti piranti keluaran keluaran == 10} 10}
Contoh Algoritma_Luas_Segitiga Algoritma_Luas_Segitiga {Contoh {Contoh algoritma algoritma menghitung menghitung luas luas segitiga} segitiga} DEKLARASI DEKLARASI aa tt LL
:: :: ::
Integer Integer Integer Integer Integer Integer
{Alas {Alas Segitiga} Segitiga} {Tinggi {Tinggi Segitiga} Segitiga} {Luas {Luas Segitiga} Segitiga}
DESKRIPSI DESKRIPSI read read (a) (a) read (t) read (t) LL Å Å aa ** tt /2 /2 write (L) write (L)
Contoh kasus: 1. 2.
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) 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) Pseudocode if if
instruksi instruksi endif endif
Bahasa C++ then then
if if (kondisi) (kondisi) {{ instruksi instruksi }}
Contoh: Pseudocode
Bahasa C++
if if
xx >> 100 100 then then xx Å Å xx ++ 11 endif endif
if if (x>100) (x>100) {{ xx == xx ++ 1; 1; }}
if if
if if (ketemu==true) (ketemu==true) {{ if if (a<=10) (a<=10) {{ scanf(“%d”,&b); scanf(“%d”,&b); }} }}
ketemu=true ketemu=true then then if a <= 10 then if a <= 10 then read(b) read(b) endif endif endif endif
SELECTION (PEMILIHAN ) IF … ELSE
IF … ELSE (Simple selection) Pseudocode
Bahasa C++
if if
if if (kondisi) (kondisi) {{ instruksi_1 instruksi_1 }} else else {{ instruksi_2 instruksi_2 }}
then then instruksi_1 instruksi_1 else else instruksi_2 instruksi_2 endif endif
Contoh: Pseudocode
Bahasa C++
if if
if if (nilai>=60) (nilai>=60) {{ printf(“Lulus”); printf(“Lulus”); }} else else {{ printf(“Tidak printf(“Tidak Lulus”); Lulus”); }}
nilai nilai write write else else write write endif endif
>= >= 60 60 then then (“Lulus”) (“Lulus”) (“Tidak (“Tidak Lulus”) Lulus”)
SELECTION (PEMILIHAN ) Nested IF Nested Linear
Non
IF (Nested selection) nested IF statement
linear nested IF statement
if if then then Instruksi_1 Instruksi_1 else else if if then then Instruksi_2 Instruksi_2 else else if if then then Instruksi_3 Instruksi_3 else else Instruksi_4 Instruksi_4 endif endif endif endif endif endif if if then then if if then then if if then then Instruksi_1 Instruksi_1 else else Instruksi_2 Instruksi_2 endif endif else else Instruksi_3 Instruksi_3 endif endif else else Instruksi_4 Instruksi_4 endif endif
SELECTION (PEMILIHAN ) CASE
CASE Pseudocode case case (nama_variable_yang_diuji) (nama_variable_yang_diuji) :: instruksi_1 instruksi_1 :: instruksi_2 instruksi_2 :: instruksi_3 instruksi_3 .. .. .. :: instruksi_N instruksi_N Otherwise Otherwise instruksi_x instruksi_x endcase endcase
Bahasa C++ switch switch (nama_variable_yang_diuji) (nama_variable_yang_diuji) {{ case case nilai_1 nilai_1 :: instruksi_1; instruksi_1; break; break; case case nilai_2 nilai_2 :: instruksi_2; instruksi_2; break; break; case case nilai_3 nilai_3 :: instruksi_3; instruksi_3; break; break; .. .. .. .. default :: instruksi_4; default instruksi_4; break; break; }}
SELECTION (PEMILIHAN ) CASE
Contoh:
Bahasa C++
Pseudocode
Algoritma_Keterangan_grade_nilai Algoritma_Keterangan_grade_nilai {{ Menampilkan Menampilkan keterangan keterangan untuk untuk grade grade nilai nilai }} DEKLARASI DEKLARASI chrNilai chrNilai :: char char DESKRIPSI DESKRIPSI write write (‘Nilai (‘Nilai huruf huruf yang yang didapat didapat ?? ‘) ‘) read read (chrNilai) (chrNilai) case case (chrNilai) (chrNilai) chrNilai==‘A’ (“Sangat Baik”) Baik”) chrNilai==‘A’ :: write write (“Sangat chrNilai==‘B’ chrNilai==‘B’ :: write write (“Baik”) (“Baik”) chrNilai==‘C’ chrNilai==‘C’ :: write write (“Cukup”) (“Cukup”) chrNilai==‘D’ chrNilai==‘D’ :: write write (“Kurang”) (“Kurang”) chrNilai==‘E’ or chrNilai==’F’ chrNilai==‘E’ or chrNilai==’F’ :: write write (“Gagal”) (“Gagal”) otherwise write(“isi dengan huruf antara otherwise write(“isi dengan huruf antara (A (A –– F) F) !”) !”) endcase endcase
#include<stdio.h> #include<stdio.h> void void main() main() {{ char char chrNilai; chrNilai; printf(“Nilai printf(“Nilai huruf huruf yang yang didapat didapat ?? “); “); scanff(“%s”, scanff(“%s”, &chrNilai); &chrNilai); switch switch (chrNilai){ (chrNilai){ case case ‘A’ ‘A’ :: printf(“Sangat printf(“Sangat Baik”); Baik”); break; break; case case ‘B’ ‘B’ :: printf(“Baik”); printf(“Baik”); break; break; case case ‘C’ ‘C’ :: printf(“Cukup”); printf(“Cukup”); break; break; case case ‘D’ ‘D’ :: printf(“Kurang”); printf(“Kurang”); break; break; case case ‘E’ ‘E’ :: printf(“Gagal”); printf(“Gagal”); break; break; case ‘F’ : printf(“Gagal”); break; case ‘F’ : printf(“Gagal”); break; default default :: printf(“isi printf(“isi dengan dengan huruf huruf antara antara (A (A –– F) F) !”); !”); break; break; }} }}
Repetition (PERULANGAN) while - do
while - do
Contoh:
Pseudocode
Bahasa C++
while while do do instruksi_1 instruksi_1 instruksi_2 instruksi_2 .. .. endwhile endwhile
while while () () {{ instruksi_1 instruksi_1 instruksi_2 instruksi_2 .. .. }}
Pseudocode
Bahasa C++
Algoritma_Cetak_Hello_Sebanyak_10_Kali Algoritma_Cetak_Hello_Sebanyak_10_Kali {{ Menampilkan Menampilkan tulisan tulisan Hello Hello sebanyak sebanyak 10 10 kali kali }}
#include<stdio.h> #include<stdio.h>
DEKLARASI DEKLARASI ii :: integer integer {sebagai {sebagai pencacah pencacah perulangan} perulangan} DESKRIPSI DESKRIPSI ii Å Å 11 while while i<=10 i<=10 do do write write (‘Halo’) (‘Halo’) i++; i++; endwhile endwhile
void void main() main() {{ int int i; i; ii == 1; 1; while while (i<=10) (i<=10) {{ printf printf (“Halo”); (“Halo”); i++; i++; }} }}
Repetition (PERULANGAN) repeat - until
repeat - until
Contoh:
Pseudocode
Bahasa C++
repeat repeat instruksi_1 instruksi_1 instruksi_2 instruksi_2 .. .. Until Until
do do {{ instruksi_1 instruksi_1 instruksi_2 instruksi_2 .. .. }} while while () ()
Pseudocode
Bahasa C++
Algoritma_Cetak_Hello_Sebanyak_10_Kali Algoritma_Cetak_Hello_Sebanyak_10_Kali {{ Menampilkan Menampilkan tulisan tulisan Hello Hello sebanyak sebanyak 10 10 kali kali }}
#include<stdio.h> #include<stdio.h> void void main() main() {{ int int i; i;
DEKLARASI DEKLARASI ii :: integer integer {sebagai {sebagai pencacah pencacah perulangan} perulangan} DESKRIPSI DESKRIPSI ii Å Å 11 Repeat Repeat write write (‘Halo’) (‘Halo’) i++ i++ until i<=10 until i<=10
ii == 1; 1; do do {{ printf printf (“Halo”); (“Halo”); i++ i++ }} while while (i<=10) (i<=10) }}
Repetition (PERULANGAN) for
Pseudocode
Bahasa C++
for for namavar namavar Å Å awal awal to to akhir akhir do do instruksi_1 instruksi_1 instruksi_2 instruksi_2 .. .. endfor endfor
for for (namavar=awal; (namavar=awal; namavar<=akhir;namavar++) namavar<=akhir;namavar++) {{ instruksi_1 instruksi_1 instruksi_2 instruksi_2 .. .. }}
for
Contoh: Pseudocode
Bahasa C++
Algoritma_Cetak_Hello_Sebanyak_10_Kali Algoritma_Cetak_Hello_Sebanyak_10_Kali {{ Menampilkan Menampilkan tulisan tulisan Hello Hello sebanyak sebanyak 10 10 kali kali }}
#include<stdio.h> #include<stdio.h> void void main() main() {{ for for (int (int k=1; k=1; k<=10; k<=10; k++) k++) {{ printf printf (“%d (“%d Halo”, Halo”, k); k); }} }}
DEKLARASI DEKLARASI DESKRIPSI DESKRIPSI for Å 11 to to 10 10 do do for kk Å write write (k, (k, ‘Halo’) ‘Halo’) endfor endfor
Thanks