STRUKTUR DATA - NESTED LOOP ( Perulangan Tersarang)
Assalamualaikum Wr.Wb
Hay kawan kawan
kali ini saya akan membahas tentang NESTED LOOP atau biasa disebut juga
PERULANGAN TERSARANG.kira kira apa ya itu?.
Pengulangan
bersarang atau
nested looping maksudnya adalah pengulangan yang didalamnya
ada pengulangan lagi.
Wah
kira kira itu gimana ya. Patinya kalian bingung dengan penjelasan di atas dari
pada bingung bingung dengan penjelasan di atas lebih baik kita liat dulu yuk
penulisannya
for(int i=0;i<=3;i++)
{
for(int j=0;j<=5;j++)
{
write(i+','+j);
}
}
Keterangan
-
i dan j hanyalah sebuah variable jadi kamu bias saja menggantinya
-
int maksudnya adalah angka itu dalam bentuk integer. Kenapa harus
itu? Supaya angka yang di dalam for nanti bias kita operasikan tambah, kurang,
bagi atauun perkalian.
-
for(int i=0;i<=3;i++)
Ø i = 0
artinya variable i dimulai dari 0.
Ø i <=3
artinya adalah i kurang dari sama dengan 3. Berarti i bisa ditulis (0,1,2,3).
Ø i++
digunakan karena ini perulangan dan bertujuan untuk menampilkan hasil setelahnya
tetapi tetap pada syarat yang telah ditentukan . dalam contoh ini bilangan akan
berhenti ketika sudah pada angka 3.
-
for(int j=0;j<=5;j++)
Ø j = 0
artinya variable j dimulai dari 0.
Ø j <=5
artinya adalah j kurang dari sama dengan 5. Berarti j bisa ditulis
(0,1,2,3,4,5).
Ø j++
digunakan karena ini perulangan dan bertujuan untuk menampilkan hasil
setelahnya tetapi tetap pada syarat yang telah ditentukan . dalam contoh ini
bilangan akan berhenti ketika sudah pada angka 5.
-
write(i+','+j);
Ø i+','+j ini
arinya hasil pengulangan tersarang dari i dan j akan ditulis (i,j).
CATATAN :
Lalu apa bedanya for yang pertama dengan yang
kedua?
karena perulangan ini dilakukan untuk array 2 dimensi, maka for yang dilakukan ada 2.
karena perulangan ini dilakukan untuk array 2 dimensi, maka for yang dilakukan ada 2.
Ø For yang
pertama digunakan untuk penulisan perulangan
untuk INDEKS BARIS
Ø For yang
kedua digunakan untuk penulisan perulangan untuk INDEKS KOLOM
Jadi, dapat disimpulkan bahwa baris ada di
penulisan for pertama dan Kolom ada dipenulisan indeks kedua
Terus bagai mana sih cara program membacanya
?
for(int i=0;i<=3;i++)
{
for(int j=0;j<=5;j++)
{
write(i+','+j);
}
}
Caranya =
1. Pertama dia
akan membaca i=0
2. Kemudian
setelah itu pembacaan akan menurun ke for kedua yaitu j=0
3. Lalu program
membaca perintah write, perintah itu digunakan untuk menampilkan hasil
pembacaan i dan j . Hasil pertama adalah (0,0) atau (indeks baris,indeks
kolom).
4. Sehabis
mesin membaca sampai pada write maka program tidak akan kembali membaca
perintah ke i,
kenapa
demikian? Karena program akan membaca j terlebih dahulu sampai syarat terakhir
selesai, baru program akan membaca ke i lagi
contohnya
Jika tadi
hasil pertama (0,0) itu di dapatkan karena yang dibaca program terlebih dahulu
adalah i=0 dan j=0
Maka untuk
hasil kedua program akan membacanya i=0 dan j=1 dan hasilnya adalah (0,1).
i=0 akan
berhenti sampai j=5, baru setelah itu program akan membaca i=1.
Sebelum kita
mencoba i=1
maka lebih
baiknya kita lihat langkah penulisan mulai dari awalprogram membacanya
i=0
j=0
maka hasil
yang keluar (0,0)
i=0
j=1
maka hasil
yang keluar (0,1)
i=0
j=2
maka hasil
yang keluar (0,2)
i=0
j=3
maka hasil
yang keluar (0,3)
i=0
j=4
maka hasil
yang keluar (0,4)
i=0
j=5
maka hasil
yang keluar (0,5)
ketika program selesai membaca j sampai syarat terakhir yaitu 5
maka program akan kembali ke atas, yaitu membaca i=1
kenapa i=1 ? karena tadi program sudah membaca i=0 maka sekarang
akan melanjutkan membaca, yaitu i=1 dan membaca j mulai dari 0 sampai 5.
i=1
j=0
maka hasil
yang keluar (1,0)
i=1
j=1
maka hasil
yang keluar (1,1)
i=1
j=2
maka hasil
yang keluar (1,2)
i=1
j=3
maka hasil
yang keluar (1,3)
i=1
j=4
maka hasil
yang keluar (1,4)
i=1
j=5
maka hasil
yang keluar (1,5)
program akan membaca seperti keterangan
diatas sampai syarat i terbaca semua. Maka kali ini kita akan melanjutkan
sampai perulangan diatas dibaca semua
i=2
j=0
maka hasil
yang keluar (2,0)
i=2
j=1
maka hasil
yang keluar (2,1)
i=2
j=2
maka hasil
yang keluar (2,2)
i=2
j=3
maka hasil
yang keluar (2,3)
i=2
j=4
maka hasil
yang keluar (2,4)
i=2
j=5
maka hasil
yang keluar (2,5)
Setelah itu
i=3
j=0
maka hasil
yang keluar (3,0)
i=3
j=1
maka hasil
yang keluar (3,1)
i=3
j=2
maka hasil
yang keluar (3,2)
i=3
j=3
maka hasil
yang keluar (3,3)
i=3
j=4
maka hasil
yang keluar (3,4)
i=3
j=5
maka hasil
yang keluar (3,5)
setelah i=3, maka secara otomatis program
akan berhenti. Itu dikarenakan syarat perulangan i<=3 dan j<=5
nah
pada bagian di atas tadi kita hanya mempelajari bagaimana cara program membaca
script. Maka selanjutnya kita akan membahas penjumlahan
PENJUMLAHAN
Pada
kesempatan kali ini kita juga akan belajar penjumlahan dalam perulangan
tersarang. Tapi pada kesempatan kali ini yang akan kita jumlahkan adalah indeks
baris dan indeks kolom. Bagai mana caranya?. Yaudah yuk kita bahas aja
Pertama
saya akan kasik tau penulisan scriptnya :
for(int i=0;i<=3;i++)
{
for(int j=0;j<=2;j++)
{
x[i,j] = i+j;
}
}
catatan :
-
Cara pengerjaan sama seperti yang diatas hanya saja pembeda disini
adalah x[i,j] = i+j, artinya kita akan membuat array dengan nama x dan isi
dari x itu adalah hasil penjumlahan antara i dan j
Jawab
:
i=0
j= 0
x(0,0) = 0, maksudnya nilai dari indek baris ke 0 dan kolom ke 0 adalah 0.
j= 0
x(0,0) = 0, maksudnya nilai dari indek baris ke 0 dan kolom ke 0 adalah 0.
x
|
0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i=0
j= 1
x(0,1) = 1, maksudnya nilai dari indek baris ke 0 dan kolom ke 1 adalah 1.
j= 1
x(0,1) = 1, maksudnya nilai dari indek baris ke 0 dan kolom ke 1 adalah 1.
x
|
0
|
1
|
|
|
|
|
|
|
|
|
|
|
|
|
i=0
j= 2
x(0,2) = 2, maksudnya nilai dari indek baris ke 0 dan kolom ke 2 adalah 2.
j= 2
x(0,2) = 2, maksudnya nilai dari indek baris ke 0 dan kolom ke 2 adalah 2.
x
|
0
|
1
|
2
|
|
|
|
|
|
|
|
|
|
|
|
i=1
j= 0
x(1,0) = 1, maksudnya nilai dari indek baris ke 1 dan kolom ke 0 adalah 1.
j= 0
x(1,0) = 1, maksudnya nilai dari indek baris ke 1 dan kolom ke 0 adalah 1.
x
|
0
|
1
|
2
|
1
|
|
|
|
|
|
|
|
|
|
|
i=1
j= 1
x(1,1) = 2, maksudnya nilai dari indek baris ke 1 dan kolom ke 1 adalah 1.
j= 1
x(1,1) = 2, maksudnya nilai dari indek baris ke 1 dan kolom ke 1 adalah 1.
x
|
0
|
1
|
2
|
1
|
2
|
|
|
|
|
|
|
|
|
|
i=1
j= 2
x(1,2) = 3, maksudnya nilai dari indek baris ke 1 dan kolom ke 2 adalah 3.
j= 2
x(1,2) = 3, maksudnya nilai dari indek baris ke 1 dan kolom ke 2 adalah 3.
x
|
0
|
1
|
2
|
1
|
2
|
3
|
|
|
|
|
|
|
|
|
i=2
j= 0
x(2,0) = 2, maksudnya nilai dari indek baris ke 2 dan kolom ke 0 adalah 2.
j= 0
x(2,0) = 2, maksudnya nilai dari indek baris ke 2 dan kolom ke 0 adalah 2.
x
|
0
|
1
|
2
|
1
|
2
|
3
|
|
2
|
|
|
|
|
|
|
i=2
j= 1
x(2,1) = 3, maksudnya nilai dari indek baris ke 2 dan kolom ke 1 adalah 3.
j= 1
x(2,1) = 3, maksudnya nilai dari indek baris ke 2 dan kolom ke 1 adalah 3.
x
|
0
|
1
|
2
|
1
|
2
|
3
|
|
2
|
3
|
|
|
|
|
|
i=2
j= 2
x(2,2) = 4, maksudnya nilai dari indek baris ke 2 dan kolom ke 2 adalah 3.
j= 2
x(2,2) = 4, maksudnya nilai dari indek baris ke 2 dan kolom ke 2 adalah 3.
x
|
0
|
1
|
2
|
1
|
2
|
3
|
|
2
|
3
|
4
|
|
|
|
|
i=3
j= 0
x(3,0) = 3, maksudnya nilai dari indek baris ke 3 dan kolom ke 0 adalah 3.
j= 0
x(3,0) = 3, maksudnya nilai dari indek baris ke 3 dan kolom ke 0 adalah 3.
x
|
0
|
1
|
2
|
1
|
2
|
3
|
|
2
|
3
|
4
|
|
3
|
|
|
i=3
j= 1
x(3,1) = 4, maksudnya nilai dari indek baris ke 3 dan kolom ke 1 adalah 4.
j= 1
x(3,1) = 4, maksudnya nilai dari indek baris ke 3 dan kolom ke 1 adalah 4.
x
|
0
|
1
|
2
|
1
|
2
|
3
|
|
2
|
3
|
4
|
|
3
|
4
|
|
i=3
j= 2
x(3,2) = 5, maksudnya nilai dari indek baris ke 3 dan kolom ke 2 adalah 5.
j= 2
x(3,2) = 5, maksudnya nilai dari indek baris ke 3 dan kolom ke 2 adalah 5.
x
|
0
|
1
|
2
|
1
|
2
|
3
|
|
2
|
3
|
4
|
|
3
|
4
|
5
|
Nah
itu adalah cara perulangan bersarang penjumlahan indeks baris dan kolom
terus bagaimana ya jika ada penjumlahan antara array A dan B dan di letakkan di array baru yaitu array c?
terus bagaimana ya jika ada penjumlahan antara array A dan B dan di letakkan di array baru yaitu array c?
a
|
10
|
15
|
70
|
b
|
50
|
7
|
8
|
|
51
|
2
|
77
|
20
|
7
|
9
|
|||
10
|
55
|
80
|
50
|
8
|
90
|
Diatas diketahui array a dan b, disini kita
harus menjumlahkan element yang ada di dalam array . tentunya harus
menjumlahkan di dalam indeks baris dan kolom yang sejajar.
Ini penulisan script nya :
for(int i=0;i= 2;i++)
{
for(int j=0;j<=2;j++)
{
c[i,j] = a[i,j] + b[i,j];
}
}
Itu adalah contoh script menjumlahkan element
atau nilai yang terdapat didalam array.
PERULANGAN BERSARANG DENGAN SYARAT (IF)
Ternyata perulangan tersarang juga bisa
memakai if ya, gimana caranya ya?
sebenarnya penulisannya sama seperti penulisan perulangan tersarang di atas hanya sanya pada bagian ini ditambahkan IF dan ELSE.
sebenarnya penulisannya sama seperti penulisan perulangan tersarang di atas hanya sanya pada bagian ini ditambahkan IF dan ELSE.
Terus bagai mana sih cara penulisan script
nya ?
for(int i=0;i<=3;i++)
{
for(int j=0;j<=2;j++)
{
if(j>=i)
{
x[i,j]=(i+j)*2;
{
else
{
x[i,j]=(j-i);
}
}
}
}
}
Lalu dimana syaratnya ?
if(j>=i) ini adalah persyaratan .
maksudnya
-
jika j lebih besar sama dengan dari i maka akan menggunakan
prhitungan yang x[i,j]=(i+j)*2 selain itu
memakai perhitungan yang x[i,j]=(j-i).
disini
saya ada contoh perhitungan menggunkan if, tapi pada saat ini kita menggunkan
indeks array saja ya sebagai i dan j nya ,
indeks
|
0
|
1
|
2
|
0
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
Cara
Mengerjakan:
1. Cara
mengerjakan sama seperti cara cara diatas yang pertama kita harus lakukan
adalah menentukan mana i dan mana j
2. Setelah kita
mengetahui angka i dan y maka kita bisa mengerjakan dengan cara melihat
persyaratan yg ada
indeks
|
0
|
1
|
2
|
0
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
i=0
|
0
|
|
|
|
j= 0
|
|
|
|
|
(0+0)*2 = 0,
|
|
|
|
|
menggunakan perhitungan yang ini,
karena j=i
|
|
|
|
i=0
|
0
|
2
|
|
|
j= 1
|
|
|
|
|
(0+1)*2 = 2
|
|
|
|
|
menggunakan perhitungan yang ini, karena j>=i
|
|
|
|
|
i=0
|
0
|
2
|
4
|
|
j= 2
|
|
|
|
|
(0+2)*2 = 4
|
|
|
|
|
menggunakan perhitungan yang ini, karena j>=i
|
|
|
|
i=1
|
0
|
2
|
4
|
|
j= 0
|
4
|
|
|
|
(0-1)+5=4
|
|
|
|
|
menggunakan perhitungan yang ini, karena j<i
|
|
|
|
i=1
|
0
|
2
|
4
|
|
j= 1
|
4
|
4
|
|
|
(1+1)*2 = 4
|
|
|
|
|
menggunakan perhitungan yang ini, karena j=i
|
|
|
|
i=1
|
0
|
2
|
4
|
|
j= 2
|
4
|
4
|
6
|
|
(2+1)*2 = 6
|
|
|
|
|
menggunakan perhitungan yang ini, karena j>=i
|
i=2
|
0
|
2
|
4
|
|||||||||||||||||||||
j= 0
|
4
|
4
|
6
|
|||||||||||||||||||||
(0-2)+5=3
|
3
|
|
|
|||||||||||||||||||||
menggunakan perhitungan yang ini, karena j<i
|
i=2
|
0
|
2
|
4
|
|
j= 2
|
4
|
4
|
6
|
|
(2+2)*2 = 8
|
3
|
4
|
8
|
|
menggunakan perhitungan yang ini, karena j=i
|
Jadi
itu adalah cara mengerjakan Nested Loop jika ada syaratnya.
Sekian
dulu ya pembahasan kali ini tentang NESTED LOOP atau PERULANGAN TERSARANG.
Semoga bermanfaat
wassalamualaikum Wr.Wb
Komentar
Posting Komentar