Kali ini, saya akan bahas dasar bahasa pemrograman C dengan topik perulangan while dan do while,
Didalam bahasa C, bisa dibedakan metode perulangan menjadi 3, yaitu :
  1. While, yaitu perulangan yang melihat syarat perulangan terlebih dahulu, baru mengeksekusi program
  2. Do While, adalah kebalikan dari While, yaitu mengeksekusi program terlebih dahulu, baru melihat syarat perulangan
  3. For, perulangan yang sudah diketahui jumlah banyaknya perulangan dilakukan
Pada artikel kali ini, saya hanya akan membahas While dan Do While, untuk For, kita lanjut di artikel berikutnya. Langsung saja berikut scriptnya

/*
 * Perulangan_While.cpp
 *
 * Created: 03/01/2016 10:28:24
 *  Author: Diaz
 */


#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
    DDRA=0xff;            // Menjadikan PORTA sebagai output
    PORTA=0xff;            // Menjadikan PORTA sebagai output dengan default berlogika 1
  
    DDRB=0xff;            // Menjadikan PORTB sebagai output
    PORTB=0xff;            // Menjadikan PORTB sebagai output dengan default berlogika 1
  
    DDRC=0xff;            // Menjadikan PORTC sebagai output
    PORTC=0xff;            // Menjadikan PORTC sebagai output dengan default berlogika 1

    DDRD=0xff;            // Menjadikan PORTD sebagai input
    PORTD=0xff;            // Menjadikan PORTD sebagai output dengan default berlogika 1
  
    unsigned char a, b;    // Variabel global dengan nama a, b
    a=1;                // Variabel a bernilai 1
    b=10;                // Variabel b bernilai 10
  
    while(a<=5)            // Program dieksekusi sampai nilai a kurang atau samadengan 5
    {
        PORTA=0x00;        // Led di PORTA menyala semua
        _delay_ms(500);    // Jeda 500ms
        PORTA=0xff;        // Led di PORTA mati semua
        _delay_ms(500);    // Jeda 500ms
        a++;            // penambahan nilai variabel a
    }
  
    while(b<=5)            // Program dieksekusi sampai nilai b kurang atau samadengan 5
    {
        PORTB=0x00;        // Led di PORTB menyala semua
        _delay_ms(500);    // Jeda 500ms
        PORTB=0xff;        // Led di PORTB mati semua
        _delay_ms(500);    // Jeda 500ms
        b++;            // penambahan nilai variabel b
    }
  
    do
    {
        PORTC=0x00;        // Led di PORTC menyala semua
        _delay_ms(500);    // Jeda 500ms
        PORTC=0xff;        // Led di PORTC mati semua
        _delay_ms(500);    // Jeda 500ms
        b++;            // penambahan nilai variabel b
    } while (b>=15);    // Program dieksekusi sampai nilai b lebih atau samadengan 15
  
    while(1)
    {
        PORTD=0x00;
        _delay_ms(500);
        PORTD=0xff;
        _delay_ms(500);
    }
  
  
}

Pada artikel kali ini tidak saya beri gambaran, karna dibutuhkannya simulasi secara langsung agar dapat dimengerti. Berikut penjelasan dari script diatas

Cara penulisan dari pengulangan while dan do while adalah:
Untuk While :
while(syarat)
{isi perintah}

Untuk Do While:
Do
{isi perintah}
While (syarat)

Dimana :
  • Isi perintah adalah isi script yang akan dijalankan
  • syarat adalah syarat sampai kapan isi script akan dijalankan


 Script diatas saya buat langsung 3 contoh, sebagai berikut
  1. Perintah pertama yaitu while(a<=5) yang berarti perintah akan terus dilakukan (diulang) selama nilai a bernilai kurang atau samadengan 5. karna pada dasarnya a bernilai 1, maka program akan dieksekusi, yaitu menyalakan dan mematikan LED yang terhubung ke PORTA dan setiap setelah LED 1x menyala dan mati nilai a akan bertambah. Maka dari nilai a yang semulanya 1, akan diulang sampai 5x sehingga nilai a bernilai 5 dan program akan berhenti dan lanjut ke perintah kedua.
  2. Perintah kedua yaitu while(b<=5) yang berarti perintah akan terus dilakukan (diulang) selama nilai b bernilai kurang atau samadengan 5. karna pada dasarnya b bernilai 10, maka program tidak dapat dieksekusi, dan akan langsung menuju perintah ketiga.
  3. Perintah ketiga yaitu menggunakan pengulangan do untuk perintah menyalakan dan mematikan led sebanyak 1x. Tapi kalau dilihat syarat yang diperlukan tidak dapat dipenuhi seperti perintah kedua. Namun karna perintah do akan melakukan eksekusi program terlebih dahulu baru melihat syarat pengulangannya. Maka program akan tetap di eksekusi 1x, lalu baru program akan berhenti yang dikarenakan syarat yang tidak terpenuhi.
  4. Perintah keempat yaitu while(1) yang berarti perintah akan terus dieksekusi tanpa ada batas pengulangan, contoh ini adalah yang paling sering digunakan.

Sama seperti contoh sebelumnya, setiap pembuktian perintah menggunakan 1 PORT (8bit) sebagai pembuktiannya, dan script tersebut saya buat menggunakan Atmel Studio 6 + AVRGCC dan Proteus

Saya sarankan untuk menulis ulang semua script tersebut secara manual, agar kalian lebih cepat menghafal dan memahami script tersebut. Namun jika mendapat kesulitan, saya sediakan file script beserta file proteusnya yang dapat didownload di sini

Sayapun disini masih belajar sehingga belum tentu benar mengenai semua yang  saya jabarkan diatas, jika ada yang merasa janggal atau merasa ada kesalahan dalam penjabaran saya, bisa kita diskusikan dikomentar.

Good Luck!

Related Post :