Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

REPETITION / PERULANGAN LOOP/Iteration

Presentasi serupa


Presentasi berjudul: "REPETITION / PERULANGAN LOOP/Iteration"— Transcript presentasi:

1 REPETITION / PERULANGAN LOOP/Iteration
MATERI 6 REPETITION / PERULANGAN LOOP/Iteration

2 Pendahuluan Meskipun penggunaan prosedur mampu me-nyingkat instruksi, namun penggunaan prosedur tak mampu menghilangkan sekuens instruksi yang bersifat perulangan atau repetisi dalam suatu program. Penggunaan instruksi repetisi bersifat meng-hemat penulisan dan membuat struktur logika dari suatu program menjadi lebih sederhana dan jelas sehingga mudah dipahami, dimodifikasi bilamana diperlukan.

3 Perulangan/Repetisi Sederhana
Perhatikan pola berikut : *** Pola tersebut diwujudkan dengan perintah : NL; p*;p*;p*; NL; p*;p*;p* atau def r3(p) = p();p();p() enddef def tiga() = NL; p*;p*;p* enddef r3(tiga)

4 Perulangan Sederhana Prosedur tersebut meskipun cukup baik tetapi tidak menolong untuk mencetak bujursangkar dengan ukuran yang berbeda-beda, misalkan 4x4, 2x2 dst. Penggunaan perulangan/repetisi akan sangat menolong dalam hal-hal seperti ini. Salah satu perulangan sederhana dengan perintah times-do sbb: times 3 do p* od  mencetak *** times 4 do NL; p* od  mencetak sekolom 4 *

5 Perulangan Sederhana Jadi, jika ingin menyederhanakan :
p*; p*; p* Kita bisa merubahnya menjadi: times 3 do p* od Di mana 3 adalah batasan berapa kali perulangan akan dilakukan, p* adalah perintah yang akan diulang. Sedangkan times, do, dan od adalah syntax perintah.

6 Perulangan Sederhana Syntax perulangan :
times F do P od Hal-hal yg perlu diperhatikan adalah : Batasan perulangan (F) tidak boleh diisi dengan angka negatif. Jika F diisi dengan angka nol, maka tidak akan ada perulangan yang dilakukan. F bisa diisi dengan sebuah persamaan/rumus, misalnya 8-2 atau 2+3, selama hasil akhirnya bukan bilangan negatif.

7 Perulangan di dalam Perulangan
Perhatikan pola berikut ini : **** **** **** Jika kita ingin mendapatkan bentuk seperti di atas, kita harus melakukan perulangan ke kanan dan perulangan ke bawah.

8 Perulangan di dalam Perulangan
Perintah yg benar adalah : times 3 do NL; times 4 do p* od od Di mana jika program dijalankan, akan menghasilkan 4 perulangan ke kanan dan 3 perulangan ke bawah (yang masing2 menjalankan 4 perulangan ke kanan).

9 Perulangan di dalam Perulangan
Jadi untuk pola 3x3 * dapat direalisasi sebagai berikut: times 3 do NL; times 3 do p* od od {program 6.1}

10 Perulangan di dalam Perulangan
Perhatikan program berikut: times 3 do times 3 do p* od od; NL Ada berapa * dan NL yang tercetak?

11 Times-do dan Formula Bukan Konstan
Seringkali perulangan bisa bersifat variabel agar dapat mencetak bujursangkar dengan ukuran yang berbeda. Perhatikan program perulangan dalam bentuk variabel berikut: times n do NL; times m do p* od od {program 6.2}

12 Times-do dan Formula Bukan Konstan
Kalau Program 6.2 dieksekusi dengan n = m = 3, maka didapatkan pola 3x3. Salah satu cara untuk memberikan nilai adalah dengan menggunakan prosedur sebagai berikut: def rect(n,m) = times n do NL; times m do p* od od enddef (Program 6.3) Jika dipanggil : rect(2,4), apa outputnya?

13 Penulisan yang terstruktur
Perhatikan program berikut ini : times 2 do NL; times 40 do NL; times 20 do p* od od od Program itu akan membingungkan kita saat konsentrasi kita melemah. Solusinya, gunakan penulisan yang terstruktur : times 2 do NL; times 40 do NL; times 20 do p* od od

14 Perulangan di dalam Sequence
Perulangan sederhana seperti times-do adalah suatu instruksi perulangan dengan jumlah pengulangan yang bersifat tetap sehingga tidak mampu untuk menangani semua bentuk perulangan yang ada.

15 Perulangan di dalam Sequence
Jika ingin mencetak pola berikut ini : * ** *** **** ***** Maka programnya seperti berikut ini: NL; p*; (atau bisa juga ditulis NL; times 1 do p* od NL; times 2 do p* od; NL; times 3 do p* od; NL; times 4 do p* od; NL; times 5 do p* od; (Program 6.4)

16 Perulangan di dalam Sequence
Namun dapat dilihat bahwa program ini mempunyai struktur yang bersifat perulangan di mana semua baris terdiri dari bentuk sbb: NL; times n do p* od dengan n mempunyai nilai yang berbeda-beda tetapi meningkat secara berurutan. Dapat dibuat prosedur sbb: def tn(n) = NL; times n do p* od enddef tn(1); tn(2); tn(3); tn(4); tn(5) (Program 6.5)

17 Perulangan di dalam Sequence
Program 6.5 lebih sederhana dari Program 6.4, tetapi belum memanfaatkan struktur perulangan, karena masih terdapat suatu set pengulangan <1,2,3,4,5>. Solusinya, dibuatlah bentuk perulangan for-do. Prosedur dalam Program 6.5 dapat dirubah menjadi sebagai berikut : for n runningthrough 1..5 do NL; times n do p* od od (Program 6.6) Catatan : syntax penulisan for-do untuk tiap-tiap bahasa pemrograman berbeda, tetapi menggunakan konsep yg sama.

18 Perulangan di dalam Sequence
Program 6.5 digabung dengan Program 6.6 menjadi for n rt 1..5 do tn(n) od (Program 6.7)

19 Perulangan di dalam Sequence
Nilai n yang menunjukkan berapa banyak perulangan akan dilakukan, dapat digantikan oleh rumus, misalnya : for n rt 1..5 do NL; times 6-n do print* od od

20 For Do yang Menghitung Turun
Penggunaan for juga mengijinkan perhitungan turun <5,4,3,2,1>. for n rt do NL; times n do p* od od (Program 6.8) Hasil: ***** **** *** ** *

21 Hal Penting dalam Perulangan
Jika kita merencanakan sebuah solusi program berbasiskan perulangan, ada hal-hal yang harus diperhatikan : Solusi yang kita tawarkan harus masuk akal (logis), terstruktur, dan sistematis. Cari bagian-bagian program yang ditulis berulang-ulang. Buat rumus/formula yang sistematis dan terstruktur untuk mendeskripsikan bagian-bagian yang berulang.

22 Merencanakan Solusi dengan Perulangan
Setiap kali ada persoalan, harus dipilih struktur mana yang paling tepat untuk persoalan tersebut, apakah menggunakan sequence atau perulangan Misal: ******* * * * * * * * * * * *

23 Merencanakan Solusi dengan Perulangan
Langkah 1: mencari penggalan-penggalan urutan Baris pertama: NL; times 7 do p* od Baris kedua: NL; ps; p*; times 4 do ps od; p* Baris ketiga: NL; times 2 do ps od; p*; times 3 do ps od; p* Baris keempat: NL; times 3 do ps od; p*; times 2 do ps od; p*

24 Merencanakan Solusi dengan Perulangan
Ternyata baris ke-2,3,4 dan 5 dari pola 7x7 di atas dapat dicetak menggunakan repetisi for. Namun perhatikan juga bahwa program ini bukan suatu repetisi mutlak melainkan suatu sequence (urutan) sebagai berikut: cetak baris pertama; cetak baris-baris tengah menggunakan for; cetak baris terakhir.

25 Merencanakan Solusi dengan Perulangan
Langkah 2: mencari formula yang membuat situasi umum Baris-baris tengah dari pola mempunyai bentuk sbb: NL; times F1 do ps od; p*; times F2 do ps od; p* Terlihat bahwa untuk baris kedua F1 dimulai dari 1 sedangkan F2 mulai dari 2. Baik F1 dan F2 mempunyai maksimum 5.

26 Merencanakan Solusi dengan Perulangan
Program lengkap menjadi sbb: NL; times 7 do p* od; for i rt 1..5 do NL; times i do ps od; p*; times 5-i do ps od; p* od NL; times 6 do ps od; p* (Program 6. 9)

27 Merencanakan Solusi dengan Perulangan
Untuk menggeneralisasikan program ini menjadi nxn segitiga maka 7 dapat diganti dengan n: def segitiga (n) = NL; times n do p* od; for i rt 1..n-2 do NL; times i do ps od;p*; times n-2-i do ps od; p* od NL; times n-1 do ps od; p* enddef (Program 6.10)

28 Merencanakan Solusi: Raster Printing
Dalam setiap penggambaran pola metoda yang selalu dipakai adalah penggambaran raster yaitu menurut baris per baris. Metoda ini digunakan untuk mencetak sebaris k segitiga dengan ukuran nxn. Jarak antar segitiga satu spasi. (Latihan) **** **** **** *** *** *** ** ** ** * * *

29 -selesai-


Download ppt "REPETITION / PERULANGAN LOOP/Iteration"

Presentasi serupa


Iklan oleh Google