By: Augury
By: Augury
[email protected]
[email protected]
[email protected]
LOGIKA ALGORITMA
Pertemuan 6
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
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 B C Instruksi A Instruksi B Instruksi C
Sequence
Pengaruh Urutan Instruksi
Urutan instruksi dalam algoritma sangat
penting. Urutan instruksi yang berbeda akan
menghasilkan keluaran yang berbeda.
Contoh
Algoritma_Sequence_1
{Contoh algoritma yang menghasilkan keluaran berbeda jika urutan berbeda} DEKLARASI A, B : Integer DESKRIPSI A Å 10 A Å 2 * A B Å A write (B)
{nilai B yang dicetak ke piranti keluaran = 20}
Algoritma_Sequence_1
{Contoh algoritma yang menghasilkan keluaran berbeda jika urutan berbeda} DEKLARASI A, B : Integer DESKRIPSI 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}
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)
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.
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)
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
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)
Contoh:
if
<kondisi> then
instruksi
endif
if
<kondisi> then
instruksi
endif
if
x > 100 then
x Å x + 1
endif
if
x > 100 then
x Å x + 1
endif
if
ketemu=true then
if
a <= 10 then
read(b)
endif
endif
if
ketemu=true then
if
a <= 10 then
read(b)
endif
endif
if (kondisi) {
instruksi
}
if (kondisi) {
instruksi
}
Pseudocode
Bahasa C++
if (x>100) {
x = x + 1;
}
if (x>100) {
x = x + 1;
}
if (ketemu==true) {
if (a<=10) {
scanf(“%d”,&b);
}
}
if (ketemu==true) {
if (a<=10) {
scanf(“%d”,&b);
}
}
Pseudocode
Bahasa C++
SELECTION (PEMILIHAN )
IF … ELSE
IF … ELSE (
Simple selection)
Contoh:
if
<kondisi> then
instruksi_1
else
instruksi_2
endif
if
<kondisi> then
instruksi_1
else
instruksi_2
endif
if
nilai >= 60 then
write (“Lulus”)
else
write (“Tidak Lulus”)
endif
if
nilai >= 60 then
write (“Lulus”)
else
write (“Tidak Lulus”)
endif
Pseudocode
Bahasa C++
if (kondisi) {
instruksi_1
}
else {
instruksi_2
}
if (kondisi) {
instruksi_1
}
else {
instruksi_2
}
if (nilai>=60) {
printf(“Lulus”);
}
else {
printf(“Tidak Lulus”);
}
if (nilai>=60) {
printf(“Lulus”);
}
else {
printf(“Tidak Lulus”);
}
Pseudocode
Bahasa C++
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 endif endif endif if <kondisi_1> then Instruksi_1 else if <kondisi_2> then Instruksi_2 else if <kondisi_3> then Instruksi_3 else Instruksi_4 endif endif endif if <kondisi_1> then if <kondisi_2> then if <kondisi_3> then Instruksi_1 else Instruksi_2 endif else Instruksi_3 endif else Instruksi_4 endif if <kondisi_1> then if <kondisi_2> then if <kondisi_3> then Instruksi_1 else Instruksi_2 endif else Instruksi_3 endif else Instruksi_4 endif
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
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;
}
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;
}
Pseudocode
Bahasa C++
SELECTION (PEMILIHAN )
CASE
Contoh:
#include<stdio.h> 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; } } #include<stdio.h> 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;
} }
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) !”) endcase
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) !”) endcase
Pseudocode
Repetition (PERULANGAN)
while - do
while - do
Contoh:
Pseudocode
while <kondisi> do instruksi_1 instruksi_2 . . endwhile while <kondisi> do instruksi_1 instruksi_2 . . endwhile while (<kondisi>) { instruksi_1 instruksi_2 . . } while (<kondisi>) { instruksi_1 instruksi_2 . . }Bahasa C++
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 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<stdio.h> void main() { int i; i = 1; while (i<=10) { printf (“Halo”); i++; } } #include<stdio.h> void main() { int i; i = 1; while (i<=10) { printf (“Halo”); i++; } }
Pseudocode
Bahasa C++
Repetition (PERULANGAN)
repeat - until
repeat - until
Contoh:
Pseudocode
repeat instruksi_1 instruksi_2 . . Until <kondisi> repeat instruksi_1 instruksi_2 . . Until <kondisi> do { instruksi_1 instruksi_2 . . } while (<kondisi>) do { instruksi_1 instruksi_2 . . } while (<kondisi>)Bahasa C++
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 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<stdio.h> void main() { int i; i = 1; do { printf (“Halo”); i++ } while (i<=10) } #include<stdio.h> void main() { int i; i = 1; do { printf (“Halo”); i++ } while (i<=10) }
Pseudocode
Bahasa C++
Repetition (PERULANGAN)
for
for
Contoh:
Pseudocode
Bahasa C++
Pseudocode
Bahasa C++
for namavar Å awal to akhir do instruksi_1
instruksi_2 .
. endfor
for namavar Å awal to akhir do instruksi_1
instruksi_2 .
. endfor
for (namavar=awal; namavar<=akhir;namavar++) { instruksi_1
instruksi_2 .
. }
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 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<stdio.h> void main() { for (int k=1; k<=10; k++) { printf (“%d Halo”, k); } } #include<stdio.h> void main() { for (int k=1; k<=10; k++) { printf (“%d Halo”, k); } }