BAB IV IMPLEMENTASI DAN PENGUJIAN
Pembahasan mengenai proses implementasi dan pengujian alat yang telah dirancang sebelumnya akan dibahas pada bab ini. Tahap implementasi merupakan penerapan perancangan yang telah dilakukan sebelumnya ke dalam bentuk yang dapat dimengerti oleh mesin dengan spesifikasi perangkat lunak serta perangkat keras yang digunakan. Tahap pengujian meliputi pengujian alat, pengujian software, atau listing program yang memastikan bahwa seluruh pernyataan telah diuji, dan memastikan bahwa masukan yang didefinisikan dapat menghasilkan keluaran yang diinginkan.
4.1
Implementasi 4.1.1
Spesifikaasi Perangkat Keras (Hardware) Untuk penulisan listing program dan pengisian program kedalam
mikrokontroler diperlukan sebuah komputer sebagai alat penunjang. Spesifikasi perangkat keras yang digunakan untuk menunjang tahapan implementasi adalah sebagai berikut: 1. Prossesor
: Intel Pentium M Processor 1.73 GHz
2. RAM
: 1 GB
3. HDD
: 80 GB
4. Monitor
: 14 Inch
5. USB Kabel 2.0
76
77
4.1.2
Spesifikasi Perangkat Lunak Perangkat lunak yang digunakan untuk menunjang tahapan
implementasi pada perancangan alat tersebut adalah : 1. Mendukung Sistem Operasi Windows 98, ME, 2000 dan XP 2. Microsoft Visio 2007 3. Code Vision AVR V2.03.4 Downloader Bahasa C
4.2
Pengujian Setelah melakukan perancangan dan pemasangan komponen, selanjutnya
adalah melakukan pengujian untuk mendapatkan kesesuaian antara teori, perancangan, dan hasil yang telah dibuat. Sehingga dalam hal ini akan dilakukan beberapa tahapan pengujian pada masing-masing blok rangkaian yang ada pada sistem.
4.2.1
Metode Pengujian Metode black box testing, tujuan pengujian dengan metode ini
adalah untuk menunjukkan fungsi dari masing-masing rangkaian yang dibuat, apakah data keluaran telah berjalan sebagaimana yang diharapkan sesuai dengan perancangan. Metode pengujian black box ini merupakan metode pengujian yang berbasis spesifikasi, dan pengujian dapat dilakukan pada saat proses pengembangan sistem. Tabel berikut merupakan skenario pengujian rangkaian untuk menentukan kategori keberhasilan.
78
No
Jenis Benda
1.
Besi
2.
Cara Pengujian Menghalangi sensor
Jarak Sensor Depan <= 2000 mm
Jarak Sensor Samping <= 1000 mm
Hasil yang diharapkan Tedeteksi
Alumunium
Menghalangi sensor
<= 2000 mm
<= 1000 mm
Tedeteksi
3.
Kayu
Menghalangi sensor
<= 2000 mm
<= 1000 mm
Tedeteksi
4.
Plastik
Menghalangi sensor
<= 2000 mm
<= 1000 mm
Tedeteksi
5.
Karet
Menghalangi sensor
<= 2000 mm
<= 1000 mm
Tedeteksi
6.
Tangan
Menghalangi sensor
<= 2000 mm
<= 1000 mm
Tedeteksi
7.
Kertas
Menghalangi sensor
<= 2000 mm
<= 1000 mm
Tedeteksi
8.
Kaca
Menghalangi sensor
<= 2000 mm
<= 1000 mm
Tedeteksi
9.
Batu
Menghalangi sensor
<= 2000 mm
<= 1000 mm
Terdeteksi
Tabel 4.1 Pengujian rangkaian
Metode white box testing ditujukan untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang telah ditetapkan dari prosedur yang dirancang. Penggunaan metode pengujian white box dilakukan untuk : 1. Memberikan jaminan bahwa semua jalur independen suatu modul digunakan minimal satu kali. 2. Menggunakan semua keputusan logis untuk semua kondisi true atau false. 3. Mengeksekusi semua perulangan pada batasan nilai dan operasional pada setiap kondisi. 4. Menggunakan struktur data internal untuk menjamin validitas jalur keputusan.
79
#include <mega8535.h> #include <delay.h> #include <stdio.h>
# include pada listing program diatas berfungsi menginstruksikan kepada compiler untuk membaca dan menyisipkan file dari sumber /library lain yang berada didalam tanda < > pada saat program dikompilasi. #define sinyal_depan
PORTA.2
#define masuk_depan
PINA.2
#define atur_depan
DDRA.2
#define sinyal_samping
PORTA.3
#define masuk_samping
PINA.3
#define atur_samping
DDRA.3
#define di mana fungsinya mirip find dan replace pada text editor, digunakan untuk
melaksanakan subtitusi makro dari satu lembar teks
kelembar teks yang lain melalui suatu file dimana teks tersebut digunakan. Pada penggalan listing program diatas intruksi define akan mengganti PORTA.2 dengan sinyal_depan begitu pula seterusnya pada listing program yang terdapat intruksi #define. Fungsi cek_samping void cek_samping() { unsigned int counter; atur_samping = 1; //tx sensor sinyal_samping = 0; //rx sensor delay_us(52); sinyal_samping = 1; atur_samping = 0; //kondisi sensor, nilai 1 memberikan logika TRUE / aktif counter=0; while ((masuk_samping==1) && counter<50000) { counter++; }
80
// 50000 batas max sensifitas sensor, kondisi !=1 sensor tidak terhalang jarak_samping=0; while ((masuk_samping!=1) && jarak_samping<50000) { delay_us(1); jarak_samping++; } }
Penggalan listing program diatas merupakan sebuah fungsi, dimana fungsi merupakan sejumlah pernyataan yang dikemas dalam sebuah nama, selanjutnya nama ini dapat dipanggil beberapa kali dibeberapa tempat dalam program. Unsigned int counter berfungsi untuk menyimpan bilangan positif dan nol pada counter atur_samping = 1; //tx sensor sinyal_samping = 0; //rx sensor delay_us(52); sinyal_samping = 1; atur_samping = 0; counter=0;
nilai 1 pada listing diatas bernilai aktif, dimana atur_samping merupakan transmiter pada sensor yang bernilai aktif dan sinyal_samping merupakan receiver pada sensor yang bernilai tidak aktif, ketika sensor transmitter aktif maka sensor receiver akan tidak aktif dan akan bergantian aktif dengan jeda waktu 52 mikro second. while ((masuk_samping==1) && counter<50000) { counter++; } jarak_samping=0; // 50000 batas max sensifitas sensor, kondisi !=1 sensor tidak terhalang while ((masuk_samping!=1) && jarak_samping<50000) { delay_us(1);
81
jarak_samping++;
Listing program diatas memberikan pernyataan while yang bertujuan menilai kondisi sensor, jika kondisi sensor terhalangi maka nilai masuk_samping bernilai 1 atau aktif dan nilai counter tidak melebihi 50000. Counter akan menambah nilai yang kemudian disimpan dalam tipe data unsigned int counter dan nilai jarak_samping akan dieberikan nilai 0. Jika kondisi sensor tidak terhalangi maka sensor transmitter akan terusmenerus melepaskan gelombang ultrasonic dengan jeda waktu 1 mikrosecond dan jarak_samping akan menambah nilai yang kemudian disimpan dalam tipe data unsigned int jarak_samping. void main(void) { // Inisialisasi Port Input/Output // Inisialisasi Port A PORTA=0xE0; DDRA=0xDF; //nilai DF mengaktifkan port A, jika nilai 00 port tidak aktif // Inisialisasi Port B PORTB=0x00; DDRB=0xFF; // Inisialisasi Port C PORTC=0x00; DDRC=0xFF; // Inisialisasi Port D PORTD=0xFF; DDRD=0xFF; //Baud Rate 9600bps atau kecepatan proses mikrokontroler dlm mengirim dan menerima data. UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33;
82
Listing diatas dimaksudkan untuk kecepatan proses pada mikrokontroler dalam menerima dan mengirim data yang terhubung dengan komputer, jika mikrokontroler yang berdiri sendiri tidak memerlukan bantuan komputer saat mikrokontroler beroperasi maka listing program ini tidak dibutuhkan. Baudrate diatas mempunyai nilai 9600bps karena pada interface komunikasi serial pada komputer juga mempunyai baudrate 9600bps, jadi untuk penyelarasan diperlukan nilai baudrate yang sama antara mikrokontroler dengan komputer. while (1) { cek_depan(); cek_samping(); // Menentukan jarak maksimum sensor if (jarak_depan<=2000) { PORTB=0B01011111; //portB.0 aktif LED dan portB.2 aktif buzzer delay_ms(1000); PORTB=0B11111111 delay_ms(850); PORTB=0B01011111 delay_ms(1000); } else if (jarak_samping<=1000) { PORTB=0B10011111; //portB.1 aktif LED dan portB.2 aktif buzzer } else { PORTB=0B11111111; //semua pin pada port B tidak aktif } } }
Void main merupakan fungsi yang akan dieksekusi pertama kali. Pada listing program diatas terdapat listing PORTA =0xE0; yang merupakan pemberian /pengaktifan port A dengan memberikan nilai hexadecimal. Sedangkan listing DDRA=0xDF adalah pemberian nilai pada Data Direction
83
Register port A (DDRA), untuk mengaktifkan dengan memberikan nilai hexadecimal dan memberikan nilai 00 untuk membuat tidak aktif Pada listing program while diatas merupakan pemanggilan fungsi cek_depan dan cek_samping. Kemudian kondisi if merupakan kondisi untuk menentukan jarak maksimum sensor. Untuk sensor depan diberi nilai <=2000 (dalam satuan millimeter) dan jika kondisi memenuhi syarat maka pada PORTB diberi nilai bit seperti diatas, dimana nilai 0 adalah pemberian nilai aktif pin portB dan delay merupakan pemberian jeda waktu (dalam millisecond), jadi bunyi buzzer akan aktif dan mati kemudian akan hidup kembali. Jika kondisi sensor depan tidak terpenuhi/terhalangi maka akan masuk ke kondisi ke dua yaitu pengecekan sensor samping dimana sensor diberi nilai <=1000 (dalam millisecond) dan PORTB akan diberi nilai bit seperti diatas. Dan jika kondisi sensor depan dan sensor samping tidak memenuhi syarat/terhalangi maka kondisi semua pin pada PORTB tidak aktif
4.2.2
Pengujian Rangkaian Tahap pengujian rangkaian ini merupakan tahapan yang sangat
menentukan tiap rangkaian untuk melakukan komunikasi dengan rangkaian yang lain sehingga menghasilkan keluaran yang sesuai dengan keinginan. Komunikasi yang dilakukan adalah bagaimana komponen mikrokontroler dapat menerima data yang dikirimkan sensor ultrasonik yang kemudian setelah data yang diterima dapat diproses oleh
84
mikrokontroler dan dikirimkan ke rangkaian buzzer dan LED sehingga menghasilkan keluaran dengan bunyi alarm dan led akan menyala. Adapun tahapan-tahapan dalam melakukan pengujian pada rangkaian ini adalah sebagai berikut: 1. Pertama : Tahapan pengujian yang pertama kali dilakukan adalah menguji rangkaian catu daya atau trafo yang berada dalam alat tersebut. Pengujian ini harus dilakukan pertama kali dikarenakan rangkaian ini memegang peranan yang sangat penting, dikarenakan semua rangkaian akan bekerja jika tegangan sesuai dengan tegangan kerja masingmasing komponen. 2. Kedua : Menghubungkan catu daya sebesar +5v dengan rangkaian mikrokontroler. Menghubungkan mikrokontroler dengan rangkaian output yaitu port B.0(depan) dan port B.1(samping) serta buzzer pada port B.2. Menghubungkan mikrokontroler dengan sensor ultrasonik yaitu pada port A.2 (sensor depan) dan port A.1 (sensor samping).
Gambar 4.1 Koneksi catu daya, led, buzzer, sensor ultrasonic dengan rangkaian mikrokontroler.
85
3. Ketiga : Tekan tombol switch pada posisi 1 atau on, agar tegangan yang diberikan oleh oleh catu daya dapat diterima oleh rangkaian mikrokontroler dan lampu indikator berwarna biru akan menyala yang menandakan bahwa rangkaian telah siap.
Gambar 4.2 Led indikator mikrokontroller
4. Keempat : Untuk memberikan masukkan atau input pada mikrokontroler, dapat dilakukan dengan cara menghalangi sensor ultrasonik dengan objek atau benda padat seperti logam, plasik, kayu dan lain sebagainya. Berikut penggalan listing program yang dipakai untuk menentukan jarak maksimum sensitifitas sensor dalam rangkaian : while (1) { cek_depan(); cek_samping(); // Menentukan jarak maksimum sensor if (jarak_depan<=2000) { PORTB=0B01011111; //portB.0 aktif LED dan portB.2 aktif buzzer delay_ms(1000); PORTB=0B11111111 delay_ms(850); PORTB=0B01011111 delay_ms(1000); } else if (jarak_samping<=1000) { PORTB=0B10011111; //portB.1 aktif LED dan portB.2 aktif buzzer }
86
else { PORTB=0B11111111; //semua pin pada port B tidak aktif } }
Listing program diatas menjelaskan bahwa batas maksimum sensor dapat mendeteksi objek benda padat pada jarak kurang atau sama dengan 2000 mm atau 2m untuk sensor depan dan 1000 mm atau 1m untuk sensor samping, jika pada jarak tersebut sensor terhalangi maka sinyal akan diberikan pada port B, dimana pin pada port B yang aktif adalah bit yang bernilai 0. Dan sebaliknya jika kondisi sensor tidak mendeteksi objek benda padat jarak yang ditentukan maka nilai bit pada port B bernilai 1 atau pin tersebut tidak aktif. Dan terdapat perbedaan bunyi buzzer pada sensor depan dan sensor samping dimana pada sensor depan akan berbunyi beep panjang dan kemudian ada jeda waktu mati kemudian bunyi beep kembali begitu seterusnya sampai keadaan sensor tidak terhalangi, berbeda dengan sensor samping sensor akan berbunyi beep panjang terus menerus sampai kondisi sensor tidak terhalangi. Perbedaan bunyi ini dimaksudkan untuk membedakan antara bunyi sensor depan dan sensor samping. 5. Kelima : Keadaan buzzer akan berbunyi dan led akan menyala jika sensor terhalang oleh objek benda padat.
87
Led indikator sensor depan
Led indikator sensor samping
Gambar 4.3 Led indikator sensor
4.3
Hasil Pengujian Setelah melakukan serangakaian proses pengujian yang sesuai dengan
skenario pengujian maka setelah itu dilakukan dokumentasi untuk mengetahui hasil dari pengujian. Langkah ini dilakukan mengetahui seberapa besar penyimpangan dan kesalahan yang disebabkan oleh programmer dalam menuliskan listing program maupun dalam mengkoneksi rangkaian. Hasil dari pengujian white box diatas tidak ditemukan kesalahan atau error dalam penulisan maupun dalam penempatan listing program serta kondisi pengulangan, secara keseluruhan program dapat berjalan sesuai dengan keinginan. Dan pada tabel 4.2 merupakan hasil pengujian black box, maka penulis melakukan proses pengisian pada tabel yang sebelumnya pada proses pengujian belum terisi status atau hasil dari pengujian tersebut.
88
No
Jenis Benda
Cara Pengujian
Jarak yang dihasilkan Sensor Depan
Samping
<= 2000 mm
<= 1000 mm
Buzzer
Hasil
dan LED
Pengujian
1.
Besi
Menghalangi sensor
193,4 cm
95,1 cm
Menyala
Sesuai
2.
Alumunium
Menghalangi sensor
193,8 cm
95,6 cm
Menyala
Sesuai
3.
Kayu
Menghalangi sensor
193,6 cm
95,2 cm
Menyala
Sesuai
4.
Plastik
Menghalangi sensor
193,3 cm
95,7 cm
Menyala
Sesuai
5.
Karet
Menghalangi sensor
193,4 cm
95,7 cm
Menyala
Sesuai
6.
Tangan
Menghalangi sensor
193,7 cm
95,5 cm
Menyala
Sesuai
7.
Kertas
Menghalangi sensor
193,5 cm
95,2 cm
Menyala
Sesuai
8.
Kaca
Menghalangi sensor
193,6 cm
95,3 cm
Menyala
Sesuai
9.
Batu
Menghalangi sensor
193,4 cm
95,2 cm
Menyala
Sesuai
Tabel 4.2 Hasil pengujian rangkaian