STRUKTUR DASAR ALGORITMA -...

35
STRUKTUR DASAR ALGORITMA

Transcript of STRUKTUR DASAR ALGORITMA -...

Page 1: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

STRUKTUR DASAR ALGORITMA

Page 2: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Tujuan

• Mahasiswa mampu memecahkan masalah dalam sebuah algoritmapemecahan masalah menggunakan struktur pemilihan danpengulangan.

• Mahasiswa mengetahui struktur program bahasa C dan mampumentranslasikan dengan benar dari algoritma yang sederhana keprogram bahasa C

Page 3: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Struktur Dasar Algoritma

• Runtunan (sequence)‏

Sebuah runtunan terdiri atas satu atau lebihpernyataan yang dikerjakan secara berurutan

• Penyeleksian (selection)‏

Sebuah aksi dikerjakan jika kondisi tertentuterpenuhi

• Pengulangan (repetition)‏

Memungkinkan banyak aksi dikerjakan dengansatu instruksi

Page 4: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Runtunan

Algoritma merupakan runtunan satu atau lebihinstruksi yang berarti bahwa:

1. Tiap instruksi dikerjakan satu per satu

2. Tiap instruksi dikerjakan tepat satu kali

3. Urutan instruksi yang dilaksanakan kompilersama dengan urutan instruksi dalam algoritma

4. Instruksi terakhir merupakan akhir algoritma

Page 5: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Penyeleksian & Pengulangan

Sejauh ini kita bahas algoritma yang dikerjakanberurutan. Untuk program yang lebih rumit, prosespengerjaan program dapat tidak berurutan, sepertipenyeleksian kondisi dan pengulangan.

Page 6: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Struktur Penyeleksian

Ada 2 macam struktur penyeleksian. Pemilihankonstruksi yang tepat bergantung pada jumlahkasus yang akan diseleksi.

1. Pernyataan IF-THEN-ELSE

2. Pernyataan CASE

Penggunaan struktur IF-THEN-ELSE jika jumlahkasus tidak banyak. Untuk jumlah kasus yangbanyak, konstruksi CASE dapat menyederhanakanpenulisan.

Page 7: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Satu Kasus

Notasi algoritmik untuk analisis dengan satu kasusadalah dengan menggunakan konstruksi if-thendalam bentuk pernyataan:

if kondisi then

pernyataan

endif

Page 8: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh Satu Kasus :

PROGRAM Genap{ Mencetak pesan ‘genap’ jika yang dibaca dari piranti masukan adalah

bilangan genap }

DEKLARASI

x : integer

ALGORITMA:

read xif x mod 2 = 0 then

write (“genap”)endif

Page 9: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Dua Kasus

Notasi algoritmik untuk analisis dengan dua kasusadalah dengan menggunakan konstruksi if-thendalam bentuk pernyataan:

if kondisi then

pernyataan_1

else

pernyataan_2

endif

Page 10: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh Dua Kasus :

PROGRAM Genap_ganjil{ Mencetak pesan ‘genap’ jika yang dibaca dari piranti masukan adalahbilangan genap dan mencetak ganjil jika yang dibaca dari piranti masukanadalah bilangan ganjil }

DEKLARASIx : integer

ALGORITMA:read xif x mod 2 = 0 then { kasus 1 }

write (“genap”)else { kasus 2 }

write (“ganjil”)endif

Page 11: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Tiga Kasus

Notasi algoritmik untuk analisis dengan tiga kasus adalah:

if kondisi_1 then { kasus 1 }pernyataan_1

else if kondisi _2 then { kasus 2 }

pernyataan_2else { kasus 3 }

pernyataan_3endif

endif

Page 12: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh Tiga Kasus :

PROGRAM Wujud_Air

{ Menentukan wujud air, tergantung temperatur air T }

DEKLARASI

T : real

ALGORITMA:

read (T)

if T 0 then { Kasus 1 }

write (“padat”)

else

if T < 100 then { Kasus 2 }

write (“cair”)

else {T 100, Kasus 3 }

write (“gas atau uap”)

endif

endif

Page 13: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Struktur CASEKonstruksi CASE adalah sebagai berikut:

case ekspresi

nilai_1 pernyataan_1

nilai_2 pernyataan_2

nilai_3 pernyataan_3

.

.

.

nilai_n pernyataan_n

otherwise pernyataan_x

endcase

Page 14: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh Struktur CASE :

PROGRAM Konversi_Angka_ke_Huruf{ Mencetak untuk huruf untuk angka 1 sampai 4 }

DEKLARASIangka : integer

ALGORITMA:Read (angka)case angka

1 : write (“satu”)2 : write (“dua”)3 : write (“tiga”)4 : write (“empat”)otherwise : write (“angka yang dimasukkan salah”)

endcase

Page 15: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Struktur Pengulangan

Struktur pengulangan terdiri atas dua bagian:

• Kondisi pengulangan, yakni ekspresi boolean yangharus dipenuhi untuk melaksanakan pengulangan

• Badan pengulangan, yakni bagian algoritma yangdiulang

Di samping itu, biasanya terdapat juga bagian:

• Inisialisasi, yakni aksi yang dilakukan sebelumpengulangan dilakukan pertama kali

• Terminasi, yakni aksi yang dilakukan setelahpengulangan selesai dilaksanakan

Page 16: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Konstruksi Pengulangan

Ada 3 macam konstruksi pengulangan. Pemilihankonstruksi yang tepat bergantung pada masalah yangakan diprogram.

1. Pernyataan FOR

2. Pernyataan WHILE

3. Pernyataan REPEAT

Pernyataan FOR adalah konstruksi pengulangan tanpakondisi. Pernyataan WHILE dan REPAT adalah konstruksipengulangan dengan kondisi.

Page 17: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Pernyataan FOR

Ada 2 macam pernyataan FOR

1. FOR menaik

for pencacah nilai_awal to nilai_akhir do

pernyataan

endfor

2. FOR menurun

for pencacah nilai_akhir downto nilai_awal do

pernyataan

endfor

Page 18: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh FOR Menaik :

PROGRAM Cetak_Banyak_Hello_World{ Mencetak 10 kali tulisan Hello World }

DEKLARASIi : integer

ALGORITMA:for i 1 to 10 do

write (“Hello World”)i = i +1

endfor

Page 19: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh FOR Menaik :

PROGRAM Cetak_1_sampai_10{ Mencetak angka 1 sampai 10 }

DEKLARASIi : integer

ALGORITMA:for i 1 to 10 do

write (i)i = i +1

endfor

Page 20: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh FOR Menaik :

PROGRAM Penjumlahan_Deret{ Menjumlahkan deret 1 + 2 + 3 + … + N }

DEKLARASIN, i, jumlah : integer

ALGORITMA:read (N)jumlah 0 { inisialisasi }for i 1 to 10 do

jumlah jumlah + ii = i +1

endforwrite (jumlah) { terminasi }

Page 21: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh FOR Menaik :

PROGRAM Hitung_Rerata

{ Menghitung rerata N buah bilangan bulat }

DEKLARASI

N, x, i, jumlah : integer

rerata : real

ALGORITMA:

read (N)

jumlah 0 { inisialisasi }

for i 1 to N do

read (x)

jumlah jumlah + x

i = i +1

endfor

rerata jumlah/N { terminasi }

write (rerata)

Page 22: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh FOR Menurun :

PROGRAM Hitungan_Mundur{ Mencetak hitungan mundur dari 10 sampai 0}

DEKLARASIi : integer

ALGORITMA:for i 10 downto 0 do

write (i)i = i - 1

endfor

Page 23: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Pernyataan WHILE

Bentuk umum pernyataan WHILE adalah

while kondisi do

pernyataan

endwhile

Pernyataan dilaksanakan berulangkali selama kondisibernilai benar. Jika bernilai salah, maka pernyataantidak dilaksanakan dan pengulangan berhenti.

Page 24: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh WHILE :

PROGRAM Cetak_Banyak_Hello_World{ Mencetak 10 kali tulisan Hello World }

DEKLARASIi : integer

ALGORITMA:i 1 { inisialisasi }while i 10 do

write (“Hello World”)i i + 1

endwhile

Page 25: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh WHILE :

PROGRAM Cetak_1_sampai_10{ Mencetak angka 1 sampai 10 }

DEKLARASIi : integer

ALGORITMA:i 1 { inisialisasi }while i 10 do

write (i)i i + 1

endwhile

Page 26: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh WHILE :

PROGRAM Penjumlahan_Deret{ Menjumlahkan deret 1 + 2 + 3 + … + N }

DEKLARASIN, i, jumlah : integer

ALGORITMA: read (N)jumlah 0 { inisialisasi }i 1 { inisialisasi }while i N do

jumlah jumlah + ii i + 1

endwhilewrite (jumlah) { terminasi }

Page 27: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh WHILE :

PROGRAM Hitung_Rerata{ Menghitung rerata N buah bilangan bulat }

DEKLARASIN, x, i, jumlah : integerrerata : real

ALGORITMA:read (N)jumlah 0 { inisialisasi }i 1 { inisialisasi }while i N do

read (x)jumlah jumlah + xi i + 1

endwhilererata jumlah/Nwrite (rerata)

Page 28: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh WHILE :

PROGRAM Hitungan_Mundur{ Mencetak hitungan mundur dari 10 sampai 0}

DEKLARASIi : integer

ALGORITMA:i 10 { inisialisasi }while i 0 do

write (i)i i - 1

endwhile

Page 29: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Pernyataan REPEAT

Bentuk umum pernyataan REPEAT adalah :

repeat

pernyataan

until kondisi

Pernyataan dilaksanakan berulangkali selama kondisibernilai salah. Jika bernilai benar, maka pernyataantidak dilaksanakan dan pengulangan berhenti.

Page 30: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh REPEAT :

PROGRAM Cetak_Banyak_Hello_World{ Mencetak 10 kali tulisan Hello World }

DEKLARASIi : integer

ALGORITMA:i 1 { inisialisasi }repeat

write (“Hello World”)i i + 1

until i > 10

Page 31: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh REPEAT :

PROGRAM Cetak_1_sampai_10{ Mencetak angka 1 sampai 10 }

DEKLARASIi : integer

ALGORITMA:i 1 { inisialisasi }repeat

write (i)i i + 1

until i > 10

Page 32: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh REPEAT :

PROGRAM Penjumlahan_Deret{ Menjumlahkan deret 1 + 2 + 3 + … + N }

DEKLARASIN, i, jumlah : integer

ALGORITMA: read (N)jumlah 0 { inisialisasi }i 1 { inisialisasi }repeat

jumlah jumlah + ii i + 1

until i > Nwrite (jumlah) { terminasi }

Page 33: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh REPEAT :

PROGRAM Hitung_Rerata{ Menghitung rerata N buah bilangan bulat }

DEKLARASIN, x, i, jumlah : integerrerata : real

ALGORITMA:read (N)jumlah 0 { inisialisasi }i 1 { inisialisasi }repeat

read (x)jumlah jumlah + xi i + 1

until i > Nrerata jumlah/N write (rerata)

Page 34: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

Contoh REPEAT :

PROGRAM Hitungan_Mundur{ Mencetak hitungan mundur dari 10 sampai 1}

DEKLARASIi : integer

ALGORITMA:i 10 { inisialisasi }repeat

write (i)i i - 1

until i > 0

Page 35: STRUKTUR DASAR ALGORITMA - cyber.unissula.ac.idcyber.unissula.ac.id/DIRBA/member/210603026/file/7... · Runtunan Algoritma merupakan runtunan satu atau lebih instruksi yang berarti

WHILE atau REPEAT?

Berdasarkan contoh yang ada, kita dapat menarikkesimpulan:

• Gunakan konstruksi WHILE pada kasus yangmengharuskan pemeriksaan kondisi objekterlebih dahulu sebelum objek tersebutdimanipulasi

• Gunakan konstruksi REPEAT pada kasus yangterlebih dahulu memanipulasi objek, barukemudian memeriksa kondisi objek tersebut.