Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
ALGORITMA PEMROGRAMAN 1A**(PP-011302:S1-KA)
Pertemuan 6
Ahmad Hidayat
TEKNIK PENGULANGAN/LOOPING/PEMUTARAN KEMBALI
▪ NESTED LOOP
▪ ARRAY ( Variabel Berindeks )
▪ SUB PROGRAM (SUB RUTIN)
NESTED LOOP (Perulangan Bersarang)Nested loop adalah proses loop/pemutaran didalampemutaran lainnya dengan menggunakan lebih darisatu statement FOR-NEXT.
Pada operasi perulangan, urutan eksekusi dimulai dariperulangan yang paling terdalam, sehingga instruksi-instruksi yang didapat pada perulangan yang palingdalam akan paling banyak dieksekusi.
NESTED LOOP (Perulangan Bersarang)
Syarat yang harus diperhatikan untuk operasi FOR-NEXTperulangan bersarang :
▪ Setiap perulangan tidak boleh menggunakan variabelcounter/index penghitung yang sama.
▪ Perulangan-perulangan tersebut tidak boleh salingberpotongan (overlapping), karena batas antarakeduanya tidak jelas.
NESTED LOOP
Latihan
HASIL
I J Output
1 11, 12, 13, 14, 15 11, 12, 13, 14, 15, 1
2 11, 12, 13, 14, 15 11, 12, 13, 14, 15, 2
3 11, 12, 13, 14, 15 11, 12, 13, 14, 15, 3
Latihan
ARRAY ( Variabel Berindeks )
▪ Array ( Variabel Berindeks ) adalah variabel yang mempunyai tipe datasejenis, misalnya numerik atau string, yang mampu menampung banyak nilaidan didefinisikan dengan sebuah nama variabel berindeks.
▪ Contoh suatu variabel berindeks adalah matriks. Misalkan matriks X berisi :
Untuk menyimpan nilai matriks X tidak dapat digunakansebuah variabel. Untuk itu harus digunakan variabelberindeks, yaitu X1, X2, X3, X4, X5, X6, X7, X8 dan X9.
Berdasarkan jumlah dimensi indeks dalam sebuahvariabel array, dikenal adanya array dimensi satu, dimensidua dan array dimensi banyak.
ARRAY ( Variabel Berindeks )
Beberapa hal penting yang harus diperhatikan bila ingin memasukkan deretandata kedalam variabel array adalah :
1. Tipe data yang akan disimpan kedalam variabel harus diketahui, karenavariabel array numerik hanya dapat menerima data numerik dan variabel arraystring hanya dapat menerima data string.
2. Banyaknya data harus lebih kecil atau sama dengan jumlah subskrip ( indeks )dari array tersebut.
3. Untuk memasukkan deretan data dalam suatu variabel indeks dapatdigunakan intruksi perulangan.
4. Banyaknya indeks yang ditentukan menunjukkan banyaknya ruang memoriyang dialokasikan, oleh karena itu dalam menentukan banyaknya indekssebaiknya disesuaikan dengan banyaknya data sehingga tidak memboroskanpengalokasian ruang memori.
Contoh 1:
Contoh 2:
Perhatikan flowchart disamping,
kemudian tentukan outputnya jika
diketahui datanya 10,20,30,40 !
ARRAY ( Variabel Berindeks )
1. Array Dimensi Satu
Bentuk umum deklarasi array dimensi satu adalah :
DIM namavar ({cacah | awal to akhir}) [As tipe]
Keterangan:
Cacah : banyaknya elemen array
Awal : nomor awal subskrib/index
Akhir : nomor akhir subskrib/index
Tipe : tipe data elemen array.
ARRAY DIMENSI SATU
Contoh :
DIM baristabel(5)
DIM baristabel(1 to 5)
DIM baristabel(5) As Integer
▪ Dari contoh deklarasi diatas maka akan disediakan ruang memoriuntuk array baristabel dengan jumlah elemen 5.
▪ Untuk mengoperasikan array digunakan subskrib.Baristabel(1) = 40, Baristabel(2) = 30, Baristabel(3) = 100Baristabel(4) = 80, Baristabel(5) = 75
Contoh:
▪ REM PROGARRAY1DIM A(5)LET A(1)=40 : A(2)=30 : A(3)=100 : A(4)=80 : A(5)=75C = A(1) + A(2) + A(3) + A(4) + A(5) PRINT A(1) , A(2) , A(3) , A(4) , A(5)PRINT “HASIL JUMLAH = “; CEND
▪ Output:40 30 100 80 75HASIL JUMLAH = 325
▪ Statement REM digunakan untuk menuliskan komentar yang tidakdiproses oleh program.
ARRAY ( Variabel Berindeks )
2. Array Dimensi DuaBentuk umum deklarasi array dimensi 2 adalah :
DIM namavar (baris,kolom) [As tipe] atauDIM namavar ( baris1 to baris2, kolom1 to kolom2) [As tipe]
Keterangan:
Namavar : nama variable yang akan dideklarasikan sebagai array duadimensi
Baris : cacah barisKolom : cacah kolom
ARRAY DIMENSI DUA
Contoh :
DIM M(2,3) atau DIM M( 1 to 2, 1 to 3)Dari contoh deklarasi di atas maka akan disediakan ruang memoriuntuk array M dengan jumlah elemen 2 baris dan 3 kolom.
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
Contoh:▪ REM PROGARRAY2
DIM M(2,3) M(1,1)=30: M(1,2)=50: M(1,3)=20M(2,1)=10: M(2,2)=10: M(2,3)=10PRINT M(1,1) +M(2,2)PRINT M(2,3)END
▪ Output:40
10
▪ Statement REM digunakan untuk menuliskan komentar yang tidakdiproses oleh program.
ARRAY ( Variabel Berindeks )
3. Array Dimensi BanyakBentuk umum deklarasinya :
DIM namavar (b,k,h,…,dn) [As tipe ] atauDIM namavar (b1 to b2, k1to k2, h1 to h2,…, dn1 to dn2) [As tipe]
Keterangan:
Namavar : nama variable yang akan dideklarasikan sebagai array banyakdimensi
Baris : cacah barisKolom : cacah kolom
ARRAY DIMENSI BANYAK
Contoh :
DIM M(2,3,4) atauDIM 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)
ARRAY DIMENSI BANYAK
DIM Nam$(1 TO 5), Age(1 TO 5), ID$ (1 TO 5)FOR Count = 1 TO 5INPUT “Enter Student’s name: ”, Nam$(Count)INPUT “Enter Student’s age: ”, Age(Count)INPUT “Enter Student’s ID: ”, ID$(Count)NEXT
ARRAY DIMENSI BANYAK
CLSFOR COUNT = 1 TO 5INPUT Enter student s name: ”, Nam$(Count)INPUT “Enter student’s score: ”, Score(Count)NEXT CountFOR COUNT = 1 TO 5FinalScore(Count) = Score(Count) *2.5NEXT CountCLSPRINT “Name”, “Score” ; TAB(22); “Final score”FOR COUNT = 1 TO 5PRINT Nam$(Count), Score(Count), FinalScore(Count)NEXT Count
SUB PROGRAM (SUB RUTIN) ▪ Subprogram atau subrutin, dikembangkan untuk mempersingkat
penulisan program.
▪ Kemudian tujuan penulisan subprogram menjadi berkembang. Sesuaidengan namanya maka subprogram adalah satu bagian dari program yang terpisah dari program utamanya.
▪ Struktur program yang demikian disebut dengan struktur modular.
▪ Tujuan lain dari penulisan subprogram adalah dalam hal kemudahanpelacakan dan pembacaan sebuah program.
▪ Karena program tersusun atas modul-modul, dimana setiap modulbiasanya tidak terlalu panjang, maka jika dalam sebuah modul terjadikesalahan, kita tidak perlu melacak seluruh program, tetapi cukup kitalihat dari modul dimana kesalahan terjadi.
SUB PROGRAM (SUB RUTIN)
Secara garis besar sebuah program
yang berisi sub rutin, alur flowchartnya
dapat digambar seperti gambar
disamping:
SUB PROGRAM (SUB RUTIN) Beberapa cara pemanggilan subrutin yaitu :
1. Statemen GOSUB RETURNMisal GOSUB 200Berarti memanggil Subrutin yang diawali dengan label 200 dan diakhiridengan RETURN
2. Statemen FNSubrutin yang dipanggil dengan fungsi FN ini harus diawali dengan statemenDEF FN dengan atau diakhiri dengan statemen END DEF
3. Satemen CALLuntuk memanggil subrutin yang diawali dengan SUB dan diakhiri dengan END SUB
4. Statemen FUNCTIONuntuk memanggil subrutin yang diawali dengan FUNCTION dan diakhiridengan END FUNCTION
CONTOH SUB PROGRAM (SUB RUTIN)
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
Pada program di atas yang dimaksud variable kounter adalah C. Setiap kali
statemen C = C + 1 dilaksanakan, maka harga C bertambah dengan 1.
CONTOH SUB PROGRAM 2 (SUB RUTIN)
REM PROG-GOSUB
10 LET N = 3
20 GO SUB 100
30 PRINT “KAMPUS A”
40 LET N = N+1
50 GO SUB 100
60 PRINT “KAMPUS D”
70 GO TO 130
100 LET X = N
110 PRINT X * X
120 RETURN
130 END
Output : ?
Latihan1. Buatlah sebuah program untuk menghasilkan laporan sbb:
DAFTAR GAJI PEGAWAINAMA TOTAL GAJI----------------------------------INA 1500000ANI 1300000NIA 1250000ANE 1000000ANU 7500000
Dengan variable subskrib nama, gapok, tunjangan diinput dengan looping menggunakan teknik kounter. Total gaji diperoleh dari gapok ditambahtunjangan.
JawabanDIM NAMA$(5), GAPOK (5), TUNJ(5), TOTALGAJI(5)K= 110 INPUT “NAMA = “, NAMA$(K)INPUT “GAJI POKOK = “,GAPOK(K)INPUT “TUNJANGAN = “,TUNJ(K)TOTALGAJI(K) = GAPOK(K) + TUNJ(K)IF K=5 THEN 20K = K + 1GOTO 1020 PRINT “DAFTAR GAJI PEGAWAI”PRINTPRINT “ NAMA”;TAB(15);”TOTAL GAJI”PRINT “-----------------------------------“FOR K = 1 TO 5 PRINT NAMA$(K);TAB(15);TOTALGAJI(K)NEXT KEND
TERIMAKASIH