Logika Perulangan For

Beberapa waktu yang lalu ada teman saya yang bertanya tentang logikanya “perulangan for” lalu saya menjawab bahwa itu tentang awalan dan batas kemudian si Toni bertanya tentang cara membuat persegi dengan for. Lalu saya jawab “int i ........ seterusnya” dan oleh karna pertanyaan – pertanyaan itulah saya membuat artikel ini.


Pada artikel ini kita akan membahas tentang beberapa hal berikut:
Awal dan batas
Perputaran
Perputaran dalam perputaran
Modifikasi nilai batas
Modifikasi nilai awal
Menggabungkan 2 for kedua



Awal dan batas
Seperti yang saya sebutkan bahwa perulangan for itu tentang awalan atau nilai awal dan batasnya. Pertama kita bahas nilai awal, nilai awal sendiri biasanya diberikan nilai satu. Contohnya yaitu dalam for(int i = 1; ... ....) int i =1 adalah nilai awal atau nilai yang diberikan pada“i”. Baiklah untuk lebih jelasnya kita gunakan saja teori permainan ular tangga tapi tidak ada ular dan tangga. Jika diibaratkan permainan itu, anda sekarang berada di angka nomor 1, itu adalah tempat anda. Sekarang kita akan bicara tentang batas. Contoh: for(int i= 1; i<=n; ...). Dari contoh itu diketahui nilai awalnya 1 dan batasnya yaitu n, kita anggap saja n ini memiliki nilai 10. Baiklah sekarang kembali ke teori ular tangga. Oke, bayangkan anda sekarang ada di angka 1 karna nilai awalnya 1 lalu anda memiliki batas 10. Apa artinya? Artinya itu adalah angka batasan anda bergerak. Walaupun ada angka 11, 50, ataupun 100 tapi anda hanya bisa bergerak pada angka 10. Kenapa? Karna i<=10(note: n memiliki nilai 10). Sehingga anda tidak bisa bergerak lebih dari 10. Jadi sekarang bayangkan anda sekarang sedang bermain permainan ular tangga. Anda ada di angka 1 yang kita anggap sebagai nilai awal dan anda memiliki batas di angka 10, yang jadi pertanyaannya adalah bagaimanakah anda bergerak ke angka 10 itu? Te ntu saja dengan i++. Sehingga menjadi (int i=1; i<=n; i++).
Kesimpulan teori ini adalah, posisi awal anda adalah int i=1; batas/posisi akhir anda adalah i<=10; dan anda bergerak ke angka itu dengan i++;



Perputaran
Oke jadi begini, sebenarnya for itu bukan hanya tentang awalan dan batas tapi juga tentang perulangan itu sendiri atau agar lebih mudah dipahami jangan sebut perulangan tapi perputaran. Baiklah sekarang anda bayangkan roda, bisa roda sepeda, motor, ataupun mobil. Sekarang saya anggap anda sudah mengerti tentang batas. Roda itu berputar tergantung batasnya, jika batasnya adalah 10 maka roda itu akan berputar 10 kali, jika 20 maka akan berputar 20 kali. Contoh: for(int i=1; i<=n; i++) berapa kali roda itu berputar? Ya. Roda itu berputar 10 kali karna memang batasnya 10. Lalu untuk setiap putaran itu anda bisa tulis “I”. Jadi bayangkan anda sekarang sedang menghitung putaran roda yang berputar lambat. Untuk setiap putaran anda tulis tanda di kertas. Pada putaran pertama anda tulis “I” lalu putaran berikutnya anda tulis lagi “I” sehingga jika digabungkan dengan sebelumnya menjadi “II” lalu putaran berikutnya “I” sehingga menjadi “III” dan seterusnya sampai menjadi “IIIIIIIIII”. Jika dalam pemrogaman, akan seperti gambar ini.

logika for looping, logika perulangan for


Lalu anda juga bisa menggantinya dengan “*” sehingga menjadi seperti yang ditunjukan gambar ini.

logika for looping, logika perulangan for



Perputaran dalam perputaran
Sekarang saya anggap anda sudah mengerti tentang yang tadi. Oke, lalu sekarang bagaimana jika dalam roda itu ada roda lagi. Baiklah langsung saja ke kasus, anda disuruh membuat persegi dengan menggunakan for. Jika anda sudah mengerti teori sebelumnya anda berarti sudah bisa membuat garis secara horizontal, entah garis itu berupa angka atau bintang. Lalu bagaiman jika anda ingin membuat kotak? Oleh karena itu kita akan membahas perputaran dalam perputaran atau biasa di kenal dengan nest looping yang berarti perulangan bersarang atau bisa kita sebut for dalam for.
Pertama lihatlah gambar di bawah ini.

logika for looping, logika perulangan for


logika for looping, logika perulangan for

Lihat gambar diatas. Kedua gambar tersebut tidak beda jauh karna teorinya memang sama. Sekarang lihatlah gambar lingkaran. Pada gambar tersebut terlihat 2 lingkaran. Jangan berfikir bahwa kedua lingkaran itu berputar berbarengan. Tapi teorinya seperti ini, telah kita ketahui bahwa kedua lingkaran itu sama – sama memiliki batas 10. Jadi lingkaran merah akan berputar 10 kali, tapi karna lingkaran biru ada di dalam lingkaran merah maka setiap putaran lingkaran merah, lingkaran biru akan berputar 10 kali. Sehingga bila di hitung – hitung lingkaran biru berputar 100 kali. Agar lebih jelas, coba anda bayangkan lingkaran merah berputar sekali, lalu setelah itu lingkaran biru berputar 10 kali, lalu kemudian putaran lingkaran merah yang kedua lingkaran biru berputar 10 kali. Dan seterusnya sampai putaran yang ke sepuluh. Dan jika setiap putaran lingkaran biru membuat bintang, maka ilustrasinya kurang lebih akan seperti gambar di bawah ini.

logika for looping, logika perulangan for

Intinya adalah lingkaran atau for pertama akan menghasilkan baris dan lingkaran kedua atau for kedua akan menghasilkan kolom. Karena untuk setiap baris ada 10 kolom. Dan jika anda lihat disana ada cout<<endl; yang berada di luar perulangan kedua, yang artinya setelah perulangan kedua selesai perintah selanjutnya yang dieksekusi adalah cout<<endl; yang berfungsi untuk membuat garis baru atau biasa disebut “enter”. Sehingga, setelah membuat 10 bintang akan membuat garis baru kemudian membuat 10 bintang lagi lalu garis baru dan begitulah seterusnya sampai baris ke 10. Sehingga terbentuk persegi 10 x 10.



Modifikasi batas
Baiklah langsung saja ke kasus. Anggap saja anda sudah bisa membuat kotak. Sekarang anda ditugaskan untuk membuat Segitiga siku – siku. Pertanyaannya adalah bagaimanakah membuat segitiga siku – siku dengan menggunakan for looping? Berikut akan saya paparkan jawabannya.
Jika anda sudah mengerti teori sebelumnya coba pikirkan tentang batas. mengapa pada baris pertama memiliki kolom 10? Karna batasnya 10. Begitu juga dengan baris – baris berikutnya. Nah untuk membuat segitiga siku – siku kita harus membuat baris pertama memiliki kolom hanya 1 lalu kemudian pada baris kedua memiliki kolom sebanyak 2 lalu pada baris ketiga memiliki kolom sebanyak 3 dan begitulah seterusnya sehingga membentuk segita siku – siku. Silahkan lihat gambar berikut.

logika for looping, logika perulangan for


Pada gambar itu terlihat bahwa pada baris pertama itu angka 1, lalu pada baris berikutnya bertambah 1 dan begitu seterusnya. Mengapa demikian? Karna pada baris pertama batasnya 1 sehingga nilainya yang dapat dioutput juga 1 dan pada baris kedua batasnya 2 sehingga nilai yang dapat dioutput hanya 2. Pertanyaannya adalah bagaimanakah cara membuat batas itu? Agar lebih jelas silahkan lihat gambar berikut

logika for looping, logika perulangan for
 

Seperti yang anda lihat pada gambar tersebut pada for yang kedua batasnya bukanlah “n” melainkan “i”. Baiklah akan saya jelaskan mengapa begitu? Baris pertama diberi batas 1, baris kedua batasnya 2 dan seterusnya. Nilai apakah yang jika baris kedua menjadi 2 dan bertambah setiap bertambah baris. Nilai “i” jawabannya, oleh karena itu batas for yang kedua harus mengikuti “i” sehingga setiap baris atau setiap for pertama dieksekusi batas for kedua akan bertambah sehingga ouputnya pun bertambah sehingga akan membentuk segitiga siku – siku.

logika for looping, logika perulangan for



Modifikasi nilai awal
Baiklah, tadi kita sudah membahas tentang segitiga siku – siku. Lalu bagaimanakah jika kita ingin membalikan segitiga siku – siku itu sehingga menjadi gambar seperti berikut.


logika for looping, logika perulangan for


Pada baris pertama memiliki 5 kolom lalu pada baris berikutnya berkurang dan seterusnya sampai segitiga terbentuk. Mungkin anda berfikir bahwa untuk melakukan itu kita harus mengurangi batas for kedua. Tapi itu salah. Mengapa? Sebenarnya itu juga bisa tapi akan lebih sulit. Ini bukan tentang batas tapi tentang nilai awal, karna yang terpenting bukanlah nilainya melainkan langkah atau jumlah outputnya. Kita lihat pada baris pertama memiliki output sebanyak 5 lalu semakin bertambah baris semakin berkurang. Bagaimanakah cara mengurangi outputnya? Caranya yaitu mengubah nilai awalnya. Sehingga bukan “12345, 1234, 123, ....” tapi “12345, 2345, 345, ...”. Lalu bagaimanakah agar nilai awalnya seperti itu? Benar sekali dengan menjadikan nilai awal sama dengan nilai i. Sehingga for(int j=1; j<=n; j++).

logika for looping, logika perulangan for



Menggabungkan 2 for kedua
Dengan perulangan for kita telah membuat banyak bentuk. Dari hanya garis horizontal sampai segitiga siku – siku sudut kiri atas. Lalu bagaimakah cara membuat segitiga siku – siku seperti berikut.


logika for looping, logika perulangan for


Baiklah anda lihat pada baris pertama, disana terlihat ada spasi dan dibaris – baris berikutnya spasi itu semakin banyak. Jadi intinya itu adalah spasi. Segitiga tersebut sebenarnya adalah gabungan segitiga siku – siku yang pertama dan yang kedua. Agar lebih jelas mohon perhatikan gambar – gambar berikut.

logika for looping, logika perulangan for


logika for looping, logika perulangan for


logika for looping, logika perulangan for


logika for looping, logika perulangan for


logika for looping, logika perulangan for





Oke. Jika anda benar – benar memperhatikan gambar tersebut dan memahaminya kalian pasti sudah mengerti kan. Jadi silahkan berkreasi.

Oke itu saja. Beberapa hal yang bisa saya berikan. Jangan lupa kunjungi terus blog ini. Terima kasih.






0 Response to "Logika Perulangan For"

Posting Komentar