BAB IV IMPLEMENTASI DAN PENGUJIAN Setelah membuat analisa dan perancangan, maka hasil analisa dan perancangan tersebut di tindaklanjuti dengan implementasi dan pengujian pada system. 4.1
Implementasi Proses implementasi dari rancangan yang telah di buat di bagi menjadi 2
yaitu implementasi pada hardware dan implementasi pada software. 4.1.1
Implementasi pada Hardware Sebagai penjabaran dari rancangan hardware sebelumnya, maka dapat di
lakukan perakitan hardware dengan prosedure sebagai berikut: 1.
Siapkan semua bahan dan alat yang di butuhkan.
2.
Pasang Papan penyanggah sebagai alas tak bergerak di atas sanggahan dvd room.
3.
Pasang papan penyanggah di atas dvd room pada bagian yang bisa bergerak.
4.
Letakan papan project board di atas papan buatan yang tidak bisa bergerak, lalu di beri perekat/ lem di sudut-sudutnya agar tidak bergeser-geser.
5.
Pasang ring buatan di atas papan buatan yang bisa bergerak. Ring dietakan di bagian paling depan dan menghadap ke depan.
6.
Pasang sensor gerak di bawah papan buatan yang bisa bergerak, sejajar dengan ring namun lebih ke dalam serta menghadap ke depan.
7.
Pasang microkontroler arduino uno di atas project board
8.
Pasang driver icl293b motor di atas project board
9.
Sambungkan adaptor ke project board
10. Pasang LCD lalu sambungkan kabel vcc ke sumber tegangan (+) lalu ground dan RW ke ground(-) pada arduino uno. Penyambungan melalui project board.
11. Pada LCD, Sambungkan langsung pin-pin yang ada pada LCD ke arduino uno. Urutan penyambunganya adalah RS, E, D4, D5, D6, D7 pada LCD ke Port 7,8,9,10,11,12 digitalpada arduino uno. 12. Pada sensor gerak, sambungkan kabel vcc ke sumber tegangan (+) dan ground ke ground(-) pada arduino uno. Penyambungan melalui project board. 13. Sambungkan SID output pada sensor gerak ke arduino uno port 6 digital. 14. Sambungkan ke empat pin ground pada IC L293b driver motor ke ground dari adaptor melalui project board. 15. Sambungkan pin Vs dan Vss pada IC L293b driver motor ke Vcc dari adaptor melalui project board. 16. Sambungkan port output 1 dan output 2 pada IC L293b driver motor ke (+) dan (-) motor DC melalui project board. 17. Sambungkan pin enable1 pada IC L293b driver motor ke port 1 digital pada arduino uno melalui project board. 18. Sambungkan pin output1 pada IC L293b driver motor ke port 3 digital pada arduino uno melalui project board. 19. Sambungkan pin input2 pada IC L293b driver motor ke port 5 digital pada arduino uno melalui project board. 20. Pasang casing buatan. 21. Lakukan Penyesuaian yang di perlukan
4.1.2
Implementasi pada Software Setelah melakukan perakitan (assembly) pada hardware, maka hal
selanjutnya yang harus di lakukan adalah pengimplementasian rancangan pada software. Rancangan harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh komputer, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap perancangan yang secara teknis akan dikerjakan oleh programmer. Dalam hal ini pemrograman mickrokontroler arduino uno menggunakan software arduino uno. Berikut ini
adalah beberapa baris coding yang merupakan implementasi dari rancangan pada software.
Menggunakan LCD #include
//Pemanggilan Library LCD LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //Inisialisasi Pins LCD lcd.setCursor(0, 1); //Mengarahkan cursor LCD ke kolom 0, baris 1. lcd.print(" Basket Games"); //Menulis "Basket Games" pada LCD delay(3000); // Tahan 3 detik lcd.clear(); // Bersihkan LCD Baris coding tersebut terdapat di awal program, header merupakan header untuk memanggil Library LCD. Pada inisialisasi pin (12, 11, 10, 9, 8, 7), pin yang di masukan harus berurutan dari kanan ke kiri, dan harus sama dengan pin yang di pasang ke arduino uno. Peletakan karakter pada LCD memiliki aturan (kolom,baris), sehingga lcd.setCursor(0, 1); //Mengarahkan cursor LCD ke kolom 0, baris 1. Delay, digunakan untuk menahan berapa lama dalam mikrosecond program melakukan perintah sebelumnya. Menggerakan motor //inisialisasi pin motor int enablePin1 = 0; // pin enable motor int motor1Pin1 = 2; // pin motor int motor1Pin2 = 4; // pin motor
// inisialisasi sebagai pin output pinMode(enablePin1, OUTPUT); // pin enable output pinMode(motor1Pin1, OUTPUT); // pin1 motor output pinMode(motor1Pin2, OUTPUT); // pin2 motor output //menggerakan motor maju digitalWrite(enablePin1, HIGH); digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); //menggerakan motor mundur digitalWrite(enablePin1, HIGH); digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); Untuk dapat menggerakan motor, maka harus menginisialisasi pin-pin yang di gunakan terlebih dahulu, variabel enable pin 1 ke pin 0 pada arduino untuk enable, variable motor1pin1ke pin 2 pada arduino dan motor1pin2 ke pin 4 pada arduino. Untuk menggerakan motor, maka pin enable harus di beri nilai HIGH. Agar motor berjalan maju, motor1pin1 di beri nilai HIGH sehingga mengeluarkan arus positif (+) dan motor1pin2 di beri nilai LOW sehingga mengeluarkan arus negatif (-). Untuk membuat motor mundur, maka lakukan hal sebaliknya pada motor1pin1 dan motor1pin2 dan tetap memberi nilai HIGH pada enable.
Membaca Sensor const int pingpin = 6; // inisialisasi pin pada arduino uno long duration, inches; pinMode(pingpin, OUTPUT); digitalWrite(pingpin, LOW); delayMicroseconds(5); digitalWrite(pingpin, HIGH); delayMicroseconds(2); digitalWrite(pingpin, LOW); pinMode(pingpin, INPUT); duration = pulseIn(pingpin, HIGH); inches = duration / 175; delay(7); Cara kerja dari sensor ping ialah, sensor mengirim sinyal, kemudian menunggu apakah ada pantulan sinyal tersebut atau tidak. Jika ada pantulan, berarti ada objek yang melintas di depan sensor. Untuk menggunakan sensor, hal pertama yang harus di lakukan untuk menggunakan sensor adalah inisialisasi pin sensor ke arduino. Dalam program tersebut inisialisasi di lakukan dengan koding const int pingpin = 6, yang menunjukan output sensor berada di pin 6 pada arduino. Setelah itu, membuat sensor mengirim sinyal ke luar, dengan menset pin mode ke mode output, lalu memberi logika high selama 2 mikrosecond. Sebelum dan setelah memberi logika high, sensor harus terlebih dahulu di beri logika low, agar memastikan pulsa high bersih. Tahap selanjutnya, mengubah pinmode pada
arduino menjadi pin input. Setelah itu melakukan pembatasan jarak baca sensor dengan memanfaatkan pantulan gelombang pulse. Semakin lama batasan waktu pantulan yang di berikan, semakin jauh jarak baca sensor. Menjalankan timer #include <StopWatch.h> // Pemanggilan Library Stopwatch StopWatch sw_secs(StopWatch::SECONDS);// declarasi waktu sw_secs.start(); // jalankan waktu sw_secs.stop();//Stop waktu sw_secs.reset();//Reset Waktu Pada penggunaan timmer, library yang di gunakan adalah library Stopwatch. Library ini harus di deklarasikan terlebih dahulu agar dapat menggunakan timer. Kemudian menentukan satuan waktu yaitu detik/seconds. Setelah itu barulah waktu dapat di jalankan, di berhentikan, maupun di reset seperti saat menggunakan stopwatch yang sebenarnya. Library stopwatch ini harus di deklarasikan terlebih dahulu agar dapat menggunakan timer. Koneksi ke Komputer Serial.begin(9600); // Mulai sambungan serial //Jika koneksi serial berhasil if(Serial.available()) int terimadata=Serial.read(); //baca kiriman data dari komputer while(terimadata=='1') // jika kiriman data ‘1’ {
goto pemenang;} //pergi ke prosedure pemenang Serial.print(counter); // tampilkan score counting di serial else {mundur();}; // jula terima data bukan ‘1’, lakukan prosedure motor mundur Melakukan koneksi ke komputer memerlukan sambuangan serial antara komputer dan arduino uno. Dalam implementasinya, koding Serial.begin(9600) merupakan perintah untuk melakukan sambungan serial. Angka 9600 merupakan frekwensi sambungan pada arduino yang harus sama dengan frekwensi sambungan yang di setting di komputer.Untuk memastikan bahwa serial tersambung, maka di gunakan koding Serial.available(). untuk membaca data dari komputer, maka digunakan Serial.read(), sedangkan untuk mengirim data ke komputer, maka di gunakan koding Serial.print(). Menjalankan aturan main sw_secs.start(); // jalankan waktu jika sensor mendeteksi adanya bola, tambahkan score if(inches<2) { counter++; // jalnkan counting score lcd.setCursor(0,0); // set baris pertama di lcd lcd.print("Score:
"); // tampilkan kata di lcd
lcd.println(counter); // tampilkan score counting di lcd Serial.print(counter); // tampilkan score counting di serial
delay(800);
//tahan 800 microssecond
} // Pengecekan jika waktu habis if (sw_secs.elapsed()/30){ if (counter>=5) {//motor mundur digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); delay(400); digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, HIGH); sw_secs.stop();//Stop waktu sw_secs.reset();//Reset Waktu sw_secs.start();//Waktu Mulai level = level + 1;//Menaikan Level counter = 0; // kembali ke counting 0 } Else {
sw_secs.stop(); lcd.clear(); lcd.setCursor(0, 0); lcd.print(" GAME OVER "); lcd.scrollDisplayRight(); lcd.setCursor(0, 1); lcd.print(" Try Again!"); delay(3000); digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); delay(3000); lcd.clear(); for(;;) // matika semua proses } }
Dalam menjalankan aturan permainan tersebut, pertama-tama waktu harus di jalankan, dengan koding sw_secs.start(). Kemudian mendefinisikan apa yang terjadi jika sensor membaca bola. Setelah itu barulah aturan main di jalankan. Jika waktu permainan telah habis, maka akan di cek apakah score lebih besar samadengan dari lima atau tidak. Jika score lebih besar sama dengan lima, maka
motor akan mundur satu tingkat, level akan naik satu tingkat, serta waktu dan score di reset kembali ke awal. Namun jika score tidak lebihbesar samadengan nol, maka permainan akan berakhir dan program berhenti. Untuk mendukung koding program tersebut di butuhkan support koding untuk fungsi-fungsi lainnya seperti menjalankan motor, membaca sensor, dan koding lainnya. Implementasi pada software juga harus memperhatikan perancangan pada software yang telah di lakukan sebelumnya. Perancangan memberikan tata urutan yang harus di lakukan dalam penbuatan program. Sehingga penulisan program harus mengikuti prosedur/urutan yang telah di buat dalam perancangan software. Prosedur tersebut telah di buat sangat effisien dan dirancang agar tingkt terjadinya kesalahan menjadi sangat kecil sehingga hanya dengan mengikuti prosedure yang ada, sudah dapat menciptakan prototype modeling dan simulasi permainan bola basket dengan baik.
4.2
Hasil Implementasi Setelah dilakukan implementasi pada hardware dan software, maka
tampilan prototype modeling dan simulasi permainan lemparan bola basket yang sudah jadi, akan tampak seperti gambar 4.1, 4.1, dan 4.3. Gambar sebelah kiri menunjukan gambar yang terjadi pada alat/device, sedangkan gambar sebelah kanan menunjukan hal yang di tampilkan pada monitor. Ketiga gambar alat di ambil dari atas sehingga dapat terlihat perubahan jarak model ring basket menjadi lebih mundur pada setiap levelnya. Hal tersebut bisa di lihat jika memperhatikan perbandingan jarak alas merah dengan model ring basket.
4.2.1 Hasil implementasi level 1 Gambar 4.1 berikut menunjukan hasil implementasi pada level 1 yang terjadi pada device/alat, dan pada monitor PC/Laptop.
Gambar 4.1 Implementasi level 1 4.2.2 Hasil implementasi level 2 Gambar 4.1 berikut menunjukan hasil implementasi pada level 2 yang terjadi pada device/alat, dan pada monitor PC/Laptop.
Gambar 4.1 Implementasi level 2
4.2.3 Hasil implementasi level 3 Gambar 4.1 berikut menunjukan hasil implementasi pada level 3 yang terjadi pada device/alat, dan pada monitor PC/Laptop.
Gambar 4.1 Implementasi level 3
4.3
Pengujian Pengujian merupakan suatu proses yang bertujuan untuk memastikan
bahwa hasil prototype modeling yang telah dibuat sesuai dengan rancangan yang telah dibuat. 4.3.1
Skenario dan hasil pengujian Setelah melakukan berbagai skenario dan pengujian pada prototype
modeling dan simulasi permainan lemparan bola basket, hasil yang di dapat dari pengujian tersebut dan skenarionya dapat di lihat pada table 4.1
Tabel 4.1 Skenario dan hasil pengujian
No
1
2
3
Leve l
1
2
3
Skenario Pengujian
Durasi Pengujian
Bola masuk ke dalam ring kurang dari 5 kali
30 detik
Bola masuk ke dalam ring 5 kali
30 detik
Bola masuk ke dalam ring lebih dari 5 kali
30 detik
Bola masuk ke dalam ring kurang dari 5 kali
30 detik
Bola masuk ke dalam ring 5 kali
30 detik
Bola masuk ke dalam ring lebih dari 5 kali
30 detik
Bola masuk ke dalam ring kurang dari 5 kali
30 detik
Bola masuk ke dalam ring 5 kali Bola masuk ke dalam ring lebih dari 5 kali
Hasil yang di harapkan Ring basket mundur full dan LCD display "Game Over" Ring basket mundur setengah dan LCD display "Next Level 2" Ring basket mundur setengah dan LCD display "Next Level 2" Ring basket mundur full dan LCD display "Game Over" Ring basket mundur setengah dan LCD display "Next Level 3" Ring basket mundur setengah dan LCD display "Next Level 3" Ring basket mundur full dan LCD display "Game Over"
Hasil pengujian Sesuai
Sesuai
Sesuai
Sesuai
Sesuai
Sesuai
Sesuai
30 detik
Ring basket mundur full dan LCD display "Congratulation"
Sesuai
30 detik
Ring basket mundur full dan LCD display "Congratulation"
Sesuai
4.3.2
Verifikasi hasil pengujian Berikut merupakan analisis hasil pengujian dari 9 skenario pada 3 level
yang berbeda yang telah diuji: 1. Prototype modeling dan simulasi permainan lemparan bola basket berhasil menciptakan 3 level kesulitan pelemparan, yaitu pelemparan jarak pendek, jarak menengah, dan jarak jauh. 1. Apabila dalam waktu 30 detik pemain dapat memasukan bola 5 kali atau lebih, maka ia akan ke tingkat berikutnya, jika tidak berhasil maka akan game over dan permainan selesai. 2. Apabila pemain berada di level tertinggi (level 3) dan berhasil memasukan bola 5 kali atau lebih, maka pemain akan dinyatakan menang dan permainan selesai.