• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II LANDASAN TEORI"

Copied!
32
0
0

Teks penuh

(1)

BAB II

LANDASAN TEORI

2.1 Water Flow Sensor G1/2

Water Flow sensor terdiri dari tubuh katup plastik, rotor air, dan sensor hall efek. Ketika air mengalir melalui, gulungan rotor-rotor. Kecepatan perubahan dengan tingkat yang berbeda aliran. Sesuai sensor hall efek output sinyal pulsa. Kelebihan sensor ini adalah hanya membutuhkan 1 sinyal (SIG) selain jalur 5V dc dan Ground. Perhatikan gambar di bawah ini.

(2)

Gambar 2.2 Mechanic Dimensi Water Flow sensor G1/2

No. Name Quantity/

kuantitas Material

Note/ catatan 1 Valve body 1 PA66+33%glass fiber

2 Stainless steel bead 1 Stainless steel SUS304

3 Axis 1 Stainless steel SUS304

4 Impeller 1 POM

5 Ring magnet 1 Ferrite

6 Middle ring 1 PA66+33%glass fiber

7 O-seal ring 1 Rubber

8 Electronic seal ring 1 Rubber

9 Cover 1 PA66+33%glass fiber

10 Screw 4 Stainless steel SUS304 3.0*11

11 Cable 1 1007 24AWG

Tabel 2.1 Komponen Sensor

(3)

a. Bekerja padategangan5V DC-24VDC b. Arus Maksimum saat ini15 mA(DC5V) c. Berat sensor43 g

d. Tingkat Aliranrentang 0,5~ 60L / menit e. SuhuPengoperasian 0°C~ 80°

f. Operasikelembaban35%~ 90% RH g. Operasitekanan bawah1.75Mpa h. Store temperature -25°C~+80° i. Store humidity 25%~90%RH

Water flow sensor ini terdiri atas katup plastik, rotor air, dan sebuah sensor hall-effect. Prinsip kerja sensor ini adalah dengan memanfaatkan fenomena efek Hall. Efek Hall ini didasarkan pada efek medan magnetik terhadap partikel bermuatan yang bergerak. Ketika ada arus listrik yang mengalir pada divais efek Hall yang ditempatkan dalam medan magnet yang arahnya tegak lurus arus listrik, pergerakan pembawa muatan akan berbelok ke salah satu sisi dan menghasilkan medan listrik. Medan listrik terus membesar hingga gaya Lorentz yang bekerja pada partikel menjadi nol. Perbedaan potensial antara kedua sisi divais tersebut disebut potensial Hall. Potensial Hall ini sebanding dengan medan magnet dan arus listrik yang melalui divais.

(4)

Mikrokontroler adalah IC yang dapat diprogram berulang kali, baik ditulis atau dihapus. Biasanya digunakan untuk pengontrolan otomatis dan manual pada perangkat elektronika.

Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama dalam pengontrolan robot. Seiring perkembangan elektronika, mikrokontroler dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah. Salah satunya adalah mikrokontroler AVR (Alf and Vegard’s Risc processor) ATmega8535 yang menggunakan teknologi RISC (Reduce Instruction Set Computing) dimana program berjalan lebih cepat karena hanya membutuhkan satu siklus clock untuk mengeksekusi satu instruksi program. Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.

2.2.1. Fitur mikrokontroler ATmega8535

1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D. 2. ADC internal sebanyak 8 saluran.

3. Tiga buah Timer/Counter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 buah register.

5. SRAM sebesar 512 byte.

6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. 7. Port antarmuka SPI

(5)

8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 9. Antarmuka komparator analog.

10. Port USART untuk komunikasi serial.

11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.

12. Dan lain-lainnya

2.2.2. Pin-pin pada Mikrokontroler ATmega8535

Gambar 2.3 Konfigurasi pin Atmega8535

Konfigurasi pin Atmega8535 dengan kemasan 40 pin DIP (Dual Inline Package) dapat dilihat pada gambar 2.1. Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut:

1. VCC merupakan pin yang berfungsi sebagai masukan catu daya. 2. GND merukan pin Ground.

(6)

3. Port A (PortA0…PortA7) merupakan pin input/output dua arah dan pin masukan ADC.

4. Port B (PortB0…PortB7) merupakan pin input/output dua arah dan dan pin fungsi khusus, Timer/counter, komparator analog, dan SPI

5. Port C (PortC0…PortC7) merupakan pin input/output dua arah dan pin fungsi khusus yaitu, TWI, komparator analog, dan Timer oscilat

6. Port D (PortD0…PortD7) merupakan pin input/output dua arah dan pin fungsi khusus,yaitu,komparator analog, interupsi external, komunikasi serial.

7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.

9. AVCC merupakan pin masukan tegangan untuk ADC. 10. AREFF merupakan pin masukan tegangan referensi ADC.

Kapabiltas detail dari ATMega 8535 adalah sebagai berikut :

1. Sistem mikroprosesor 8 bit bebrbasis RISC dengan kecepatan maksimal 16 MHz.

2. Kapabiltas memori flash 8 Kb, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte.

3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel.

4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik.

(7)

2.2.3.Peta Memori ATMega8535

ATMega8535 memiliki dua jenis memori yaituProgram Memory dan Data Memoryditambah satu fitur tambahan yaitu EEPROMMemory untuk penyimpan data.

a. Program Memori

ATMEGA 8535 memiliki On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Untuk alasan keamanan, program memory dibagi menjadi dua bagian, yaitu Boot Flash Section dan Application Flash Section. Boot Flash Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali diaktifkan.

Application Flash Section digunakan untuk menyimpan program aplikasi yang dibuat user. AVR tidak dapat menjalakan program aplikasi ini sebelum menjalankan program Boot Loader. Besarnya memori Boot Flash Section dapat deprogram dari 128 word sampai 1024 word tergantung setting pada konfigurasi bit di register BOOTSZ. Jika Boot Loader diproteksi, maka program pada Application Flash Section juga sudah aman.

(8)

b. Data Memory

Gambar berikut menunjukkan peta memori SRAM pada ATMEGA 8535. Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk Register File dan I/O Memory sementara 512 likasi address lainnya digunakan untuk internal data SRAM. Register file terdiri dari 32 general purpose working register, I/O register terdiri dari 64 register.

Gambar 2.5 Peta Memori Data

c. EEPROM Data Memory

ATMEGA 8535 memiliki EEPROM 8 bit sebesar 512 byte untuk menyimpan data. Loaksinya terpisah dengan system address register, data register dan control register yang dibuat khusus untuk EEPROM. Alamat EEPROM dimulai dari $000 sampai $1FF.

(9)

Gambar 2.6 EEPROM Data Memory

d. Status Register (SREG)

Status register adalah register berisi status yang dihasilkan pada setiap operasi yangdilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPUmikrokontroler.

Gambar 2.7 Status Register ATMega 8535

Bit 7 – I : Global Interrupt Enable

Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan. Bit ini akanclear ketika ada interrupt yang dipicu dari hardware, setelah program interrupt dieksekusi,maka bit ini harus di set kembali dengan instruksi SEI.

Bit 6 – T : Bit Copy Storage

Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau tujuan dalamoperasi bit.

(10)

Bit 5 – H: Half Carry Flag Bit 4 – S : Sign Bit

Bit S merupakan hasil exlusive or dari Negative Flag N dan Two‘s Complement OverflowFlag V.

Bit 3 – V : Two’s Complement Overflow Flag Digunakan dalam operasi aritmatika

Bit 2 – N : Negative Flag

Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set.

Bit 1 – Z : Zero Flag

Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set.

Bit 0 – C : Carry Flag

Jika suatu operasi menghasilkan Carry, maka bit ini akan set.

2.3 Liquid Crystal Display (LCD) 2x16

Kegunaan LCD banyak sekali dalam perancangan suatu system dengan menggunakan mikrokontroler. LCD (Liquid Crystal Display) dapat berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. Pada praktek proyek ini, LCD yang digunakan adalah LCD 16 x 2 yang artinya lebar display 2 baris 16 kolom dengan 16 Pin konektor.

(11)

Adapunkonfigurasidandeskripsidaripin-pin LCDantaralain:

VCC (Pin 1)

Merupakan sumber tegangan +5V.

GND 0V (Pin 2)

Merupakan sambungan ground.

VEE (Pin 3)

Merupakan input tegangan Kontras LCD.

RS Register Select (Pin 4)

Merupakan Register pilihan 0 = Register Perintah, 1 = Register Data.

R/W (Pin 5)

Merupakan read select, 1 = read, 0 = write.

Enable Clock LCD (Pin 6)

Merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data.

D0 – D7 (Pin 7 – Pin 14)

Merupakan Data Bus 1 -7

Anoda ( Pin 15)

Merupakan masukan tegangan positif backlight

(12)

Merupakan masukan tegangan negatif backlight

Gambar 2.8 Fisik LCD2x16

Setiap memori mempunyai fungsi-fungsi tersendiri:

a. DDRAM

DDRAM merupakan memori tempat karakter yang ditampilkan. Contohnya karakter ‗A‘ atau 41h yang ditulis pada alamat 00 akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut di alamat 40h, karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD.

b. CGRAM

CGRAM merupakan memori untuk menggambarkan pola seluruh karakter dan bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang.

(13)

CGROM adalah memori untuk menggambarkan pola sebuah karakter dan pola tersebut ditentukan secara permanen dari HD44780 sehingga arah yang melalui transistor.

1. Tipe: UJT, BJT, JFET, MOSFET, IGBT, HBT, MISFET, VMOSFET,MESFET, HEMT, SCR serta pengembangan dari transistor yaitu IC.

2. Polaritas : NPN atau N-Channel, PNP atau P-channel

3. Maximum kapasitas daya : Low Power, Medium Power, High Power 4. Maksimum frekwensi kerja : low, medium, atau high frequency, RF

transistor, Microwave, dan lain-lain.

5. Aplikasi : Amplifier, Saklar, General purpose, Audio, Tegangan Tinggi, dan lain-lain.

2.4 Bahasa Pemograman ATMega8535

PemrogramanmikrokontrolerATmega8535dapatmenggunakanlowlevelL anguage(assembly)danhighlevellanguage(C,Basic,Pascal,JAVA,dll)tergantungco

mpiler yangdigunakan(WidodoBudiharto,2006).Bahasa

AssemblermikrokontrolerAVR memilikikesamaaninstruksi,sehingga jikapemrogramansatujenismikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontrolerjenismikrokontrolerAVR.Namunbahasaassembler relatiflebih sulit dipelajari dari padabahasa C.

Untukpembuatansuatuproyekyangbesar akan memakan waktu yang lama serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan dibanding bahasa assembleryaitu independentterhadap hardware

(14)

serta lebih mudah untuk menangani project yang besar. Bahasa C memiliki keuntungan- keuntungan yang dimiliki bahasa assembler(bahasamesin),hampirsemuaoperasi yang dapat dilakukan oleh bahasa mesin,dapat dilakukan dengan bahasa C dengan penyusunanprogram yanglebihsederhanadanmudah.BahasaCterletakdiantara bahasa pemrograman tingkat tinggi dan assembly(AgusBejo,2007).

2.5 Dasar Pemrograman ATMega8535 dengan Bahasa C 2.5.1 Pendahuluan

Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.

Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI ( American National Standar Institut) yang dijadikan acuan oleh para pembuat kompiler.

(15)

2.5.2 Pengenal Pada Bahasa C

Pengenal merupakan sebuah nama yang didefinisikan oleh program untuk menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus. Pemberian pengenal pada program harus memenuhi syarat-syarat di bawah ini:

1. Karakter pertama tidak menggunakan angka; 2. Karakter kedua berupa huruf, angka, garis bawah,; 3. Tidak menggunakan spasi;

4. Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap berbeda;

5. Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator dari bahasa C.

Contoh menggunakan pengenal yang diperbolehkan:

1. Nama 2. _nama 3. Nama2

4. Nama_pengenal

Contoh penggunaan pengenal yang tidak diperbolehkan:

1. 2nama 2. Nama+2 3. Nama pengenal

(16)

2.5.3 Tipe Data

Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan dari tipe berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai positif sedangkan signed menyebabkan nilai tipe data bernilai negatif dan memungkinkan data bernilai positif. Perbedaan nilai tipe data dapat kita lihat pada tabel di bawah ini.

Pemodifikasi Tipe Persamaan Jangkauan Nilai

Signed char Char -128 s/d 127

Signed int Int -32.768 s/d 32.767

Signed short int Short, signed short -32.768 s/d 32.767 Signed long int Long, long int, signed

long

-2.147.483.648 s/d 2.147.483.647

Unsigned char Tidak ada 0 s/d 255 Unsigned int Unsigned 0 s/d 65.535 Unsigned short int Unsigned short 0 s/d 65.535

Unsigned long int Unsigned long 0 s/d 4.294.967.295

Tabel 2.2 Pemodifikasi

(17)

#include <mega.8535> #include <delay.h> Void main (void) { int a, b; // pengenal unsigned d, e; a = 50; b = 40; d = 50; e = 40; PORTC = 0x00;

DDRC = 0Xff; //set PORTC sebagai output PORTB = 0x00;

DDRB = 0Xff; // set PORTB sebagai output While(1) { PORTB = a – b; PORTC = d – e; delay_ms(100); }; }

Program di atas akan memberikan data di PORTB = 10 (desimal) sedangkan PORTC = -10 (desimal) karena PORT mikrokontroler tidak dapat mengeluarkan nilai negatif maka PORTB dan PORTC akan memiliki keluaran 0x0A tapi pada kenyataannya PORTC lebih banyak memakan memori karena tanda negatif tersebut disimpan dalam memori.

Pada program di atas terdapat tulisan //set PORTB sebagai output yang berguna sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari program. Ada dua cara penulisan komentar pada pemrograman bahasa C, yaitu dengan mengawali komentar dengan tanda ― // ― ( untuk komentar yang hanya

(18)

satu baris ) dan mengawali komentar dengan tanda ― /* ― dan mengakhiri komentar dengan tanda ― */ ―.

Contoh:

// ini adalah komentar

/* ini adalah komentar

Yang lebih panjang

Dan lebih panjang lagi */

2.5.4 Header

Header digunakan untuk menginstruksikan kompiler untuk menyisipkan file lain. Di dalam file header ini tersimpan deklarasi, fungsi, variable, dan jenis mikrokontroler yang kita gunakan (pada software Code Vision AVR). File-file yang ber akhiran .h disebut file header.

File header yang digunakan untuk mendefinisikan jenis mikrokontroler yang digunakan berfungsi sebagai pengarah yang mana pendeklarasian register-register yang terdapat program difungsikan untuk jenis mikrokontroler apa yang digunakan ( pada software Code Vision AVR ) contohnya di bawah ini:

#include <mega8535.h> #include<delay.h> #include <stdio. h>

(19)

2.5.5 Operator Aritmatika

Operator aritmatika digunakan untuk melakukan proses perhitungan matematika. Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada tabel di bawah ini:

Operator Keterangan

+ Operator untuk penjumlahan - Operator untuk pengurangan * Operator untuk perkalian / Operator untuk pembagian % Operator untuk sisa bagi

Tabel 2. 3 Operator Aritmatika

Contoh penggunaan operator aritmatika dapat dilihat di bawah ini, #include < mega8535.h>

#include <delay.h> void main (void) {

unsigned char a, b; a = 0x03;

b = 0x05;

DDRC 0XFF; // PORTC digunakan sebagai output while (1) { PORTC = (a * b); delay_ms(500); } }

(20)

2.5.6 Operator Pembanding

Operator pembanding digunakan untuk membandingkan 2 data atau lebih. Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika salah. Operator pembanding dapat kita lihat pada tabel di bawah ini:

Operator Contoh Keterangan

= = x = = y Benar jika kedua data bernilai sama != x != y Bernilai benar jika kedua data tidak sama

> x > y Bernilai benar jika nilai x lebih besar dari pada y < x < y Bernilai jika x lebih kecil dari y

>= x >= y Bernilai jika x lebih besar atau sama dengan y <= x <= y Bernilai benar jika x lebih kecil atau sama dengan y

Tabel 2. 4 Operator Pembanding

2.5.7 Operator Logika

Operator logika digunakan untuk membentuk logika dari dua pernyataan atau lebih. Operator logika dapat dilihat pada tabel di bawah ini:

Operator Keterangan && Logika AND | | Logika OR ! Logika NOT

(21)

#include < mega8535.h> #include <delay.h> void main (void) {

DDRC = 0XFF; // sebagai output DDRA = 0X00; // sebagai input

while (1) { If ( PINA.0 == 1 )|| (PINA.1 == 1 ){ PORTC = 0XFF; delay_ms(500); PORTC = 0X00; Delay_ms(500); } else{ PORTC = 0x00; delay_ms(500); } } } Penjelasan program:

Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff kemudian logika 0x00 secara bergantian dengan selang waktu 0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC akan mengeluarkan logika 0x00.

(22)

2.5.8 Operator Bitwise

Operator logika ini bekerja pada level bit. Perbedaan operator bitwise dengan operator logika adalah pada operator logika akan menghasilkan pernyataan benar atau salah sedangkan pada operator bitwise akan menghasilkan data biner. Operator bitwise dapat dilihat pada tabel di bawah ini:

Operator Keterangan

& Operasi AND level bit | Operasi OR level bit ^ Operasi XOR level bit ~ Operator NOT level bit >> Operator geser kanan << Operator geser kiri

Tabel 2.6 Operator Bitwise Contoh program:

#include <mega8535.h> #include <delay.h> void main (void) {

unsigned char a,b,c;

DDRC = 0xff; //portc sebagai output while (1) { a = 0x12; b = 0x34; c = a & b; PORTC = c; delay_ms(500); }; } Penjelasan program:

(23)

b = 0x32 = 0011 0000 ---

a & b = 0x10 = 0001 0000

2.5.9 Operator Penugasan dan Operator Majemuk

Operator ini digunakan untuk memberikan nilai atau manipulasi data sebuah variabel. Operator penguasa dapat kita lihat pada tabel di bawah ini:

Operator Keterangan

= Memberikan nilai variabel += Menambahkan nilai variabel - = Mengurangi nilai variabel *= Mengalikan nilai variabel

/= Membagi nilai variable %= Memperoleh sisa bagi

Tabel 2.7 Operator Penugasan Contoh:

a += 2 ; artinya nilai variabel a berubah menjadi a = a + 2 b *= 4; artinya nilai variabel b berubah menjadi b = b * 4

selain operator penugasan di atas juga ada operator penugasan yang berkaitan dengan operator bitwise seperti pada tabel di bawah ini:

Operator Contoh Arti

&= x &= 1 Variabel x di AND kan dengan 1 |= x |= 1 Variabel x di OR kan dengan 1 ~= x ~= 1 x = ~ (1) ; x = 0xFE

^= x ^= 1 Variabel x di XOR kan dengan 1 <<= x <<= 1 Variabel x digeser kiri 1 kali >>= x >>= 1 Variabel x digeser kanan 1 kali

(24)

2.5.10 Operator Penambahan dan Pengurangan

Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini:

Operator Keterangan

++ Penambahan 1 pada variable

-- Pengurangan

Tabel 2. 9 Operator Penambahan dan Pengurangan Contoh: a = 1; b = 2; a ++; b --; Penjelasan:

Maka operator a++ akan mengubah variabel a dari satu menjadi 2, sedangkan operator B— akan mengubah variabel b dari 2 menjadi 1.

(25)

2.5.11 Pernyataan If dan If Bersarang

Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar maka akan di jalankan instruksi pada blok nya, sedangkan jika pernyataan tidak benar maka instruksi yang pada blok lain yang dijalankan ( sesuai dengan arah programnya).

Bentuk pernyataan IF adalah sebagai berikut:

1. Bentuk sederhana if (kondisi){ Pernyataan_1; Pernyataan_2; ...; } 2. Pernyataan else if (kondisi) { Pernyataan_1; ...; } else { Pernyataan_2; ...; }

(26)

3. If di dalam if

Pernyataan ini sering disebut nested if atau if bersarang. Salah satu bentuknya adalah sebagai berikut:

if (kondisi1) Pernyataan_1; else if (kondisi2) pernyataan_2; else if (kondisi3) pernyataan_3; else pernyataan; contoh program: if ( PINA.0 = =1) { PORTC = 0xff; } else { PORTC = 0x00; } Penjelasan program:

(27)

Jika PINA.0 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff, jika yang pernyataan yang lain maka PORTC akan mengeluarkan logika 0x00.

2.5.12 Pernyataan Switch

Pernyataan switch digunakan untuk melakukan pengambilan keputusan terhadap banyak kemungkinana. Bentuk pernyataan switch adalah sebagai berikut:

Switch (ekspresi) {

case nilai_1 : pernyataa_1;break; case nilai_2 : pernyataan_2;break; case niai_3 : pernyataan_3;break; …

Defaut : pernyataan_default;break;

}

Pada pernyataanswitch,masing-masing pernyataan (pernyataan_1 sampai dengan pernyataan_default) dapat berupa satu atau beberapa perintah dan tidak perlu berupa blok pernyataan. Pernyataan_1 akan dikerjakan jika ekspresi bernilai sama dengan nilai_1, pernyataan_2 akan dikerjakan jika ekspresi bernilai sama dengan nilai_2, pernyataan_3 akan dikerjakan jika ekspresi bernilai sama dengan nilai_3 dan seterusnya. Pernyataan_default bersifat opsional, artinya boeh

(28)

dikerjakan apabila nilai ekspresi tidak ada yang sama satupun dengan salah satu nilai_1, nilai_2, nilai_3 dan seterusnya. Setiap akhir dari pernyataan harus diakhiri dengan break, karena ini digunakan untuk keuar dari pernyataan swich.

Contoh : Switch (PINA)

{

case 0xFE : PORT=0x00;break; case 0xFD : PORT=0xFF;break; }

Pernyataan di atas berarti membaca port A, kemudian datanya (PINA) akan dicocokan dengan nilai case. Jika PINA bernilai 0xFE maka data 0x00 akan dikeluarkan ke port C kemudian program keluar dari pernyataan switch tetapi jika PINA bernilai 0xFD maka data 0xFF akan dikeluarkan ke port C kemudian program keluar dari pernyataan switch.

2.5.13 Pernyatan While

Pernyataan while digunakan untuk menguangi sebuah pernyataan atau blok kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan while adalah sebagai berikut :

(29)

while (kondisi) {

// sebuah pernyataan atau blok pernyataan

}

Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka tanda { dan } bias dihilangkan.

Contoh :

unsigned char a=0; ….. while (a<10) { PORT=a; a++; }

Pernyataan di atas akan mengeluarkan data a ke port C secara berulang-ulang. Setiap kali pengulangan nilai a akan bertambah 1 dan setelah niai a mencapai 10 maka pengulangan selesai.

(30)

2.5.14 Pernyataan Do..While

Pernyataan do…while hamper sama dengan pernyataan while, yaitu pernyataan yang digunakan untuk menguangi sebuah pernyataan atau blok pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan while adalah sebagai berikut :

do {

// sebuah pernyataan atau b;ok pernyataan

} while (kondisi).

Yang membedakan antara pernyataan while dengan do..while adalah bahwa pada pernyataan while pengetesan kondisi dilakukan terlebih dahulu, jika kondisi terpenuhi maka barulah blok pernyataan dikerjakan. Sebaliknya pada pernyataan do…while blok pernyataan dikerjakan terebih dahulu setelah itu baru diakukan pengetesan kondisi, jika kondisi terpenuhi maka dilakukan pengulangan pernyataan atau blok pernyataan lagi. Sehingga dengan demikian pada pernyataaan do..while blop pernyataan pasti akan dikerjakan minimal satu kali sedangkan pada pernyataan whilebok pernyataan beum tentu dikerjakan.

2.6.15 Pernyataan For

Pernyataan for juga digunakan untuk melakukan pengulangan sebuah pernyataan atau blok pernyataan, tetapi berapa kali jumah pengulangannya dapat ditentukan secara lebih spesifik. Bentuk pernyataan for adalah sebagai berikut :

(31)

// sebuah pernyataan atau blok pernyataan

}

Nilai_awal adaah nilai inisial awa sebuah variabel yang didefenisikan terebih dahuu untuk menentukan niai variabel pertama kai sebelum penguangan.

Kondisi merupakan pernyataan pengetesan untuk mengontrol pengulangan, jika pernyataan kondisi terpenuhi (benar) maka blok pernyataan akan diulang terus sampai pernyataan kondisi tidak terpenuhi (salah).

Perubahan adalah pernyataan yang digunakan untuk melakukan perubahan niai variabel baik naik maupun turun setiap kali pengulangan dilakukan.

Contoh :

unsigned int a;

for ( a=1, a<10, a++) {

PORT=a;

}

Pertama kali nilai a adalah 1, kemudian data a dikeluarkan ke port C. selanjutnya data a dinaikkan (a++) jika kondisi a<10 masih terpenuhi maka data a akan terus dikeluarkan ke port

(32)

Instruksi‐instruksi yang merupakan bahasa C tersebut dituliskan pada

sebuah editor, yaitu Code Vision AVR.

Gambar 2.9 Tampilan software codevision AVR

BAB III

PERANCANGAN DAN SISTEM KERJA RANGKAIAN

Gambar

Gambar 2.2 Mechanic Dimensi Water Flow sensor G1/2
Gambar 2.3 Konfigurasi pin Atmega8535
Gambar berikut menunjukkan peta memori SRAM pada ATMEGA 8535.
Gambar 2.8 Fisik LCD2x16
+7

Referensi

Dokumen terkait

Sarinawa ti (2018) Penerapan Prinsip Bahasa Jurnalistik (Studi Kualitatif Pada Berita Society Di Surat Kabar Jambi Independent ) Mengemukak an penerapan bahasa yang

Salah satu alat pengeringan yaitu rotary dryer (pengering putar) yang terdiri dari sebuah selongsong berbentuk silinder yang berputar, horisontal, atau agak miring ke bawah ke

Pertumbuhan panjang mutlak pada ikan Koi selama penelitian menunjukkan hasil yang berbeda nyata antara perlakuan A dan B dengan perlakuan C untuk lebih jelas

Floor &amp; Ceiling Food (rice) Price Policy Trade Policy (regional / local selling need) Appropriate surplus stock needs suffcient service capital to be ready for use

Keimpulan dari hasil penelitian ini antara lain: (1) dari hasil pengujian SFA hubungan variabel rata-rata belanja Kota Palembang terhadap biaya administrasi berhubungan

Kajian Lingkungan Hidup Strategis yang selanjutnya disingkat KLHS adalah proses mengintegrasikan pembangunan berkelanjutan yang berwawasan lingkungan hidup dalam

Langkah-langkah yang dilakukan dalam menganalisis data yaitu: (1) mentranskripsikan data hasil rekaman dalam bahasa tulis, (2) mengklasifikasikan berdasarkan jenis tindak

Sebagai calon Akuntan publik mahasiswa akuntansi dituntut untuk mampu mengerti perkembangan – perkembangan dalam akuntansi, termasuk system – system yang berkembang