Sunday, February 8, 2009

Perintah for, while, dan do-while

Ketiga perintah ini digunakan dalam GNU C untuk melakukan perulangan.
Perbedaannya terletak pada syntax (format penulisan) serta fungsinya.
Perintah for hanya bisa melakukan perulangan yang terhitung, sedangkan perintah while dan do-while bisa melakukan perulangan baik yang terhitung maupun tidak terhitung.

Kita bahas perintah for dahulu... Yok ayoookk.. S'mangat! for itu mudah dan menyenangkan!! ^^
Syntax:
__for (inisialisasi;kondisi;modifier)
__{
____statement;
__}


Keterangan:
Untuk mempermudah pembahasan, kita beri nomor
1 untuk bagian inisialisasi,
2 untuk bagian kondisi,
3 untuk bagian modifier, dan
4 untuk bagian statement. OK?
Pertama, program hanya akan menjalankan bagian 1 sebanyak sekali, lalu dicek pada bagian 2. Bila benar, bagian 3 akan dijalankan, diikuti bagian 4.
Setelah itu, program akan kembali melakukan cek pada bagian 2. Apabila masih benar, akan dilanjutkan dengan menjalankan bagian 3 dan 4 seperti sebelumnya.
Program akan terus berputar pada bagian 2 - 3 - 4. Sampai kapan? Sampai ketika bagian 2 (kondisi) tidak terpenuhi (hasil pengecekan bernilai salah).

Jadi, kesimpulannya:
Program akan berjalan dengan urutan 1 - 2 - 3 - 4 - 2 - 3 - 4 - 2 - 3 - 4 dst. sampai dengan bagian 2 (kondisi) tidak terpenuhi.
Perhatikan: bagian 1 hanya dilakukan sekali, lalu jalannya perulangan akan berputar pada bagian 2 - 3 - 4.

Contoh penggunaan perintah for:
__for(a=1;a<=3;a=a+1)
__{
____printf("Ini baris ke %i\n",a);
__}

Program tersebut akan membuat tampilan sbb:
__Ini baris ke 1
__Ini baris ke 2
__Ini baris ke 3


Sekarang kita bahas perintah while dan do-while...
Syntax while:
__while(kondisi)
__{
____statement;
__}

Syntax do-while:
__do
__{
____statement;
__}
__while(kondisi);

Persamaan kedua perintah di atas adalah sama-sama hanya menggunakan satu parameter, yaitu kondisi.
Perbedaannya adalah pada perintah while pengecekan dilakukan pada awal blok, sedangkan perintah do-while melakukan pengecekan pada akhir blok.
Hati-hati: Pada akhir perintah do-while dilengkapi dengan ; (titik koma), lain dengan perintah for dan while.

Lalu, muncul pertanyaan:
Bagaimana perintah while dan do-while melakukan perulangan seperti perintah for?
Padahal, perintah while dan do-while hanya menggunakan 1 parameter (kondisi), sedangkan perintah for menggunakan 3 parameter (inisialisasi, kondisi dan modifier).
Jawabnya adalah bagian inisialisasi dan modifier kita masukkan dalam baris program biasa sedemikian sehingga alur perulangan menjadi sama dengan perintah for.

Contoh penggunaan perintah while dan do-while untuk membuat tampilan yang sama dengan contoh perintah for di atas:
Dengan menggunakan perintah for:
__for(a=1;a<=3;a=a+1)
__{
____printf("Ini baris ke %i\n",a);
__}

Dengan menggunakan perintah while:
__a=1;
__while(a<=3)
__{
____printf("Ini baris ke %i\n",a);
____a=a+1;
__}

Dengan menggunakan perintah do-while:
__a=1;
__do
__{
____printf("Ini baris ke %i\n",a);
____a=a+1;
__}
__while(a<=3);

Bisa kita lihat, bahwa bagian inisialisasi diletakkan di luar blok perulangan, sedangkan bagian modifier diletakkan di dalam blok perulangan.
Mengapa? Why? Opo'o?
Hal ini sesuai dengan alur perulangan yang akan berjalan (ingat urutan perulangan pada perintah for), yaitu 1 - 2 - 3 - 4 - 2 - 3 - 4 - 2 - 3 - 4 dst. (kalau lupa apa itu 1, 2, 3 dan 4, scroll dan lihat di atas. OC? hehe.. Semangat2!! while dan do-while itu mudah dan menyenangkan!! ^^)
Perhatikan: Karena bagian inisialisasi [a=1;] hanya dilakukan sekali, maka ia harus diletakkan sebelum blok perulangan. Sebaliknya, bagian modifier [a=a+1;] yang dilakukan berulang harus diletakkan dalam blok perulangan.

OK, sekian untuk post pertama. Saia harap post ini bisa memberikan penjelasan tambahan mengenai materi yang disampaikan di kelas. Bila ada pertanyaan bisa langsung memberikan comment...

Thx,
tomiko_lin

28 comments:

  1. Perulangan mudah dan menyenangkan wakaka...

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Bang Tom,ini Stanley klz XK-34,yg keren itw..
    hehehehe....]
    Tp ini e-mail ko"q
    Bang,aq maw tny ini..
    Penting bngt..
    Pertanyaan'e



















    Skrg kit lg bel tntg ap??
    hehehe...^^
    Piece....
    Thx y bang klo mw brtw..

    ReplyDelete
  4. hm..

    kq nih blog sepi2 aja y..

    kaya'e perlu peningkatan deh, seperti ditambah hiasan, gambar2, atau mungkin soal ulangan ya?
    ups..;p
    wkwkwk..

    ReplyDelete
  5. Emank bang..
    Perlu d tmbh mknan spy bnyk yg dtg..
    hehehe...^^


    Tp tng aj bang,saya kan slalu stia mengisi blog ini..
    hehehehe...







    Tp emank lbh bgz klo sampe ad soal ulangannya..
    Pzt blog ini rame bngt..
    Dijamin 99,9% bang..
    hehehehe...^^

    ReplyDelete
  6. O y bang,1 lg..
    Happy new year y..
    hehehehehe...



    Jgn lp coklatnya..
    Ok bang....???

    ReplyDelete
  7. hallo....
    gw neeh bingung jugaa ttg while sama do-while...
    ruweet...
    kl besok2nya ulangan mungkin g kalo while/do-while majemuk keluar...???
    kl bisa jgn ya...
    oh iya, happy Val'z day...
    muuph telat, kemarin kirim comment tp g masuk...
    jd br bisa sekarang....
    ~_~"

    ReplyDelete
  8. uhm... maaph juga kalo commentku diataz agak2 jayuzzzz.....
    @_@

    ReplyDelete
  9. buat triple$ : prasaan uda g taon baruan de.. btw,ini khusus mbahas perulangan y.. coklat g dbhs dsini..

    buat ozzie : ok,tnang aja..ga ada perulangan majemuk yang kluar..
    mgg ini latian dulu 1jampel,trus br ulangan..
    happy val'z day jg.. :)

    hm,1 lagi,buat yg ngikuti blog ini,pls kalian jd follower ya (klik aja "follow this blog" di bagian kanan atas halaman ini)..
    jadi biar bisa tau brapa bnyk yg masuk ke sini..
    saia akan lihat respon kalian,kalau banyak,akan saia buatkan blog untuk materi berikutnya..

    thx,
    tomiko_lin

    ReplyDelete
  10. wegh... untung ajah....
    triples tuh sapa yowh....????
    ~_~"
    cwex ato cwox...??

    ReplyDelete
  11. oh iya... nie ozzie yang udah ganti nick...
    aku lupa sandi yang lama...
    T_T

    ReplyDelete
  12. ehm... pak tom...
    bedanya kalo follow sama kagak apa see...???

    ReplyDelete
  13. klo follow, meskipun ga kasi komen, saia kan bs tw sapa yg ngikuti blog ini..
    klo g follow, g bs tau ada yg ngliat ato ngga.. gt,..
    sekaligus buat pertimbangan, blog ini bs dilanjutkan atau ngga..
    kalo ngga ada yg buka, percuma dibuat kan.. :)

    ReplyDelete
  14. !! ATTENTION !!

    setelah materi perulangan ini, berikutnya adalah penggunaan fungsi dalam GNU C..
    *santai.. gampang kq.. yg pnting hafal, pasti bs ;p*

    eit, tapi jgn keburu lupain perulangan, coz qta masi menggunakan perulangan ini juga.. ok?!

    ReplyDelete
  15. Pak, wes tak follow iki lhoo..
    jok lali follow blog q yoo.. wkwkwk
    link jg skalian..
    thx..

    allanimelovers.blogspot.com

    ^^

    ReplyDelete
  16. Duh...
    mbOk PlaJaRaNE Jok SuSaH" pak...

    ReplyDelete
  17. pak... cuma test doeloe...
    passwordku lupa....

    ReplyDelete
  18. pak.. klo tampilannya gini programnya gimana? thanks..

    1
    2 4
    3 9 27
    4 16 64 256

    help me please.. T.T

    ReplyDelete
  19. pak ulangan terakhir yang tampilan:

    yang angka menurun itu fungsi whilenya bagaimana...???
    aku masih bingung lhoh pak

    ...Reply...

    ReplyDelete
  20. @Jr :
    gampang..hehe..
    for(a=1;a<=4;a++)
    {c=a;
    for(b=1;b<=a;b++)
    {
    printf("%i ",c);c=c*a;
    }
    printf("\n");
    }

    @zhie :
    lohh..
    bukane d catetan ada..
    itu kan simpel,tinggal modif dari for tok..
    dliat lg..

    ReplyDelete
  21. waa.. iyoo.. bner2.. tq2.. ^^

    ReplyDelete
  22. pak.... sabtu ini kita ngapain kompnya...????

    ReplyDelete
  23. bagus nih jadi tau menggunakan perintah Pengulangan do WHILE

    ReplyDelete
  24. kak.. jujur neh.. saya baru mau kul dan saya ngak ngerti sama sekali
    mungkin kakak bs ngajarin saya dr paling awal dan jelasin semuany kak
    bisa ga kak? mohon bgt bantuannya
    kabarin saya yah
    email saya.. kiezzz_gothic@yahoo.com atau saya bs hub kakak dmn?
    thx byk sebelumnya

    ReplyDelete
  25. hm,blh aja..
    kontak saia di tomiko85@gmail.com

    ReplyDelete
  26. bisa ajarin do-while algodasar g??
    yang ada judul, kamus, algoritma...
    mohon di bantu send ke sini aja
    "healmebauxx@yahoo.co.id"
    sama for, next, repeat-until juga heheheh..
    d tunggu...

    ReplyDelete
  27. bisa ajarin do-while algodasar g??
    yang ada judul, kamus, algoritma...
    mohon di bantu send ke sini aja
    "healmebauxx@yahoo.co.id"
    sama for, next, repeat-until juga heheheh..
    d tunggu...

    ini si pusingalgo

    ReplyDelete
  28. wah, sangat membantu. terima kasih, memang ini yang saya butuh kan :)

    ReplyDelete