• Tidak ada hasil yang ditemukan

Gambar Implementasi Halaman Pembuka 34

N/A
N/A
Protected

Academic year: 2021

Membagikan "Gambar Implementasi Halaman Pembuka 34"

Copied!
22
0
0

Teks penuh

(1)

34 BAB IV

IMPLEMENTASI DAN PENGUJIAN

Langkah selanjutnya setelah melakukan analisis dan perancangan adalah implementasi dan pengujian. Implementasi merupakan perancangan aplikasi yang dapat dimengerti oleh mesin dengan spesifikasi perangkat keras dan perangkat lunak yang digunakan. Tahap pengujian terfokus pada fungsi-fungsi perangkat lunak yang memastikan bahwa seluruh pernyataan telah sesuai dengan apa yang diinginkan.

4.1 IMPLEMENTASI PROGRAM ANTARA MUKA

Tampilan pertama kali yang muncul ketika aplikasi dijalankan adalah halaman pembuka. Menu Utama aplikasi menampilkan lima tombol menu utama.

Implementasi dari keseluruhan sistem ini menggunakan bahasa pemograman java. Bab ini akan membahas tentang beberapa proses utama yang ada di sistem yang menjadi titik berat penulisan tugas akhir ini.

4.2 IMPLEMENTASI ANTARMUKA

Implementasi antaramuka merupakan hasil dari perancangan user interface yang sebelumnya sudah dilakukan pada tahap perancangan. Pada implementasi antarmuka akan menampilkan kode program dan juga hasil implementasi rancangan ke aplikasi.

4.2.1 Implementasi Halaman Pembuka

Pada halaman ini menampilkan halaman pembuka yang disertai dengan progress bar.

(2)

35 4.2.2 Implementasi Halaman Menu Utama

Pada halaman ini menampilkan halaman menu utama, pada halaman ini terdapat 5 buah tombol yang terdiri dari tombol set degree, tombol Buka Pintu, tombol Tutup Pintu , Tombol Stop serta tombol Exit. Setiap tombol yang ada memiliki fungsinya masing-masing untuk menggerakkan prototype yang telah dibuat. Berikut ini tampilan halaman utama setelah tombol-tombol tersebut ditekan, antara lain :

1) Tampilan Halaman Menu Buka Pintu

(3)

36 3) Tampilan Halaman Menu Stop

(4)

37

5) Tampilan Halaman Tutup Pintu melalui Ponsel

(5)

38 7) Tampilan Menu Set Degree

4.3 IMPLEMENTASI KODE PROGRAM TAMPILAN

Berikut ini merupakan kode program untuk mengimplementasikan tampilan yang akan di buat di aplikasi.

4.3.1 Kode Activity_Halaman Pembuka

Untuk kode activity program Tampilan halaman pembuka, antara lain : Syntax yang digunakan :

createSplashScreen();

SwingUtilities.invokeLater(new Runnable() { public void run() {

splashScreen.show(); } }); initComponent(); try { Thread.sleep(3000); } catch (InterruptedException e) { }

(6)

39

hideSplash(); short binernol =0;

parallelJava = new ParallelPort(); parallelJava.output(addr,binernol); actiondoIt = new ActionDoIt(); actiondoIt.start();

show(); }

public ImageIcon createImageIcon(String filename, String description) { String path = "/resources/" + filename;

return new ImageIcon(getClass().getResource(path)); }

public void hideSplash() { splashScreen.setVisible(false); splashScreen = null;

splashLabel = null; }

public void createSplashScreen() {

splashLabel = new JLabel(createImageIcon("Splash.jpg", "Splash.accessible_description"));

JPanel test = new JPanel(new BorderLayout()); progressBar = new JProgressBar(0,100); test.add(splashLabel,BorderLayout.CENTER); test.add(progressBar,BorderLayout.SOUTH); splashScreen = new JWindow();

splashScreen.getContentPane().add(test); splashScreen.pack();

splashScreen.setSize(500,278);

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = splashScreen.getSize();

if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height;

(7)

40 }

if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; }

Tampilan ini dibuat menggunakan splash screen dan sebagai loadingnya menggunakan progress bar. Selain itu, tampilannya menggunakan thread sleep. Thread sleep ini yang menentukan lamanya waktu jeda ketika tampilan loading pada halaman progress bar ini berhenti.

4.3.2 Kode Activity_Halaman Pembuka Serta Halaman Menu Utama Berada Pada Tengah Layar Monitor

Berikut ini merupakan syntax yang digunakan untuk menampilkan komponen-komponen yang ada di dalam tampilan GUI serta membuat posisi tampilan GUI berada di tengah layar monitor:

splashScreen.setLocation( (screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);

timePro = new javax.swing.Timer(10, new ActionListener(){

public void actionPerformed (ActionEvent evt){ ///System.out.println("i =" + i );

//File aa = new File(files[i]); //if(!aa.exists()){

// timePro.stop();

// System.out.println("File " + files[i] + " tidak ada"); // System.exit(0); //} posisi++; progressBar.setValue(posisi); if(posisi>=100){ timePro.stop(); } ///i = i + 1; //if(i>1){ // i=0; //} } }); timePro.start(); }

(8)

41

/// metode atau fungsi untuk menampilkan komponen-komponen public void initComponent(){

header1 = new JLabel("Sistem Pengendali Pintu Gerbang");

header2 = new JLabel("Via Bluetoth dengan Menggunakan HandPhone"); Font headerFont = new Font("Verdana",Font.BOLD,18);

Font title = new Font("Verdana",Font.PLAIN,12); header1.setFont(headerFont);

JPanel header = new JPanel (new BorderLayout()); header.add(header1,BorderLayout.NORTH); header.add(header2,BorderLayout.SOUTH);

header.setBorder(new CompoundBorder(new TitledBorder(null,"", TitledBorder.LEFT,TitledBorder.TOP),new EmptyBorder(5,5,5,5))); JPtitle1 = new JPanel(new BorderLayout());

JPtitle1.setBorder(new CompoundBorder(new TitledBorder(null,"Nama File Input", TitledBorder.LEFT,TitledBorder.TOP),new EmptyBorder(5,5,5,5)));

dataInput = new JTextField(25); dataInput.setText("null"); dataInput.disable();

JPtitle1.add(dataInput,BorderLayout.CENTER); JPtitle2 = new JPanel(new BorderLayout());

JPtitle2.setBorder(new CompoundBorder(new TitledBorder(null,"Keterangan Gambar",

TitledBorder.LEFT,TitledBorder.TOP),new EmptyBorder(5,5,5,5))); actInput = new JTextField(25);

actInput.setText("null"); actInput.disable();

JPtitle2.add(actInput,BorderLayout.CENTER); JPtitle3 = new JPanel(new BorderLayout());

JPtitle3.setBorder(new CompoundBorder(new TitledBorder(null,"Derajat ", TitledBorder.LEFT,TitledBorder.TOP),new EmptyBorder(5,5,5,5))); out1 = new JTextField(25);

out1.setText("" +degree); out1.disable();

JPtitle3.add(out1,BorderLayout.CENTER); JPtitle4 = new JPanel(new BorderLayout());

JPtitle4.setBorder(new CompoundBorder(new TitledBorder(null,"Nilai Biner", TitledBorder.LEFT,TitledBorder.TOP),new EmptyBorder(5,5,5,5)));

out2 = new JTextField(25); out2.setText("0");

out2.disable();

JPtitle4.add(out2,BorderLayout.CENTER);

JPanel inBody = new JPanel(new GridLayout(2,2,3,3)); inBody.add(JPtitle1);

inBody.add(JPtitle2); inBody.add(JPtitle3); inBody.add(JPtitle4);

JPanel footer =new JPanel(new FlowLayout(FlowLayout.RIGHT,10,10)); exitBT = new JButton("Exit");

bukaBT = new JButton("Buka Pintu"); tutupBT = new JButton("Tutup Pintu");

(9)

42 exitBT.addActionListener(this);

bukaBT.addActionListener(this); tutupBT.addActionListener(this);

footer.setBorder(new CompoundBorder(new TitledBorder(null,"", TitledBorder.LEFT,TitledBorder.TOP),new EmptyBorder(5,5,5,5))); footer.add(bukaBT);

footer.add(tutupBT); footer.add(exitBT);

JPanel body = new JPanel(new BorderLayout());

body.setBorder(new CompoundBorder(new TitledBorder(null,"", TitledBorder.LEFT,TitledBorder.TOP),new EmptyBorder(5,5,5,5))); body.add(inBody, BorderLayout.CENTER);

mainPanel = new JPanel(new BorderLayout(5,5) ); mainPanel.add(header,BorderLayout.NORTH); mainPanel.add(body,BorderLayout.CENTER); mainPanel.add(footer,BorderLayout.SOUTH);

super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); super.setSize(500,300);

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = super.getSize();

if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; }

Semua komponen-komponen yang ada dalam tampilan GUI seperti gambar di atas dibuat dengan menggunakan dengan syntax tersebut.

4.3.3 Kode Activity_Menu utama Saat Pintu Gerbang Terbuka, Tertutup Maupun Terhenti Menggunakan Aplikasi Java

Syntax yang digunakan untuk ketiga tampilan tersebut : public void actionPerformed(ActionEvent e) {

if(e.getSource()==bukaBT){ AlarmOff();

dataInput.setText("null"); //data input ga berubah setingannya dibuat null actInput.setText("Buka Pintu"); disableBT(); TimerBukaPintu.start(); TimerTutupPintu.stop(); try { CheckTutupPintuClass.stop();

(10)

43 }

catch (Exception ex){ } }else if(e.getSource()==tutupBT){ AlarmOff(); dataInput.setText("null"); actInput.setText("Tutup Pintu"); disableBT(); TimerTutupPintu.start(); TimerBukaPintu.stop(); try { CheckTutupPintuClass.stop(); AutoCloseClass.stop(); }

catch (Exception ex){ } }else if(e.getSource()==pauseBT){ AlarmOff(); dataInput.setText("null"); actInput.setText("Stop Pintu"); enableBT(); TimerBukaPintu.stop(); TimerTutupPintu.stop(); try { CheckTutupPintuClass.stop(); AutoCloseClass.stop(); }

catch (Exception ex){ }

}else if(e.getSource()== SetDegreeBT){ if (OpenSetDegree == false){

OpenSetDegree = true; }else{

(11)

44 }

}else if(e.getSource()== exitBT){ System.exit(0);

}

}Penjelasan dari syntax di atas :

Ketika tombol buka ditekan maka akan menjalankan timer 1 dan memanggil kelas public Action bukaPintu(). Setelah itu, pada kelas publik Action bukapintu() akan diatur berapa derajat motor tersebut dapat bergerak dan pengaturan pemberian bit pada simulasinya. Begitu juga sebaliknya, jika tombol tutup ditekan maka akan menjalankan timer 2 dan memanggil kelas public Action tutupPintu(). Setelah itu, pada kelas publik Action tutuppintu() akan diatur berapa derajat biner sehingga pintu dapat menutup.

4.3.4 Kode Activity_Menu Utama Saat Pintu Gerbang Terbuka, Tertutup Maupun Terhenti Menggunakan Ponsel

Syntax yang digunakan untuk ketiga tampilan tersebut: private class ActionDoIt extends Thread {

String NamaFileBuka = "buka.vcf"; //buka pintu String NamaFileTutup = "tutup.vcf"; //tutup pintu String NamaFilePause = "Pause.vcf"; //Stop pintu File FileBuka = new File(NamaFileBuka); //buka pintu File FileTutup = new File(NamaFileTutup); //tutup pintu File FilePause = new File(NamaFilePause);//Stop pintu public void run(){

for(;;){ //perulangan tak terbatas

if(FileBuka.exists()){ //1# Jika FileBuka ada

System.out.println("Berkas " + NamaFileBuka + " ada"); dataInput.setText(NamaFileBuka);

actInput.setText("Buka Pintu"); disableBT();

TimerBukaPintu.start(); TimerTutupPintu.stop();

(12)

45 try {

CheckTutupPintuClass.stop(); }

catch (Exception ex){ }

}else if(FileTutup.exists()) { // isi file File tutup ini a/ tutup.vcf System.out.println("Berkas " + NamaFileBuka + " ada"); dataInput.setText(NamaFileTutup); actInput.setText("Tutup Pintu"); disableBT(); TimerTutupPintu.start(); TimerBukaPintu.stop(); FileTutup.delete();// idem try { CheckTutupPintuClass.stop(); AutoCloseClass.stop(); }

catch (Exception ex){ }

}else if(FilePause.exists()) { // isi file File stop ini a/ pause.vcf System.out.println("Berkas " + NamaFilePause + " ada"); dataInput.setText(NamaFilePause); actInput.setText("Pause Pintu"); disableBT(); TimerTutupPintu.stop(); TimerBukaPintu.stop(); FilePause.delete();// idem try { CheckTutupPintuClass.stop(); AutoCloseClass.stop(); }

catch (Exception ex){ }

(13)

46

System.out.println("Berkas tidak ada / sudah dihapus"); }

try {//

Thread.sleep(1000);// tiap satu detik dia ngecek file ada yg baru apa ga? } catch (InterruptedException e) {

System.out.println("erorr : " + e); }

} }

}//akhir dari class ActionDoIt

Selama program ini dijalankan maka akan terus mengecek file yang dikirim melalui ponsel. Ketika ponsel mengirim file berupa phone book yang berupa buka.vcf kemudian program java akan menghapus file tersebut dan menjalankan class bukaPintu() yang berisi syntax untuk membuka pintu gerbang tersebut dan Ketika program menerima file yang berisi tutup.vcf maka program java akan menghapus file tersebut dan menjalankan class tutupPintu() yang berisi syntax untuk menutup pintu gerbang tersebut sehingga dapat tertutup. Setelah ini, syntax pemberian bit pada simulasi sama dengan syntax untuk mengakses pintu gerbang tersebut menggunakan cara manual.

4.3.5 Kode Activity_Menu Utama Saat menjalankan Timer Otomatis Ketika User Lupa Menutup Pintu Gerbang

Selain itu, dalam program aplikasi yang telah dibuat diberikan juga waktu delay selama 30 detik yang hanya berjalan ketika pintu gerbang dalam keadaan terbuka. Hal ini berlaku baik pengaksean melalui ponsel maupun pengaksesan secara manual.

Syntax yang digunakan :

public class lihatkondisi extends Thread {

javax.swing.Timer timerBuka; //timerBuka : yang memberikan waktu tunda proses dari buka pintu

javax.swing.Timer timerCheck,timerCheckJalan; //timerTutup : yang memberikan waktu tunda proses dari tutup pintu

(14)

47

public void run(){

timerCheck = new javax.swing.Timer(1000,checkPintu()); timerCheckJalan = new javax.swing.Timer(20,checkPintuJalan());

timerCheck.start(); }

public Action checkPintu() { //pelaksanaan waktu tunda selama 30 detik return new AbstractAction("text load action") {

public void actionPerformed (ActionEvent e) { if(reX!=waktuLama) {

reX = reX + 1;

System.out.println("Pengecekan detik ke-" + reX); }else { if(kondisiPintu==true){ disableBT(); timerCheckJalan.start(); kondisiPintu = false; }else{ enableBT(); kondisiPintu = true; timerCheck.stop(); } } } }; }

4.4 PENGUJIAN DENGAN BLACKBOX

Pengujian blackbox atau blackbox testing adalah salah satu metode pengujian perangkat lunak yang berfokus pada sisi fungsionalitas, khususnya pada input dan output aplikasi apakah sudah sesuai dengan apa yang diharapkan atau belum. Tahap pengujian atau testing merupakan salah satu tahap yang harus ada dalam sebuah siklus pengembangan perangkat lunak selain tahap perancangan atau desain.

(15)

48

4.5 HASIL PENGUJIAN BLACKBOX PADA APLIKASI

No .

Skenario

Pengujian Kasus Uji

Hasil yang

Diharapkan Hasil Pengujian Kesimpulan

1 Menampilkan Halaman Pembuka Klik untuk Membuka Aplikasi Java Menampilkan Halaman Pembuka Halaman pembuka progress bar berhasil ditampilkan Sesuai harapan 2 Menjalankan menu utama Tampilkan menu utama Menampilkan menu utama Halaman menu utama berhasil ditampilkan Sesuai harapan 3 Menampilkan Buka Pintu Gerbang Klik tombol Buka pintu Menampilkan gerakan pintu gerbang ke kanan Halaman menu Buka pintu berhasil ditampilkan Sesuai harapan 4 Menampilkan Tutup Pintu Gerbang Klik tombol Tutup Pintu Menampilkan gerakan pintu gerbang ke kiri Halaman sub menu Tutup pintu berhasil

ditampilkan

Sesuai harapan

5 Menampilkan

Tombol Stop Klik Stop

Menampilkan kondisi pintu yang berhenti bergerak Halaman sub menu Stop berhasil ditampilkan Sesuai harapan 6 Menampilkan Tombol Seet Degree Klik tombol Seet degree Menampilkan pergerakan bukaan pintu sesuai dengan keinginan user Halaman menu seet degree berhasil ditampilkan Sesuai harapan 7 Menampikan Tombol exit Klik tombol exit Keluar dari program aplikasi java Keluar dari program aplikasi java Sesuai harapan

Tabel 4.5.1 Tabel Pengujian Blackbox

4.5.2 Analisis Hasil Pengujian Aplikasi Java

Setelah melakukan pengujian terhadap aplikasi menggunakan metode pengujian black box yang sudah di lakukan, dari hasil pengujian aplikasi semua fungsi dan tombol dan fungsi sudah sesuai dengan apa yang diharapkan.

(16)

49 No

. Hasil Tampilan yang Diharapkan Kesimpulan

1 Sesuai Harapan 2 Sesuai Harapan

(17)

50 3 Sesuai Harapan 4 Sesuai Harapan

(18)

51 5 Sesuai Harapan 6 Sesuai Harapan

(19)

52 7 Sesuai Harapan 8 Sesuai Harapan

(20)

53 9

Sesuai Harapan

Table 4.5.2 Analisa Hasil Pengujian

4.6 Pengujian Rangkaian Driver Motor Stepper

Rangkaian driver merupakan rangkaian yang dapat menggerakkan beban yang berupa motor stepper. Pada rangkaian ini yang akan diuji adalah besarnya tegangan pada transistor yang berfungsi sebagai saklar dan beroperasi dalam dua keadaan yaitu kondisi saturasi (saklar tertutup) dan kondisi cut off (saklar terbuka). Cara pengukuran dapat di lihat pada gambar 4.6.

Gambar 4.6 Cara Pengukuran Tegangan Pada Driver Motor Stepper Volt meter

(21)

54

Untuk pengujian motor stepper, yang akan di ukur di sini adalah tegangan keluaran yang dihasilkan oleh motor stepper itu sendiri yang mempengaruhi kekuatan kumparan pada motor stepper setelah di hubungkan dengan seluruh rangkaian. Dan kecepatan pergerakan pada motor stepper setelah menerima pulsa data berupa tegangan dari driver motor stepper, sesuai dengan waktu tunda pemberian pulsa data.

4.7 Analisis Hasil Pengujian Prototype

Pengujian program aplikasi simulasi pengendali pintu gerbang melalui Bluetooth pada ponsel dilakukan dengan tujuan untuk mengetahui apakah setiap menu yang ada pada programnya dan alat yang telah dibuat dapat berfungsi dengan baik atau tidak. Modul- modul yang diuji adalah modul pengiriman file, modul kontrol program bluetooth dan modul driver motor stepper.

Walaupun ketiga modul ini masing-masing berdiri sendiri, namun pengujian dari ketiga modul ini harus dilakukan secara bersamaan, karena meskipun ketiga modul ini berdiri sendiri tetapi semuanya saling berhubungan. Jadi pengujian tidak dapat dilakukan permodul, karena pengujian satu modul juga akan mempengaruhi modul lainnya. Pengujian dilakukan satu persatu dalam semua kondisi yang mungkin terjadi.

Berdasarkan pengujian yang dilakukan dapat diketahui bahwa pintu gerbang tersebut bergerak bersamaan dengan gerakan motor stepper. Aplikasi java yang dibuat dapat menggerakkan motor stepper sebanyak 4 kali putaran sehingga pintu gerbang tersebut juga ikut bergerak sejauh 22,4 Cm. Dapat diketahui bahwa :

Satu step pergerakan motor stepper = 1,8

Berdasarkan rumus toeri keliling lingkaran gear pada motor stepper :

Keliling lingkaran = 2 x Phi x jari-jari Diketahui r = 0,9 Cm Keliling lingkaran = 2 x 3,14 x 0,9 = 5,6 Cm

Untuk menutup pintu gerbang membutuhkan jarak = 22,4 Cm. Oleh karena itu, untuk jarak tersebut dibutuhkan jumlah putaran pada gear motor stepper :

Jarak / keliling lingkaran = 22,4 / 5.6 = 4 putaran

Berdasarekan teori di atas, untuk membuka atau menutup pintu gerbang dibutuhkan 4 kali putaran dari gear motor stepper, maka step yang dibutuhkan oleh motor stepper ;

Diketahui 1 step = 1,8 1putaran = 360 1 putaran = 360 / 1,8 = 200 step Maka jumlah step 4 putaran :

(22)

55 4 putaran = 4 x 200 step = 800 step

Jumlah derajat untuk melakukan 4 putaran sebesar : = jumlah step 4 putaran x 1,8

= 800 step x 1,8 = 1440

Untuk membuka pintu sejauh 5,6 Cm maka dibutuhkan bukaan, sebesar : 200 step x 100 % = 25 %

800 step

Untuk membuka pintu sejauh 11,2 Cm maka dibutuhkan bukaan, sebesar : 400 step x 100 % = 50 %

800 step

Untuk membuka pintu sejauh 16,8 Cm maka dibutuhkan bukaan, sebesar : 600 step x 100 % = 75 %

800 step

Untuk membuka pintu sejauh 22,4 Cm maka dibutuhkan bukaan, sebesar : 800 step x 100 % = 100 %

Gambar

Gambar 4.2.1 Implementasi Halaman Pembuka
Tabel 4.5.1 Tabel Pengujian Blackbox
Table 4.5.2 Analisa Hasil Pengujian

Referensi

Dokumen terkait

Hasil dari penelitian ini diharapkan dapat memberikan informasi dan manfaat yang berguna bagi pihak-pihak berikut: (a) Perusahaan (Pabrik Minyak Goreng Kelapa di

Secara keilmuan, penelitian ini diharapkan dapat menggali, mengkaji dan mengorganisasikan mengenai pembelajaran aktif berbasis masalah (problem based learning) untuk

Dari telaah yang telah dilakukan terhadapa pemikiran Amin tentang riwayat mudallasīn paling tidak kritiknya sampai pada simpulan, yaitu: (1) Ada inkonsistensi dan gap

Melihat kondisi masyarakat seperti itu perusahaan-perusahaan penghasil minyak goreng mulai berlomba-lomba untuk mengeluarkan produk minyak goreng dalam bentuk kemasan

The name of the male turtle is Donatello and the female one is called Rafael. It is quite easy to keep them. They can survivewithoutfood for about two months. However, they need

Hasil penelitian menunjukkan bahwa ada lima sikap ilmiah yang dikembangkan di kelas V dalam pembelajaran IPA di MI Ma’arif NU 01 Pasir Kulon, diantaranya yaitu sikap ingin

memiliki budaya sekolah yang bersih, bebas asap rokok, bebas kekerasan, narkotika, dan rindang mempunyai andil keberhasilan menanamkan QLODL nilai karakter bangsa pada

Hal tersebut dapat disebabkan oleh dari beberapa karakteristik yang dimiliki oleh individu dengan tipe kepribadian Introvert, seperti cenderung tertutup, pemalu dan juga tidak