ALGORITMA PEMROGRAMAN 1A**
(PP-011302:S1-KA)
Pertemuan 6
TEKNIK PENGULANGAN/LOOPING/PEMUTARAN
KEMBALI
▪
NESTED LOOP
▪
ARRAY ( Variabel Berindeks )
NESTED LOOP (Perulangan Bersarang)
Nested loop adalah proses loop/pemutaran didalam pemutaran lainnya dengan menggunakan lebih dari satu statement FOR-NEXT.Pada operasi perulangan, urutan eksekusi dimulai dari perulangan yang paling terdalam, sehingga instruksi-instruksi yang didapat pada perulangan yang paling dalam akan paling banyak dieksekusi.
NESTED LOOP (Perulangan Bersarang)
Syarat yang harus diperhatikan untuk operasi FOR-NEXT
perulangan bersarang :
▪
Setiap perulangan tidak boleh menggunakan variabel
counter/index penghitung yang sama.
▪
Perulangan-perulangan
tersebut
tidak
boleh
saling
berpotongan
(overlapping),
karena
batas
antara
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, 3ARRAY ( Variabel Berindeks )
▪ Array ( Variabel Berindeks ) adalah variabel yang mempunyai tipe data sejenis, misalnya numerik atau string, yang mampu menampung banyak nilai dan didefinisikan dengan sebuah nama variabel berindeks.
▪ Contoh suatu variabel berindeks adalah matriks. Misalkan matriks X berisi : 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, dimensi dua dan array dimensi banyak.
ARRAY ( Variabel Berindeks )
Beberapa hal penting yang harus diperhatikan bila ingin memasukkan deretan data kedalam variabel array adalah :
1. 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.
2. Banyaknya data harus lebih kecil atau sama dengan jumlah subskrip ( indeks ) dari array tersebut.
3. Untuk memasukkan deretan data dalam suatu variabel indeks dapat digunakan intruksi perulangan.
4. Banyaknya indeks yang ditentukan menunjukkan banyaknya ruang memori yang dialokasikan, oleh karena itu dalam menentukan banyaknya indeks sebaiknya disesuaikan dengan banyaknya data sehingga tidak memboroskan pengalokasian ruang memori.
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 memori untuk array baristabel dengan jumlah elemen 5.
▪ Untuk mengoperasikan array digunakan subskrib.
Baristabel(1) = 40, Baristabel(2) = 30, Baristabel(3) = 100 Baristabel(4) = 80, Baristabel(5) = 75
Contoh:
▪ 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
▪ Output:
40 30 100 80 75
HASIL JUMLAH = 325
▪ Statement REM digunakan untuk menuliskan komentar yang tidak diproses oleh program.
ARRAY ( Variabel Berindeks )
2. 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]
Keterangan:
Namavar : nama variable yang akan dideklarasikan sebagai array dua
dimensi
Baris : cacah baris
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 memori untuk 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,
Contoh:
▪ REM PROGARRAY2 DIM M(2,3) M(1,1)=30: M(1,2)=50: M(1,3)=20 M(2,1)=10: M(2,2)=10: M(2,3)=10 PRINT M(1,1) +M(2,2) PRINT M(2,3) END ▪ Output: 40 10▪ Statement REM digunakan untuk menuliskan komentar yang tidak diproses oleh program.
ARRAY ( Variabel Berindeks )
3. 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]
Keterangan:
Namavar : nama variable yang akan dideklarasikan sebagai array banyak
dimensi
Baris : cacah baris
ARRAY DIMENSI BANYAK
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)
ARRAY DIMENSI BANYAK
DIM Nam$(1 TO 5), Age(1 TO 5), ID$ (1 TO 5) FOR Count = 1 TO 5
INPUT “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 5
INPUT Enter student s name: ”, Nam$(Count) INPUT “Enter student’s score: ”, Score(Count) NEXT Count
FOR COUNT = 1 TO 5
FinalScore(Count) = Score(Count) *2.5 NEXT Count
CLS
PRINT “Name”, “Score” ; TAB(22); “Final score” FOR COUNT = 1 TO 5
PRINT 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. Sesuai dengan 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 kemudahan pelacakan dan pembacaan sebuah program.
▪ 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.
SUB PROGRAM (SUB RUTIN)
Secara garis besar sebuah programyang berisi sub rutin, alur flowchartnya dapat digambar seperti gambar
SUB PROGRAM (SUB RUTIN)
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
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-GOSUB10 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 : ?
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
Jawaban
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