PENGULANGAN INSTRUKSI

Slides:



Advertisements
Presentasi serupa
Pemograman berorientasi prosedur merupakan bahasa pemrograman yang melibatkan fungsi-fungsi atau prosedur-prosedur sebagai sub program untuk membentuk.
Advertisements

TEORI ALGORITMA.
STRUKTUR PERULANGAN Statemen ini di gunakan untuk memproses statemen-statemen tertentu berulang kali. Struktur perulangan While … Do Jenis perulangan.
- PERTEMUAN 5 & 6 – PERULANGAN
STRUKTUR DASAR ALGORITMA
STRUKTUR PERULANGAN Perulangan adalah instruksi yang dapat mengulang sederetan Instruksi secara berulang-ulang sesuai persyaratan yang ditetapkan. Struktur.
Array Dimensi Banyak Gerlan A. Manu, ST.,MKom
All sections to appear here
Tipe data dan algoritma dasar
MATERI 8 CHOICE / PILIHAN.
MATERI 9 FUNGSI REKURSIF.
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
ALGORITMA PSEUDOCODE Pertemuan Ke-2 Meilia Nur Indah Susanti, ST.,MKom
Function(2).
Instruksi Runtutan Instruksi Pemilihan dan Instruksi Perulangan dalam Pascal Minggu XII.
Teknik Optimasi.
Analisa & Perancangan Sistem Informasi
Pemprograman Terstruktur 1
Prak.Dasar-Dasar Pemrograman
Materi 5 Nama dan Environment Dasar-Dasar Pemrograman.
MATERI 3 PROSEDUR.
REPETITION / PERULANGAN LOOP/Iteration
IT-132 Dasar-Dasar Pemrograman
PERTEMUAN 2 PENGERTIAN DASAR LOGIKA DAN ALGORITMA.
Tenia Wahyuningrum, SKom, MT. Deskripsi singkat Larik (array) adalah deretan rinci data yang mempunyai tipe sejenis. Setiap rinci data disebut dengan.
PENGULANGAN INSTRUKSI
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
Procedure , Function dan Parameter
Materi Kuliah 1. Pertemuan ke : 1 Pengenalan Komputer dan Pemrograman
Materi 9 LOGIKA & ALGORITMA.
Struktur Keputusan pada Structure English dan Pseudocode
Notasi Algoritma & Tipe Data
ALGORITMA PEMROGRAMAN 2A
PROGRAM SEBAGAI LOGIKA INSTRUKSI
Istiqomah, S.Kom/Tekkom 2013
Struktur Program Pascal
PROGRAM SEBAGAI LOGIKA INSTRUKSI
Materi 11 LOGIKA & ALGORITMA 11.
Perulangan (looping) Oleh: Sri Supatmi.
Ucu Nugraha, ST. Algoritma.
Algoritma Pemrograman
Dasar – dasar Algoritma dan Pemrograman
Materi 10 LOGIKA & ALGORITMA.
Aliran Kendali (Flow Control)
Pemrograman Repetisi Ramos Somya, S.Kom., M.Cs..
IT-132 Dasar-Dasar Pemrograman
Materi Kuliah 1. Pertemuan ke : 1 Pengenalan Komputer dan Pemrograman
Menuliskan Algoritma Dengan Pseudocode
Teknik Optimasi.
PERCABANGAN DAN PERULANGAN
MATERI 3 Sub Program PRAKTIKUM DDP.
MULTIDIMENSI ARRAY Struktur Data
Dasar-Dasar Pemrograman
STRUKTUR PERULANGAN.
JENIS DAN SIMBOL FLOWCHART PRODI MIK | FAKULTAS ILMU-ILMU KESEHATAN
PERULANGAN.
ALGORITMA DAN PEMROGAMAN
Dasar-Dasar Pemrograman
Pemrograman Repetisi pada Pascal Ramos Somya, S.Kom., M.Cs.
IT-132 Dasar-Dasar Pemrograman
Bab 08 Menghitung Total Data yang Diinput Dari Keyboard
Dasar-Dasar Pemrograman
Dasar-Dasar Pemrograman
ALGORITMA & PEMROGRAMAN
PENGULANGAN INSTRUKSI
PROGRAM SEBAGAI LOGIKA INSTRUKSI
Pemrograman Repetisi pada Pascal Ramos Somya, S.Kom., M.Cs.
Dasar-Dasar Pemrograman
Struktur Perulangan.
While – Do (Lanjutan) Temu 11.
Transcript presentasi:

PENGULANGAN INSTRUKSI TOPIK 5 PENGULANGAN INSTRUKSI

Pendahuluan Meskipun penggunaan prosedur mampu me-nyingkat instruksi, namun penggunaan prosedur tak mampu menghilangkan sekuens instruksi yang bersifat pengulangan 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.

Tiga Instruksi Tambahan (1) donothing Instruksi yang tidak berpengaruh apa-apa, dapat ditempatkan dalam urutan mana saja. Contoh: donothing; X = X; donothing pn Mencetak nilai berupa angka desimal. Contoh: pn(3)  3 pn(3+ 4)  7

Tiga Instruksi Tambahan (2) let Mengasosiasikan nama dengan suatu nilai sama halnya dengan mengasosiasi nama dalam argumen suatu prosedur, namun dikerjakan tanpa menulis suatu prosedur. Contoh: let c = ‘+’; pc( c); Urutan terjadi let dalam definisi tidak masalah Contoh: let x = 7 let y = 3 pc( x+y)  10 let y = 4 let x = y+1 pn(x+y)  9

Perulangan Sederhana (1) *** Pola tersebut diwujudkan dengan 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)

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

Perulangan Sederhana (3) Jadi untuk pola 3x3 * dapat direalisasi sebagai berikut: times 3 do NL; times 3 do p* od od (Program 1)

Times - Do dan Formula Bukan Konstan (1) Seringkali perulangan seperti dalam Program 1 bisa bersifat variabel agar dapat mencetak bujursangkar dengan ukuran yang berbeda. Program 1 dalam bentuk variabel adalah: times n do NL; times m do p* od od (Program 2)

Times - Do dan Formula Bukan Konstan (2) Kalau Program 2 dieksekusi dengan n = m = 3, maka didapatkan pola 3x3. Salah satu cara untuk memberikan nilai adalah dengan menggunakan prosedur sbb: def segiempat(n,m) = times n do NL; times m do p*od od enddef (Program 3)

Repetisi Sebagai Suatu Urutan Langkah (1) 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.

Repetisi Sebagai Suatu Urutan Langkah (2) Untuk contoh di bawah akan sulit menggunakan times do * ** *** **** ***** Pola tersebut dapat dicetak menggunakan instruksi: NL; p*; 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 4)

Repetisi Sebagai Suatu Urutan Langkah (3) 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 5)

Repetisi Sebagai Suatu Urutan Langkah (3) Program 5 lebih sederhana dari Program 4, tetapi belum memanfaatkan struktur perulangan, karena masih terdapat suatu set pengulangan <1,2,3,4,5>. Pada bahasa pemrograman, biasanya terdapat bentuk perulangan FOR DO sbb: for n runningthrough 1..5 do NL; times n do p* od od. (Program 6)

Repetisi Sebagai Suatu Urutan Langkah (4) Program 5 digabung dengan Program 6 menjadi for n rt 1..5 do tn(n) od (Program 7)

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

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

Merencanakan Solusi dengan Perulangan (2) 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*

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

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

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

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

Merencanakan Solusi: Raster Printing (1) 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. **** **** **** *** *** *** ** ** ** * * *

Merencanakan Solusi: Raster Printing (2) Langkah 1: mejelaskan elemen-elemen tipikal dari sequence instruksi yang menghasilkan pola ini Baris 1 NL; times 4 do p* od; ps; times 4 do p* od; ps times 4 do p* od Baris 2: NL; ps; times 3 do p* od; times 2 do ps od; times 3 do p* od;

Merencanakan Solusi: Raster Printing (3) Baris 3: NL; times 2 do ps od; times 2 do p* od; times 3 do ps od; times 2 do p* od; Baris 2 dan 3 memberikan generalisasi sbb NL; times A-1 do ps od; times B do p* od; times A do ps od; times B do p* od;

Merencanakan Solusi: Raster Printing (4) Jika ingin mencetak ekstra spasi di awal baris (sebelum segitiga 1), dapat digunakan perulangan times do NL; times 3 do times A do ps od; times B do p* od; od Atau bisa juga dengan menambahkan ekstra spasi pada akhir baris sbb: NL; times 3 do times A-1 do ps od; ps

Merencanakan Solusi: Raster Printing (5) Misalkan ingin menaruh ekstra spasi di awal baris. A dan B berubah-ubah, karena itu perlu menggunakan for do. Kalau for do dari 4..1, maka A haruslah n dan B haruslah 5-n. for n rt 4..1 do NL; times 3 do times 5-n times do ps od; times n p* od od od (Program 11)

Generalisasi Program 11 Generalisasi Program 11 dari 4 baris dan 3 kolom menjadi n baris dan k kolom. for n rt 4…1 mencetak 4 baris; times 3 datang dari kenyataan untuk mencetak 3 segitiga times 5-n berasal dari kenyataan untuk mencetak 1 spasi lebih dari ukuran segitiga Program yang mencetak n baris dan k kolom segitiga nxn sbb: def row (n, k) = for m rt n...1 do NL; times k do times n+1-m do ps od; times m do p* od od enddef (Program 12)

Generalisasi untuk Bentuk Segitiga yang Berbeda **** **** * * *** *** ** ** ** ** *** *** * * **** **** (A) (B) (C) (D) Program 12 mencetak pola B. Pola D: for n rt 1..4 do NL; times 3 do times n times do p* od; times 5-n ps od od od (Program 13)

Bagaimana kalau * diganti dengan angka? Buat prosedur untuk membuat pola sebagai berikut: 1 1 1 2 2 2 1 2 3 3 3 3

Untuk membuat pola: 1 2 2 3 3 3 for n rt 1..3 do NL; times n do pc(n); NL;

Nomor 1 function apaini(a: integer; b: integer): integer; var x,y,r: integer; begin x := a; y := b; while (y <> 0) do r := x mod y; x := y; y := r; end; apaini := x; Apa hasil dari “writeln(apaini(414, 662));”

Nomor 2 Perhatikan potongan program berikut: n:=10; x:=0; for i:=0 to n do begin x:=x+2*i; end; writeln(x); Berapakah output dari program di atas?

Nomor 3 x = 0 for i = 1 to n do for j = i to n do for k = i to n do x = x + 1 print x What will be printed by the pseudocode above if n=10?

Nomor 4 x = 0 for i = 1 to 9 do for j = 11 to 19 do for k = 1 to 19 do x = x + 1 print x What will be printed by this pseudocode?

Nomor 5 i = 0 while i < 10 do begin j = i while j < 30 do print j j = j + 1 ; end i = i + 1 ; end How many times j will be printed?