5. Teknik Pengulangan

Oleh Jasmine Rehatta

313,6 KB 8 tayangan 0 unduhan
 


Bagikan artikel

Transkrip 5. Teknik Pengulangan

Algoritma dan Pemrograman 1 5. Teknik Pengulangan Counter Teknik kounter dipakai untuk mengontrol pengulangan proses. Pengontrolan ini dilakukan dengan memeriksa isi variabel yang digunakan sebagai kounter, sehingga junlah pengulangan dapat diketahui. Misalnya terdapat beberapa proses yang harus dilakukan dengan urutan sebagai berikut : Proses A Proses B Proses C Proses D Proses B Proses C Proses D Proses B Proses C Proses D Proses E Dari contoh di atas bahwa proses B, C, dan D diulang sebanyak tiga kali. Pengulangan ini terjadi setelah proses A dan sebelum proses E dikerjakan. Jika diimplementasikan ke bentuk flowchart, maka terbentuk rangkaian symbol yang tersusun berderet. Hal ini tidak efisien. Agar flowchart menjadi lebih efisien maka digunakan kounter sebagai pengontrol jumlah pengulangan ketiga proses tersebut. Teknik pengulangan RRM 2013 1 Algoritma dan Pemrograman 1 Contoh : START K = 0 PROSES B PROSES C PROSES D K = K + 1 T K = 3 Y PROSES E END Dari flowchart di atas dapat ditelusuri sebagai berikut : 1. Pertama kali dikerjakan adalah proses A. 2. Persiapkan variabel yang digunakan sebagai kounter yaitu K= 0. Variabel ini digunakan untuk mengontrol jumlah pelaksanaan proses B, C dan D yang telah dikerjakan. 3. Kerjakan proses B, C, D secara berurutan. 4. Variabel kounter ditambah 1. Isi variabel ini menunjukkan jumlah pelaksanaan untuk proses B, C dan D. 5. Periksa isi variabel kounter yaitu K untuk membatasi jumlah perulangan. Jika isi variabel K =3, maka kerjakan proses E. Sebaliknya jika K lebih kecil dari 3 berarti proses B, C, D masih perlu diulang. Teknik pengulangan RRM 2013 2 Algoritma dan Pemrograman 1 Berikut ini sebuah contoh untuk memperjelas penerapan teknik kounter dalam flowchart. Sebuah perusahaan ingin mencetak data pegawai melalui komputer. Data tersebut tersimpan di dalam disk dan dicetak melalui printer. Spesifikasi proses adalah :  Input data diperoleh dari dik yang terdiri dari nomor pegawai, nama pegawai dan alamat.  Data habis jika input data yang dibaca /*  Setiap halaman terdapat judul .  Satu halaman hanya memuat 30 baris data. Karena dalam satu halaman hanya memuat 30 baris data, maka diperlukan suatu variabel kounter. Kounter ini digunakan untuk menghitung jumlah data yang telah dicetak pada setiap halaman. Selain itu juga terdapat proses pemeriksaan isi variabel kounter. Jika ternyata isinya telah mencapai 30 maka pencetakan dilakukan pada halaman berikutnya dan lakukan proses pencetakan judul. Teknik pengulangan RRM 2013 3 Algoritma dan Pemrograman 1 Bentuk flowchart dari persoalan diatas : START N=0 1 PRINT JUDUL READ NO, NM, ALM Y /* END T N=N+1 PRINT NO, NM, ALM T N =30 Y N=0 1 Teknik pengulangan RRM 2013 4 Algoritma dan Pemrograman 1 Berdasarkan flowchart di atas dapat ditelusuri sebagai berikut : 1. Siapkan variabel yang digunakan untuk kounter yaitu N = 0. 2. Cetak judul. 3. Baca data dan simpan di dalam variabel : NO untuk data nomor pegawai. NM untuk data nama pegawai. ALM untuk data alamat pegawai 4. Periksa input data. Bila isinya berupa simbol /* maka proses berakhir. 5. Variabel N ditambah 1. Variabel ini digunakan sebagai kounter untuk mengetahui jumlah data yang telah dicetak untuk setiap halaman. 6. Cetak rincian data yaitu NO, NM, ALM. 7. Periksa isi variabel N. Jika N = 30 berarti data telah dicetak sebanyak 30 baris. Oleh karena itu proses selanjutnya adalah kembali ke langkah 1 yaitu mencetka judul halaman baru. Sedangkan jika N lebih kecil dari 30 maka proses selanjutnya kembali ke langkah 3 untuk membaca data berikutnya tanpa mencetak judul lagi. LOOPING Merupakan pengolahan data yang berulang yang lebih dari satu diadalam arus diagram alur untuk itu digunakan tanda panah ke pengolahan data tersebut. Contoh : START READ A, B C=A+B Y C>5 PRINT C N D=C+3 PRINT D Teknik pengulangan RRM 2013 5 Algoritma dan Pemrograman 1 Untuk menghentikan proses diatas dapat digunakan : Flag Digunakan jika ada instruksi read atau input data . Fungsi dari flag ini adalah : a. Untuk menghindari out of data. b. Flag biasanya digunakna berupa data string atau character dan bisa berupa data numeric atau angka-angka. Contoh : String Numeric = “XXX”, “ZZZ” = “999”, “000” c. Variabel dari flag harus benar-benar data yang tidak dipakai didalam pelaksanaan proses. d. Banyaknya flag yang digunakan dan jenisnya harus disesuaikan dengan variabel yang dibaca. Contoh : READ A, B Maka Flagnya yang digunakan ada 2 flag. Contoh : START data 1,2,3,4,5,6,999,99 READ A,B C=A+B START READ A,B Y A = 999 END N PRINT C C=A+B PRINT C Hasil : 3 Hasil: 7 7 11 11 3 999 = out of data Teknik pengulangan RRM 2013 6 Algoritma dan Pemrograman 1 NESTED LOOP ( LOOPING BERSARANG) Dalam sebuah kalang FOR-NEXT diperbolehkan untuk membuat kalang FOR-NEXT lainnya. Pada operasi kalang dalam kalang tersebut, urutan eksekusi dimulai dari kalang yang paling dalam sehingga instruksi-instruksi yang didapat pada kalang yang paling dalam akan paling banyak dieksekusi. Syarat yang harus diperhatikan untuk operasi FOR-NEXT kalang tersarang : Setiap kalang tidak boleh menggunakan variabel counter yang sama Antara kalang-kalang tersebut tidak boleh saling berpotongan (overlapping) Contoh kalang berpotongan (Salah ) Teknik pengulangan RRM 2013 Contoh kalang Bersarang (Benar) 7 Algoritma dan Pemrograman 1 Contoh dua Loop yang terpisah (Benar, tapi bukan Nested ) contoh 1. Buat flowchart untuk mencetak hasil sbb : 1 1 1 2 2 1 2 2 3 1 3 2 Teknik pengulangan RRM 2013 8 Algoritma dan Pemrograman 1 2. Apa output flowchart dibawah ini Teknik pengulangan RRM 2013 9 Algoritma dan Pemrograman 1 3. Hasil dari flowchart dibawah ini adalah : ARRAY ( Variabel Berindeks ) Teknik pengulangan RRM 2013 10 Algoritma dan Pemrograman 1 Pengertian Array ( Variabel Berindeks ) adalah veriabel yang mempunyai tipe data sejenis, misalnya numerik atau string, yang mampu menampung banyak nilai dan didefinisikandengan Sebuah nama variabel berindeks. Contoh suatu variabel berindeks adalah matriks. Misalkan matriks X berisi : 1 2 3 4 5 6 7 8 9 Untuk menyimpan nilai matriks X tidak dapat digunakan sebuah variabel. Untuk itu harus digunakan variabel berindeks, yaitu X1, X2, X3, X4, X5, X6, X7, X8 dan X9. Berdasarkan jumlah dimensi indeks dalam sebuah variabel array, dikenal adanya array dimensi satu dan arrray dimensi banyak. Beberapa hal penting yang harus diperhatikan bila ingin memasukkan deretan data kedalam variabel array adalah : a. Tipe data yang akan disimpan kedalam variabel harus diketahui, karena variabel array numerik hanya dapat menerima data numerik dan variabel array string hanya dapat menerima data string. b. Banyaknya data harus lebih kecil atau sama dengan jumlah subkrip ( indeks ) dari array tersebut. c. Untuk memasukkan deretan data dalam suatu variabel indeks dapat digunakan intruksi perulangan. d. Banyaknya indeks yang ditentukan menunjukkan banyknya ruang memori yang dialokasikan, oleh karena itu dalam menentukan banyaknya indeks sebaiknya disesuaikan dengan banyaknya data sehingga tidak memboroskan pengalokasian ruang memori. Contoh 1. Teknik pengulangan RRM 2013 11 Algoritma dan Pemrograman 1 Perhatikan flowchart dibawah ini, tentukan hasil jika diketahui datanya 5,10,15,20 Start FOR K = 1 TO 3 Baca A(K) NEXT K A (K) END Hasil : 5 10 15 Contoh 2 : Teknik pengulangan RRM 2013 12 Algoritma dan Pemrograman 1 Algoritma Program dari penjumlahan matriks : Berapa Jumlah Ordonya. Berapa jumlah baris ? Diisi ke variabel B. Berapa jumlah kolomnya ? Diisi ke variabel K. Memesan varaibel A, B dan C, yang masing-masing dapat menampung sebanyak B baris dan K kolom. Pengisian angka-angka di Matriks A : a. Untuk BRS dari 1 hingga B, kerjakan nomor 3b. b. Untuk KLM dari 1 hingga K, kerjakan nomor 3c. c. Posisi untuk baris : YA = BRS + 2 d. Posisi untuk kolom : XA = 3 * KLM e. Pada baris ke YA dan kolom ke XA, angka untuk matriks A diisi, dimasukkan ke variabel : A ( BRS , KLM ) f. Bertemu NEXT KLM, menuju ke nomor 3b. g. Bertemu NEXT BRS, menuju ke nomor 3a . Pengisian angka – angka di Matriks B. a. Untuk BRS dari 1 hingga B, dikerjakan nomor 4b. b. Untuk KLM dari 1 hingga K, kerjakan nomor 4c. c. Posisi untuk baris : YA = BRS + 2 d. Posisi untuk kolom : XA = 40 + ( 3 * KLM ) e. Pada baris ke YA dan kolom ke XA, angka untuk matriks B diisi, dimasukkan ke variabel : B ( BRS , KLM ) f. Bertemu NEXT KLM, menuju ke nomor 4b. g. Bertemu NEXT BRS, menuju ke nomor 4a. Teknik pengulangan RRM 2013 13 Algoritma dan Pemrograman 1 Proses penjumlahan dan cetak matriks C : a. Untuk BRS dari 1 hingga B kerjakan nomor 5b. b. Untuk KLM dari 1 hingga K kerjakan nomor 5c. c. Menjumlahkan matriks A dan matriks B untuk dimasukkan ke matriks C : C ( BRS , KLM ) = A ( BRS , KLM ) + B ( BRS , KLM ) d. Cetak matriks C dari variabel : C ( BRS , KLM ) Untuk angka-angka berikut, dicetak disebelah kanan e. Bertemu NEXT KLM, menuju ke nomor 5b. f. Kosongkan 1 baris. g. bertemu NEXT BRS, menuju ke nomor 5a. Teknik pengulangan RRM 2013 14 Algoritma dan Pemrograman 1 Teknik pengulangan RRM 2013 15 Algoritma dan Pemrograman 1 Contoh 3. Perhatikan flowchart dibawah ini, kemudian tentukan outputnya jika diketahui datanya 10,20,30,40 Hasil : 11 21 31 41 104 Teknik pengulangan RRM 2013 16 Algoritma dan Pemrograman 1 SUB PROGRAM (SUB RUTIN) Semula subprogram, yang sering disebut dengan nama subrutin, dikembangkan untuk mempersingkat penulisan program. Tetapi kemudian tujuan penulisan subprogram menjadi berkembang. Sesuai dengan namanya maka subprogram adalah satu bagian program yang bisa dikatakan terpisah dari program utamanya. Struktur program yang demikian disebut dengan struktur modular. Tujuan lain dari penulisan subprogram adalah dalam hal kemudahan pelacakan dan pembacaan program tersebut. Karena program tersusun atas modul-modul, dimana setiap modul biasanya tidak terlalu panjang, maka jika dalam sebuah modul terjadi kesalahan, kita tidak perlu melacak seluruh program, tetapi cukup kita lihat dari modul dimana kesalahan terjadi. Secara garis besar sebuah program yang berisi sub rutin, alur flowchartnya dapat digambar sebagai berikut : SUBRUTIN 1 START GO SUB 200 PROSES CALL RETURN END SUBRUTIN 2 SUB….. END SUB Teknik pengulangan RRM 2013 17 Algoritma dan Pemrograman 1 Beberapa cara pemanggilan subrutin yaitu : 1. Statemen GOSUB RETURN Misal GOSUB 200 Berarti memanggil Subrutin yang diawali dengan label 200 dan diakhiri dengan RETURN 2. Statemen FN Subrutin yang dipanggil dengan fungsi FN ini harus diawali dengan statemen DEF FN dengan atau diakhiri dengan statemen END DEF 3. Satemen CALL untuk memanggil subrutin yang diawali dengan SUB dan diakhiri dengan END SUB 4. Statemen FUNCTION untuk memanggil subrutin yang diawali dengan FUNCTION dan diakhiri dengan END FUNCTION Hitung contoh : rata2 START Input bil1 Input bil2 GOS UB Rata=(bil1+bil 2)/2 200 ? “Contoh subrutin” Print rata END RETURN Teknik pengulangan RRM 2013 18 Algoritma dan Pemrograman 1 IMPLEMENTASI DALAM PROGRAM BASIC Berikut contoh program yang menggunakan kounter. ♣ REM PROGKOUNTER1 DATA 2,4,6,8,999 C=0 10 READ BIL IF BIL = 999 THEN 20 C=C+1 GO TO 10 20 PRINT C END Output : 4 Pada program di atas yang dimaksud variable kounter adalah C. Setiap kali statemen C = C + 1 dilaksanakan, maka harga C bertambah dengan 1. ♣ REM PROGKOUNTER2 N = 0 : K=0 10 READ X K=K+1 IF K = 9 THEN 30 IF X > 3 THEN 20 GOTO 10 20 N=N+1 GOTO 10 30 PRINT N DATA 1,4,2,3,5,6,5,9,2,8 END Output : 5 Teknik pengulangan RRM 2013 19 Algoritma dan Pemrograman 1 Program di atas akan menghitung banyaknya bilangan-bilangan yang lebih besar dari 3. Variabel kounter dari program diatas adalah K, yang juga digunakan sebagai pemberhentian perulangan saat K = 9. Sedangkan N adalah variable penampung yang menghitung banyaknya bilangan yang lebih besar dari 3. Array Dimensi Satu Bentuk umum deklarasi array dimensi satu adl : DIM namavar ({cacah | awal to akhir}) [As tipe] Dengan cacah : banyaknya elemen array Awal : nomor awal subskrib Akhir : nomor akhir subskrib Tipe : tipe data elemen array. Contoh : DIM baristabel(5) DIM baristabel( 1 to 5) DIM baristabel(5) As Integer Dari contoh deklarasi di atas maka akan disediakan ruang memori untuk array baristabel dengan jumlah elemen 5. 40 30 100 80 75 Untuk mengoperasikan array digunakan subskrib. Baristabel(1) = 40, Baristabel(2) = 30, Baristabel(3) = 100 Baristabel(4) = 80, Baristabel(5) = 75 ♣ REM PROGARRAY1 DIM A(5) LET A(1)=40 : A(2)=30 : A(3)=100 : A(4)=80 : A(5)=75 C = A(1) + A(2) + A(3) + A(4) + A(5) PRINT A(1) , A(2) , A(3) , A(4) , A(5) PRINT “HASIL JUMLAH = “; C , END. Teknik pengulangan RRM 2013 20 Algoritma dan Pemrograman 1 Output: 40 30 100 80 75 HASIL JUMLAH = 325 Array Dimensi Dua Bentuk umum deklarasi array dimensi 2 adalah : DIM namavar (baris,kolom) [As tipe] atau DIM namavar ( baris1 to baris2, kolom1 to kolom2) [As tipe] Dengan Namavar : nama variable yang akan dideklarasikan sebagai array dua dimensi Baris : cacah baris Kolom : cacah kolom Contoh : DIM M(2,3) atau DIM M( 1 to 2, 1 to 3) Dari contoh deklarasi di atas maka akan disediakan ruang memori untuk array M dengan jumlah elemen 2 baris dan 3 kolom.. 30 50 20 10 10 10 Untuk mengoperasikan array digunakan subskrib. M(1,1)=30, M(1,2)=50, M(1,3)=20, M(2,1)=10, M(2,2)=10, M(2,3)=10 ♣ REM PROGARRAY2 output : DIM M(2,3) 40 M(1,1)=30: M(1,2)=50: M(1,3)=20 10 M(2,1)=10: M(2,2)=10: M(2,3)=10 PRINT M(1,1) +M(2,2) PRINT M(2,3) END Teknik pengulangan RRM 2013 21 Algoritma dan Pemrograman 1 Array Dimensi Banyak Bentuk umum deklarasinya : DIM namavar (b,k,h,…,dn) [As tipe ] atau DIM namavar (b1 to b2,k1to k2, h1 to h2,…, dn1 to dn2) [As tipe] Contoh : DIM M(2,3,4) atau DIM M(1 to 2, 1 to 3, 1 to 4) Dalam operasinya menggunakan subskrib 3 dimensi, yaitu : M(1,1,1),M(1,1,2),M(1,1,3),M(1,1,4) M(1,2,1),M(1,2,2),M(1,2,3),M(1,2,4) M(1,3,1),M(1,3,2),M(1,3,3),M(1,3,4) M(2,1,1),M(2,1,2),M(2,1,3),M(2,1,4) M(2,2,1),M(2,2,2),M(2,2,3),M(2,2,4) M(2,3,1),M(2,3,2),M(2,3,3),M(2,3,4) Latihan 1. Buatlah sebuah program untuk menghasilkan laporan sbb: DAFTAR GAJI PEGAWAI NAMA TOTAL GAJI ---------------------------------INA 1500000 ANI 1300000 NIA 1250000 ANE 1000000 ANU 7500000 Dengan variable subskrib nama, gapok, tunjangan diinput dengan looping menggunakan teknik kounter. Total gaji diperoleh dari gapok ditambah tunjangan. Teknik pengulangan RRM 2013 22 Algoritma dan Pemrograman 1 Jawab : DIM NAMA$(5), GAPOK (5), TUNJ(5), TOTALGAJI(5) K= 1 10 INPUT “NAMA = “, NAMA$(K) INPUT “GAJI POKOK = “,GAPOK(K) INPUT “TUNJANGAN = “,TUNJ(K) TOTALGAJI(K) = GAPOK(K) + TUNJ(K) IF K=5 THEN 20 K=K+1 GOTO 10 20 PRINT “DAFTAR GAJI PEGAWAI” PRINT PRINT “ NAMA”;TAB(15);”TOTAL GAJI” PRINT “-----------------------------------“ FOR K = 1 TO 5 PRINT NAMA$(K);TAB(15);TOTALGAJI(K) NEXT K END ON n GOTO Bentuk Umum : ON n GOTO nomor baris [.,nomor baris]… Contoh : CLS PRINT “Ketik 1, 2, 3, 4 atau 5 INPUT n ON n GOTO 60, 40, 80, 100, 110 40 PRINT “ANDA MASUK GROUP BASIC” GOTO 110 60 PRINT “ANDA MASUK GROUP COBOL” GOTO 110 80 PRINT “ANDA MASUK GROUP PASCAL” GOTO 110 Teknik pengulangan RRM 2013 23 Algoritma dan Pemrograman 1 100 PRINT “ANDA MASUK GROUP FORTRAN” 110 END ON GOSUB Statement ini sifatnya adalah gabungan antara statement ON n GOTO dan GOSUB-RETURN itu sendiri. Dimana :  ON n GOTO, proses menuju ke nomor baris yang tergantung dari nilai N nya, untuk kemudian proses berlanjut seperti biasa.  ON n GOSUB-RETURN, proses ini juga akan menuju ke nomor baris yang tergantung dari nilai N nya, tetapi proses akan kembali lagi ke program yang memanggilnya di bawah statement ON n GOSUB bersangkutan bila ditemui statement RETURN. Contoh : FOR I = 1 to 2 ON I GOSUB 50, 60 NEXT I PRINT “END” END 50 PRINT “I = ” ; I ; “ Ke nomor baris 50” RETURN 60 PRINT “I = ” ; I ; “ Ke nomor baris 60” RETURN END Teknik pengulangan RRM 2013 24

Judul: 5. Teknik Pengulangan

Oleh: Jasmine Rehatta


Ikuti kami