Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma & Pemrograman

Presentasi serupa


Presentasi berjudul: "Algoritma & Pemrograman"— Transcript presentasi:

1 Algoritma & Pemrograman
PERULANGAN Pengampu : M. Zidny Naf’an, M.Kom

2 Struktur Perulangan Struktur perulangan secara umum ada dua bagian:
Kondisi perulangan Ekspresi boolean yang harus dipenuhi untuk melaksanakan perulangan Badan perulangan Bagian algoritma yang diulang Struktur perulangan disertai pula: Inisialisasi Aksi yang dilakukan sebelum perulangan dilakukan pertama kali Terminasi Aksi yang dilakukan setelah perulangan selesai dilaksanakan 2

3 Struktur Perulangan Struktur perulangan secara umum:
<inisialisasi> awal perulangan badan perulangan akhir perulangan <terminasi> 3

4 Struktur Perulangan Beberapa hal yang harus diperhatikan:
Inisialisasi dan terminasi tidak selalu harus ada, namun dalam beberapa kasus inisialisasi biasanya diperlukan. Suatu perulangan harus berhenti! Beberapa struktur perulangan dapat dipakai untuk masalah yang sama, namun ada notasi perulangan yang hanya cocok dipakai untuk masalah tertentu. 4

5 Notasi Struktur Perulangan
Struktur FOR Struktur WHILE Struktur DO-WHILE 5

6 Struktur FOR Struktur perulangan FOR digunakan untuk menghasilkan perulangan sejumlah kali yang dispesifikasikan. Jumlah perulangan diketahui atau dapat ditentukan sebelum eksekusi. Diperlukan variabel counter/pencacah. Jika cacah perulangan sudah mencapai jumlah yang dispesifikasikan, maka proses perulangan berhenti. 6

7 Struktur FOR Bentuk umum struktur FOR:
for(<ekspresi1>; <ekspresi2>; <ekspresi3>) { aksi1; aksi2; } Ekspresi1: inisialisasi counter Ekspresi2: syarat pelaksanaan Ekspresi3: naikkan counter (inkremen) 7

8 Struktur FOR Bentuk umum struktur FOR menaik (ascending):
for(var=nilai_awal; nilai_awal<=nilai_akhir; var++) { aksi1; aksi2; } 8

9 Struktur FOR Yang harus diperhatikan adalah:
Pencacah harus dari tipe data yang memiliki predecessor dan successor, yakni integer atau karakter. Aksi adalah satu atau lebih instruksi yang diulang nilai_awal harus lebih kecil atau sama dengan nilai_akhir Pada awalnya, pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali aksi perulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir Jumlah perulangan yang terjadi: nilai_akhir - nilai_awal+1 9

10 Struktur FOR Contoh: /* mencetak kata ‘Halo’ sebanyak 10 kali */
int i; for(i=1;i<=10;i++) cout<<“Halo\n”, i; 10

11 Struktur FOR Bentuk umum struktur FOR menurun (descending):
for(var=nilai_awal; nilai_awal>=nilai_akhir; var--) { aksi1; aksi2; } 11

12 Struktur FOR Menurun Yang harus diperhatikan adalah:
Pencacah harus dari tipe data yang memiliki predecessor dan successor, yakni integer atau karakter. Aksi adalah satu atau lebih instruksi yang diulang nilai_awal harus lebih besar atau sama dengan nilai_akhir Pada awalnya, pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis berkurang satu setiap kali aksi perulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir Jumlah perulangan yang terjadi: nilai_awal - nilai_akhir+1 12

13 Struktur FOR Contoh: /* mencetak angka: 9 8 7 6 5 4 3 2 1 0 */ int i;
for(i=9;i>=0;i--) cout<<i ,"\n"; return 0; 13

14 Contoh Lain FOR int i; i=0; //inisialisasi for(;i<10;) //kondisi {
cout<<i,“%d\n”; //proses i++; //inkremen } cout<<“ \n”; Cout<<i,“%d\n”; //terminasi 14

15 Contoh Lain FOR Contoh : for (a =0; a<=10; ++a) perulangan positif (+1) for (a =0; a<=10; a+=2) perulangan positif (+2) for (a=10; a>=0; --a) perulangan negatif(-1)

16 Notasi Algoritmik Struktur For
PROGRAM Cetak_10_HelloWorld {program akan mencetak hello world sebanyak10 kali} DEKLARASI: i: integer ALGORITMA: for i1 to 10 do write(“Hello World \n”) endfor

17 Flowchart For

18 Contoh Struktur For (mencetak 1 s.d. 10)
PROGRAM Cetak_1_sampai_10 {program akan mencetak angka 1 hingga 10} DEKLARASI : i: integer ALGORITMA: for i1 to 10 do write(i) endfor

19 Flowchart Mencetak Angka 1..10

20 Contoh Struktur For (Jumlah deret 1 hingga N)
PROGRAM Jumlah_deret {program akan menjumlahkan deret bilangan 1 hingga N} DESKRIPSI: jumlah, i, N: integer ALGORITMA: read(N) jumlah  0 for i1 to N do jumlah  jumlah + i endfor write(jumlah)

21 DARI CONTOH MENGHITUNG JUMLAH DERET SUATU BILANGAN, BAGAIMANA CARA MENCARI RATA-RATA DARI DERET TERSEBUT??

22 Struktur WHILE Bentuk umum struktur WHILE: inisialisasi;
while(<ekspresi>) { aksi1; aksi2; } terminasi; 22

23 Struktur WHILE Beberapa hal yang harus diperhatikan:
Aksi atau runtunan aksi akan dilaksanakan berulang kali selama <ekspresi> bernilai true. Jika kondisi bernilai false, badan perulangan tidak akan dilaksanakan yang artinya perulangan selesai. 23

24 Struktur WHILE Contoh: } /* mencetak kata ‘Halo’ sebanyak 10 kali */
int i; i=1; while(i<=10) { cout<<“Halo\n”; i++; } 24

25 Struktur WHILE Hal penting yang tidak boleh dilupakan dalam program:
Melupakan inisialisasi: i=1; Tidak menuliskan instruksi yang mengubah kondisi: i++; 25

26 Contoh Struktur While (Mencetak Hello World)
PROGRAM Cetak_10_HelloWorld {program akan mencetak hello world sebanyak10 kali} DESKRIPSI: i: integer ALGORITMA: i  1 while i<=10 do write(“Hello World \n”) i  i+1; endwhile

27 COBA BUAT ALGORITMA PENGGUNAAN STRUKTUR WHILE PADA CONTOH STRUKTUR FOR DIATAS

28 Struktur DO-WHILE Bentuk umum: inisialisasi; do { aksi1; aksi2;
} while(<ekspresi>); terminasi; Jangan lupa titik koma 28

29 Struktur DO-WHILE Beberapa hal yang perlu diperhatikan:
Aksi di dalam badan kalang diulang sampai kondisi boolean bernilai false. Jika kondisi boolean masih true, perulangan masih terus dilakukan. Karena proses perulangan suatu saat harus berhenti, maka di dalam badan perulangan harus ada aksi yang mengubah nilai peubah <ekspresi>. 29

30 Struktur DO-WHILE Contoh: } while(i<=10);
/* mencetak kata ‘Halo’ sebanyak 10 kali */ int i; i=1; do { cout<<“Halo\n”; i++; } while(i<=10); 30

31 FOR atau WHILE atau DO-WHILE ?
Meskipun kadang bisa digunakan untuk fungsi yang sama, ketiga struktur perulangan sebaiknya digunakan sesuai dengan kasus yang dihadapi: Jika banyaknya perulangan dapat dipastikan gunakan struktur FOR Jika perulangan dihentikan saat kondisi tertentu terpenuhi gunakan WHILE atau DO-WHILE 31

32 WHILE atau DO-WHILE? WHILE DO-WHILE
Pemeriksaan kondisi dilakukan di awal perulangan Pemeriksaan kondisi dilakukan di akhir perulangan Badan perulangan mungkin tidak pernah dieksekusi Badan perulangan paling sedikit 1 kali dieksekusi Gunakan struktur WHILE pada kasus yang mengharuskan terlebih dahulu pemeriksaan kondisi objek tersebut sebelum dimanipulasi. Gunakan struktur DO-WHILE pada kasus yang terlebih dahulu memanipulasi objek, baru kemudian memeriksa kondisi objek tersebut. 32

33 CONTOH PENGGUNAAN STRUKTUR PERULANGAN DAN PEMILIHAN
PROGRAM Menjumlahkan_Bilangan_Ganjil_1_10 DEKLARASI : jumlah, i: integer ALGORITMA: jumlah  0; for i1 to 10 do if(i mod 2 != 0) jumlah  jumlah + i endif endfor

34 Nested Loop Looping bersarang Ada Looping di dalam Looping
Ketika bekerja dengan loop bersarang, loop luar (outer) berubah hanya setelah loop dalam (inner) benar-benar selesai (atau terganggu.).

35 Nested Loop

36 Contoh Nested Loop (Menampilkan Segitiga Siku-siku)
PROGRAM MenampilkanSegitigaSikusiku DEKLARASI : I,j: integer ALGORITMA: for i1 to 5 do for j1 to i do write(“*”) endfor write(“\n”)

37 Latihan : Tentukan Outputnya
using namespace std; int main() { int x =5; int y=3; for (x=1; x<=5; x++) y = y + x; cout <<"Nilai X = " << x; cout <<"Nilai Y = " << y <<"\n"; } return 0;

38 No. 2 using namespace std; int main() { int x, y, z; x = 5; y = 8;
for (x=1; x<=10; x++) y = y + x; if (x >= 4) x = x + 4; cout <<"Nilai Y = " << y <<"\n"; } return 0;

39 No. 2 using namespace std; int main() { int x, y, z; x = 5; y = 8;
for (x=1; x<=10; x++) y = y + x; if (x >= 4) x = x + 4; cout <<"Nilai Y = " << y <<"\n"; } return 0;

40 Jawaban 1. Nilai X = 1 Nilai Y = 4 Nilai X = 2 Nilai Y = 6 Nilai X = 3 Nilai Y = 9 Nilai X = 4 Nilai Y = 13 Nilai X = 5 Nilai Y = Nilai Y = 18 Nilai Y = 27

41 SOAL LATIHAN Buatlah algoritma untuk menampilkan semua solusi bilangan bulat tidak negatif dari persamaan berikut: x + y + z = 25; dimana x>=0, y>=0, dan z>=0

42 Jawaban Soal Latihan 1 diasumsikan batas nilai x, y, dan z adalah 100.
for x=0 to batas do for y=0 to batas do for z=0 to batas do result = x+y+z if(result == 25) write(x, y, z) endfor

43 SOAL LATIHAN Suatu program memiliki 4 menu, yaitu: (O) open file, (S) save file, (E)edit file, dan (X) exit. Masukan user adalah pilihan menu yang diwakili dengan karakter O, S, E, dan X. Karakter yang dimasukkan menu tidak harus huruf besar, user juga dapat menginputkan huruf kecil. Menu akan terus berulang jika user tidak menginputkan salah satu dari 4 karakter tersebut. Dengan menggunakan struktur do-while, buatlah algoritmanya.

44 Tugas 1 Buatlah pseudocode dan flowchart untuk menampilkan deret fibonaci sebanyak N yang dimasukkan user. Deret fibonacci:

45 Tugas 2 Buatlah program dengan menggunakan perulangan untuk menampilkan piramida dengan tinggi yang di tentukan user. Contoh bentuk piramida dengan tinggi = 3 * *** *****


Download ppt "Algoritma & Pemrograman"

Presentasi serupa


Iklan oleh Google