BAB II PENDEKATAN PEMECAHAN MASALAH A. Resistor Resistor adalah suatu komponen elektronika yang dapat menghasilkan hambatan. Resistor dapat digunakan sebagai pembatas arus, pembagi arus maupun sebagai pembagi tegangan. Nilai resistansi dari resistor akan berpengaruh terhadap arus yang mengalir, jika resistansinya semakin besar maka arus yang lewat akan semakin kecil, sebaliknya jika nilai resistansinya kecil, maka arus yang lewat akan semakin besar. Dalam suatu rangkain elektronik, resistor sering ditulis dengan kode “ R”. Resistor mempunyai satuan Ohm (Ω) yang menunjukan besar kecilnya hambatan yang dihasilkan dan Watt untuk menujukkan rating daya maksimum yang boleh digunakan tanpa menimbulkan panas yang berlebihan. Resistor terdiri dari dua jenis, yaitu : 1. Resistor Tetap Adalah resistor yang besarnya tidak dapat diatur. Resistor tetap sesuai dengan bahannya, yaitu: a. Resistor kawat logam, tahanan dari kawat logam yang digulung pada permukaan pipa tabung kaca. b. Resistor karbon / arang, resistor ini paling banyak digunakan pada rangkaian elektronika. Gambar 1. Lambang resistor 2. Resistor Variabel Adalah resistor yang besarnya dapat diatur sesuai nilai yabg dibutuhkan. Untuk variabel resistor terdapat 2 tipe. a. Untuk tipe pertama dinamakan variable resistor dan nilainya dapat diubah sesuai keinginan dengan mudah dan sering digunakan untuk pengaturan volume, bass, balance, dll. b. Sedangkan yang kedua adalah semi-fixed resistor. Nilai dari resistor ini biasanya hanya diubah pada kondisi tertentu saja. Contoh penggunaan dari semifixed resistor adalah tegangan referensi yang digunakan untuk ADC, fine tune circuit, dll. Ada beberapa model pengaturan nilai Variable resistor, yang sering digunakan adalah dengan cara memutar. Pengubahan nilai dengan cara memutar biasanya terbatas sampai 300 derajat putaran. c. Ada beberapa model variable resistor yang harus diputar berkali – kali untuk mendapatkan semua nilai resistor. Model ini dinamakan “Potentiometers” atau “Trimmer Potentiometers”. d. Pada gambar dibawah untuk bentuk 3 biasanya digunakan untuk volume kontrol. Bentuk yang ke 2 merupakan semi fixed resistor dan biasanya di pasang pada PCB (Printed Circuit Board). Sedangkan bentuk 1 disebut juga trimmer potentiometers. Gambar 2. Resistor variabel Untuk menghitung besarnya hambatan pada suatu resistor digunakan hukum Ohm sebagai berikut : R= (Richard Blocer, 2004 :13) Di mana : R = Resistansi dinyatakan dalam Ohm V = Tegangan dinyatakan dalam Volt I = Kuat arus dinyatakan dalam Ampere Gambar 3. Lambang resistor variable B. Kapasitor Kapasitor adalah suatu komponen elektronika yang terdiri dari dua buah penghantar yang diberi sekat. Sekat tersebut terbuat dari bahan isolasi (mika, kertas, keramik, udara, dan sebagainya). Kapasitor mampu menyimpan muatan listrik suatu kapasitor dinyatakan dalam satuan Farad dan dipengaruhi oleh : 1. Luas penampang 2. Jarak antar keping 3. Jenis dielektrika C= Di mana : C = kapasitas kapasitor Gambar 4. Kapasitor C. Dioda Dioda dibangun dari hasil penggabungan dua buah semikonduktor tipe P (positif) dan tipe N (negatif). Karena penggabungan dua tipe semikonduktor tersebut, maka terjadi suatu daerah perpindahan muatan yang disebut daerah pengosongan ( depletion layer). Pada daerah tersebut terjadi suatu muatan listrik yang disebut potensial barier yang besarnya 0,7 Volt untuk dioda silikon dan 0,3 Volt untuk dioda Germanium. Gambar 5. Simbol dioda Pada dioda ideal, dioda akan berlaku seperti saklar otomatis. Bila tegangan anodanya lebih positif dari tegangan katoda atau disebut juga bias maju ( bias forward) dioda akan bertindak seperti saklar tertutup ( posisi ON). Jika katoda yang lebih positf dari tegangan anoda atau disebut juga bias mundur ( bias reverse) dioda akan berlaku seperti saklar teruka ( posisi off). Salah satu dari diode adalah LED jenis dioda yang dapat memancaraka emisi cahaya. Pada dioda di bias forward, elektron pita konduksi melewati junction dan jatuh kedalam hole. Pada saat elektron-elektron jatuh dari pita konduksi ke pita valensi akan memancarakan energi. Pada dioda penyearah, energi ini keluar sebagai panas, tetapi pada LED energi dipancarkan sebagai cahaya. Warna cahaya ini tergantung pada jenis dan kadar material pertemuan. D. LCD (M1632) M1632 adalah merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah. Modul ini dilengkapi dengan mikrokontroler yang didisain khusus untuk mengendalikan LCD. Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD ini mempunyai CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory) dan DDRAM (Display Data Random Access Memory). 1. DDRAM DDRAM adalah merupakan memori tempat karakter yang ditampilkan berada. Contoh, untuk karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut ditulis di alamat 40, maka karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD. Gambar 6. DDRAM M1632 (diambil dari data sheet HD44780) 2. CGRAM CGRAM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana bentuk dari karakter dapat diubah-ubah sesuai keinginan. Namun memori ini akan hilang saat power supply tidak aktif, sehingga pola karakter akan hilang. 3. CGROM CGROM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi. Namun karena ROM bersifat permanen, maka pola karakter tersebut tidak akan hilang walaupun power supply tidak aktif. Pada gambar 2, tampak terlihat pola-pola karakter yang tersimpan dalam lokasi-lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H yang tersimpan pada DDRAM, maka HD44780 akan mengambil data di alamat 41H (0100 0001) yang ada pada CGROM yaitu pola karakter A. Gambar 7. Pin Out LCD M1632 Standard Tabel 1. Penjelasan Pin Out LCD PIN OUT No Nama Pin Keterangan 1 GND 0 Volt 2 VCC 5 Volt 3 VEE Tegangan Kontras LCD 4 RS Register Select, 0 = Register Perintah, 1 = Register Data 5 RW 1 = Read, 0 = Write E Enable Clock LCD, logika 1 setiap kali pengiriman atau 6 pembacaan data 7 D0 Data Bus 0 8 D1 Data Bus 1 9 D2 Data Bus 2 10 D3 Data Bus 3 11 D4 Data Bus 4 12 D5 Data Bus 5 13 D6 Data Bus 6 14 D7 Data Bus 7 15 Anoda Backlight Tegangan positif untuk Backlight 16 Katoda Backlight Tegangan negatif untuk Backlight Gambar 8. Hubungan antara CGROM dan DDRAM (diambil dari data sheet HD44780) E. Mikrokontroler Mikrokontroller adalah piranti elektronik berupa IC (Integrated Circuit) yang memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi (program) yang dibuat oleh programmer. Mikrokontroller merupakan contoh suatu sistem komputer sederhana yang masuk dalam kategori embedded komputer. Dalam sebuah struktur mikrokontroller akan kita temukan juga komponen-komponen seperti: processor, memory, clock dll. ( Wisnugroho, 2006) Ada banyak jenis keluarga mikrokontroler diantaranya Intel 8048 dan 8051(MCS51), Motorola 68HC11, Microchip PIC, Hitachi H8, dan Atmel AVR. Salah satu mikrokontroler yang banyak digunakan saat ini adalah Mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instruction Set Compute) 8-bit berdasarkan arsitektur Havard yang dibuat oleh Atmel. Mikrokontroler AVR terdiri dari beberapa seri mikrokontrioler diantaranya ATmega 128, 16, 2560, 32, 48, 64, 8, 8515, 8535, dan seri Atiny 11, 12, 13, 2313, 24, 25,26, 261, 44, 45, 461, 84, 85, 861. 1. Mikrokontroler Attiny 2313 Mikrokontroler di sini berfungs sebagai sistem minimum yang akan melakukan pemrosesan data masukan dan data setingan, data masukan berasal dari data real obyek dan data setingan merupakan data standart yang telah dimasukan dalam program. Dengan kemampuan 2K byte flash memori, Attiny 2313 merupakan dengan tingkat kemampuan teknologi nonvolatile, ini berarti isi memori tersebut dapat diisi ulang ataupun dihapus sesuai kenginan. Produk mikrokontroler ATTINY 2313 memiliki fitur yang cukup lengkap yaitu dengan kapasitas memori data dan memori program cukup besar, interupsi, timer/counter, PWM, USART, TIWI, analog comparator, EEPROM internal dan ADC internal yang kesemua ada dalam ATTINY 2313. Sehingga dengan fitur yang cukup lengkap ini memungkinkan lebih mudah, efektif dan efisien dalam perancangan suatu kendali dalam bidang elektronika. Berikut fitur – fitur yang dimiliki oleh ATTINY 2313 a. 130 macam instruksi b. 32 x 8-bit register serba guna c. Kecepatan maksimum 16 MIPS dengan clok 16 MHz d. 2K byte flash memori e. 512 Byte internal EEPROM f. 512 Byte SRAM g. Programing lock h. 2 buah timer/counter 8-bit dan 1 buah timer/counter 16-bit i. 4 chanel output PWM j. 8 chanel ADC 10-bit k. Master /slave SPI serial interface l. Serial TWI atau I2C m. On-chip analog coparator 2. Konfigurasi Pin Attiny 2313 Untuk mempermudah dalam perancangan bagian hardware suatu rangkain kendali dengan mikrokontroler ATTINY 2313 perlu adanya pejelasan PIN dari kaki-kaki ATTINY 2313. IC ini memiliki 40 struktur PIN dimana yang 32-nya merupakan`PORT I/O yaitu PORT A, PORT B, PORT C, dan PORT D dimana setiap PORT terdiri dari 8 PIN. Berikut Tabel penjelasan PIN dan gambar arsitektur Attiny 2313. Tabel 2. Penjelasan PIN dari mikrokontroler ATtiny 2313 PIN NO Nama PIN 1 PB0 2 PB1 3 PB2 4 PB3 Fungsi Keterangan Lain T0 (Timer / Counter 0 External Counter Input) XCK (USART External Clock Input /Output) T1(Tmer /Counter 1External Counter Input) AIN0(Analog Comparator Positif Input) INT2(External Interupt 2Input) AIN1(Analog Comparator PORT B, juga merupakan Negative Input) Port I/O 8-bit dua arah OC0 (Output Compare dengan resistor pull-up Timer /Counter 0) internal 5 PB4 SS (SPI Slave Select Input) 6 PB5 MOSI (SPI Bus Master Output / Slave Input) 7 PB6 8 PB7 9 RESET MISO (SPI Bus Master Input /Slave Output) SCK (SPI Bus Serial Clock) PIN reset yang akan bekerja bila diberi masukan pulsa rendah (aktif low) selama minimal ,5 us Untuk ATTINY 2313L sebesar 2,7 volt – 5,5 volt Untuk ATTINY 2313 sebesar 4,5 volt – 5,5 volt Catu daya Positif 10 VCC 11 GND 12 XTAL2 output dari penguat oscillator pembalik 13 XTAL1 input ke penguat oscillator pembalik dan input ke internal clock 14 PD0 RXD (USART Receiver) 15 PD1 TXD (USART Transmit) 16 PD2 INT0 (External Interupt 0 Input) 17 18 PD3 PD4 Catu daya 0 INT1(External Input) Interupt 1 PORT D, juga merupakan PORT I/O 8-bit dua arah OC1B (Output Compare B dengan resistor pullup Timer / Counter 1) internal OC1A(Output Compare A Timer / Counter 1) 19 PD5 20 PD6 ICP1 (Timer / 1Input Capture) 21 PD7 TOSC2 (Timer Oscilator 2) 22 PC0 SCL (Serial Clock, PC) 23 PC1 Counter PORT C, juga meupakan PORT I/O 8-bit dua arah SDA (Serial Data Input / dengan resistor pullup Output PC) 24 PC2 - 25 PC3 - 26 PC4 - 27 PC5 - 28 PC6 TOSC1 (Timer Oscilator 1) 29 PC7 TOSC2 (Timer Oscilator 2) 30 AVCC Catu daya yang digunakan untuk masukan analog ADC yang terhubung ke PORT A 31 GND Teganga nol 32 AREF Tegangan referensi analog untuk ADC 33 PA0 ADC Chanel 1 34 PA1 ADC Chanel 2 35 PA2 ADC Chanel 3 36 PA3 ADC Chanel 4 37 PA4 ADC Chanel 5 38 PA5 ADC Chanel 6 39 PA6 ADC Chanel 7 40 PA7 ADC Chanel 8 3. internal PORT A, juga merupakan PORT I/O 8-bit dua arah dengan resistor pullup internal selain difungsikan sebagai masukan 8 chanel ADC Arsitektur ATtiny 2313 Secara garis besar, arsitektur mikrokontroller ATtiny 2313 terdiri dari : a. 32 saluran I/O (Port A, Port B, Port C, dan Port D). b. 10 bit 8 Channel ADC (Analog to Digital Converter). c. Empat channel PWM. d. Enam Sleep Modes : Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby. e. Tiga buah timer/counter. f. Analog comparator. g. Watchdog timer dengan osilator internal. h. 512 byte SRAM. i. 512 byte EEPROM. j. Delapan kb Flash memory dengan kemampuan Read While Write. k. Unit interupsi (internal & eksternal). l. Port antarmuka SPI8535 memory map. m. Port USART untuk komunikasi serial dengan kecepatan maksimal 2,5Mbps n. 4.5 sampai 5.5V operation, 0 sampai 16MHz. Gambar 9. Arsitektur ATtiny 2313 F. Bahasa C 1. Stuktur Pemrograman C Struktur penulisan bahasa C secara umum terdiri atas empat blok, yaitu : a. Header. b. Deklarasi konstanta global atau variabel. c. Fungsi atau prosedur. d. Program utama. 2. Perangkat Lunak Code Vision AVR CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman mikrokontroller keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan Program generator. Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded). Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah 2 fungsi-fungsi untuk pengaksesan LCD, komunikasi I C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan lain sebagainya. Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly (lihat gambar 7). Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader (in system programmer) yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang diprogram. Gambar 10. IDE perangkat lunak CodeVisionAVR Selain itu, CodeVisionAVR juga menyediakan sebuah tool yang dinamakan dengan Code Generator atau CodeWizardAVR (lihat gambar 9). Secara praktis, tool ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada microcontroller AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Gambar 8. Secara teknis, penggunaan tool ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman Visual untuk komputer (seperti Visual C, Borland Delphi, dan sebagainya). Gambar 11. Code Generator yang dapat digunakan untuk menginisialisasi register-register pada microcontroller AVR. Disamping versi yang komersil, Perusahaan Pavel Haiduc juga mengeluarkan CodeVisionAVR versi Demo yang dapat didownload dari internet secara gratis. Dalam versi ini, memori flash yang dapat diprogram dibatasi maksimal 2K, selain itu tidak semua fungsi library yang tersedia dapat dipanggil secara bebas. Berikut memperlihatkan beberapa penggal baris kode program yang dibangkitkan secara otomatis oleh CodeWizardAVR Gambar 12. Kode-kode program yang dibangkitkan otomatis oleh code generator 3. Library Fungsi Code Vision AVR Code Vision Avr memiliki banyak library fungsi akan tetapi di sini penulis hanya mencantumkan beberapa topik yang berkaitan dengan karya tugas akhir ini diantaranya ; fungsi input/ouput, fungsi standar library, fungsi matematika, fungsi lcd, fungsi delay a. Fungsi input/output Fungsi – fungsi input/output berada di dalam file stdio.h¸ pada subdirectory…\INC. Berikut ini beberapa fungsi I/O yang lebih tinggi menggunakan fungsi getchar dan putchar disediakan pada Code Vision. 1) Void puts(char*str) : output, menggunakan putchar, null mengakhiri karakter string, berlokasi di SRAM. 2) void putsf(char flash*str) : output menggunakan putchar, null mengakhiri karakter string , berlokasi di FLASH. 3) Void printf(char flash*fmtstr[,arg1,arg2,…] : ouput text yang terformat, menggunakan putchar, sesuai dengan format specifier dalam fmtstr string. b. Fungsi standar library Fungsi – fungsi ini berada di dalam file stdlib.h¸pada subdirectory..\INC. Berikut ini sebagian dari beberapa fungsi standar library yang disediakan pada Code Vision Avr: 1) Int atoi(char*str) : mengubah string str menjadi integer 2) long int atoi(char*str) : mengubah string str menjadi long integer 3) void itoa(int n, char*str) : mengubah integer n menjadi karakter pada string str 4) void Itoa(long int n, char*str) : mengubah long integer n menjadi karakter dalam string str 5) void ftoa(float n, unsigned char decimals, char*str) : mengubah bilangan floating point n menjadi karakter pada string str. c. Fungsi matematika Fungsi – fungsi ini berada di dalam file math.h¸pada subdirectory..\INC. Berikut ini sebagian dari beberapa fungsi matematika yang disediakan pada Code Vision Avr: 1) unsigned char cabs(signed char x) : menghasilkan nilai absolute dari byte x. 2) Unsigned int abs(int x) : menghasilkan nilai absolute dari bilangan integer x 3) Unsigned long labs(long int x) : menghasilkan nilai absolute dari bilangan long integer x. 4) Float fabs(float x) : menghasilkan nilai absolute dari bilangan floating point x. 5) Int max(int a, int b) : menghasilkan nilai maksimum dari integer a dan b. 6) Long int Imax(long int a, long int b) : menghasilkan nilai maksimum dari long integer a dan b. 7) Signed char csign(signed char x) : menghasilkan -1, 0, 1 jika byte x negative, nol,positif. 8) Unsigned char isqrt(unsigned int x) : menghasilkan akar kuadrat dari unsigned x. d. Fungsi LCD Fungsi LCD ditujukan untuk memudahkan interfacing antara program C dan modul alphanumeric LCD yang dibuat dengan chip Hitachi HD44780 atau yang serupa chip Hitachi HD44780. Fungsi ini berada di dalam file lcd.h, pada subdirectory..\INC. Header ini harus dimasukan (include) jika kita akan mrnggunakan fungsi – fungsi LCD. Sebelum menggunakan fungsi ini , terlebih dahulu harus diatur port mikrokontroler yang digunakan untuk kominikasi dengan modul LCD. Format LCD dalam lcd.h mendukung : 1x8, 2x12, 3x12, 1x16, 2x16,2x20, 4x20, 2x24, dan 2x40. Fungsi – fungsi untuk mengakses LCD di antaranya adalah: 1) Unsigned char lcd_init(unsigned char lcd_coloumns) : untuk megeinisialisasi modul LCD, menghapus layer dan meletakan posisi karakter pada baris ke-0 kolom ke-0.Jumlah kolom pada LCD harus disebutkan (misal, 26). Kursor tidak ditampakan. Nilai yang dikembalikan adalah 1 bila modul LCD terdeteksi, dan bernilai 0 bila tidak terdapat modul LCD. Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi yang lain. 2) Voi lcd_clear(void) : menghapus layer LCD dan meletakan posisi karakter pada baris ke-o kolom ke-0. 3) Void lcd_gotoxy(unsigned char x, unsigned char y) : meletakan posisi karakter pada baris ke –x dan kolom ke-y. Nomor baris dan kolom dimulai dari nol. 4) Void lcd_putchar(char c) : menampilkan karakter c pada lcd 5) Void lcd_puts(char *str) : menampilkan string yang disimpad di memori SRAM pada LCD 6) Void lcd_putsf(char flash *str) : menampilkan string yang disimpan di memori FLASH pada LCD. e. Fungsi delay Menghasilkan delay dalam program C. Berada pada header delay.h yang harus dimasukan (include) sebelum digunakan.Sebelum memanggil fungsi, interups harus dimatikan telebih dahulu, bila tidak maka delay akan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan frekuensi clock chip IC AVR yang digunakan pada menu ProjectConfigure-C Compiler-Code Generation. Berikut fungsi – fungsi delay yang telah disediakan pada Code Vision AVR: 1) Void delay_us(unsigned int n) : mrnghasilkan delay selama n mikro –detik, n adalah nilai konstan. 2) Void delay_ms(unsigned int n) : menghasilkan delay selama n mili-detik, n adalah nilai konstan. 4. Teknik Perancangan Program Perancangan Program diperlukan dalam proses pemrograman guna mengetahui system yang akan dijalankan dan dapat dilakukan pengembangan. Faktor kejelasan alur yang akan dibangun dalam suatu system kerja program dibutuhkan agar orang lain dapat memahami program yang dibuat. Cara yang digunakan dalam memperjelas alur kerja program adalh dengan diagram alir program (flow chart). Diagram alir dapat digunakan untuk menggambarkan terlebih dahulu mengenai ‘apa yang harus dilakukan?’, sebagai contoh gambar diagram alur pekerjaan: Proses Proses X? tidak ya Proses X Proses Y Gambar 13. Diagram alir suatu proses (Paulus Andi N, 2003) Diagram alir proses di atas dapat iterangkan sebagai berikut, setelah suatu proses dijalankan dalam mekanisme tertentu maka dari proses tersebut akan dilakukan pengecekan hasil proses. Hasil proses akan dicek apakah hasilnya sama dengan X atau tidak, apabila kondisi hasil proses sama dengan X maka akan dilanjutkan ke proses X, akan tetapi kondisi hasil tidak sama dengan X maka proses berlanjut untuk masuk keproses Y untuk dijalankan. Struktur yang dilakukan dalam suatu pemrograman biasanya terdiri dari tiga bagian pokok yaitu ; pertama pernyataan (statement), ini menggambarkan dasar mekanisme dari ‘melakukan sesuatu’ seperti pemberian nilai pada variable atau memanggil subroutine yang ada pada program. Kedua putaran loops , ini digunakan untuk melakukan sebuah operasi yang dilakukan beulang – ulang. Ketiga pilihan, ini sering kali digunakan untuk pemilihan suatu obyek pilihan yang terdiri dari dua atau lebih kelanjutan proses program yang harus dilakukan. Diagram alir program menggunakan symbol – symbol bentuk flowchart yang mempunyai masing –masing fungsi tersendiri. Simbol bentuk dan fungsiya dapat dilihat pada gambar di bawah: Gambar 14 .Lambang dan fungsi diagram alir