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.
Ø  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.
x
0












i=0
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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?

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.
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= 1
4
4
6
(1-2)+5=4
3
4

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

Postingan populer dari blog ini

STRUKTUR DATA - (Sequential Search dan Binary Search)

STRUKTUR DATA - Tree

Belajar JavaScript --> Menghitung Rata-Rata Nilai