Untuk itulah terlahir struktur perulangan di dalam bahasa pemrograman. Oke, hal mendasar ini tidak kita bahas secara lebih pada postingan ini. Jika ingin memahami secara mendasar mengenai perulangan, ada lebih baiknya membaca topik yang telah diberikan sebelumnya disini Memahami Skema Perualngan .
Perulangan Bersarang (Nested Loop)
"Perulangan Bersarang (Nested Loop)" adalah struktur perulangan yang berada didalam struktur perulangan lainnya. Pada umumnya, struktur perulangan yang berada didalam struktur perulangan lainnya memiliki hubungan yang saling terkait dalam menyelesaikan sebuah kasus komputasi. Jika struktur perulangan luar (struktur perulangan yang menampung struktur perulangan lain didalamnya) tidak memiliki hubungan terkait dan tidak memiliki kepentingan dalam melakukan proses komputasi, sebaiknya jangan lakukan perulangan bersarang (nested loop), karena hanya akan menghabiskan waktu eksekusi yang sia-sia dan program berjalan tidak optimal. Oke, mari kita lihat langsung bagaimana bentuk dari perulangan bersarang itu.for(; ; ) { for(; ;) { //kode diletakkan disini... } }
Anda juga dapat menggabungkan seluruh struktur perulangan yang disediakan oleh bahasa pemrograman yang Anda gunakan untuk menyelesaikan suatu proses komputasi. Bentuknya seperti berikut.
do { //kode dapat diletakkan disini... for(; ; ) { //kode dapat diletakkan disini... while(true) { //kode dapat diletakkan disini... } //kode dapat diletakkan disini... } //kode dapat diletakkan disini... } while(condition);
Pada bentuk umum "nested loop" (kedua) di atas, merupakan bentuk nested loop yang digunakan untuk menyelesaikan kasus komputasi yang cukup kompleks. Latihan membuat program dengan perulangan bersarang dalam berbagai kasus akan meningkatkan pemahaman Anda dalam penggunaan perulangan bersarang ini. Pada setiap bahasa pemrograman, baik bahasa C, C++, JAVA, C#, Python, dan lainnya, skema dan pola dari nested loop adalah sama saja, yang berbeda adalah sintaks dari struktur perulangan tersebut (tergantung setiap bahasa pemrograman). Nah, untuk meningkatkan sedikit pemahaman mengenai topik ini, mari kita lihat studi kasus berikut ini.
Studi Kasus Perulangan Bercabang (Nested Loop)
Kita akan mencoba menyelesaikan satu studi kasus sederhana mengenai matriks untuk memulai memahami penggunaan perulangan bercabang ini. Kasus yang akan dibahas disini ialah
Buatlah sebuah program yang mampu menampung nilai dari matriks mxn dan program mampu mengecek apakah keseluruhan nilai dari setiap kolom pada baris tertentu pada matriks adalah nol (0). Ketika keseluruhan nilai setiap kolom pada baris tertentu pada matriks adalah nol (0), program akan menampilkan sebuah pesan yang menyatakan bahwa "Matriks ini memilik baris yang nilai kolomnya nol semua". Jika tidak, program akan menampilkan pesan lainnya (pesan yang ditampilkan tergantung Anda sendiri). Ketentuan lainnya yang harus diperhatikan ialah, ukuran dan nilai-nilai pada matriks ditentukan oleh user melalui keyboard.
Berangkat dari kasus yang diberikan di atas, mari kita lihat kode program dalam bahasa c berikut ini.
Untuk hasil kompilasi dari kode program di atas, dapat dilihat pada screenshoot di bawah ini.
Nested Loop - kodeprogramcpp |
Berikut beberapa pembahasan mengenai perulangan bersarang berdasarkan kode program di atas.
- Perulangan for pertama digunakan untuk menelusuri baris matriks.
- Perulangan for kedua digunakan untuk menelusuri nilai di tiap kolom dari tiap baris pada matriks.
lae hendroo...
ReplyDeletekalau buat hasil print kayak gini gimana ?
+
++
+++
++
+
Gini aja lae...
Deleteint batas = 5;
int i, j;
for (i = 1; i <= batas; i += 1) {
for (j = 0; j < i; j += 1) {
printf("+");
}
printf("\n");
}
for (i = batas - 1; i >= 0; i -= 1) {
for (j = 0; j < i; j += 1) {
printf("+");
}
printf("\n");
}
ok lae mantap.
ReplyDeletethanks lae ku
Kalo kaya gini gmn?
ReplyDelete12345
678910
1112131415
1617181920
Tlg jawab yaa mau ngumpul tugas, tq ��
#include
ReplyDelete#include
main()
{
int i;
int n;
for (i=1;i<=20;i++) {
printf("%d",i); }
mas kalau yang kaya gini gimana ya
ReplyDelete55555
4444
333
22
1
1
22
333
4444
55555
@Fitria: Untuk menampilkan perulangan bersarang dengan kode program bahasa C/C++ seperti pola yang diinginkan di atas, mbak fitria dapat menggunakan kode program berikut.
Deleteint i, j, batas;
printf("Tentukan batas: ");
scanf("%d", &batas);
for (i = batas; i > 0; i -= 1) {
for (j = 0; j < i; j += 1) {
printf("%d", i);
}
printf("\n");
}
for (i = 1; i <= batas; i += 1) {
for (j = 1; j <= i; j += 1) {
printf("%d", i);
}
printf("\n");
}
return 0;
Selamat mencoba dan semoga bermafaat ya mbak..
1
ReplyDelete23
456
Kalo kayak gitu gimana ya bang ? Pusing nih
This comment has been removed by the author.
ReplyDeleteItu data bilangannya datangnya darimana ya? Aturan mainnya seperti apa? Mungkin bisa dijelaskan sedikit lebih detil mbak mengenai permasalahannya. Hehehe...
Delete24 32 40 48 56 64
ReplyDelete21 28 35 42 49
18 24 30 36
15 20 25
12 16
9
bagaimana program bahasa c
ReplyDelete11111
2222
333
44
5
Mungkin postingan berikut ini bisa dijadikan referensi atau contoh.
Deletehttp://kodeprogramcpp.blogspot.co.id/2012/04/program-segitiga-siku-siku-berpola.html
Semoga bermanfaat.. :)
Kayak begini kak??
ReplyDelete20 15 10 5
15 10 5
10 5
5
Mungkin postingan berikut ini bisa dijadikan referensi atau contoh.
Deletehttp://kodeprogramcpp.blogspot.co.id/2012/04/program-segitiga-siku-siku-berpola.html
Bedanya hanya di logika perhitungan angkanya saja.
Semoga bermanfaat.. :)
mau numpang tanya mas....
ReplyDeletekalau soalnya begini gimana ya mas ?
Buat program untuk menghasilkan keluaran sbb :
PROGRAM
PROGRA
PROGR
PROG
PRO
PR
P
saya sudah bisa tapi keluaraannya berupa angka bukan huruf seperti itu.... mohon dibantu mas.... terima kasih..
Gunakan array aja. Jadi mengaksesnya di dalam perulangan arr[indeks]; Intinya seperti itu dan hanya itu saja perbedaannya antara angka dengan huruf. :)
DeleteKalo tampilan programnya gini gmna?
ReplyDelete*****
****
***
**
*
Atau
*****
** **
* *
** **
*****
Klo seperti ini gmna?
ReplyDelete1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Klo seperti ini gmna?
ReplyDelete1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Klo yg seperti ini gmna?
ReplyDelete1
1 1
1 2 1
1 3 3 1
1 4 6 4 1