NURUL USWAH AZIZAH-FST

advertisement
RANCANG BANGUN PROTOTIPE ALAT DETEKSI JARAK DENGAN
SENSOR PING PADA MOBIL PENGANGKUT BARANG BERBASIS
ARDUINO
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar
Sarjana Komputer
Fakultas Sains Dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh :
Nurul Uswah Azizah
109091000036
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UIN SYARIF HIDAYATULLAH JAKARTA
2014 M / 1435
i
ii
iii
LEMBAR PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR –
BENAR HASIL KARYA SAYA SENDIRI YANG BELUM PERNAH
DIAJUKAN
SEBAGAI
SKRIPSI
ATAU
KARYA
ILMIAH
PADA
PERGURUAN TINGGI ATAUPUN LEMBAGA MANAPUN.
Jakarta, Juni 2014
Nurul Uswah Azizah
NIM. 109091000036
iv
ABSTRAK
Nurul Uswah Azizah – 109091000036, Rancang Bangun Prototipe Alat Deteksi
Jarak pada Mobil Pengangkut Barang Berbasisi Arduino. Dibimbing oleh Nenny
Anggraini, S.Kom,MT dan Feri Fahrianto, M,Sc.
Sistem pergudangan erat kaitannya dengan proses pemindahan dan
penempatan komponen dan produk dari dan menuju tempat tertentu. Pada
umumnya proses pemindahan ini menggunakan mobil pengangkut barang atau
forklift. Forklift dapat membantu manusia mengangkut barang dengan bobot berat
dan ukuran yang cukup besar. Akan tetapi, penggunaan forklift memiliki beberapa
kelemahan seperti proses kerja yang lambat dan seringnya terjadi kecelakaan
kerja, tingkat kerusakan barang yang tinggi karena barang yang diangkut
menghalangi penglihatan yang dapat menyebabkan terbenturnya barang yang
sedang diangkut. Mengutip dari website www.safetyposter.co.id bahwa jumlah
kecelakaan kerja di Amerika pada sektor transportasi dan pergudangan tahun 2010
terjadi 661 kasus dan 30 % di akibatkan karena kecelakaan pada forklift. Oleh
karena itu, penulis mencoba memberikan solusi atas permasalahn tersebut dengan
membuat sebuah prototipe alat deteksi jarak menggunakan mikrikontroler
arduino. Alat yang penulis rancang menggunakan sensor PING dan mini servo
sebagai input untuk pembacaan jarak dan penentu sudut, serta buzzer dan
pemrograman Java sebagai output yang menghasilkan indikator suara beserta
grafik polar. Penulis menggunakan metode studi lapangan dan studi literatur
untuk proses pengumpulan data penelitian sedangkan dalam pengembangan
sistem penulis menggunakan metode prototipe. Dari hasil penelitian ini dapat
disimpulkan bahwa pembacaan jarak oleh sensor PING bekerja dengan baik,
namun masih terdapat jeda antara pergerakan pengangkut barang dengan jarak
yang tampil di layar.
Kata Kunci
: Mobil Angkut, Deteksi Jarak, Prototipe,
Sensor PING
v
Arduino,
KATA PENGANTAR
Segala puji syukur penulis panjatkan kehadirat Allah SWT, yang telah
melimpahkan rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan
Skripsi ini dengan judul “Rancang Bangun Prototipe Alat Deteksi Jarak pada
Mobil Pengangkut Barang Berbasis Arduino”. Maksud utama dari penulisan
Skripsi ini adalah sebagai syarat untuk memperoleh gelar Sarjana Strata Satu (S1)
di Program Studi Teknik Informatika Fakultas Sains dan Teknologi UIN Syarif
Hidayatullah Jakarta.
Mengingat keterbatasan kemampuan penulis, tentu saja skripsi ini masih
jauh dari kesempurnaan dan masih banyak kekurangan. Hal ini disebabkan
kemampuan penulis yang terbatas dan kurangnya pengalaman dalam penulisan
baik materi dan teknik. Oleh karena itu kritik yang sifatnya membangun dan saran
demi sempurnanya skripsi ini penulis terima dengan senang hati.
Dalam penyusunan skripsi ini, penulis mendapat bimbingan dan bantuan
baik dari segi moral dan material dari berbagai pihak. Oleh karena itu, pada
kesempatan ini penulis mengucapkan terima kasih kepada :
1. Bapak Dr. Agus Salim, M. Si selaku Dekan Fakultas Sains dan Teknologi.
2. Ibu Nurhayati, Ph.D selaku Ketua Program Studi Teknik Informatika dan
Bapak Hendra Bayu Suseno M.Kom, selaku Sekretaris Program Studi Teknik
Informatika.
3. Ibu Nenny Anggraini, S.Kom, MT, selaku Dosen Pembimbing I dan Bapak
Feri Fahrianto,M,Sc selaku Dosen Pembimbing II Fakultas Sains dan
vi
Teknologi UIN Syarif Hidayatullah Jakarta yang secara bijaksana dan
kooperatif telah memberikan bimbingan, bantuan, dan dukungan baik secara
moral maupun teknis dan telah memberikan semangat, dukungan, dan
motivasi selama melakukan studi.
4. Bapak Hata Maulana, S.Si, MTI selaku Dosen Penguji I dan Ibu Fenty Eka
Muzayyana A, M.kom selaku Dosen Penguji II Fakultas Sains dan Teknologi
UIN Syarif Hidayatullah Jakarta yang secara bijaksana dan kooperatif telah
menguji skripsi saya, memberikan arahan dan saran serta bimbingan perbaikan
serta dukungan moral maupun teknis.
5. Mamah, Bapak serta kedua Kakak tersayang dan keponakan tercinta yang
selalu memberikan doa, dukungan semangat dan motivasi dalam segala hal
hingga terselesaikannya skripsi ini. Love You All.
6. Sahabat – sahabatku, Fitri Sani Najiha, Cholifah Nur Asri, Devi Tri Lestari,
Gita Cipta Puspita, Joko Budi Pratomo, Nurul Fauziah, dan semua teman –
teman TI angkatan 2009, yang telah memberikan semangat, dukungan, dan
bantuan kepada penulis selama kuliah serta hingga skripsi ini selesai.
Perjuangan belum selesai kawan!
7. Reza Firdaus Machfudz yang selalu memberikam dukungan dan semangat
kepada penulis, serta menjadi pendengar setia cerita dalam suka maupun duka.
8. Semua pihak yang secara langsung maupun tidak langsung membantu penulis
selama kegiatan hingga penyelesaian skripsi ini.
Pada kesempatan ini penulis juga memohon maaf yang sebesar – besarnya
dan menyadari bahwa skripsi ini belumlah sempurna, maka penulis sangat
vii
mengharapkan kritik dan saran dari pembaca dan pihak lain untuk penulisan
skripsi selanjutnya yang lebih baik.
Akhir kata penulis berharap agar skripsi ini dapat bermanfaat bagi
pembaca sekalian. Amiin
Jakarta, Juli 2014
Nurul Uswah Azizah
109091000036
viii
DAFTAR ISI
Halaman
Halaman Judul...........................................................................................
i
Halaman Pengesahan Pembimbing ..........................................................
ii
Lembar Pengesahan Ujian.........................................................................
iii
Lembar Pernyataan....................................................................................
iv
Abstrak ......................................................................................................
v
Kata Pengantar ..........................................................................................
vi
Daftar Isi....................................................................................................
ix
Daftar Gambar...........................................................................................
xiv
Daftar Tabel ..............................................................................................
xvi
Daftar Lampiran ........................................................................................
xvii
BAB I PENDAHULUAN........................................................................
1
1.1. Latar Belakang .............................................................................
1
1.2 Rumusan Masalah .........................................................................
4
1.3 Batasan Masalah............................................................................
4
1.4 Tujuan Penelitian .........................................................................
5
1.5 Manfaat Penelitian ........................................................................
5
1.6 Metodologi Penelitian ...................................................................
6
ix
1.7 Sistematika Penulisan ...................................................................
7
BAB II LANDASAN TEORI .................................................................
8
2.1 Pengertian Rancang Bangun .......................................................
8
2.2 Prototipe ........................................................................................
9
2.2.1 Definisi Prototipe .................................................................
9
2.2.2 Karakteristik Metode Prototipe ............................................
12
2.2.3 Keunggulan dan Kelemahan Metode Prototipe ...................
13
2.3 Alat Deteksi Jarak .........................................................................
14
2.3.1 Pengertian Sensor.................................................................
14
2.3.2 Sensor Ultrasonik .................................................................
15
2.3.3 Sensor Jarak Ultrasonik PING .............................................
17
2.3.4 Sensor Jarak Ultrasonik Devantech SRF05 .........................
18
2.3.4 Prinsip Kerja Sensor.............................................................
19
2.4 Mobil Pengangkut (Material Transport) ......................................
20
2.4.1 Pemindahan Dalam Jumlah Banyak.....................................
21
2.4.2 Pemindahan Barang Dalam Jumlah Kecil
Secara Terus Menerus ..........................................................
23
2.5 Embedded System..........................................................................
24
2.6 Mikrokontroler ..............................................................................
26
2.6.1 Perbedaan Mikrokontroler dengan Mikroprosesor ..............
27
2.6.2 Aplikasi Mikrokontroler ......................................................
28
x
2.6.3 Perkembangan Mikrokontroler ............................................
29
2.6.4 Mikrokontroler Arduino.......................................................
29
2.7 Pemrograman Java ........................................................................
31
2.7.1 Sejarah Singkat Pemrograman Java .....................................
32
2.7.2 Pemrograman Prosedural dan Pemrograman
Berorientasi Objek ...............................................................
33
2.7.3 Sifat – sifat Pemrograman Java............................................
35
2.7.4 Compiler dan Interpreter Java..............................................
36
2.7.5 Konsep Pemrograman Java ..................................................
39
2.7.6 Paket (Package) ...................................................................
44
2.7.7 Object Oriented Programming (OOP).................................
46
2.7.8 Grafical User Interface (GUI) .............................................
49
2.8 Metode Penelitian..........................................................................
52
2.8.1 Metode Pengumpulan Data ..................................................
52
2.8.2 Metode Pengembangan Sistem ............................................
55
BAB III METODOLOGI PENELITIAN .............................................
58
3.1 Metode Penelitian..........................................................................
58
3.2 Teknik Pengumpulan Data............................................................
58
3.2.1 Studi Lapangan.....................................................................
59
3.2.2 Studi Pustaka........................................................................
59
3.2.3 Studi Literatur ......................................................................
60
xi
3.3 Metode Pengembangan Sistem Prototipe......................................
64
3.3.1 Pemilahan Fungsi .................................................................
64
3.3.2 Membangun Prototyping .....................................................
65
3.3.3 Evaluasi Prototyping............................................................
65
3.3.4 Mengkodekan Sistem ...........................................................
65
3.3.5 Menguji Sistem ....................................................................
66
3.3.6 Evaluasi Sistem ....................................................................
66
3.3.7 Penggunaan Sistem ..............................................................
66
3.4 Peralatan Penelitian.......................................................................
67
3.5 Kerangka Penelitian ......................................................................
68
BAB IV HASIL DAN PEMBAHASAN ................................................
69
4.1 Pengembangan Prototipe...............................................................
69
4.1.1 Pengumpulan Kebutuhan .....................................................
69
4.1.2 Membangun Prototyping .....................................................
70
4.1.3 Evaluasi Prototyping............................................................
73
4.1.4 Mengkodekan Sistem ...........................................................
74
4.2 Uji Coba ........................................................................................
82
4.2.1 Uji Kepekaan Sensor PING .................................................
82
4.2.2 Uji Coba Interface (GUI) .....................................................
84
4.2.3 Uji Coba Keseluruhan ..........................................................
87
4.2.4 Uji Kecepatan Antara Forklift dan Prototipe .......................
88
xii
4.3 Analisis..........................................................................................
88
BAB V PENUTUP...................................................................................
90
5.1 Kesimpulan ...................................................................................
90
5.2 Saran..............................................................................................
91
DAFTAR PUSTAKA ........................................................................................
LAMPIRAN.......................................................................................................
xiii
DAFTAR GAMBAR
Halaman
Gambar 2.1 Prinsip Kerja Sensor Ultrasonik ............................................
16
Gambar 2.2 Prinsip Pemantulan Sensor Ultrasonik..................................
17
Gambar 2.3 Sensor Jarak Ultrasonik PING ..............................................
17
Gambar 2.4 Prinsip Kerja Sensor PING ...................................................
19
Gambar 2.5 Susunan Standar Embedded System ......................................
26
Gambar 2.6 Arduino UNO........................................................................
31
Gambar 2.7 Proses Kompilasi...................................................................
37
Gambar 3.1 Kerangka Penelitian ..............................................................
68
Gambar 4.1 Diagram Blok ........................................................................
70
Gambar 4.2 Alur Proses Pembacaan Jarak Pada Prototipe .......................
71
Gambar 4.3 Prototipe Awal.......................................................................
72
Gambar 4.4 Rangkaian Alat......................................................................
74
Gambar 4.5 Sensor PING Menerima Input...............................................
83
Gambar 4.6 Hasil Pembacaan Sensor PING pada Serial Monitor ...........
83
xiv
Gambar 4.7 Hasil Pengukuran Manual Menggunakan Penggaris ............
84
Gambar 4.8 Tampilan Grafik Polar...........................................................
84
Gambar 4.9 Tampilan Keterangan Sudut dan Jarak Secara Digital..........
85
Gambar 4.10 Tampilan Pemilihan COM port dan Tombol On/Off..........
85
Gambar 4.11 Tampilan Console dari Data yang Diambil Langsung
pada Serial Monitor Arduino..............................................
86
Gambar 4.12 Tampilan Keseluruhan ........................................................
86
Gambar 4.13 Pemasangan Sensor PING dengan Dua Buah Micro Servo
87
Gambar 4.14 Tampilan Interface (GUI) Saat Program Dijalankan ..........
87
xv
DAFTAR TABEL
Halaman
Tabel 3.1 Hasil Studi Literatur..................................................................
61
Tabel 4.1 Alat dan Bahan..........................................................................
72
xvi
DAFTAR LAMPIRAN
Halaman
Lampiran 1. Source Code Program Java...................................................
L-1
Lampiran 2. Source Code Program Arduino ............................................
L-2
Lampiran 3. Tampilan Software Arduino ................................................
L-3
Lampiran 4. Form Perbaikan Sidang Skripsi ............................................
L-4
xvii
BAB I
PENDAHULUAN
1.1 Latar Belakang
Sistem pergudangan berhubungan dengan proses penempatan serta
pengambilan komponen dan produk dari dan menuju tempat tertentu di dalam
gudang penyimpanan pada suatu pabrik maupun industri. Salah satu contoh
sederhana dari sistem ini adalah proses pemindahan dan penyusunan barang pada
rak-rak penyimpanan di dalam gudang. Pada umumnya, proses pemindahan
barang dilakukan dengan menggunakan forklift. Forklift dapat membantu
manusia mengangkat barang dengan bobot yang berat dan ukuran yang cukup
besar. Akan tetapi, penggunaan forklift memiliki beberapa kelemahan seperti
proses yang kerja yang lambat dan seringnya terjadi kecelakaan kerja, tingkat
kerusakan barang yang tinggi karena barang yang diangkut menghalangi
penglihatan yang dapat menyebabkan terbenturnya barang yang sedang diangkut.
Mengutip dari website www.safetyposter.co.id bahwa jumlah kecelakaan kerja di
Amerika pada sektor transportasi dan pergudangan tahun 2010 terjadi 661 kasus
dan 30 % di akibatkan karena kecelakaan pada forklift. Penerapan teknologi
otomasi pada sistem pergudangan, memungkinkan pekerjaan penempatan dan
pengambilan barang dilakukan dengan lebih mudah, aman serta lebih cepat
dibandingkan dengan pemindahan barang secara manual.
Menurut Kiki Prawiroredjo dalam penelitiannya tahun 2008, penerapan
sensor pada kendaraan pribadi untuk mendeteksi jarak saat parkir dinilai dapat
membantu pengendaranya dalam memarkirkan kendaraan mereka, dan dapat
1
2
mengurangi benturan dengan mobil, dari sistem yang ada pada kendaraan pribadi
ini, ada baiknya jika sensor parkir ini diterapkan pada mobil pengangkut barang
yang saat ini digunakan di pergudangan dengan penambahan indikator suara
yang berfungsi sebagai pengingat jarak, dan tampilan grafik pada layar PC yang
dapat dimanfaatkan sebagai acuan untuk mengevaluasi kinerja operator.
Seiring dengan perkembangan teknologi di berbagai aspek kehidupan
manusia, maka berkembang pula dengan ketersediaan perangkat keras
(hardware) maupun perangkat lunak (software) yang semakin canggih dan
meningkat kemampuannya. Salah satunya yaitu berkembangnya suatu rangkaian
sistem elektronik digital yang merupakan bagian dari sebuah sistem yang lebih
besar atau dalam kata lain sering di sebut embedded system atau sistem tertanam.
Kata embedded menunjukan bahwa dia merupakan bagian yang tidak
dapat berdiri sendiri. Embedded system biasanya merupakan application specific
system yang di desain khusus untuk aplikasi tertentu. Secara fisik embedded
system berkisar dari perangkat portable seperti jam digital dan MP3 player, untuk
instalasi seperti lampu lalu lintas, pengontrol pabrik, bahkan saat ini diterapkan
pada mobil pribadi yang dapat digunakan saat parkir. Kompleksitas bervariasi
dari rendah, dengan satu mikrokontroler chip, hingga sangat tinggi dengan
beberapa unit. Salah satu mikrokontroler yang paling popular dan banyak
digunakan saat ini adalah arduino. Arduino merupakan sebuah platform
elektronik yang open source, berbasis pada software dan hardware yang fleksibel
dan mudah digunakan. Arduino adalah sebuah papan rangkaian yang kecil,
2
3
seukuran kartu nama, yang dapat diprogram dan mampu bekerja seperti layaknya
sebuah komputer.
Selain perangkat Arduino yang popular saat ini, banyak pula
bermunculan berbagai bahasa pemrograman yang ada pada komputer saat ini.
Salah satu bahasa pemrograman komputer adalah bahasa pemrograman Java.
Bahasa pemrograman Java adalah bahasa pemrograman berorientasi objek (PBO)
atau Object Oriented Programming (OOP). Java bersifat netral, tidak bergantung
pada suatu platform, dan mengikuti prinsip WORA ( Write Once and Run
Anywhere). Beberapa bahasa pemrograman, seperti Basic, Fortan, Pascal,
COBOL, C, ProLog, dan yang lainnya harus bergantung pada suatu platform
karena harus mengkompilasi program tersebut pada setiap sistem operasi yang
ditentukan jika ingin menggunakan hasil program tersebut.
Berdasarkan paparan yang telah dijelaskan, penulis mencoba untuk
merancang sebuah prototipe alat deteksi jarak dengan perpaduan antara arduino,
sensor PING dan Java. Hal ini difungsikan agar alat tersebut dapat berjalan pada
mobil atau alat pemindah barang sesuai dengan yang penulis harapkan. Dalam
proses pemindahan barang, alat di letakan pada mobil pengangkut barang
menggunakan sensor ultrasonik sehingga alat penganggkut barang tersebut dapat
terus berjalan tanpa menabrak barang – barang disekitarnya.
Sensor yang bekerja sebagai navigasi adalah sensor ultrasonik dimana
sensor ini mampu mendeteksi adanya objek berkisar 3cm – 3m, jarak yang di
deteksi sensor menjadi acuan bagi prototipe tersebut, hal ini yang menjadi alasan
penulis untuk menentukan judul tugas akhir, oleh karena itu dibuatlah tugas akhir
3
4
dengan judul “Rancang Bangun Prototipe Alat Deteksi Jarak dengan Sensor
PING pada Mobil Pengangkut Barang Berbasis Arduino”.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dijelaskan dapat dirumuskan
bahwa permasalahan yang ada adalah bagaimana mengatasi masalah pada forklift
seperti kemungkinan benturan antara barang yang diangkut dengan benda di
sekitarnya serta tingkat kerusakan benda yang sangat tinggi dengan membuatkan
sebuah alat prototipe deteksi jarak dengan menggunakan Mikrokontroler
Arduino, Sensor PING Ultrasonik dan bahasa pemrograman Java.
1.3 Batasan Masalah
Penulis membatasi penulisan skripsi ini antara lain pada :
1. Pembuatan sistem menggunakan mikrokontroler Arduino Uno.
2. Sensor yang digunakan adalah sensor jarak ultrasonik PING, dengan
kapasitas 3cm – 3m.
3. Pada penelitian ini sistem yang dirancang hanya digunakan pada
sistem pergudangan.
4. Informasi yang disampaikan berupa :
1. Jarak sensor dengan benda hingga 3m.
2. Hasil yang dibaca oleh sensor ditampilkan dalam bentuk gambar
atau grafik dan indikator suara.
5. Hasil ditampilkan pada layar monitor.
4
5
1.4 Tujuan Penelitian
Berdasarkan uraian latar belakang masalah tersebut, maka tujuan
penulisan skripsi ini :
1. Membuat aplikasi sederhana yang bersifat embedded sistem dengan
menggunakan mikrokontroler Arduino Uno.
2. Membuat sebuah alat deteksi jarak dengan sensor PING ultrasonik
dan Arduino Uno untuk membantu mengurangi tingkat kecelakaan
kerja atau benturan dengan benda lain pada forklift.
1.5 Manfaat Penelitian
Manfaat yang didapat dari penulisan skripsi ini adalah :
1. Bagi Penulis
Menambah wawasan tentang bagaimana aplikasi yang bersifat
embedded sistem dengan menggunakan mikrokontroler Arduino Uno.
2. Bagi Universitas
Memberikan kontribusi sosial dengan nyata, bahwa aplikasi yang
dibuat oleh mahasiswanya dapat berguna bagi masyarakat secara
langsung.
3. Bagi Pengguna
Dapat memberikan kemudahan dalam mengatur jarak barang – barang
yang terdapat di gudang penyimpanan.
5
6
1.6 Metodologi Penelitian
Metode yang digunakan penulis dalam penulisan bagian metodelogi
penelitian dibagi menjadi dua, yaitu metode pengumpulan data dan metode
pengembangan. Berikut penjelasan kedua metode tersebut :
1.6.1 Metode Pengumpulan Data
Merupakan metode yang digunakan penulis dalam melakukan
analisis data dan menjadikan informasi yang akan digunakan untuk
mengetahui permasalahan yang dihadapi.
1. Studi Pustaka
2. Studi lapangan dengan observasi
3. Studi literatur sejenis.
1.6.2 Metode Pengembangan Sistem
Pada penelitian ini penulis menggunakan metode pengembangan
sistem Prototipe. Karena dengan metode ini penulis dapat
merancang sebuah alat sesuai dengan kebutuhan user dengan cepat
dan
tepat.
Adapun
tahapan
yang
menjadi
karakteristik
pengembangan metode Prototipe adalah sebagai berikut :
a. Pemilihan fungsi.
b. Penyusunan Sistem.
c. Evaluasi.
d. Penggunaan Selanjutnya.
6
7
1.7 Sistematika Penulisan
Agar lebih mempermudah perumusan dan pemecahan masalah yang akan
dibahas pada tugas akhir ini, maka penulis menguraikan tahapan-tahapan dalam
penyusunan laporan ini sebagai berikut:
BAB I
PENDAHULUAN
Bab ini membahas latar belakang penulisan skripsi, batasan
masalah, tujuan, manfaat, metodelogi dan sistematika penulisan.
BAB II
LANDASAN TEORI
Bab ini akan membahas tentang teori – teori yang diperlukan
dalam penulisan skripsi ini.
BAB III
METODOLOGI PENELITIAN
Dalam bab ini akan diuraikan metode – metode yang digunakan
dalam penulisan yang berhubungan dengan judul skripsi ini.
BAB IV
ANALISIS DAN PEMBAHASAN
Dalam bab ini akan dijelaskan bagaimana merancang dan
membangun sebuah prototipe alat deteksi jarak menggunakan
Mikrokontroler Arduino Uno dan bahasa pemrograman Java.
BAB V
PENUTUP
Bab ini berisi kesimpulan secara keseluruhan yang diperoleh dari
hasil analisis dan perancangan serta saran-saran untuk penerapan
dan pengembangan lebih lanjut sistem yang bersangkutan.
7
BAB II
LANDASAN TEORI
Pada bab ini akan dijelaskan mengenai landasan teori dan alat yang
digunakan pada penelitian skripsi ini. Penjelasan yang diberikan pada bab ini
diharapkan dapat membantu peneliti serta pembaca dalam memahami teori yang
dipakai dalam laporan penelitian ini. Teori yang dijelaskan pada bagian ini
meliputi teori rancang bangun, prototipe, embedded system, mikrokontroler
Arduino, sensor, dan Pemrograman Java.
2.1 Pengertian Rancang Bangun
Rancang merupakan serangkaian prosedur untuk menerjemahkan hasil
analisa dari sebuah sistem ke dalam bahasa pemrograman untuk mendeskripsikan
dengan detail bagaimana komponen-komponen sistem diimplementasikan
(Pressman, 2002). Rancangan sistem adalah penentuan proses dan data yang
diperlukan oleh sistem baru (McLeod, 2002). Perancangan adalah kegiatan yang
memiliki tujuan untuk mendesain sistem baru yang dapat menyelesaikan
masalah-masalah yang dihadapi perusahaan yang diperoleh dari pemilihan
alternatif sistem yang terbaik (Ladjamudin, 2005). Sedangkan pengertian bangun
atau pembangunan sistem adalah kegiatan menciptakan sistem baru maupun
mengganti atau memperbaiki sistem yang telah ada baik secara keseluruhan
maupun sebagian (Pressman, 2002). Bangun sistem adalah membangun sistem
informasi dan komponen yang didasarkan pada spesifikasi desain (Whitten et al,
2004).
8
9
Dengan demikian pengertian rancang bangun merupakan kegiatan
menerjemahkan hasil analisa ke dalam bentuk paket perangkat lunak kemudian
menciptakan sistem tersebut ataupun memperbaiki sistem yang sudah ada.
2.2 Prototipe
2.2.1 Definisi Prototipe
Prototyping menurut Houde dan Hill merupakan salah satu metode
pengembangan perangkat lunak yang banyak digunakan. Dengan metode
prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama
proses pembuatan sistem. Sering terjadi seorang pelanggan hanya mendefinisikan
secara umum apa yang dikehendakinya tanpa menyebutkan secara detail output
apa saja yang dibutuhkan, pemrosesan dan data – data apa saja yang dibutuhkan.
Sebaliknya disisi pengembang kurang memperhatikan efisiensi algoritma,
kemampuan sistem operasi dan interface yang menghubungkan manusia dan
komputer. Untuk mengatasi ketidakserasian antara pelanggan dan pengembang
maka dibutuhkan kerjasama yang baik antara keduanya sehingga pengembang
akan mengetahui dengan benar apa yang diinginkan pelanggan dengan tidak
mngesampingkan segi – segi teknis dan pelanggan akan mengetahui proses –
proses dalam menyelesaikan sistem yang diinginkan. Dengan demikian akan
menghasilkan sistem sesuai dengan jadwal waktu penyelesaian yang telah
ditentukan.
Prototipe merupakan pendekatan literatif dalam pengembangan sistem
yang dibuat. Secara umum tujuan pengembangan sistem informasi adalah untuk
9
10
memberikan kemudahan dalam penyimpanan informasi, mengurangi biaya dan
menghemat waktu, meningkatkan pengendalian, mendorong pertumbuhan, dan
meningkatkan produktifitas. Dalam beberapa tahun terakhir ini, peningkatan
produktifitas organisasi ini dibantu dengan berkembangnya teknologi komputer
baik hardware maupun softwarenya. Tetapi tidak semua kebutuhan sistem
informasi dengan komputer itu dapat memenuhi kebutuhan dan menyelesaikan
masalah yang dihadapi organisasi. Keterbatasan sumber daya dan anggaran
pemeliharaan memaksa para pengembang sistem informasi untuk menemukan
jalan untuk mengoptimalkan kinerja sumber daya yang telah ada.
Karakteristik dari suatu sistem informasi manajemen yang lengkap
tergantung dari masalah yang dihadapi, proses pengembangannya dan tenaga
kerja yang akan dikembangkannya. Seiring dengan perkembangan permasalahan
karena berubahnya lingkungan yang berdampak kepada perusahaan maka yang
menjadi parameter proses pengembangan sistem informasi yaitu masalah yang
dihadapi, sumber daya yang tersedia dan perubahan, sehingga hasil
pengembangan sisitem informasi manajemen, baik yang diharapkan oleh
perorangan maupun oleh organisasi turut berubah.
Perubahan tersebut pada akhirnya menimbulkan ketidakpastian dan
menambah kompleks/rumit masalah yang dihadapi oleh para analis sistem
informasi. Metode tradisional seperti SDLC (System Development Life Cycle)
dianggap tidak lagi mampu memenuhi tantangan perubahan dan kompleksnya
masalah yang dihadapi tersebut. Sekitar awal tahun delapan puluhan, para
professional
dibidang sistem
informasi
10
memperkenalkan suatu metode
11
pengembangan sistem informasi baru, yang dikenal dengan nama metode
prototyping.
Metode prototyping sebagai suatu paradigma baru dalam pengembangan
sistem informasi manajemen, tidak hanya sekedar suatu evolusi dari metode
pengembangan sisitem informasi yang sudah ada, tetapi sekaligus merupakan
revolusi dalam pengembangan sistem informasi manajemen. Metode ini
dikatakan revolusi karena merubah proses pengembangan sistem informasi yang
lama (SDLC).
Menurut literatur, yang dimaksud dengan prototipe adalah “model
pertama” yang sering digunakan oleh perusahaan industry yang memproduksi
barang secara masal. Tetapi dalam kaitannya dengan sisitem informasi definisi
kedua dari Webster yang menyebutkan bahwa prototipe tersebut adalah sistem
informasi yang menggambarkan hal – hal penting dari sistem informasi yang
akan datang. Prototipe sistem informasi bukanlah merupakan sesuatu yang
lengkap, tetapi sesuatu yang harus dimodifikasi kembali, dikembangkan,
ditambahkan, atau digabungkan dengan sistem informasi yang lain bila perlu.
Dalam beberapa hal pengembangan software berbeda dengan produk –
produk manufaktur, setiap tahap atau fase pengembangan sistem informasi
merupakan bagian yang tidak terpisahkan dari seluruh proses yang harus
dilakukan. Proses ini umumnya hanya untuk satu produk dan karakteristik dari
produk tersebut tidak dapat ditentukan secara pasti seperti produk manufaktur,
sehingga penggunaan “model pertama” bagi pengembangan software tidaklah
11
12
tepat. Istilah prototyping dalam hubungannya dengan pengembangan software
sistem informasi manajemen lebuh merupakan suatu proses bukan prototipe
suatu produk.
2.2.2 Karakteristik Metode Prototipe
Ada empat langkah yang menjadi karakteristik metode prototyping yaitu :
1. Pemilahan Fungsi
Mengacu pada pemilahan fungsi yang harus ditampilkan oleh
prototyping. Pemilahan harus selalu dilakukan berdasarkan pada tugas
– tugas yang relevan yang sesuai dengan contoh kasus yang akan
diperagakan.
2. Penyusunan Sistem Informasi
Bertujuan untuk memenuhi permintaan akan tersedianya prototipe.
3. Evaluasi
4. Penggunaan Selanjutnya
Jenis – jenis prototyping sendiri meliputi :
1. Feasibility prototyping – digunakan untuk menguji kelayakan dari
teknologi yang akan digunakan untuk sistem informasi yang akan
disusun.
2. Requitment prototyping – digunakan untuk mengetahui kebutuhan
aktivitas user.
12
13
3. Desain prototyping - digunakan untuk mendorong perancanngan
sistem informasi yang akan digunakan.
4. Implementation prototyping – merupakan lanjutan dari rancangan
prototipe, dimana prototipe ini langsung disusun sebagai suatu sistem
informasi yang akan digunakan.
2.2.3 Keunggulan dan Kelamahan Metode Prototipe
Keunggulan
1. End User dapat berpartisipasi aktif.
2. Penentuan kebutuhan lebih mudah diwujudkan
3. Mempersingkat waktu pengembangan sistem informasi.
Kelemahan
1. Proses analisis dan perancangan terlalu singkat.
2. Mengesampingkan alternatif pemecahan masalah.
3. Kurang fleksibel dalam menghadapi perubahan.
4. Prototipe yang dihasilkan tidak selamanya mudah dirubah.
5. Prototipe terlalu cepat selesai.
(Houde dan Hill ,2004)
13
14
2.3 Alat Deteksi Jarak
Alat deteksi jarak atau detektor erat kaitannya dengan Radar. Radar
(Radio Detection and Ranging) merupakan sistem gelombang elektromagnetik
yang digunakan untuk mendeteksi, mengukur jarak dan membuat map bendabenda seperti pesawat terbang, kendaraan bermotor dan informasi cuaca.
Detektor ini berupa sebuah sensor yang bekerja secara otomatis berdasarkan
pemilihan jenis sensor dan pemrograman pada sensor tersebut.
2.3.1 Pengertian Sensor
Sensor dan transducer merupakan peralatan atau komponen yang
mempunyai peranan penting dalam sebuah sistem pengaturan otomatis.
Ketepatan dan kesesuaian dalam memilih sensor akan sangat menentukan
kinerja dari sistem pengaturan secara otomatis.
Secara umum berdasarkan fungsi dan penggunaannya sensor dapat
dikelompokan menjadi 3 bagian yaitu :
a. Sensor thermal (panas)
b. Sensor mekanis
c. Sensor optic (cahaya)
Sensor mekanis adalah sensor yang mendeteksi perubahan gerak
mekanis, seperti berat benda, perpindahan atau pergeseran posisi, gerak
lurus dan melingkar, tekanan, gaya, aliran, level, dan sebagainya. Besaran
masukan pada kebanyakan sisitem kendali adalah bukan besaran listrik,
seperti besaran fisika, kimia, mekanis dan sebagainya, untuk memakaikan
besaran listrik pada sistem pengukuran, atau sistem manipulasi atau sistem
14
15
pengontrolan. Fenomena fisik mampu menstimulus sensor menghasilkan
sinyal elektrik meliputi berat/beban, temperatur, tekanan, gaya, medan
magnet cahaya, pergerakan dan sebagainya.
Dengan definisi seperti ini maka sensor merupakan alat elektronik
yang banyak dipakai dalam kehidupan manusia saat ini. Bagaimana tekanan
jari kita pada keyboard komputer, remote televisi, lantai lift yang kita tuju
menghasilkan perubahan layar komputer atau televisi, serta gerakan lift
adalah contoh mudah sensor secara luas. Hampir seluruh kehidupan sehari
– hari saat ini tidak ada yang tidak melibatkan sensor. Tidak mengherankan
jika sensor banyak disebut sebagai panca indera-nya alat elektronik
(William, 2004).
2.3.2 Sensor Ultrasonik
Sensor ultrasonik adalah sensor yang bekerja berdasarkan prinsip
pantulan gelombang suara dan digunakan untuk mendeteksi suatu objek
tertentu di depannya, frekuensi kerjanya pada daerah atas gelombang suara
dari 40 KHz hingga 400 KHz. Sensor ultrasonik terdiri dari dua unit , yaitu
unit pemancar dan unit penerima. Struktur unit pemancar dan penerima
sangatlah sederhana, sebuah kristal piezoelectric dihubungkan dengan
mekanik jangkar dan hanya dihubungkan dengan diafragma penggetar.
Tegangan bolak – balik yang memiliki frekuensi 40 KHz – 400 KHz
diberikan pada plat logam. Struktur atom dari kristal piezoelectric akan
berkontraksi (mengikat), mengembang atau menyusut terhadap polaritas
tegangan yang diberikan dan ini disebut efek piezoelectric.
15
16
Kontraksi yang terjadi diteruskan ke diafragma penggetar sehingga
terjadi gelombang ultrasonik yang dipancarkan ke udara (tempat
sekitarnya). Pantulan gelombang ultrasonik akan terjadi bila ada objek
tertentu dan pantulan gelombang ultrasonik akan diterima kembali oleh unit
sensor penerima. Selanjutnya unit sensor penerima akan menyebabkan
diafragma penggetar akan bergetar dan efek piezoelectric menghasilkan
sebuah tegangan bolak-balik dengan frekuensi yang sama. Untuk lebih jelas
tentang prinsip kerja dari sensor ultrasonik dapat dilihat pada gambar 2.2
berikut :
Gambar 2.1 Prinsip Kerja Sensor Ultrasonik
sumber : www.parallax.com (2013)
Besar amplitude sinyal elektrik yang dihasilkan unit sensor penerima
tergantung dari jauh dekatnya objek yang dideteksi serta kualitas sensor
pemancar dan sensor penerima. Proses sensoring yang dilakukan pada
sensor ini menggunakan pantulan untuk menghitung jarak antara sensor
dengan objek sasaran. Jarak antara sensor tersebut dihitung dengan cara
mengalikan setengah waktu yang digunakan oleh sinyal ultrasonik dalam
perjalanannya dari rangkaian pengirim sampai diterima oleh rangkaian
penerima, dengan kecepatan rambat dari sinyal ultrasonik tersebut pada
16
17
media rambat yang digunakannya, yaitu udara. Prinsip pantulan dari sensor
ultrasonik ini dapat dilihat pada gambar 2.3 sebagai berikut :
Gambar 2.2 Prinsip Pemantulan Sensor Ultrasonik
Sumber Widodo (2007)
Terdapat dua jenis sensor ultasonik yang beredar dipasaran yaitu :
1. Sensor ultrasonik PING (parallax)
2. Sensor ultrasonic devantech (SRF 05 ranger)
2.3.3 Sensor Jarak Ultrasonik PING
Sensor jarak ultrasonik PING adalah sensor 40 KHz produksi parallax
yang banyak digunakan untuk aplikasi atau kontes robot cerdas. Kelebihan
sensor ini hanya membutuhkan satu sinyal (SIG) selain jalur 5 v dan
ground. Perhatikan gambar berikut :
Gambar 2.3 Sensor jarak ultasonik PING
sumber : www.parallax.com (2013)
17
18
Sensor PING mendeteksi jarak objek dengan cara memancarkan
gelombang ultrasonik (40 KHz) selama t = 200 us sesuai dengan kontrol
dari mikrokontroller pengendali (pulsa trigger dengan tout min 2 us).
2.3.4 Sensor Jarak Ultrasonik Devantech SRF05
SRF05 merupakan sensor
pengukur
jarak
yang
menggunakan
ultrasonik. Dimana prinsip kerja sensor Ultrasonik ini adalah pemancar
(transmitter) mengirimkan seberkas gelombang ultrasonik, lalu diukur
waktu yang dibutuhkan hingga datangnya pantulan dari objek. Lamanya
waktu ini sebanding dengan dua kali jarak sensor dengan objek, sehingga
didapat jarak sensor dengan objek yang bisa ditentukan dengan persamaan
Jarak = Kecepatan_suara × waktu_pantul/2
Sensor ultrasonik Devantech SRF05 dengan spesifikasi sebagai
berikut :
1. Bekerja pada tegangan DC 5 volt.
2. Beban arus sebesar 30 mA – 50 mA.
3. Menghasilkan gelombang dengan frekuensi 40 KHz.
4. Jangkauan jarak yang dapat dideteksi 3 cm – 400 cm.
5. Membutuhkan trigger input minimal sebesar 10 uS.
6. Dapat digunakan dalam dua pilihan mode yaitu input trigger dan
output echo terpasang pada pin yang berbeda atau input tirgger dan
output echo terpasang dalam satu pin yang sama.
18
19
2.3.5 Prinsip Kerja Sensor
Pada dasanya, Sensor PING terdiri dari sebuah chip pembangkit
sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikrofon ultrasonik.
Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara
mikrofon ultrasonik berfungsi untuk mendeteksi pantulan suaranya. Sensor
PING mendeteksi jarak objek dengan cara memancarkan gelombang
ultrasonik (40 kHz) selama tBURST (200 μs) kemudian mendeteksi
pantulannya. Sensor PING memancarkan gelombang ultrasonik sesuai
dengan kontrol dari mikrokontroler pengendali (pulsa trigger dengan tOUT
min. 2 μs).
Gambar 2.4 Prinsip kerja sensor PING
sumber : www.parallax.com (2013)
Gelombang ultrasonik ini melalui udara dengan kecepatan 344 meter
per detik, mengenai objek dan memantul kembali ke sensor. PING
mengeluarkan pulsa output high pada pin SIG setelah memancarkan
gelombang ultrasonik dan setelah gelombang pantulan terdeteksi PING
akan membuat output low pada pin SIG. Lebar pulsa High (tIN) akan sesuai
19
20
dengan lama waktu tempuh gelombang ultrasonik untuk 2x jarak ukur
dengan obyek. Maka jarak yang diukur adalah :
S = (tIN x V) ÷ 2
Dimana :
S = Jarak antara sensor ultrasonik dengan objek yang dideteksi
V = Cepat rambat gelombang ultrasonik di udara (344 m/s)
tIN = Selisih waktu pemancaran dan penerimaan pantulan gelombang.
2.4 Mobil Pengangkut (Material Transport)
Banyak orang mengartikan material transport sama dengan material
handling. Sebenarnya 2 istilah ini memiliki definisi yang berbeda. Material
handling yaitu Ilmu tentang pemindahan (material transport), penyimpanan
(storage), pengamanan, dan pengontrolan material. Jadi material transport
merupakan bagian dari definisi material handling. Istilah lainnya yaitu material
moving.
Pada praktiknya, aktivitas ini menjadi sangat penting dalam operasi
perusahaan. Mulai dari industri pertambangan, chemical, hingga manufacture,
material transport memiliki alokasi biaya yang cukup besar. Dari sisi Suplier, ini
menjadi bisnis bernilai milayaran dollar. Karena itu tidak mengherankan jika
perkembangan teknologinya sangat pesat untuk memenuhi kebutuhan sistem
operasi ter-modern.
Pemindahan barang merupakan salah satu elemen dasar dalam
implementasi Just In time , jika pemindahan barang antar stasiun kerja
20
21
berlangsung dengan cepat, efisien dan aman memiliki kontribusi terhadap
peningkatan kecepatan operasi.
Metode pemindahan barang terbagi dalam dua kelompok:
1. Pemindahan barang dalam jumlah banyak / besar seketika.
2. Pemindahan barang dalam jumlah kecil secara terus menerus /
continue.
2.4.1 Pemindahan Barang Dalam Jumlah Banyak
Pemindahan dalam jumlah besar sekaligus memiliki konsekuensi
terhadap luas ruang gerak mesin pengangkut teutama untuk bermanuver.
1. Digerakan dengan tenaga manusia
Berikut beberapa penerapan dalam manufacture yang menggunakan ini :
a. Manual Hand Truck, yaitu alat pemindah barang secara manual
atua dengan tenaga manusia. Variasi hand truck ini cukup banyak,
karena rata – rata design alat menyesuaikan kondisi operasi.
Bahkan untuk memenuhi kebutuhan operasi yang khusus, alat ini
terkadang harus dibuat secara customized. Umumnya orang
menyebut alat ini dengan trolley.
b. Hydraulic Hand Trucks, jenis alat ini digunakan untuk
memindahkan barang, tapi dilengkapi dengan mekanisme
pengangkat secara hidraulic. Contoh alat yang umum digunakan
dalam industri, hand pallet, jack pallet, scissors lift table,
21
22
hidraulic stackers, dan lain – lain. Sistem hidraulic tidak
memerlukan
sumber
listrik
dalam
operasinya,
sehingga
penggunaannya bisa lebih luas.
c. Electric
Hand
Trucks,
jenis
alat
ini
digunakan
untuk
memindahkan barang, tapi dilengkapi dengan mekanisme
pengangkat/lifting secara electric/baterai. Jadi syarat utama
penggunaannya stasiun kerja harus memiliki sumber arus listrik.
2. Digerakan dengan tenaga mesin
Barang dipindahkan dengan menggunakan mesin-mesin penggerak ,
umumnya alat ini dilengkapi dengan mekanisme pengangkat secara hidraulic
atau elektrik.
a. Forklift, menurut penggunaan dan sumber tenaganya ada beberapa
type forklift, diantaranya electric forklift, Diesel Engine Forklift,
Gasoline/LPG engine forklift. Penggunaan di dalam lingkungan
Industri biasanya berkisar pada beban angkat 2,5 - 5 Ton. Namun
rentang daya angkat forklift yang tersedia dipasaran mulai dari 0,5 40 Ton.
b. Car on Rails, heavy duty load, alat ini banyak digunakan dalam
industri logam berat, karena bobot dan ukurannya yang relatif besar,
dan bentuk yang rata-rata standar. Pemindahan barang tidak
memungkinkan menggunakan crane, sehingga harus tetap bertumpu
di lantai dengan menggunakan jalur khusus (Rail).
22
23
c. Order
Picker,
digunakan
indoor
dan
dikendalikan
oleh
operator/driver. Umumnya bertenaga listrik atau hidrogen. Memiliki
dimensi relatif kecil, sehingga mampu bermanuver didalam ruang
yang terbatas.
d. Crane, banyak digunakan diindustri yang berhubungan dengan
pemindahan barang dengan bobot relatif berat, namun memiliki
bentuk yang tidak standar. Aplikasinya banyak digunakan di area
kerja Maintenance, Workshop, Perakitan mesin-mesin berat.
e. Autonomous Guide Vehicles (AGV), kendaraan tanpa dikendarai
namun dikendalikan oleh komputer dengan menggunakan gelombang
radio atau jalur sensor.
2.4.2 Pemindahan Barang Dalam Jumlah Kecil Secara Terus
Menerus
Metode ini umumnya digunakan untuk memindahkan barang-barang yang
ringan dan memiliki bentuk yang sama standar. Metode ini menggunakan mesin
yang bersifat fixed /tetap, namun dapat dirancang untuk melalui celah yang kecil
atau ketinggian yang cukup dari permukaan lantai kerja sehingga tidak
mengganggu aktivitas produksi.
Sistem ini menggunakan Conveyor. Conveyor adalah sistem mekanik
yang befungsi memindahkan barang dari satu tempat ke tempat lain secara
continue. Dari beberapa variasi, conveyor dikelompokan kedalam 4 jenis :
1. Gravity Conveyor
23
24
2. Motor Conveyor
3. Vibrating Conveyor
4. Hanging / Over Head Conveyor
2.5 Embedded System
Menurut Pernantin Tarigan dalam bukunya Sistem Tertanam (Embedded
System) (Tarigan, 2010), Embedded system adalah suatu sistem komputer yang
dibangun untuk melakukan tujuan atau fungsi tertentu. Dalam suatu embedded
system, terdapat susunan perangkat keras dan komponen-komponen mekanik.
Komponen-komponen penyusun embedded system ini dikoordinasikan oleh satu
atau lebih chip mikrokontroler yang telah diprogram untuk melakukan fungsi
tertentu. Karena dibangun untuk fungsi tertentu saja, maka pada umumnya
komponen utama embedded system dapat memiliki ukuran yang lebih kecil
dengan jumlah dan jenis komponen penyusunnya sesuai dengan kebutuhan saja.
Dengan demikian biaya produksinya pun dapat ditekan. Hal ini berbeda dari
sistem komputer umum, seperti personal computer, yang lebih fleksibel karena
dapat memenuhi berbagai kebutuhan pengguna. Sebagai konsekuensinya,
personal computer harus menyediakan berbagai macam komponen yang dapat
memenuhi kebutuhan pengguna secara umum. Akibatnya, ukuran komponen
utamanya pun menjadi lebih besar dan biaya produksinya juga menjadi lebih
mahal. Namun pada beberapa kasus, embedded system mungkin saja berupa
suatu sistem dengan skala yang sangat besar dan bernilai sangat mahal, seperti
embedded system pada pembangkit listrik tenaga nuklir atau sistem kontrol
24
25
pabrik. Pada intinya, yang membedakan antara embedded system dengan sistem
komputer biasa adalah spesifikasi dari fungsinya.
Suatu embedded system biasanya memiliki sensor-sensor sebagai
masukan, seperti sensor panas, sensor posisi (GPS), sensor pengukur jarak,
sensor guncangan, dan lain-lain. Selain sensor, embedded system juga dilengkapi
dengan komponen yang berfungsi menanggapi hasil penerimaan sensor setelah
diproses, yaitu dapat berupa motor penggerak, layar, ataupun menggunakan
modem untuk berkomunikasi dengan suatu server. Perangkat masukan dan
keluaran dalam suatu embedded system dapat bersifat digital jika perangkat
tersebut menerima masukan atau memberi hasil dalam bentuk digital atau analog
jika masukan maupun keluarannya berupa sinyal analog. Semua perangkat
masukan dan keluaran dari embedded system ini dikoordinasikan oleh logika
yang telah diprogram ke dalam mikrokontroller yang ditanamkan dalam sistem
ini, atau lebih dikenal sebagai firmware. Inilah inti dari pembuatan suatu
embedded system, karena program dalam mikrokontroler itulah yang menentukan
pemrosesan dan hasil yang dikeluarkan. Berikut ini adalah susunan standar dari
suatu embedded system:
Gambar 2.5 Susunan Standar Embedded System
Sumber : Tarigan ( 2010)
25
26
2.6 Mikrokontroler
Komputer hadir dalam kehidupan manusia sejak 50 tahun yang lalu,
namun efeknya sangat besar dalam merubah kehidupan manusia, bahkan
melebihi penemuan manusia lainnya seperti radio, telepon, dan televisi. Begitu
banyak aplikasi memanfaatkan chip mikroprosesor yang dapat melakukan
komputasi sangat cepat, dapat bekerja sendiiri dengan diprogram, dan dilengkapi
memori untuk menyimpan begitu banyak data.
Seiring dengan perkembangan zaman, semakin luaslah kebutuhan akan
kemampuan seperti yang dimiliki komputer, sehingga menyebabkan munculnya
terobosan – terobosan baru yang salah satunya dibuatnya chip mikrokontroler.
Mikrokontroler adalah single chip computer yang dapat diprogram dan
digunakan untuk tugas-tugas berorientasi kontrol.
Mikrokontroler datang dengan dua alasan utama yang pertama adalah
kebutuhan pasar dan yang kedua adalah perkembangan teknologi baru. Yang
dimaksud kebutuhan pasar adalah kebutuhan yang luas dari produk-produk
elektronik akan perangkat pintar sebagai pengontrol pemroses data. Sedangkan
yang dimaksud dengan perkembangan teknologi baru adalah perkembangan
teknologi
semikonduktor
dan
memungkinkan
pembuatan
chip
dengan
kemampuan komputasi yang sangat cepat, bentuk yang semakin kecil, dan harga
yang semakin murah.
26
27
2.6.1 Perbedaan Mikrokontroler dengan Mikroprosesor
Menurut Widodo dalam bukunya yang berjudul Panduan Lengkap
Belajar Mikrokontroler ; Perancangan Sistem dan Aplikasi Mikrokontroler
(Widodo, 2005), terdapat perbedaan yang signifikan antara mikrokontroler dan
mikroprosesor. Perbedaan utama antara keduanya dilihat dari dua faktor utama
yaitu arsitektur perangkat keras (hardware architecture) dan aplikasi masing –
masing.
Ditinjau dari segi arsitekturnya, mikroprosesor merupakan single chip
CPU, sedangkan mikrokontroler dalam IC-nya selain CPU juga device lain yang
memungkinkan mikrokontroler berfungsi sebagai suatu single chips computer.
Dalam sebuah IC mikrokontroler telah terdapat ROM, RAM, EPROM, serial
interface, dan parallel interface. Timer, interrupt controller, converter analog ke
digital,dan lainnya (tergantung feature yang melengkapi mikrokontroler
tersebut).
Sedangkan dari segi aplikasinya, mikroprosesor hanya berfungsi sebagai
Central
Processing
Unit
yang
menjadi
otak
komputer,
sedangkan
mikrokontroler, dalam bentuknya yang mungil, pada umumnya ditujukan untuk
melakukan tugas – tugas yang berorientasi kontrol pada rangkaian yang
membutuhkan jumlah komponen minimum dan biaya rendah (low cost).
27
28
2.6.2 Aplikasi Mikrokontroler
Karena kemampuannya yang tinggi, bentuknya yang kecil, konsumsi
dayanya yang rendah, dan harga yang murah maka mikrokontroler bnayak
digunakan. Mikrokontroler digunakan mulai dari mainan anak – anak sampai
perangkat elektronik rumah tangga, perangkat pendukung otomotif, perangkat
industri, perangkat telekomunikasi, peralatan medis dan kedokteran sampai
dengan pengendali robot serta persenjataan militer.
Terdapat beberapa keuntungan dari alat – alat yang berbasis
Mikrokontroler (mikrokontroler – based solutions) diantaranya :

Kehandalan tinggi dan kemudahan integrasi dengan komponen
lain.

Penggunaan
komponen
semakin
sedikit
yang juga
akan
menyebabkan biaya produksi semakin ditekan.

Ukuran yang dapat diperkecil.

Waktu pembuatan lebih singkat sehingga lebih cepat pula dijual
kepasaran sesuai kebutuhan.

Konsumsi daya yang semakin rendah.
(Widodo, 2005)
2.6.3 Perkembangan Mikrokontroler
Karena kebutuhan yang tinggi terhadap “chip – chip pintar” dengan
berbagai fasilitasnya, maka berbagai vendor juga berlomba untuk menawarkan
produk – produk mikrokontrolernya. Hal tersebut terjadi semenjak awak tahun
28
29
1970-an. Motorolla mengeluarkan seri Mikrokontroler 6800 yang terus
dikembangkan sehingga menjadi 68HC05, 68HC08, 68HC11, dan 68HC16.
Zijog juga mengeluarkan seri mikroprosesor Z180 dan kemudian diadopsi
juga oleh mikroprosesor Rabbit. Intel mengeluarkan Mikrokontroler yang
mendunia yaitu 8051, karena begitu populernya maka arsitektur 8051 kemudian
diadopsi oleh vendor lain seperti Philips, Siemens, Atmel, dan vendor – vendor
lain dalam produk mikrokontroler mereka. Selain itu masih ada mikrokontroler
populer lainnya seperti Basic stamps, PIC dari Microchip, MSP 430 dari Texas
Instrument dan Arduino, serta masih banyak lagi.
Selain mikroprosesor dan mikrokontroler, sebenarnya telah bermunculan
chip – chip pintar lain seperti DSP prosesor. Di masa depan, chip – chip mungil
berkemampuan tinggi akan mendominasikan semua desain elektronik di dunia
sehingga mampu memberikan kemampuan komputasi yang tinggi serta
meminimalkan jumlah komponen – komponen konvensional.
2.6.4 Mikrokontroler Arduino
Dalam buku “Getting Started with Arduino” , Arduino dituliskan sebagai
sebuah platform komputasi fisik (Physical Computing) yang open source pada
board input output sederhana. Yang dimaksud dengan platform komputasi fisik
disini adalah sebuah sistem fisik yang interaktif dengan penggunaan software dan
hardware yang dapat mendeteksi dan merespon situasi dan kondisi di dunia
nyata.
29
30
Sedangkan dari situs resminya di www.arduino.cc, Arduino didefinisikan
sebagai sebuah platform elektronik yang open source, berbasis pada software dan
hardware yang fleksibel dan mudah digunakan yang ditujukan pada setiap orang
yang tertarik dalam membuat objek atau lingkungan yang interaktif.
Nama Arduino di sini tidak hanya dipakai untuk menamai board
rangkaiannya
saja,
tetapi
juga untuk menamai
bahasa dan
software
pemrogramannya, serta lingkungan pemrogramannya atau IDE (Integrated
Development Environment).
Arduino adalah suatu mikrokontroler kecil yang berisi semua komponen
komputer dan memiliki kekuatan yang tidak begitu besar. Tapi dengan Arduino
yang murah tersebut, kita dapat membuat alat – alat yang sangat menarik.
Arduino merupakan chip berwarna hitam yang mempunyai 28 kaki yang disebut
ATmega168. Agar mikrokontroler Arduino dapat bekerja dengan baik dan dapat
berkomunikasi dengan komputer, seluruh komponen – komponen yang
dibutuhkan harus diletakkan pada tempatnya.
Arduino memiliki banyak sekali versi. Salah satu yang paling simpel
adalah Arduino Uno yang mudah untuk dipakai. (Arduino, 2010). Berikut adalah
gambar untuk Arduino Uno :
30
31
Gambar 2.6 Arduino Uno
(Sumber : arduino.cc)
Penjelasan dari gambar :
a. 14 digital input – output pin (Pin 0-13)
Pin tersebut dapat menjadi input atau output yang dispesifikasikan
sesuai program yang dibuat.
b. 6 analog input pin (Pin 0-5)
Pin tersebut difungsikan sebagai penerima data analog dari suatu
sensor, dan kemudian mengubah data tersebut menjadi angka
antara 0 dan 1023.
c. 6 analog output pin (pin 3, 5, 6, 9, 10, dan 11)
Pin ini sebenarnya adalah digital pin yang dapat diprogram ulang
sehingga dapat mengubah mode pin yang dapat mengeluarkan data
analog.
2.7 Pemrograman Java
Program adalah sekumpulan perintah – perintah (instruction) yang
diatur secara sistematis untuk menyelesaikan suatu masalah. Salah satu
31
32
bahasa pemrograman komputer adalah bahasa pemrograman Java. Bahasa
pemrograman Java adalah bahasa pemrograman berorientasi objek (PBO)
atau Object Oriented Programming (OOP).
Java bersifat netral, tidak bergantung pada suatu platform, dan
mengikuti prinsip WORA (Write Once and Run Anywhere). Beberapa
bahasa pemrograman, seperti Basic, Fortan, Pascal, COBOL, C, Prolog dan
lainnya harus bergantung pada suatu platform karena mengharuskan user
mengkompilasi program tersebut pada setiap sistem operasi yang
ditentukam jika ingin menggunakan hasil program tersebut (Sariadin,
2009).
2.7.1 Sejarah Singkat Pemrograman Java
Pemrograman Java dipelopori oleh James Gosling, Patrick Naughton,
Chris Warth, Ed Frank, dan Mike Sheridan dari Sun Microsystems, Inc.
pada tahun 1991, ketika perusahaan tersebut memulai Green Project
(proyek penelitian membuat bahasa yang akan digunakan pada chip – chip
embedded untuk
device intelligent
consumer electronic). Mereka
membutuhkan waktu kurang lebih 18 bulan untuk membuat versi
pertamanya.
Bahasa tersebut haruslah bersifat multiplatform dan tidak tergantung
pada vendor yang memanufaktur chip tersebut. Pada awalnya, bahasa ini
disebut Oak, tapi kemudian diubah menjadi Java pada tahun 1995 karena
nama Oak telah dijadikan hak cipta dan digunakan sebagai bahasa
pemrograman lainnya.
32
33
Sejak pembuatan Oak pada musim gugur tahun 1992 hingga
diumumkan ke publik pada musim semi tahun 1995, banyak orang yang
terlihat dalam desain dan evolusi bahasa ini. Bill Joy, Arthur van Hoff,
Jonathan Payne, Frank Yellin, dan Tim Lindholm merupakan kontributor
kunci yang mematangkan prototipe aslinya. Pada saat ini, Java banyak
digemari oleh para programmer karena open source dan dapat
dikembangkan ke pemrograman berbasis internet sesuai kebutuhan masa
atau zaman ( Spell, 2000).
2.7.2 Pemrograman Prosedural dan Pemrograman Berorientasi
Objek
Menurut Sariadian dalam bukunya yang berjudul Pemrograman Java
Dasar – dasr Pengenalan dan Pemahaman (Sariadin, 2009) menjelaskan
bahwa program komputer terdiri atas kode dan data. Kode yang dimaksud
adalah proses logis program (misalnya fungsi), sedangkan data dapat
berupa variabel atau konstanta. Secara konseptual, kode dan data tersebut
diatur sedemikian rupa sehingga dapat bekerja sama untuk menghasilkan
keluaran sesuai dengan proses yang diinginkan.
Pada model pemrograman tradisional atau prosedural (disebut process
oriented mode), semua data kode digabung menjadi satu bagian dalam satu
program. Untuk program – program sederhana yang hanya membutuhkan
beberpa buah baris kode, penggunaan model ini tentu tidak begitu menjadi
masalah. Permasalahan baru akan timbul pada saat program tersebut
berkembang ke arah yang lebih besar dan kompleks, yang mungkin
33
34
membutuhkan ratusan atau bahkan ribuan baris kode. Pada pemrograman
beronrientasi objek, komponen – komponen penyusun program secara
konseptual akan dipecah menjadi bagian – bagian tersendiri yang disebut
dengan “objek”.
Dalam pemrograman berorientasi objek, setiap objek akan memiliki
data (sifat berupa variabel atau konstanta) dan method (perilaku atau
kemampuan melakukan sesuatu berupa fungsi). Jadi, objek dapat
didefinisikan sebagai suatu entitas yang memiliki data dan method.
Contoh :
Manusia adalah suatu objek yang memiliki data – data :
a. Nama
b. Jenis Kelamin
c. Tinggi Badan
d. Berat Badan
e. Golongan Darah
Manusia memiliki method :
a. Cara bicara
b. Cara berjalan
c. Cara marah
d. Sifat
2.7.3 Sifat – sifat Pemrograman Java
Sifat – sifat pemrograman Java, antara lain : berorientasi objek,
terdistribusi, multiplatform, dan multithread.
34
35
Java Berorientasi Objek
Pemrograman Java merupakan pemrograman yang berorientasi objek.
Artinya, penulisan program harus dibuat dalam bentuk objek – objek,
kemudian memodelkan sifat masing – masing objek dalam program. Java
menentukan dan mengatur interaksi antara objek.
Java Bersifat Terdistribusi
Program Java sesuai dengan perkembangan teknologi saat ini, yaitu
teknologi jaringan local seperti jaringan internet. Dalam hal ini, Java dapat
digunakan untuk menyebarkan/mendistribusikan data atau informasi dalam
workstation client, e-mail server, database server, dan webserver (dalam
jaringan komputer local dan internet).
Java Bersifat Multiplatform
Program Java yang sudah diterjemahkan (dikompilasi) dengan benar
dan berhasil dapat dijalankan pada platform yang lain atau pada sistem
operasi yang lain. Java menggunakan prinsip WORA (Write Once and Run
Anywhere). Sekali menuliskan program maka hasil programnya dapat
dijalankan pada sistem operasi yang mana saja. Artinya, sekali menulis
program dalam bahasa Java dan mengkompilasinya maka program tersebut
dapat dijalankan pada berbagai sistem operasi, seperti DOS, Windows,
Linux, MacOS, dan Solaris.
Java Bersifat Multithread
Thread merupakan unit dasar penggunan Central Processing Unit
(CPU) yang terdiri dari Thread_ID, program counter, register set, dan
35
36
stack. Multithread adalah banyaknya pekerjaan yang dikerjakan dalam
satuan waktu yang hampir bersamaan. Sebagai contoh, suatu web server
mempunyai ratusan client server. Jika web server hanya mempunyai satu
thread, berarti client yang lain harus menunggu. Oleh karena itu,
diperlukan multithread untuk dapat melayani client server.
2.7.4 Compiler dan Interpreter Java
Java mempunyai sistem yang digunakan untuk melakukan compiler
dan interpreter, yang semuanya mendukung program Java dalam
melakukan tugasnya.
a. Decompiler
Decompiler adalah program yang dapat menerjemahkan bahasa
mesin menjadi program yang dapat dibaca (high level language).
b. Compiler dan Interpreter
compiler dan interpreter adalah suatu sistem yang menerjemahkan
bahasa sumber (source language) menjadi bahasa sasaran (target
language). Source program yang ditulis diterjemahkan menjadi
target program. Proses penerjemahan sering disebut “kompilasi”
(compilasi). Perhatikan gambar 2.7.
36
37
Gambar 2.7 Proses Kompilasi
sumber : Sariadin (2009)
Class File adalah sejenis objek biner yang dihasilkan dari suatu
sumber yang dikompilasi.
Code Byte adalah format instruksi berupa urutan byte yang
mewakili perintah suatu mesin visual (JVM).
c. Java Virtual Machine (JVM)
Java Virtual Machine (JVM) merupakan aplikasi sederhana yang
ditulis dalam bahasa C untuk mengeksekusi program yang ditrulis
dalam bahasa Java. Pada saat kompilasi (perubahan bahasa
tingkay tinggi ke bahasa tingkat rendah), program tersebut diubah
menjadi kode byte. Kemudian pada saat eksekusi, JVM membaca
kode byte tersebut dan mengubahnya menjadi bahasa mesin yang
dimengerti oleh sistem operasi tempat program tersebut
dijalankan. Bahasa mesin merupakan bahasa level rendah yang
37
38
hanya dimengerti oleh mesin tertentu (misalnya, Intel), tapi tidak
dapat dimengerti oleh mesin lain (seperti Macintosh).
Karena JVM sangat bergantung pada platform – nya, kode byte ini
dapat dibuat untuk terbebas dari kungkungan platform tertentu.
Kode byte yang dihasilkan dalam proses kompilasi bahasa Java
akan selalu sama untuk setiap sistem operasi atau jenis mesinnya,
tetapi JVM akan mengubah kode byte tersebut menjadi bahasa
mesin tujuannya.
d. Just In Time Compiler (JIT)
Meskipun Java didesain untuk diinterpretasi, namun secara teknis
tidak ada yang menghalangi Java untuk dikompilasi menjadi
bahasa mesin seperti bahas – bahasa pemrograman lainnya. Sun
menyediakan Just In Time Compiler (JIT) untuk mengkompilasi
kode byte tersebut agar menjadi bahasa mesin pada saat yang
bersamaan dengan eksekusinya. Walaupun demikian, pendekatan
JIT ini dapat menghasilkan kemampuan yang lebih dibandingkan
dengan interpretasi biasa.
e. Java Modern
Java digunakan oleh berbagai aplikasi, seperti aplikasi embedded,
aplikasi keuangan, desktop, simulasi pesawat, pemrosesan citra,
game, web, dan aplikasi perusahaan distribusi.
38
39
2.7.5 Konsep Pemrograman Berorientasi Objek
Konsep pemrograman berorientasi objek atau Object Oriented
Programming (OOP) adalah inti dari pemrograman Java. Semua program
Java merupakan objek. Dasar pemrograman objek pada pemrograman Java,
antara lain :
1. Class
2. Object
3. Attribute
4. Method
5. Constructor
Desain pemrograman berorientasi objek adalah teknik yang
memfokuskan desain pada objek dan class berdasarkan pad askenario dunia
nyata. Hal ini menegaskan keadaan (state), behavior, dan interaksi dari
objek. Selain itu, pemrograman tersebut mempunyai manfaat akan
kebebasan
pengembangan,
pemeliharaan,
mempertinggi
meningkatkan
kemampuan
kualitas,
dalam
mempermudah
modifikasi,
dan
meningkatkan penggunaan kembali software.
1. Class
Class adalah pemodelan dari objek yang menjelaskan data (sifat
karakteristik data) dan fungsi yang dimiliki suatu objek. Class merupakan
wadah (tempat) yang digunakan untuk menciptakan suatu objek.
Dasar pemrograman berorientasi objek pada Java adalah class. Class
dapat membuat atau mendeklarasikan tipe data baru. Ia dijalankan sebagai
39
40
blueprint. File sumber Java harus diberi nama berdasarkan class di dalam
program.
Bentuk deklarasi class :
Class Nameclass
{
Class Body
}
Secara umum, class memiliki struktur anataomi sebagai berikut :
(modifier1) Class Nameclass (modifier2)
{
Class Body
}
Dalam pemrograman Java, ada beberapa keyword yang sering
digunakan sebagai modifier, yaitu kata tambahan yang terletak di depan
suatu unsure (kelas/data/method). Modifier tersebut berupa abstract, final,
multiple, static, serta tiga jenis lainnya, yaitu public, private, dan protected.
Modifier bersifat opsional (boleh dipakai atau tidak). Modifier public,
private dan protected digunakan untuk menentukan tingkat aksesibilitas
dari suatu kelas/data/method.
Aturan pemberian nama class :
a. Dimulai dengan abjad, tanda underscore (_), atau tanda dolar ($).
b. Nama
class
tidak
boleh
dimulai
dengan
bilangan
(0,1,2,3,4,5,6,7,….). Setelah karakter pertama, dapat diikuti
kombinasi abjad, underscore, dolar, atau bilangan.
40
41
c. Tidak boleh menggunakan keyword dalam Java (public, class,
boolean, private, dan sebagainya).
d. Tidak boleh menggunakan operator (+.-,=).
e. Java bersifat case sensitive (membedakan huruf kecil dan huruf
kapital).
Nama file source harus sesuai dengan nama class. Misalnya,
menuliskan nama mahasiswa dan alamat mahasiswa.
Nama file source – nya : dataku.java
Nama class : dataku
class dataku{
public static void main(string[] args){
string nama,alamat;
nama = “ Rita”;
alamat = “Jalan Sudirman Medan”;
system.out.printIn(“Nama : “+nama);
system.out.printIn(“Alamat : “+alamat);
}
}
2. Object
Object adalah sebuah entity yang memiliki keadaan, behavior, dan
identitas yang tugasnya dirumuskan dalam suatu lingkup masalah dengan
baik. Object dapat juga disebut suatu instans (instance). Instance adalah
proses pembuatan (perwujudan) suatu kelas menjadi objek. Dalam
41
42
pembuatan suatu kelas, dapat hanya membuat pendefinisian tipe data baru.
Ada 2 tahap untuk membuat objek baru dari tipe kelas yang telah
ddefinisikan :
Tahap 1 Mendeklarasikan variabel yang digunakan sebagai referensi
ke objek dari kelas yang bersangkutan.
Tahap 2 Menginstansiasi (instans) kelas dengan menggunakan kata
kunci new dan memasukkan instance – nya ke dalam
referensi yang baru dideklarasikan.
Class yang menggunakan kata kunci new secara dinamis akan
mengalokasikam ruang memori untuk menyimpan suatu objek tertentu dan
mengembalikan nilai berupa referensi ke objek yang bersangkutan.
Referensi objek adalah sebuah alamat memori dari objek yang dialokasikan
dengan menggunakan operator new.
3. Attribute
Attribute adalah elemen data dari suatu objek. Attribute menyimpan
informasi tentang objek. Attribute dapat diartikan sebagai data, variabel,
properti, atau sebuah field data. Setiap variabel harus memiliki tipe data
dan diberi nama yang unik untuk membedakan yang satu dengan yang
lainnya. Misalnya, objek mahasiswa.
Attribute dari seorang mahasiswa berupa:
Nomor mahasiswa
Nama mahasiswa
4. Method
42
43
Method adalah subprogram yang dihubungkan pada definisi class
tertentu. Setiap subprogram memiliki tugas sendiri. Method dalam
pemrograman terstruktur adalah prosedur atau fungsi yang dimiliki suatu
program. Sebuah method menjelaskan behavior dari sebuah objek. Dalam
Java, method ada dua, yaitu :
a. Method Void
Method void adalah method yang tidak mengembalikan nilai.
Untuk method void tipe data kembalian, harus diisi dengan
kata kunci void. Cara kerja method void sama seperti prosedur
(procedure).
b. Method Nonvoid
Method nonvoid adalah method yang mengembalikan nilai.
Untuk mengembalikan suatu nilai tertentu maka di dalam
method harus terdapat statement return yang diikuti dengan
nilai yang akan dikembalikan. Cara kerja method nonvoid
sama seperti fungsi (function).
Pendeklarasian/pendefinisian method :
1. Deklarasi method disebut “judul method” (header
method).
2. Badan method berada di dalam pasangan kurung
kurawal.
Cara penulisan :
Headermethod{
43
44
Badan method
}
3. Badan method membentuk satu blok.
5. Constructor
Constructor adalah sebuah method khusus yang digunakan dalam
kelas untuk membuat dan menginisialisasi sebuah objek baru. Constructor
berfungsi untuk menginisialisasi nilai terhadap data yang terdapat pada
kelas yang berhubungan. Ketentuan constructor untuk melakukan
inisialisasi:
1. Constructor harus bernama sama dengan nama
kelas.
2. Constructor tidak memverifikasikan tipe data yang
dikirim.
3. Kelas dapat berisi banyak constructor overloading
yang memungkinkan objek diinisialisasi.
2.7.6 Paket (Package)
a. Pengertian Package dalam Java
Cara untuk mengelompokan beberapa class dan interface yang
ada ke dalam kelompoknya masing – masing sehingga memungkinkan
penggunaan nama yang sama dapat dilakukan atau sarana untuk
mengelompokan kelas – kelas dan interface yang berhubungan dalam
suatu pustaka (library) menjadi satu unit disebut package. Package yang
44
45
secara otomatis di dalam Java API (Aplication Programming Interface)
adalah package java.lang. package ini berisi kelas – kelas dan interface
yang merupakan fundamental bagi semua pemrograman Java, yang
sering disebut “package language”. Sebagai contoh, isi package
java.lang seperti pemakaian atau penulisan dalam program.
Import java.io*;
Import java.awt.*;
Import javax.swing.*;
---
Kita dapat mendeklarasikan kelas – kelas di dalam package
yang tidak dapat diakses oleh statement atau perintah di luar package
(paket yang lain) atau membuat package yang baru sesuai dengan
keperluan program. Istilah package dapat juga dimaksudkan sebagai
pembungkus kelas – kelas agar tersusun rapi.
b. Deklarasi Package
Pernyataan package dituliskan pada awal source code file
sumber. Suatu package mendefinisikan nama ruang kelas – kelas
disimpan dan kelas – kelas dideklarasikan dalam satu paket sehingga
kelas – kelas itu menjadi milik package tersebut. Deklarasi package akan
memberitahu compiler ke library mana suatu kelas akan dikompile atau
dirujuk.
Untuk mengkompilasi atau mengeksekusi program, program
Java perlu mengetahui di mana letak dari semua kelas atau interface
yang akan diperlukan. Oleh karena itu, perlu adanya setting path. Nama
45
46
package hendaknya dapat menggambarkan atau merepresentasikan nama
kelas – kelas yang terkandung di dalam package tersebut. Penulisan
package harus dengan huruf kecil. Deklarasi package ini adalah suatu
kelas secara utuh yang meliputi variabel dan method yang ada di
dalamnya.
c. Mengimport Package dan Menggunakannya dalam Package
lain
Package yang berisikan class dan interface dapat digunakan
oleh package yang lain. Maksudnya, penggunaan package yang lain
adalah jika program memerlukan class dan interface berada di dalam
direktori yang mana atau package yang mana. Perintahnya menggunakan
import
nama
package.(namaClass|nama
interface|*);
atau
dapat
menggunakan tanda * (tanda bintang). Tanda bintang * gunanya untuk
menyatakan import semua class atau interface yang terdapat pada
package yang bersangkutan.
2.7.7 Object Oriented Programming (OOP)
a. Ciri – ciri Pemrograman Berorientasi Objek
Object
Oriented
Programming
(OOP)
adalah
suatu
pemrograman yang berorientasi objek. Ciri – ciri atau karakteristik
pemrograman berorientasi objek, antara lain :
1. Abtraksi (abstraction)
2. Pembungkusan (encapsulation)
46
47
3. Pewarisan (inheritance)
4. Polimorfisme (polymorphism)
Ciri – ciri pemrograman Java tersebut merupakan dasar – dasar
dari konsep yang terkandung dalam pemrograman Java itu sendiri.
1. Abtraksi (Abstraction)
Abstraksi adalah pengabstrakan atau melakukan seleksi
terhadap aspek – aspek tertentu suatu masalah. Abstraksi digunakan
untuk penyembunyian kerumitan dari suatu proses. Sebagai contoh,
dalam membuat suatu sistem, ada tombol – tombol yang dapat
digunakan. Operator atau pengguna tidak perlu berfikir tentang
pembuatan tombol tersebut, tetapi yang penting mereka dapat
menggunakannya. Contoh lain, mobil adalah kumpulan dari bagian –
bagian kecil. Orang hanya berpikir bahwa mobil sebagai objek yang
telah memiliki perilaku spesifik, yang dapat digunakan sebagai alat
angkut sehingga orang menggunakannya tanpa harus mengetahui
kerumitan proses yang terdapat di dalam mobil tersebut. Artinya, si
pembuat mobil telah menyembunyikan semua kerumitan – kerumitan
proses yang terdapat di dalam mobil dan pengguna tidak perlu
mengetahui bagaimana sistem mesin, transmisi, dan rem bekerja.
2. Pembungkusan (Encapsulation)
Pembungkusan sering pula disebut pengkapsulan. Artinya,
proses membuat paket data objek bersama dengan metode – metodenya.
Berdasarkan kode program, proses memisahkan aspek – aspek objek
47
48
dilakukan dengan cara pembungkusan. Proses pembungkusan itu sendiri
merupakan cara atau mekanisme untuk melakukan abstraksi. Dalam
pemrograman tradisional, proses semacam ini sering dinamakan dengan
penyembunyian informasi (information hidding). Dalam melakukan
pembungkusan kode dan data di dalam Java, terdapat tiga tingkat akses
yang perlu diketahui, yaitu private, protected, dan public.
3. Pewarisan (Inheritance)
Pewarisan adalah memberikan atau mewariskan sesuatu kepada
keturunan berikutnya. Dalam konteks ini, suatu kelas dalam program
dapat diturunkan menjadi kelas – kelas baru lainnya yang akan mewarisi
beberapa sifat atau perilaku dari kelas induknya. Sebagai contoh, apabila
kita memiliki kelas A dalam program yang dibuat maka kita dapat
membentuk kelas – kelas turunan dari kelas A tersebut (misalnya, kelas
B) yang mewarisi sifat – sifat yang terkandung dalam kelas A. dalam
proses pembuatan kelas turunan tersebut, kita dapat menambahkan sifat
dan perilaku baru ke daam kelas B, yang sebelumnya tidak dimiliki
dalam kelas A. dalam terminologi Java, kelas induk dinamakan dengan
superclass dan kelas turunan disebut dengan subclass. Untuk membuat
class anak atau subclass berdasarkan class yang telah ada, kita dapat
gunakan kata kunci extend dalam mendeklarasikan class. Sebuah class
hanya dapat meng – extend satu class induk.
4. Polimorfisme (Polymorphism)
48
49
Polimorfisme adalah suatu kejadian ketika objek dapat
mengungkap banyak hal melalui satu cara yang sama. Secara harfiah,
poli berarti banyak dan morph berarti bentuk. Jadi polimorfisme berarti
mempunyai banyak bentuk. Sebagai contoh, ada kelas A yang
diturunkan menjadi kelas B, C, dan D. Dengan konsep polimorfisme,
kita dapat menjalankan method – method yang terdapat pada kelas B, C,
dan D hanya dari objek yang diinstansiasi dengan kelas A. Polimorfisme
memungkinkan kita mengenali kesamaan di antara kelas yang berbeda.
Polimorfisme sering dinamakan dengan dynamic binding, late binding,
atau runtime binding.
2.7.8 Graphical User Interface (GUI)
a. Pengertian Graphical User Interface (GUI)
Graphical User Interface (GUI) adalah suatu aplikasi dalam
Java yang berbasis grafik. GUI membuat hasil dari suatu program
tampak menarik dan nyaman ketika digunakan oleh para user. Java
menyediakan dua kelas untuk GUI, antara lain:
1. AWT (Abstract Windowing Toolkit), yang terdapat dalam
package java.awt.
2. Swing, yang terdapat dalam package javax.swing.
Kedua
package
tersebut
–java.awt
dan
javax.swing-
mempunyai mekanisme penanganan (event handling) yang bersamaan.
AWT dan Swing menyediakan komponen GUI yang dapat digunakan
dalam membuat aplikasi Java dan Applet.
49
50
1. AWT (Abstract Windowing Toolkit)
AWT merupakan kumpulan class untuk membuat user
interface dan gambar. AWT terdapat dalam package java.awt. Package
java.awt berisi komponen – komponen GUI yang bersifat platform
sistem operasi. Pada AWT terdapat class – class yang mendukung,
seperti component, container, window, frame, panel, dan dialog. Setiap
class mempunyai beberapa subclass.
-
Frame
Frame dapat diubah ukurannya (resize).
Konstruktor :
Frame();
Frame(String tittle);
-
Panel
Panel adalah subclass dari AWT yang sering digunakan dalam
pengorganisasian tata letak komponen. Panel sering juga digunakan
bersamaan dengan frame.
2. Swing
Swing merupakan pengembangan dari AWT, khususnya pada
user interface. Swing terdapat pada package javax.swing. package
javax.swing dapat
diaplikasikan pada
platform
sistem
operasi.
Implementasi swing dalam program dapat menggunakan class yang
sudah terdapat pada package javax.swing, yaitu JFrame. JDialog,
JOption, JApplet.
50
51
-
JFrame
JFrame mempunyai subclass frame (bingkai atau kerangka).
Konstruktor:
Frame();
Frame(string tittle)
-
JDialog
JDialog
mempunyai
subclass
dialog.
Dialog
biasanya
digunakan bersamaan dengan frame. Perbedaan utama antara dialog
dengan frame adalah dialog tidak dibuat berdiri sendiri, tetapi frame
dapat berdiri sendiri tanpa dialog. Cara mudah menampilkan dialog
adalah dengan cara menggunakan class JOptionPane. Pada class
JOptionPane disediakan beberapa method static yang dapat langsung
digunakan untuk menampilkan dialog standar.
-
JOption
JOption digunakan untuk melakukan pilihan pada fasilitas dari
class Swing.
-
JApplet
JApplet mempunyai subclass Applet. Applet adalah aplikasi
Java yang dijalankan dalam lingkungan web browser internet. Applet
memiliki tiga method utama, antara lain :

init()
init() merupakan method yang akan dicari dan dieksekusi
pertama pada saat Applet dijalankan.
51
52

paint()
paint() berfungsi untuk meng-update tampilan.

add()
add() berfungsi untuk menambahkan komponen –
komponen ke Applet.
Untuk menjalankan Applet, kita perlu membuat file dalam
bentuk html (extention html).
2.8 Metode Penelitian
2.8.1 Metode Pengumpulan Data
Metode Pengumpulan data adalah prosedur sistematik dan standar untuk
memperoleh data yang diperlukan (Nazir, 2005). Data terbagi menjadi dua jenis,
yaitu data primer dan data sekunder. Data primer adalah data yang didapatakan
dan diolah sendiri oleh peneliti dari objek penelitian. Sedangkan data sekunder
adalah data yang didapatkan dan diolah peneliti tanpa melakukan pengamatan
langsung pada objek penelitian. Pada penelitian ini, penulis melakukan studi
lapangan untuk mendapatkan data primer dan studi literature untuk mendapatkan
data sekunder.
3. Studi Lapangan
a. Observasi
Observasi atau pengamatan (Observation) merupakan salah satu
teknik pengumpulan fakta/data
52
yang cukup efektif untuk
53
mempelajari suatu sistem. Observasi adalah pengamatan langsung
suatu kejadian yang sedang dilakukan (Jogiyanto, 2005).
b. Wawancara
Wawancara (interview) telah diakui sebagai teknik pengumpulan
data atau fakta yang penting dan banyak dilakukan dalam
pengembangan sistem informasi. Wawancara memungkinkan
analisis sistem sebagai pewawancara untuk mengumpulkan data
secara tatap muka langsung dengan orang yang diwawancarai
(Jogiyanto, 2005:617).
4. Studi Pustaka
Yang dimaksud dengan kepustakaan adalah segala usaha yang
dilakukan oleh peneliti untuk menghimpun informasi yang relevan
dengan topik atau masalah yang akan atau sedang diteliti. Informasi itu
didapat dari buku – buku ilmiah, laporan penelitian, karangan –
karangan ilmiah, peraturan – peraturan, ensiklopedia, dan sumber –
sumber tertulis baik tercetak maupun elektronik lain (Bintarto, 2002).
5. Studi Literatur
Beberapa sumber, ahli, maupun peneliti member istilah kajian literatur
dengan sebutan kajian teori atau studi literatur. Studi literature
merupakan salah satu kegiatan penelitian yang mencakup memeilih
teori – teori hasil penelitian, mengidentifikasi literatur, dan
menganalisa dokumen, serta menerapkan hasil analisis tadi sebagai
landasan teori bagi penyelesaian masalah dalam penelitian yang
53
54
dilakukan. Maksud dari kegiatan literatur adalah mencari teori atau
landasan berfikir yang tepat sebagai penguat proses penyelesaian
masalah (M. Subana dan Sudrajat, 2005).
Menurut Suwarno dalam bukunya “Metode Penelitian Kuantitatif &
Kualitatif” (Suwarno, 2006), tujuan utama dari studi literatur ialah : 1)
menemukan variabel – variabel yang akan diteliti, 2) membedakan hal
– hal yang sudah dilakukan dan menentukan hal – hal yang diperlukan,
3) melakukan sintesa dan memperoleh perspektif baru, dan 4)
menentukan makna dan hubungan antar variabel. Suwarno juga
berpendapat (Suwarno,2006), sumber – sumber kepustakaan dalam
studi literatur dapat berasal dari 1) abstrak hasil penelitian, 2) indeks,
3) review, 4) jurnal dan 5) buku referensi.
2.8.2 Metode Pengembangan Sistem
Proses pengembangan sistem diartikan sebagai sekumpulan aktivitas,
metode, best practive, deliverable, dan tools – tools otomatis yang digunakan
stakeholder untuk mengembangkan sistem informasi dan software secara
kontinu. Artinya pengembangan dilakukan sampai hal – hal yang menjadi
kebutuhan sistem. Untuk mengembangkan sistem, dibutuhkan metode yang tepat
agar memenuhi tujuannya.
Dalam
pengembangan
prototipe
pendeteksi
jarak
ini,
peneliti
menggunakan metode pendekatan literatif dalam pengembangan sistem atau
biasa disebut Prototipe. Metode Prototipe merupakan salah satu metode
54
55
pengembangan perangkat lunak yang banyak digunakan. Dengan metode
prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama
proses pembuatan sistem. Secara umum tujuan pengembangan sistem informasi
adalah
untuk
memberikan
kemudahan
dalam
penyimpanan
informasi,
mengurangi biaya dan menghemat waktu, meningkatkan pengendalian,
mendorong pertumbuhan, dan meningkatkan produktifitas.
Berikut akan dibahas dengan lebih jelas alasan peneliti menggunakan
metode prototipe dalam pengembangan sistem pendeteksi jarak beserta tahapan
dari alur prototipe tersebut.
Empat langkah yang menjadi karakteristik metode prototipe yaitu :
1. Pemilihan Fungsi
Mengacu pada pemilahan fungsi yang harus ditampilkan oleh
prototyping. Pemilahan harus selalu dilakukan berdasarkan pada
tugas – tugas yang relevan yang sesuai dengan contoh kasus yang
akan diperagakan.
2. Penyusunan Sistem
Bertujuan untuk memenuhi permintaan akan tersedianya prototipe.
3. Evaluasi
Evaluasi ini dilakukan oleh user apakah prototipe ini sesuai dengan
kebutuhan, jika yam aka sistem dilanjutkan, jika tidak sistem
diulangi.
55
56
4. Penggunaan Selanjutnya
Perangkat lunak yang telah di evaluasi dan diterima user siap
digunakan.
Tahapan – tahapan Prototyping :
1. Pengumpulan kebutuhan : User dan pengembang bersama – sama
mendefinisikan format seluruh perangkat lunak, mengindentifikasikan
semua kebutuhan, dan garis besar sistem yang akan dibuat.
2. Membangun prorotyping : Membangun prototyping dengan membuat
perancangan sementara yang berfokus pada penyajian kepada user.
3. Evaluasi prototyping : Evaluasi ini dilakukan oleh user apakah
prototyping yang dibangun sudah sesuai keinginan. Jika sudah sesuai
maka langkah 4 akan diambil, jika tidak prototyping direvisi dengan
mengulangi langkah 1 dan 2.
4. Mengkodekan sistem : Dalam tahap ini prorotyping yang sudah
disepakati diterjemahkan kedalam bahasa pemrograman yang sesuai.
5. Pengujian sistem : Setelah sistem sudah menjadi suatu perangkat
lunak yang siap dipakai, harus di tes dahulu sebelum digunakan.
Pengujian ini digunakan dengan White Box, Black Box, Basis Path,
pengujian arsitektur dan lain – lain.
6. Evaluasi sistem : User mengevaluasi apakah sistem yang sudah jadi
sesuai dengan yang diharapkan. Jika ya, langkah 7 dilakukan, jika
tidak, ulangi langkah 4 dan 5.
56
57
7. Menggunakan sistem : perangkat lunak yang telah diuji dan diterima
user siap untuk digunakan.
57
BAB III
METODOLOGI PENELITIAN
Pembahasan pada bab 3 ini yaitu penulis mengumpulkan data – data dan
informasi sebagai bahan yang mendukung kebenaran materi uraian pembahasan.
Selain itu untuk menyelesaikan masalah yang ada dalam sebuah perancangan
sistem, maka diperlukan beberapa tahap yang harus dilakukan. Dalam bab ini
dijelaskan mengenai tempat dan waktu penelitian, bahan dan alat serta
metodologi penelitian yang digunakan penulis dalam pengembangan sistem.
3.1 Metode Penelitian
Metode Penelitian ini bertujuan untuk mengetahui sistematika proses
yang berjalan pada pembuatan penulisan. Pada tahapan ini ada beberapa tahap
yang dilakukan seperti observasi, studi pustaka, dan studi literatur. Pada
penelitian ini diperhatikan pemahaman tentang cara berfikir dan cara
melaksanakan hasil berfikir menurut langkah – langkah ilmiah.
3.2 Teknik Pengumpulan Data
Teknik pengumpulan data berguna pada saat melakukan analisis terkait
penelitian yang sedang dilakukan. Data yang didapat nantinya akan digunakan
untuk acuan lebih lanjut. Proses pengumpulan data dapat dilakukan dengan
teknik – teknik tertentu, tergantung pada karakteristik penelitian.
58
59
3.2.1 Studi Lapangan
Pada observasi ini penulis mengamati langsung proses penempatan dan
pemindahan komponen produk dari dan menuju tempat tertentu pada sebuah
gudang penyimpanan untuk memperoleh informasi mengenai cara pemindahan
barang.
Hal ini sangat dibutuhkan agar penulis dapat melakukan analisis untuk
membuat suatu solusi terhadap proses pemindahan barang yang ada di gudang
tersebut serta menentukan rancangan pengembangan sistem yang akan dibangun
agar sesuai dengan harapan penulis. Adapun pelaksanaan observasi dilakukan
pada tanggal 7 – 15 April 2014 di sebuah gudang berukuran 30 x 50 m di daerah
Jakarta Timur.
3.2.2 Studi Pustaka
Pada tahapan pengumpulan data dengan cara studi pustaka, penulis
mencari referensi – referensi yang relevan dengan objek yang akan diteliti.
Pencarian referensi dilakukan di perpustakaan, toko buku, maupun secara online
melalui internet. Setelah mendapatkan referensi – referensi yang relevan,
kemudian penulis mencari berbagai informasi yang dibutuhkan dalam penelitian
ini. Adapun informasi yang didapat digunakan dalam penyusunan landasan teori,
metodologi penelitian serta pengembangan aplikasi secara langsung.
60
3.2.3 Studi Literatur
Pada tahapan ini dilakukan studi literatur dengan cara manual yaitu
mempelajari jurnal yang berhubungan dengan konsep, analisis dan perancangan
aplikasi yang meliputi pemodelan visual melalui blok diagram sistem,
pemrograman dengan menggunakan bahasa Java, serta pemrograman pada
mikrokontroler.
Langkah selanjutnya adalah melakukan pencarian secara online maupun
manual dengan melakukan pembelajaran terhadap tiga jurnal sejenis yang
berkaitan dengan penelitian ini, dari tiga jurnal tersebut diambil beberapa
kesimpulan seperti mikrokontroler yang dipakai, tolak ukur pengujian, kelebihan
dan kekurangan penelitian, dan sebagainya. Berikut adalah tabel hasil studi
literatur dari tiga jurnal penelitian tersebut :
Tabel 3.1 Hasil Studi Literatur
No
Judul Penelitian
Penulis
Asal Universitas
Tahun
Kelebihan
Kekurangan
Penelitian
1.
Tekhnik Elektro,
Sensor
Universitas
benda pada jarak sejauh 2
kesalahan
Trisakti
meter dengan baik.
0.82% hingga 34.40%.
Ultrasonik
Prawiroredjo
Berbasis
2008
 Sensor dapat mendeteksi  Tingkat
Detektor Jarak Dengan Kiki
 Menggunakan
Mikrokontroler
4
pesentase
sebesar
buah  Hasil
pengukuran
mikrokontroler, sehingga
terkadang tidak akurat
tidak
karena
ada
jeda
antara
pembacaan jarak.
interfensi
gelombang lain.
 Menggunakan dua warna  Kesalahan pengukuran
LED
yang
berbeda
sebagai penanda bahaya.
terjadi
karena
pembulatan nilai waktu
tempuh
pada
proses
perhitungan.
2.
Pembuatan
Alat Hendra
Pendeteksi Jarak untuk
Kendaraan Roda Empat
Hutama
Surya
Universitas
Gunadarma
2011
 Menggunakan
inframerah
menggunakan
sensor  Sensor cahaya, antara
yang
inframerah
dan
media
photodiode
yang
61
di
Dalam
Parkir
Mikrokontroler
Gedung
Berbasis
cahaya.
dirancang kurang rapih
 Sensor dapat mendeteksi
dan
tegak
perbedaan antara cahaya
sehingga
inframerah
bantuan
kendaraan
Begitu
terhalang
atau
juga
tidak.
lurus,
dibutuhkan
alat
untuk
meluruskannya.
terhadap  Buzzer akan berbunyi
indikator diode pemancar
secara
cahaya dan alarm buzzer
hingga
yang
mendapat masukan.
digunakan
untuk
memberikan informasi.
 Tingkat keberhasilan dari
hasil
pengujian
dapat
terus
menerus
sensor
tidak
 Kesensitifan
pada
resistor yang berubah,
membuat alat harus di
diperoleh nilai rata – rata
atur
ulang
sebelum
keberhasilan 95%.
menjalankannya.
 Membutuhkan
biaya
perancangan
yang
banyak
karena
menggunakan 8 buah
sensor dan 4 buah LED,
62
Buzzer, dan LCD.
3.
memberikan  Hanya
Sistem
Pada Kendaraan Roda
Komputer,
informasi secara realtime
dibagian
Dua
Menggunakan
Universitas
pada pengguna kendaraan
kendaraan roda dua.
Ultrasonic
Gunadarma
roda dua.
Sensor
2011
 Dapat
Alat Pendeteksi Jarak Arif Usman
sebagai
Dan
kemungkinan
Getar
Berbasis
Jaringan
menggangu
Nirkabel
Dan
pengendara
Mikrokontroler Atmega
depan
 Penggunaan
Dengan Tampilan LCD
Sistem
diletakan
ketika
LCD
pengingat,
akan
fokus
roda
dua
penggetar
berhasil digerakan oleh
tengangan sensor.
63
64
Berdasarkan hasil studi literatur sejenis tersebut maka didapat beberapa
informasi pendukung dan pembanding dalam penelitian ini yang dapat dijadikan
sebagai bahan acuan untuk meningkatkan kelebihan penelitian ini. Adapun
kelebihan yang dapat dideskripsikan dalam penelitian ini antara lain, yaitu :
1. Menggunakan sensor PING yang dapat melakukan pembacaan jarak
sejauh 3 meter, sehingga jangkauan yang dapt dibaca lebih luas tanpa
harus menambah jumlah sensor yang diperlukan.
2. Menggunakan dua buah micro servo yang diletakan di bawah sensor
PING, sehingga sensor akan diputar oleh kedua micro servo dengan
besar sudut mulai dari 450 hingga 3600.
3. Hasil dari pembacaan sensor dapat ditampilkan melalui grafik pada
layar PC, sehingga memudahkan pengguna untuk mengetahui jarak
dan sudut yang terdeteksi oleh sensor.
3.3 Metode Pengembangan Sistem Prototipe
3.3.1 Pemilihan Kebutuhan
Pada tahapan pengumpulan kebutuhan aplikasi, penulis melakukan
observasi pada sebuah gudang penyimpanan, guna mengetahui hal apa saja yang
sebenarnya dibutuhkan dalam proses pemindahan barang. Setelah mengetahui
kebutuhan apa saja yang diperlukan, kemudian melakukan pencarian data – data
dan referensi tentang bagaimana merancang suatu prototipe alat deteksi jarak,
bagaimana menggabungkan komponen – komponen sehingga dapat berjalan
dengan baik.
65
3.3.2 Membangun Prototyping
Tahapan selanjutnya dalam metode prototyping yaitu membangun
aplikasi secara cepat (prototipe). Pada tahap ini dilakukan pembuatan aplikasi
secara cepat, lebih memfokuskan pada input / output aplikasi sesuai dengan
kebutuhan umum yang diketahui pada tahap pertama. Tahapan ini menghasilkan
prototipe 1. Setelah prototipe 1 dihasilkan maka dilanjutkan ke tahapan
berikutnya yaitu evaluasi prototyping.
3.3.3 Evaluasi Prototyping
Pada tahap ini prototipe 1 di serahkan kepada user untuk di evaluasi dan
untuk mendiskusikan solusi untuk kendala – kendala yang dialami pada saat
pembuatan prototipe. Pada tahap penyerahan prototipe 1 didapatkan informasi
baru tentang kebutuhan aplikasi yang dibangun nantinya. Jika hasil evaluasi
tidak sesuai, maka tahap selanjutnya adalah mengulangi tahapan pengumpulan
kebutuhan.
3.3.4 Mengkodekan Sistem
Setelah mendapatkan informasi baru tentang kebutuhan aplikasi,
prototipe 1 dikembangkan sesuai dengan kebutuhan baru hasil evaluasi prototipe
1 menjadi prototipe 2. Dengan menekankan proses input / output yang di
butuhkan oleh user. Proses pengkodean sistem ini dilakukan dua tahapan,
pertama dilakukan di dalam software arduino, kemudian dilanjutkan dengan
pemrograman pada software netbeans untuk interface di Java.
66
3.3.5 Pengujian Sistem
Setelah prototipe 2 dirancang, maka dilakukan pengujian sistem, hal ini di
lakukan agar user dan pengembang dapat mengetahui cara kerja sistem serta
kekurangan yang ada pada sistem yang telah dirancang, baik dari segi
pemrograman arduino maupun pemrograman java.
3.3.6 Evaluasi Sistem
Pada tahapan ini, prototipe 2 diserahkan kepada user untuk kembali di
evaluasi, selanjutnya jika user setuju maka proses prototyping dinyatakan selesai.
3.3.7 Penggunaan Sistem
Setelah proses evaluasi oleh user dinyatakan sesuai, maka proses
prototyping sudah selesai, dan sistem dinyatakan dapat digunakan sesuai
kebutuhan user.
3.4 Peralatan Penelitian
Peralatan penelitian yang digunakan dalam penelitian ini antara lain
berupa perangkat keras dan perangkat lunak, yaitu :
1. Perangkat keras
Perangkat keras yang digunakan dalam penelitian ini berupa sebuah
laptop Asus A42F, Arduino Board, Sensor Ping, Mini Servo. Berikut
adalah spesifikasi dari tiap perangkat keras tersebut :
a. Laptop Asus A42F
67
Laptop Asus A42F memiliki spesifikasi :Processor Intel Core i3307M processor (2.4 Ghz, Chace 3MB), DDR3 1066 MHz
SDRAM, 2 x SODIMM socket for expansion up to 8GB SDRAM.
b. Arduino Uno R3 Board
Arduino
Uno
R3
memiliki
spesifikasi
Mikrokontroler
:
ATMEGA328, Tegangan Operasi : 5V, Tegangan Input
(recommended) : 7 - 12 V, Tegangan Input (limit) : 6-20 V, Pin
digital I/O : 14 (6 diantaranya pin PWM), Pin Analog input : 6,
Arus DC per pin I/O : 40 mA, Arus DC untuk pin 3.3 V : 150 mA,
Flash Memory : 32 KB dengan 0.5KB digunakan untuk
bootloader, SRAM : 2 KB, EEPROM : 1 KB, Kecepatan
Pewaktuan : 16 Mhz.
c. Sensor Ping
Sensor ping ini memiliki spesifikasi Power requirements : +5
VDC, Communication: Positive TTL pulse, Dimensions : 0.81 x
1.8 x 0.6 in (22 x 46 x 16 mm), Operating temp range: +32 to
+158 °F (0 to +70 °C).
d. Mini Servo
Mini servo memiliki spesifikasi Speed : 0.10 detik/60 derajat (4.8
V), Tegangan operasi 4.8V - 6V
68
2. Perangkat Lunak
Perangkat lunak yang digunakan adalah Arduino yang digunakan
untuk pemrograman mikrokontroler Arduino, Java Netbeans IDE
yang digunakan untuk proses pengkodingan interface, serta Microsoft
Visio untuk pembuatan diagram. Pada sistem operasi yang penulis
gunakan dalam penelitian ini adalah Microsoft Windows 7.
3.5 Kerangka Penelitian
Gambar 3.1 Kerangka Penelitian
BAB IV
ANALISIS DAN PEMBAHASAN
4.1 Pengembangan Prototipe
4.1.1 Pengumpulan Kebutuhan
Untuk mendapatkan hasil sistem yang maksimal peneliti memulai
penelitian dengan menggali semua informasi tentang sistem yang sedang
digunakan yaitu sistem penyimpanan dan pendistribusian barang yang ada di
gudang penyimpanan. Metode yang dilakukan pertama kali adalah mencari
masalah dari sistem tersebut lewat observasi pada sebuah gudang penyimpanan
berukuran 30 x 50 m di daerah Jakarta Timur. Dari metode observasi, peneliti
mendapat kelemahan yaitu dari sistem yang sedang dilakukan, yaitu karyawan
gudang terkadang menemui kesulitan dalam menata jarak antara barang yang di
simpan di gudang, serta proses kerja yang lambat, yang akhirnya menyebabkan
barang – barang tersebut di tumpuk begitu saja, tanpa memperhatikan keadaan
pada barang. Dari hasil observasi tersebut peneliti mencoba penelitiannya dengan
menjadikan sistem pemindahan barang bisa dijalankan secara efisien dengan
menggunakan alat bantu berupa mobil pengangkut yang diberi mikrokontroler
serta dikombinasikan dengan sensor yang bisa mendeteksi jarak benda agar mobil
penganggkut tidak mengenai barang lain yang ada di gudang.
69
70
4.1.2 Membangun Prototyping
a. Diagram Blok dan Cara Kerja
Untuk lebih memudahkan proses perakitan dan cara kerja masing –
masing rangkaian maka akan dibuat suatu diagram blok terlebih dahulu. Hal ini
sangat penting, karena dalam pembuatan suatu alat setiap rangkaian saling
berhubungan dan mempengaruhi kinerja alat lainnya. Sehingga hasil yang
didapat sesuai dengan keinginan dan teori yang berlaku. Berikut gambar blok
diagram rancangan alat yang akan dibuat dapat dilihat seperti pada gambar 3.1
Sensor PING
Arduino
Uno R3
Mini Servo
Buzzer
Pemrograman Java
Gambar 4.1 Diagram Blok
Fungsi dan kegunaan masing – masing blok adalah sebagai berikut :
1. Sensor PING berfungsi sebagai pengukur jarak terhadap suatu benda
dan mengirimkan sinyal ke mikrokontroler arduino.
2. Mini Servo berfungsi sebagai penggerak sensor, agar sensor dapat
bergerak memutar 360 derajat, agar dapat bergerak mini servo ini
dihubungkan ke mikrikontroler dan di program bersamaan dengan
sensor.
3. Arduino Uno R3 berfungsi menerima sinyal dari sensor PING, dan
sebagai pengendali mini servo beserta buzzer.
71
4. Buzzer berfungsi sebagai alarm yang dikirimkan oleh arduino yang
bersumber dari sinyal sensor PING.
5. Pemrograman Java berfungsi sebagai indikator keluaran dari arduino
pada proses pembacaan jarak dalam bentuk grafik.
Berikut merupakan alur proses pembacaan jarak yang berjalan pada
prototipe :
Gambar 4.2 Alur Proses Pembacaan Jarak Pada Prototipe
1. Sensor PING ultrasonik memancarkan gelombang 40Khz sesuai
dengan kontrol dari mikrokontroler pengendali. Gelombang ultrasonik
ini melalui udara dengan kecepatan 344 meter per detik, mengenai
objek dan memantul kembali ke sensor. PING mengeluarkan pulsa
output high pada pin SIG setelah memancarkan gelombang ultrasonik
dan setelah gelombang pantulan terdeteksi PING akan membuat
output low pada pin SIG. Sensor PING ini akan membaca objek
72
secara terus menerus sesuai dengan besar sudut dengan bantuan
penggerak micro servo.
2. Dua buah micro servo akan bergerak memutar 360 derajat berlawanan
dengan arah jarum jam, micro servo ini akan bergerak per 45 derajat,
dikarenakan sensor PING akan membaca objek setiap 45 derajat.
3. Arduino Uno R3 menerima sinyal dari pin SIG sensor, dan
mengendalikan perputaran dua buah micro servo serta pengirim sinyal
sensor PING ke buzzer.
4. Buzzer akan berbunyi ketika sinyal yang terdeteksi oleh sensor PING
kurang dari 200 cm.
5. Hasil yang terdeteksi oleh sensor dikirim ke arduino kemudian dibaca
melalui komunikasi serial port arduino dengan Java dan ditampilkan
dalam bentuk grafik polar.
b. Prototyping
Untuk memulai sebuah proyek, peneliti membuat prototipe sederhana
dengan gambar menggunakan aplikasi bernama Fritzing. Prototipe ini berupa
rangkaian jalur elektronika yang membangun sistem agar bisa bekerja secara
efektif. Bahan – bahan yang diperlukan dalam perancangan yaitu :
Tabel 4.1 Alat dan Bahan
No Nama
Jumlah
Tipe/ merek
1
1 unit
Paralax
Sensor Ultrasonik
73
2
Arduino UNO
1 unit
ATMega 328P
3
Micro Servo
2 unit
Tower Pro
4
Buzzer
1 unit
-
5
Project Board
1 unit
-
6
Kabel
1m
-
7
Baterai
4 unit
ABC
Berikut adalah gambar prototipe awal :
Gambar 4.3 Prototipe Awal
4.1.3 Evaluasi Prototyping
Prototipe awal yang telah dibuat peneliti kemudian dirancang ulang
menggunakan aplikasi Fritzing dengan menambahkan output berupa buzzer dan
penambahan daya untuk memberikan daya pada kedua buah micro servo. Setelah
prototipe baru terancang, kemudian peneliti membeli bahan – bahan untuk
perancangan sistem.
74
Berikut prototipe yang telah dirancang ulang :
Gambar 4.4 Rangkaian Alat
4.1.4 Mengkodekan Sistem
Pada bagian ini, peneliti mulai merancang alat berdasarkan rangkaian yang
telah dibuat sebelumnya. Proses ini terbagi kedalam dua tahapan, yaitu
pengkodean alat, kemudian pengkodean Interface. Perangkat lunak / software
yang digunakan untuk merancang alat yaitu Arduino 1.05. Aplikasi ini dirancang
secara portable, yang berarti aplikasi ini ada tanpa harus melalui proses instalasi.
Aplikasi ini digunakan untuk memprogram IC (Integrated Circuit) dengan bahasa
pemrograman C. Sedangkan
software yang digunakan untuk mengkodekan
interface yaitu Netbeans, aplikasi ini menggunakan bahasa pemrograman Java.
Kode program yang digunakan untuk merancang alat pada arduino adalah
sebagai berikut :
75
#include <Servo.h>
Servo myservo;
Servo myservo2;
int pos = 0;
//============
const int PINGPin = 7;
const int speakerPin = 8;
void setup() {
Serial.begin(9600);
myservo.attach(9);
myservo2.attach(10);
}
void loop()
{
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, LOW);
switched off
// sound buzzer is defalut
myservo2.write(0);
delay(500);
myservo.write(0);
delay(500);
/* servo atas dan bawah 0 derajat (depan)ambil data */
pickData();
myservo.write(90);
delay(1000);
/* servo atas 90 derajat (kiri)ambil data */
pickData();
myservo.write(180);
delay(1000);
/* servo atas 180 derajat (belakang)ambil data */
pickData();
76
myservo2.write(90);
delay(1000);
/* servo bawah 90 derajat (kanan)
ambil data */
pickData();
}
Kode program “#include <servo.h>” merupakan library khusus agar bisa
memuat kode intruksi untuk servo. Sedangkan pada kode program “servo
myservo; servo myservo2;” merupakan pembeda yang mendefinisikan bahwa
program ini menggunakan dua buah servo.
Kode 1.
const int PINGPin = 7;
const int speakerPin = 8;
Pada kode 1 berfungsi untuk mendefinisikan pin yang digunakan oleh
sensor PING dan buzzer pada board arduino.
Kode 2.
void setup() {
Serial.begin(9600);
myservo.attach(9);
myservo2.attach(10);
}
77
Pada kode 2 berfungsi sebagai inisiasi yang digunakan dalam program,
dalam hal ini inisiasi komunikasi serial pada 9600 bps, serta untuk dua buah servo
yang menggunakan pin 9 dan pin 10. Void setup dalam pemrograman arduino
merupakan fungsi wajib yang harus disertakan dalam memprogram arduino, jika
tidak maka akan menghasilkan eror, isi void setup bisa juga kosong.
Kode 3.
void loop()
{
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, LOW);
switched off
// sound buzzer is defalut
myservo2.write(0);
myservo.write(0);
/* servo atas dan bawah 0 derajat (depan)ambil data */
pickData(0);
delay (1000);
myservo.write(45);
/* servo atas 90 derajat (kiri)ambil data */
pickData(315);
delay(1000);
myservo.write(90);
/* servo atas 180 derajat (belakang)ambil data */
pickData(270);
delay(1000);
myservo.write(135);
/* servo atas 135 derajat (kiri)ambil data */
pickData(225);
delay(1000);
78
myservo.write(180);
/* servo atas 180 derajat (belakang)ambil data */
pickData(180);
delay(1000);
myservo2.write(45);
/*servo bawah 225 derajat (kanan)ambil data */
pickData(135);
delay(1000);
myservo2.write(90);
/*servo bawah 270 derajat (kanan)ambil data */
pickData(90);
delay(1000);
myservo2.write(135);
/*servo bawah 315 derajat (kanan)ambil data */
pickData(45);
delay(1000);
}
Pada kode 3 void loop () berfungsi sebagai tempat menaruh source code
yang akan diproses, void loop ini akan dijalankan setelah void setup selesai.
Sekali dijalankan, maka void loop ini akan berualang secara terus menerus sampai
catu daya di lepaskan.
Kode program “pinMode (speakerPin, OUTPUT)” berfungsi untuk
mendeklarasikan bahwa pin speaker sebagai output. Ketika sebuah pin dijadikan
sebagai output, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5V) atau LOW
79
(diturunkan menjadi ground) dengan menuliskan kode “digitalWrite (speakerPin,
HIGH).
Pada kode program “myservo.write()” dan “myservo2.write()” berfungsi
untuk meggerakan kedua servo sesuai sudut yang dituliskan dalam tanda (), micro
servo ini dapat berputar hingga 180o.
Kode program “pickData” merupakan kode program yang berfungsi untuk
pengambilan data. Kode program ini di deklarasikan secara khusus di dalam “void
pickData()”, di dalamnya berisi pengaturan untuk sensor dan buzzer. Untuk lebih
jelasnya perhatikan source code berikut.
Void pickData(long sudut){
long duration, cm;
pinMode(PINGPin, OUTPUT);
digitalWrite(PINGPin, LOW);
delayMicroseconds(2);
digitalWrite(PINGPin, HIGH);
delayMicroseconds(5);
digitalWrite(PINGPin, LOW);
// convert the time into a distance
cm = microsecondsToCentimeters(duration);
80
if(cm < 200) {
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, HIGH);
delay(1000);
digitalWrite(speakerPin, LOW);
delay(200);
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, HIGH);
delay(100);
digitalWrite(speakerPin, LOW);
delay(200);
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, HIGH);
delay(1000);
digitalWrite(speakerPin, LOW);
}
Serial.print(sudut);
Serial.print(",");
Serial.print(cm);
Serial.println();
delay(100);
}
long microsecondsToInches(long microseconds)
{
}
81
Kode program “pinMode (PINGPin, OUTPUT)” berfungsi untuk
mendeklarasikan bahwa pin sensor PING sebagai output. Pin tersebut ditarik
menjadi menjadi 5V “digitalWrite (PINGPin, HIGH) dan diturunkan menjadi
ground “digitalWrite (PINGPin, LOW).
Pada kode “if (cm >200) { pinMode (speakerPin, OUTPUT) …” berfungsi
untuk mengatur suara yang dihasilkan buzzer, dalam hal ini, ketika sensor
,membaca jarak kurang dari 200 cm, maka buzzer akan berbunyi sebanyak 3 kali
secara continue sampai sensor berhenti membaca jarak kurang dari 200 cm.
Pada kode program “serial.printIn()” berfungsi untuk mencetak hasil pada
serial monitor, dalam hal ini hasil dalam serial monitor di tampilkan dalam bentuk
besar sudut dan jarak yang terbaca ( dalam centimeter).
Setelah alat berhasil dirancang, penulis melanjutkan penelitian dengan
membuat interface (GUI) dengan menggunakan bahasa pemrograman Java
menggunakan software Netbeans. Source code yang dibuat terbagi dalam dua
nama file yaitu ConnectionSoket.java dan main.java. Kedua file ini disimpan
dalam satu paket (package) grafikjava (source code dapat dilihat dalam lampiran).
File ConnectionSoket.java di dalamnya berisi program inti yang
menghubungkan antara arduino dengan program java, sehingga program ini dapat
membaca hasil melalui komunikasi serial port dengan Arduino. Untuk dapat
mengakses komunikasi dengan arduino, pada program ini di beri tambahan library
berupa RXTX Java Library. Library ini sangat mirip dengan Java Communication
82
API. Nantinya kita dapat menyesuaikan COM port yang digunakan oleh port
Arduino. Selain itu, file ini berisi beberapa perintah yang nantinya dapat diakses
oleh file main.java.
Pada file main.java di dalamnya berisi source code untuk menampilkan
GUI (Graphical User Interface). Dalam file ini terdapat source code :
public ConnectionSoket = c new ConnectionSoket ();
hal ini berarti class main dapat mengakses class ConnectionSoket. File ini akan
menampilkan output berupa grafik, keterangan jarak dan keterangan sudut.
4.2 Uji Coba
Pengujian yang dilakukan pada sistem ini bertujuan untuk mengetahui
tingkat keberhasilan suatu proyek dalam mencapai hasil yang diinginkan.
Berdasarkan pengujian yang dilakukan akan diperoleh hasil data sebagai bukti
bahwa sistem tersebut telah bekerja. Hasil data tersebut kemudian disusun dengan
rapi sedemikian rupa sehingga penulis dapat melakukan analisa terhadap data-data
tersebut dengan baik dan selanjutnya dapat digunakan sebagai bahan untuk
mendapatkan kesimpulan.
4.2.1 Uji Kepekaan Sensor PING
Uji kepekaan sensor PING merupakan sebuah tes untuk melihat fungsi
dari sensor PING yang bekerja secara efektif. Dalam tes ini sensor akan
83
didekatkan dengan sebuah benda sebagai input , hasil pembacaan jarak pada
sensor dapat dilihat dalam serial monitor, kemudian di ukur secara manual
menggunakan penggaris, jarak antara benda dengan sensor, kemudian di
sesuaikan dengan hasil pembacaan sensor yang ada pada serial monitor.
Gambar 4.5 Sensor PING menerima input
(sumber : dokumentasi pribadi)
Gambar 4.6 Hasil pembacaan sensor PING pada serial monitor
(sumber : capture screen)
Hasil pembacaan yang ditunjukan pada serial monitor (gambar 4.8)
menunjukan 6in, 15cm. Hal ini berarti jarak benda di depan sensor berjarak 6
inchi atau 15 cm.
84
Gambar 4.7 Hasil pengukuran manual menggunkan penggaris
(sumber : dokumentasi pribadi)
Dari gambar 4.6 didapat hasil pengukuran sejauh 15cm menggunakan
penggaris, maka dengan demikian hasil pembacaan yang terlihat pada serial
monitor dan hasil pengukuran secara manual adalah sama.
4.2.2 Uji Coba Interface (GUI)
Gambar 4.8 Tampilan Grafik Polar
(sumber : capture screen)
85
Gambar 4.9 Tampilan Keterangan Sudut dan Jarak secara digital
(sumber : capture screen)
Gambar 4.10 Tampilan pemilihan COM port dan tombol on/off
(sumber : capture screen)
86
Gambar 4.11 Tampilan console dari data yang diambil langsung
pada serial monitor Arduino
(sumber : capture screen)
Gambar 4.12 Tampilan keseluruhan
(sumber : capture screen)
87
4.2.3 Uji Coba Keseluruhan
Gambar 4.13 Pemasangan Sensor PING dengan dua buah micro servo
(sumber : dokumentasi pribadi)
Gambar 4.14 Tampilan Interface (GUI) saat program dijalankan
(sumber : capture screen)
88
4.2.4 Uji Kecepatan Antara Forklift dan Prototipe
Untuk mengetahui perbandingan kecepatan antara forklift dan prototipe,
dilakukan perhitungan sebagai berikut :
1. Kecepatan rata – rata forklift pada gudang penyimpan barang adalah 5
km/jam.
2. Kecepatan rata – rata Prototipe :
Prototipe =
=
1,2 m
= 0,3 m/s
4 detik
0,3 m/s
x 3600 s = 1,08 km/jam
1000 m
Jadi, perbandingan kecepatan antara Forklift dan prototipe adalah
5 : 1,08 1 : 0,126
4.3 Analisis
Dari hasil pengujian yang telah dilakukan penulis memperoleh beberapa
hasil mengenai penelitian ini, diantaranya :
1. Sensor ultrasonik dapat membaca jarak dengan baik sejauh 3 meter
berdasarkan prinsip pemantulan gelombang ultrasonik.
2. Output yang dihasilkan berupa grafik polar dan indikator suara sebagai
tanda bahwa sensor semakin mendekati benda di sekitarnya.
3. Indikator suara yang dihasilkan buzzer didapat dari hasil pembacaan
sensor PING ketika membaca jarak kurang dari 200 cm.
4. Jarak minimal sensor PING mengirimkan sinyal ke buzzer adalah 200 cm,
dengan delay 1 detik pada kecepatan rata – rata forklift 5 km/jam.
89
5. Perbandingan kecepatan antara forklift dengan prototipe adalah 1 : 0, 126
dengan delay 1 detik.
6. Masih terdapat jeda antara pergerakan mobil pengangkut dengan jarak
yang tampil dilayar, diakibatkan karena proses kerja prototipe.
BAB V
PENUTUP
Setelah melakukan serangkaian penelitian, maka pada bab ini peneliti
akan memberikan kesimpulan beserta saran yang dapat menjadi pertimbangan
untuk penelitian yang selanjutnya.
5.1 Kesimpulan
Berdasarkan penelitian yang telah dilakukan, maka dapat ditarik
kesimpulan bahwa perancangan prototipe alat deteksi jarak dengan
menggunakan Arduino, sensor ping dan bahasa pemrograman Java telah
berhasil dirancang. Dimana sensor PING ultrasonik dapat membaca jarak
hingga 3m dengan menghasilkan output berupa grafik polar dan indikator
suara sebagai tanda bahwa sensor semakin mendekati benda di sekitarnya.
5.2 Saran
Detektor jarak yang dibuat ini masih dalam bentuk prototipe. Oleh
karena itu pada penelitian selanjutnya dapat mempertimbangkan hal – hal
berikut ini :
1. Pembacaan jarak dan hasil yang ditampilkan dalam grafik
dapat disesuaikan dengan kecepatan rata – rata dari mobil
pengangkut barang.
90
91
2. Penambahan fitur penanda bahaya pada interface, sehingga
user dapat lebih memperhatikan jarak yang dibaca oleh sensor.
3. Hasil yang ditampilkan pada layar monitor dapat ditampilkan
pada layar LCD yang disimpan pada mobil pengangkut.
DAFTAR PUSTAKA
Aji, Suhandono.2011. Desain Prototipe Jembatan Timbang Otomatis Berbasis
Mikrokontroler Dengan Sensor Flexiforce Program Studi Fisika UIN
Syarif Hidayatullah Jakarta : Skripsi Tidak Diterbitkan
Banzi, Massimo.2011.Getting Started with Arduino.Sebastopol : O’Reolly Media
Bintarto, Iwan. 2002.Metodologi Pengembangan Sistem. Yogyakarta : Andi
Evans, Brian. 2011. Beginning Arduino Programming. Apress
Houde, Stephanie & Hill, Charles. 2004. What do Prototypes Prototype?. USA :
Apple Computer,Inc
Jogiyanto HM. 2005. Analisis dan Desain Sistem Informasi : Pendekatan
terstruktur teori dan praktek aplikasi bisnis. Yogyakarta : Andi
Kadir, Abdul. 2013. Panduan Praktis Mempelajari Aplikasi Mikrokontroler dan
Pemrogramannya Menggunakan Arduino. Yogyakarta : Andi
Kurnia, Ahmad. 2007. Sistem Manajemen Gudang. STIE Swadaya Mitra.
Makalah Tidak Diterbitkan
Ladjamudin, Al-bahra. 2004. Analisis dan Desain Sistem Informasi. Yogyakarta :
Graha Ilmu
Mc Leod, Raymond. 2002. Sistem Informasi Manajemen. Jakarta : Prenhallindo
Nazir, Muhammad. 2005. Metode Penelitian. Jakarta : Ghalia Indonesia
Pressman, Roger S. 2002. Rekayasa Perangkat Lunak Buku 1. Yogyakarta : Andi
Sasongko, Bagus H. 2006. Pemrograman Mikrokontroler Dengan Bahasa C.
Yogyakarta : Andi
Siallagan, Sariadin. 2009. Pemrograman Java Dasar – Dasar Pengenalan dann
Pemahaman. Yogyakarta : Andi
Spell, Brett. 2000. Profesional Java Programming. United States : Wrox Press
Ltd
Tamimi, Ahmad. Prototype Sistem Waktu Nyata Peringatan Dini Banjir
Menggunakan Mikrokontroler Arduino Uno (Studi Kasus Pada Pintu Air
Depok) Program Studi Teknik Informatika UIN Syarif Hidayatullah
Jakarta : Skripsi Tidak Diterbitkan
Tarigan, Pernatin. 2010. Sistem Tertanam (Embedded System).
Usman. 2008. Teknik Antar Muka +Pemograman Mikrokontroler AT89S52.
Yogyakarta : Andi
Widodo. 2005. Panduan Lengkap Belajar Mikrokontroler; Perancangan Sistem
dan Aplikasi.
Widodo. 2007. Radio Detection Ranging. Bandung : PT. Rosdakarya
William de Cooper. 1994. Instrumentasi Elektronik dan Teknik Pengukuran
(Terjemahan). Jakarta : Erlangga
Whitten et al. 2004. Metode Desain & Analisis Sistem Edisi 6 (Terjemahan).
Yogyakarta : Andi
Anonim. Arduino [online] Tersedia : www.arduino.cc diakses 12 Desember 2013
Anonim. PING Paralax [online] Tersedia : www.paralax.com diakses 15 November
2013
. 2006. Metode Penelitian Kuantitatif dan Kualitatif
Lampiran 1
Source Code Program Java
L–1
-
ConnectionSoket.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package grafikjava;
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import java.awt.Color;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.HashMap;
import javax.swing.JComboBox;
import javax.swing.JLabel;
/**
*
* @author yuy
*/
public class ConnectionSoket {
String s = "\r";
byte[] readBuffer = new byte[1];
private Enumeration ports = null;
private HashMap portMap = new HashMap();
private CommPortIdentifier selectedPortIdentifier = null;
private SerialPort serialPort = null;
final static int TIMEOUT = 1000;
final static int SPACE_ASCII = 32;
final static int DASH_ASCII = 45;
final static int NEW_LINE_ASCII = 10;
private InputStream input = null;
private OutputStream output = null;
int indeks = 0;
public void searchForPorts(JComboBox jb) {
ports = CommPortIdentifier.getPortIdentifiers();
while (ports.hasMoreElements()) {
CommPortIdentifier curPort = (CommPortIdentifier)
ports.nextElement();
if (curPort.getPortType() ==
CommPortIdentifier.PORT_SERIAL) {
jb.addItem(curPort.getName());
portMap.put(curPort.getName(), curPort);
}
}
}
public boolean initIOStream() {
//return value for whather opening the streams is
successful or not
boolean successful = false;
String a;
int sudut;
float jarak;
String data[];
try {
input = serialPort.getInputStream();
input.read(readBuffer);
indeks++;
a = new String(readBuffer);
if (a.equals("\n")) {
s = s.replaceAll("\r", "");
data = s.split(",");
if (indeks > 1 && indeks < 11 && data.length == 2)
{
sudut = Integer.valueOf(data[0]);
jarak = Float.valueOf(data[1]);
main.ta_console.append("Sudut: " + sudut + "
Jarak: " + jarak);
main.ta_console.append("\n");
main.ta_console.setCaretPosition(main.ta_console.getDocument().get
Length());
if (sudut == 0) {
main.series.updateByIndex(0, jarak);
main.l_depan.setText(jarak + " cm");
alretLabel(main.l_depan, jarak);
} else if (sudut == 45) {
main.series.updateByIndex(1, jarak);
main.l_kanan_depan.setText(jarak + " cm");
alretLabel(main.l_kanan_depan, jarak);
} else if (sudut == 90) {
main.series.updateByIndex(2, jarak);
main.l_kanan.setText(jarak + " cm");
alretLabel(main.l_kanan, jarak);
} else if (sudut == 135) {
main.series.updateByIndex(3, jarak);
main.l_kanan_belakang.setText(jarak + "
cm");
alretLabel(main.l_kanan_belakang, jarak);
} else if (sudut == 180) {
main.series.updateByIndex(4, jarak);
main.l_belakang.setText(jarak + " cm");
alretLabel(main.l_belakang, jarak);
} else if (sudut == 225) {
main.series.updateByIndex(5, jarak);
main.l_kiri_belakang.setText(jarak + "
cm");
alretLabel(main.l_kiri_belakang, jarak);
} else if (sudut == 270) {
main.series.updateByIndex(6, jarak);
main.l_kiri.setText(jarak + " cm");
alretLabel(main.l_kiri, jarak);
} else if (sudut == 315) {
main.series.updateByIndex(7, jarak);
main.l_kiri_depan.setText(jarak + " cm");
alretLabel(main.l_kiri_depan, jarak);
}
}
indeks = 0;
s = "\r";
} else {
s = s + a;
}
successful = true;
return successful;
} catch (IOException e) {
return successful;
}
}
void alretLabel(JLabel label, float value) {
if (value < 200) {
label.setForeground(Color.red);
} else {
label.setForeground(Color.black);
}
}
public void disconnect() {
//close the serial port
try {
serialPort.removeEventListener();
serialPort.close();
input.close();
} catch (Exception e) {
}
}
public void connect(JComboBox jb) {
String selectedPort =
String.valueOf(jb.getSelectedItem());
selectedPortIdentifier = (CommPortIdentifier)
portMap.get(selectedPort);
CommPort commPort = null;
try {
commPort =
selectedPortIdentifier.open("TigerControlPanel", TIMEOUT);
serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (PortInUseException e) {
} catch (Exception e) {
}
}
}
-
main.java
package grafikjava;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
package grafikjava;
import
import
import
*/
import
import
org.jfree.chart.ChartFactory;
org.jfree.chart.JFreeChart;
org.jfree.chart.PolarChartPanel;
org.jfree.chart.ChartFactory;
org.jfree.chart.JFreeChart;
import
import
import
import
import
import
import
import
org.jfree.chart.PolarChartPanel;
org.jfree.chart.plot.PolarPlot;
org.jfree.chart.renderer.DefaultPolarItemRenderer;
org.jfree.data.xy.XYDataset;
org.jfree.data.xy.XYSeries;
org.jfree.data.xy.XYSeriesCollection;
org.jfree.ui.ApplicationFrame;
org.jfree.ui.RefineryUtilities;
/**
*
* @author yuy
*/
public class main extends ApplicationFrame implements
Runnable {
/**
* Creates new form main
*/
public ConnectionSoket c = new ConnectionSoket();
protected static Thread th;
private volatile boolean start;
public static XYSeries series = new XYSeries("Jarak");
JFreeChart chart;
public main(String title) {
super(title);
XYDataset dataset = createDataset();
chart = createChart(dataset);
initComponents();
b_off.setVisible(false);
start = false;
c.searchForPorts(cb_COM);
}
private XYDataset createDataset() {
XYSeriesCollection data = new XYSeriesCollection();
series.add(0, 300);
series.add(45, 300);
series.add(90, 300);
series.add(135, 300);
series.add(180, 300);
series.add(225, 300);
series.add(270, 300);
series.add(315, 300);
data.addSeries(series);
return data;
}
private JFreeChart createChart(final XYDataset dataset)
{
chart = ChartFactory.createPolarChart(
"Grafik Polar Jarak Antara Alat Dengan
Benda", dataset, true, true, false);
final PolarPlot plot = (PolarPlot) chart.getPlot();
final DefaultPolarItemRenderer renderer =
(DefaultPolarItemRenderer) plot.getRenderer();
renderer.setSeriesFilled(2, true);
return chart;
}
/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
cb_COM = new javax.swing.JComboBox();
b_on = new javax.swing.JButton();
b_off = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jPanel7 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
l_depan = new javax.swing.JLabel();
l_kanan_depan = new javax.swing.JLabel();
l_kanan = new javax.swing.JLabel();
l_kanan_belakang = new javax.swing.JLabel();
l_belakang = new javax.swing.JLabel();
l_kiri_belakang = new javax.swing.JLabel();
l_kiri = new javax.swing.JLabel();
l_kiri_depan = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jPanel8 = new javax.swing.JPanel();
jLabel10 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
ta_console = new javax.swing.JTextArea();
jPanel3 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
grafik = new PolarChartPanel(chart);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON
_CLOSE);
b_on.setText("On");
b_on.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
b_onActionPerformed(evt);
}
});
b_off.setText("Off");
b_off.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
b_offActionPerformed(evt);
}
});
jLabel1.setText("COM:");
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(3, 3, 3)
.addComponent(cb_COM,
javax.swing.GroupLayout.PREFERRED_SIZE, 174,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
UNRELATED)
.addComponent(b_on,
javax.swing.GroupLayout.PREFERRED_SIZE, 63,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
UNRELATED)
.addComponent(b_off,
javax.swing.GroupLayout.PREFERRED_SIZE, 70,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(571, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(16, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(b_on)
.addComponent(b_off)
.addComponent(cb_COM,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addContainerGap())
);
getContentPane().add(jPanel1,
java.awt.BorderLayout.PAGE_START);
jPanel2.setLayout(new java.awt.BorderLayout());
javax.swing.GroupLayout jPanel5Layout = new
javax.swing.GroupLayout(jPanel5);
jPanel5.setLayout(jPanel5Layout);
jPanel5Layout.setHorizontalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGap(0, 21, Short.MAX_VALUE)
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGap(0, 505, Short.MAX_VALUE)
);
jPanel2.add(jPanel5,
java.awt.BorderLayout.LINE_END);
jPanel6.setLayout(new java.awt.BorderLayout());
jLabel2.setText("Depan");
jLabel3.setText("Kanan-depan");
jLabel4.setText("Kanan");
jLabel5.setText("Kanan-belakang");
jLabel6.setText("Belakang");
jLabel7.setText("Kiri-belakang");
jLabel8.setText("Kiri");
jLabel9.setText("Kiri-depan");
l_depan.setText("300 cm");
l_kanan_depan.setText("300 cm");
l_kanan.setText("300 cm");
l_kanan_belakang.setText("300 cm");
l_belakang.setText("300 cm");
l_kiri_belakang.setText("300 cm");
l_kiri.setText("300 cm");
l_kiri_depan.setText("300 cm");
jLabel11.setText("Keterangan :");
javax.swing.GroupLayout jPanel7Layout = new
javax.swing.GroupLayout(jPanel7);
jPanel7.setLayout(jPanel7Layout);
jPanel7Layout.setHorizontalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, 150, Short.MAX_VALUE)
.addComponent(l_depan))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel9)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, 133, Short.MAX_VALUE)
.addComponent(l_kiri_depan))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, 117, Short.MAX_VALUE)
.addComponent(l_kanan_depan))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, 151, Short.MAX_VALUE)
.addComponent(l_kanan))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, 104, Short.MAX_VALUE)
.addComponent(l_kanan_belakang))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, 138, Short.MAX_VALUE)
.addComponent(l_belakang))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, 120, Short.MAX_VALUE)
.addComponent(l_kiri_belakang))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, 167, Short.MAX_VALUE)
.addComponent(l_kiri))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(jLabel11)
.addGap(0, 152, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel11)
.addGap(24, 24, 24)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(l_depan))
.addGap(18, 18, 18)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(l_kanan_depan))
.addGap(18, 18, 18)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(l_kanan))
.addGap(18, 18, 18)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(l_kanan_belakang))
.addGap(18, 18, 18)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(l_belakang))
.addGap(18, 18, 18)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(l_kiri_belakang))
.addGap(18, 18, 18)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(jLabel8)
.addComponent(l_kiri))
.addGap(18, 18, 18)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.BASELINE)
.addComponent(jLabel9)
.addComponent(l_kiri_depan))
.addContainerGap(23, Short.MAX_VALUE))
);
jPanel6.add(jPanel7,
java.awt.BorderLayout.PAGE_START);
jLabel10.setText("Console:");
ta_console.setColumns(20);
ta_console.setRows(5);
ta_console.setCursor(new
java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
ta_console.setDragEnabled(true);
ta_console.setFocusCycleRoot(true);
ta_console.setOpaque(false);
jScrollPane1.setViewportView(ta_console);
javax.swing.GroupLayout jPanel8Layout = new
javax.swing.GroupLayout(jPanel8);
jPanel8.setLayout(jPanel8Layout);
jPanel8Layout.setHorizontalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(jLabel10)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 212,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(13, Short.MAX_VALUE))
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel10)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
.addContainerGap())
);
jPanel6.add(jPanel8, java.awt.BorderLayout.CENTER);
jPanel2.add(jPanel6, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel2,
java.awt.BorderLayout.LINE_END);
javax.swing.GroupLayout jPanel3Layout = new
javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGap(0, 29, Short.MAX_VALUE)
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGap(0, 505, Short.MAX_VALUE)
);
getContentPane().add(jPanel3,
java.awt.BorderLayout.LINE_START);
javax.swing.GroupLayout jPanel4Layout = new
javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGap(0, 938, Short.MAX_VALUE)
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGap(0, 32, Short.MAX_VALUE)
);
getContentPane().add(jPanel4,
java.awt.BorderLayout.PAGE_END);
javax.swing.GroupLayout grafikLayout = new
javax.swing.GroupLayout(grafik);
grafik.setLayout(grafikLayout);
grafikLayout.setHorizontalGroup(
grafikLayout.createParallelGroup(javax.swing.GroupLayout.Ali
gnment.LEADING)
.addGap(0, 653, Short.MAX_VALUE)
);
grafikLayout.setVerticalGroup(
grafikLayout.createParallelGroup(javax.swing.GroupLayout.Ali
gnment.LEADING)
.addGap(0, 505, Short.MAX_VALUE)
);
getContentPane().add(grafik,
java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>
private void
b_onActionPerformed(java.awt.event.ActionEvent evt) {
c.connect(cb_COM);
cb_COM.setEnabled(false);
b_on.setVisible(false);
b_off.setVisible(true);
start = true;
mulai();
// TODO add your handling code here:
}
private void
b_offActionPerformed(java.awt.event.ActionEvent evt) {
b_off.setVisible(false);
b_on.setVisible(true);
cb_COM.setEnabled(true);
start = false;
c.disconnect();
// TODO add your handling code here:
}
private void mulai() {
th = new Thread(this);
th.start();
}
@Override
public void run() {
while (start) {
c.initIOStream();
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
main demo = new main("Grafik Polar Jarak Antara Alat
Dengan Benda");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
// Variables declaration - do not modify
private javax.swing.JButton b_off;
private javax.swing.JButton b_on;
private javax.swing.JComboBox cb_COM;
private javax.swing.JPanel grafik;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JScrollPane jScrollPane1;
public static javax.swing.JLabel l_belakang;
public static javax.swing.JLabel l_depan;
public static javax.swing.JLabel l_kanan;
public
public
public
public
public
public
// End
}
static javax.swing.JLabel l_kanan_belakang;
static javax.swing.JLabel l_kanan_depan;
static javax.swing.JLabel l_kiri;
static javax.swing.JLabel l_kiri_belakang;
static javax.swing.JLabel l_kiri_depan;
static javax.swing.JTextArea ta_console;
of variables declaration
Lampiran 2
Source Code Program Arduino
L–2
#include <Servo.h>
Servo myservo;
// create servo object to control a servo
// a maximum of eight servo objects can be created
Servo myservo2;
int pos = 0;
// variable to store the servo position
//=================================
const int pingPin = 7;
const int speakerPin = 8;
void setup() {
// initialize serial communication:
Serial.begin(9600);
myservo.attach(9);
object untuk atas
// attaches the servo on pin 9 to the servo
myservo2.attach(10); // untuk bawah
}
void loop()
{
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, LOW);
switched off
// sound buzzer is defalut
myservo2.write(0);
myservo.write(0);
/*================================
servo atas dan bawah 0 derajat (depan)
ambil data
==================================*/
pickData(0);
delay(1000);
myservo.write(45);
/*===================================
servo atas 45 derajat (kiri)
ambil data
======================================*/
pickData(315);
delay(1000);
myservo.write(90);
/*===================================
servo atas 90 derajat (kiri)
ambil data
======================================*/
pickData(270);
delay(1000);
myservo.write(135);
/*===================================
servo atas 135 derajat (kiri)
ambil data
======================================*/
pickData(225);
delay(1000);
myservo.write(180);
/*====================================
servo atas 180 derajat (belakang)
ambil data
======================================*/
pickData(180);
delay(1000);
myservo2.write(45);
/*====================================
servo bawah 225 derajat (kanan)
ambil data
======================================*/
pickData(135);
delay(1000);
myservo2.write(90);
/*====================================
servo bawah 270 derajat (kanan)
ambil data
======================================*/
pickData(90);
delay(1000);
myservo2.write(135);
/*====================================
servo bawah 315 derajat (kanan)
ambil data
======================================*/
pickData(45);
delay(1000);
}
void pickData(long sudut){
long duration, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
// The same pin is used to read the signal from the PING))): a
HIGH
// pulse whose duration is the time (in microseconds) from the
sending
// of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
// convert the time into a distance
//inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
if(cm < 200) {
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, HIGH);
delay(1000);
digitalWrite(speakerPin, LOW);
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, HIGH);
delay(100);
digitalWrite(speakerPin, LOW);
delay(200);
pinMode(speakerPin, OUTPUT);
digitalWrite(speakerPin, HIGH);
delay(1000);
digitalWrite(speakerPin, LOW);
}
Serial.print(sudut);
Serial.print(",");
Serial.print(cm);
Serial.println();
}
long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
Lampiran 3
Tampilan Software Arduino
L–3
-
Tampilan logo dan label tampilan awal
-
Tampilan Sorce code dalam software Arduino
-
Tampilan Upload ke mikrokontroler
-
Hasil Pembacaan Sensor Pada Serial Monitor
Download