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)
START
FOR K = 2 TO 4
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
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 :
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
(1) (2)
START START
READ A FOR K = 1 TO 3
READ C A(K),
A, B, C
NEXT K
B A(2)
END END
Penjelasan :
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
START
INPUT NPM$(K)
FOR K = 1 TO 3
INPUT Nama$(K)
NEXT K
Start A B
Masukkan nilai
K? FOR KLM 1 =
TO K
DIM A(B,K),
B(B,K), Masukkan nilai
C(B,K), B (BRS, KLM)
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.
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.