Anda di halaman 1dari 10

NESTED LOOP ( LOOPING BERSARANG)

Dalam sebuah looping FOR-NEXT diperbolehkan untuk membuat looping FOR-


NEXT lainnya. Pada operasi looping di dalam looping tersebut, urutan eksekusi
dimulai dari looping yang paling dalam sehingga instruksi-instruksi yang di dapat
pada looping yang paling dalam akan lebih dulu diselesaikan.

Syarat yang harus diperhatikan untuk operasi FOR-NEXT nested loop adalah :
 Setiap looping tidak boleh menggunakan variabel kontrol yang sama
 Antara looping yang satu dengan yang lain tidak boleh saling berpotongan
(overlapping)

Contoh nested loop yang SALAH:

START

FOR K = 2 TO 4

FOR L = 6 TO 8 STEP 2 Salah, karena Loop


saling berpotongan

M=K*L

NEXT K

NEXT L

END
Contoh nested loop yang BENAR:

START
Looping Looping K L M
luar ke- dalam
FOR K = 2 TO 4 ke-
1 1 2 6 12
1 2 2 8 16
FOR L = 6 TO 8 STEP 2 2 3 3 6 18
2 4 3 8 24
3 5 4 6 24
3 6 4 8 32
M=K*L
Hasil yang tercetak :
M, 12 16 18 24 24 32

NEXT L

NEXT K

Contoh dua loop yang terpisah


END (benar, tapi bukan nested loop) :

START

FOR K = 2 TO 4
Hasil yang tercetak :

2
K
3

NEXT K 4

6
FOR L = 6 TO 8 STEP 2
8

NEXT L

END
Contoh Nested Loop dengan batas yang berubah:

START
Looping luar Looping dalam N K
ke- ke-
FOR N = 1 TO 4 1 1 1 1
2 2 2 1
2 3 2 2
FOR K = 1 TO N
3 4 3 1
3 5 3 2
N,K
3 6 3 3
4 7 4 1
NEXT K 4 8 4 2
4 9 4 3
NEXT N 4 10 4 4

END
Hasil yang tercetak :

Penulisan Program di QBASIC: 1 1

CLS 2 1

FOR N = 1 TO 4 2 2

FOR K = 1 TO N 3 1

PRINT N, K 3 2

NEXT K 3 3

NEXT N 4 1

4 2
END
4 3

4 4
Contoh flowchart dan programnya menggunakan nested loop

START
Penulisan Program di QBASIC:
FOR N = 1 TO 4
CLS

FOR N = 1 TO 4
FOR K = 1 TO N
FOR K = 1 TO N Output:

PRINT K, PRINT K,
1
NEXT K 1 2
1 2 3
NEXT K PRINT 1 2 3 4

NEXT N
PRINT END

NEXT N END

START
Penulisan Program di QBASIC:
FOR N = 4 TO 1 STEP -1 CLS

FOR N = 4 TO 1 STEP -1
FOR K = 1 TO N Output:
FOR K = 1 TO N
1 2 3 4
PRINT K, PRINT K, 1 2 3
1 2
NEXT K 1

NEXT K PRINT

NEXT N
PRINT END

NEXT N END
ARRAY

Array (variabel berindeks/bersubskrip) adalah variabel yang mempunyai tipe data


sejenis(homogen), misalnya numerik atau string, yang mampu menampung banyak
nilai dan didefinisikan dengan sebuah nama variabel berindeks.

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 di simpan ke dalam 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 subskrip ( indeks )
dari array tersebut.
c. Untuk memasukkan deretan data dalam suatu variabel indeks dapat digunakan
intruksi perulangan.
d. 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.

Array berdimensi satu

Ada sekelompok variabel yang masing-masingnya mempunyai fungsi yang sama.


Misalnya dalam ujian akhir, diujikan 6 mata pelajaran. Variabel untuk menyatakan
nilai mata pelajaran dapat digunakan variabel array atau variabel berindeks/subskrip
N ( ) atau N(A) dengan A=1,2,3,4,5,6 dimana :
N(1) N(2) N(3) N(4) N(5) N(6)
Bilangan 1 s/d 6 yang ada di dalam kurung disebut subskrip/indeks, yang merupakan
petunjuk posisi variabel dalam kelompoknya tersebut.
Contoh 1:
Perhatikan flowchart dibawah ini, tentukan hasil jika diketahui datanya 5, 10, 15, 20

(1) (2)

START START

READ A FOR K = 1 TO 3

READ B READ A(K)

READ C A(K),

A, B, C
NEXT K

B A(2)

END END

Penjelasan :

1. Flowchart(1) tidak menggunakan variabel array sehingga dibutuhkan 3 nama


variabel untuk membaca nilai data yang disediakan yaitu variabel A, B dan C

2. Flowchart(2) menggunakan variabel array sehingga hanya dibutuhkan 1 nama


variabel untuk membaca nilai data yang disediakan yaitu variabel A dengan
menggunakan indeks dari 1 sampai 3 dimana A(1) = 5, A(2) = 10 dan A(3) =15

3. Hasil yang dicetak dari kedua flowchart tersebut adalah :

5 10 15
5
Contoh 2. : penggunaan variabel array untuk tipe data string

START

FOR K = 1 TO 3

INPUT NPM$(K)

INPUT Nama$(K)

NEXT K

PRINT NPM$(2) END

Perhatikan flowchart berikut, dimanakah letak kesalahannya ?

START

INPUT NPM$(K)

FOR K = 1 TO 3

INPUT Nama$(K)

NEXT K

PRINT NPM$(2) END


Array berdimensi dua

Contoh : Flowchart Matriks Penjumlahan

Start A B

Masukkan nilai FOR BRS 1 = End


B? TO B

Masukkan nilai
K? FOR KLM 1 =
TO K

DIM A(B,K),
B(B,K), Masukkan nilai
C(B,K), B (BRS, KLM)

FOR BRS 1 = NEXT KLM


TO B

NEXT BRS

FOR KLM 1 =
TO K
FOR BRS 1 =
TO K

Masukkan nilai
A (BRS, KLM)
FOR KLM 1 =
TO B

NEXT KLM
A(BRS,KLM)
B(BRS,KLM) +
C(BRS,KLM)
NEXT BRS
Cetak
C (BRS,KLM)

A
NEXT KLM

NEXT BRS

B
Berikut ini Penjelasan algoritma program dari penjumlahan Matriks :
Jumlah Ordonya
Berapa jumlah baris ? Diisi ke variabel B.
Berapa jumlah kolomnya ? Diisi ke variabel K.
Memesan variabel 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.
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.

Contoh Penulisan Program Array dimensi dua pada Qbasic

CLS
DIM Q(2,3)
DATA 6,3,5,8,7,9
FOR R = 1 TO 2
FOR C = 1 TO 3
READ Q(R,C)
NEXT C
NEXT R
PRINT Q(2,1)
PRINT Q(1,2)
END

Penjelasan program:
1. DIM Q(2,3) mendefinisikan bahwa Matrik Q terdiri dari 2 baris dan 5 kolom

2. Untuk R =1, harga C yang pertama adalah 1, kemudian 2 dan 3, maka statemen
READ Q(R,C) menjadi READ Q(1,1) lalu READ Q(1,2) dan READ Q(1,3)
Jadi untuk R = 1, tiga buah bilangan pertama pada DATA dibaca sebagai baris
pertama dari Q

3. Untuk R =2, harga C yang pertama adalah 1, kemudian 2 dan 3, maka statemen
READ Q(R,C) menjadi READ Q(2,1) lalu READ Q(2,2) dan READ Q(2,3)
Jadi untuk R = 2, tiga buah bilangan terakhir pada DATA dibaca sebagai baris
kedua dari Q.

4. Hasil dari program di atas adalah:


8
3

Anda mungkin juga menyukai