Upload
feraz
View
3.952
Download
1
Embed Size (px)
Citation preview
APLIKASI SCOPE VOLT METER PADA PC MEMANFAATKAN
SOUNDCARD SEBAGAI PORT MASUKAN
TUGAS AKHIR
Oleh
FEBRIANSYAH RAZAK
NIM : 48910006
Program Pendidikan Alih Jenjang D4
Teknik Komputer dan Jaringan
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA
INSTITUT TEKNOLOGI BANDUNG
2011
i
ABSTRAK
APLIKASI SCOPE VOLT METER PADA PC MEMANFAATKAN
SOUNDCARD SEBAGAI PORT MASUKAN
Oleh
Febriansyah Razak
NIM : 48910006
PROGRAM PENDIDIKAN ALIH JENJANG D4
TEKNIK KOMPUTER DAN JARINGAN
Osiloskop merupakan sebuah alat yang memiliki akurasi pengukuran terjamin. Selain
fungsi tersebut osiloskop juga dapat membantu dalam mempelajari bentuk
gelombang dan karakteristiknya, namun harganya yang terbilang mahal
menyebabkan tidak semua orang dapat memiliki alat tersebut padahal bagi seseorang
yang ingin mempelajari pengukuran tegangan listrik alat ini sangat mendukung.
Untuk itu dengan pemrograman Java alat tersebut dapat dibuat dalam bentuk aplikasi
komputer yang memanfaatkan soundcard sebagai port masukannya, karena
soundcard hanya mampu menangani tegangan yang kurang dari 1 volt maka
diperlukan alat yang dapat mengubah besarnya tegangan dari sumber tegangan
menjadi kurang dari 1 volt, alat tersebut merupakan sebuah probe dengan fungsi
range selector. Dengan adanya alat ini maka tegangan yang masuk ke soundcard
lebih aman dan terkendali. Soundcard memiliki keterbatasan dalam mengukur
tegangan listrik, tegangan yang dapat dialirkan oleh soundcard adalah tegangan
listrik arus bolak balik (AC) karena di dalam soundcard terdapat DC blocking yang
menyebabkan arus searah (DC) dibendung.
Aplikasi voltmeter ini juga dikembangkan dengan layanan client – server. Dengan
layanan ini maka setiap client yang sedang melakukan pengukuran dapat mengirim
data pengukuran tersebut secara real time ke server dan server dapat memonitoring
proses pengukuran yang sedang berjalan. Selain itu terdapat juga layanan
penyimpanan data ke database, sehingga setiap data pengukuran dapat dipelajari
kembali.
Kata kunci : osiloskop, soundcard, tegangan, Java, client, server, database
ii
ABSTRACT
PC SCOPE VOLT METER APPLICATION USING SOUNDCARD
AS INPUT PORT
By
Febriansyah Razak
NIM : 48910006
APPLIED SCIENCE IN ELECTRICAL ENGINEERING STUDY PROGRAM
COMPUTER NETWORK ENGINEERING
Oscilloscope is an equipment that has a guaranteed measurement accuracy. In the
other hand, the oscilloscope function can also help in studying the wave forms and
their characteristics. But the price is too expensive, so not everyone have these tools
but for someone who wants to study the voltage measurement equipment is very
support. Now with the Java programming, this equipment can be made in the
application computer that use the soundcard as an input port, because the soundcard
only can handling voltages of less than 1 volt, so the necessary tools that can change
the voltage from source voltage to less than 1 volt, the tool is a probe with the range
selector function. With this tool, the voltage that go into soundcard can safe and
controlled. Soundcard has limitations in measuring the voltage, the voltage can be
streamed by the soundcard is the voltage of alternating current (AC) because in DC
there are soundcar that cause blocking direct current (DC) dammed.
This Voltmeter application is also developed with a service client - server. With this
service, each client who is doing the measurements can send the measurement data
ini real time to the server and the server can monitoring the measurement process. In
addition there are also data storage service to the database, so that each measurement
data can be studied again.
Keywords : oscilloscope, soundcard, voltage, Java, client, server, database
iii
APLIKASI SCOPE VOLT METER PADA PC MEMANFAATKAN
SOUNDCARD SEBAGAI PORT MASUKAN
Oleh :
Febriansyah Razak
Tugas Akhir ini telah diterima dan disahkan
sebagai persyaratan untuk memperoleh gelar
SARJANA SAINS TERAPAN
di
PROGRAM PENDIDIKAN ALIH JENJANG D4
TEKNIK KOMPUTER DAN JARINGAN
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA
INSTITUT TEKNOLOGI BANDUNG
Bandung, Juni 2011
Disetujui oleh :
Pembimbing I, Pembimbing II,
Ir. S. Hakim Ad Dairi Ir. Agust Isa Martinus, MT
iv
KATA PENGANTAR
Puji Syukur kehadirat Allah SWT yang telah memberi limpahan karunia yang tidak
terhingga kepada penulis sehingga dapat menyelesaikan proyek tugas akhir yang
berjudul “Aplikasi Scope Volt Meter pada PC Memanfaatkan Soundcard sebagai
Port Masukan” ini dengan baik.
Penulis menyadari proyek tugas akhir ini tidak akan berjalan dengan lancar tanpa
bantuan, dukungan dan bimbingan dari berbagai pihak. Oleh Karena itu penulis
mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Ir. S Hakim Ad Dairi,. selaku dosen pembimbing I yang telah menyediakan
waktunya untuk membimbing penulis dengan penuh kesabaran dan keteguhan;
2. Ir. Agust Isa Martinus, MT., selaku dosen pembimbing II yang telah
memberikan bimbingan dan semangat dalam menyelesaikan tugas akhir ini;
3. Orang Tua dan seluruh keluarga penulis yang selalu memberikan do’a dan
dukungan kepada penulis sepanjang waktu;
4. Seluruh Teman-teman TKJ dan TMD yang telah memberikan keceriaan dan
semangat yang tidak terbatas kepada penulis dalam menyelesaikan proyek tugas
akhir ini;
5. Seluruh Dosen ITB, sahabat dan kerabat yang telah memotivasi penulis dengan
segenap semangat dan do’a;
6. Seluruh pihak yang tidak dapat penulis sebutkan satu per satu yang telah
membantu penulis dalam bentuk materi maupun non materi.
Semoga apa yang telah kalian berikan mendapat kebaikan yang berlipat ganda dari
Allah SWT.
v
Tentunya penulis menyadari bahwa penyusunan laporan ini masih jauh dari bentuk
yang sempurna, karena itu penulis mengharapkan saran dan kritik yang membangun
dari semua pihak. Penulis juga berharap semoga laporan ini dapat memberikan
manfaat yang berguna bagi semua pihak yang membutuhkan.
Bandung, April 2011
Penulis
vi
DAFTAR ISI
Halaman
ABSTRAK .................................................................................................................... i
ABSTRACT ................................................................................................................. ii
LEMBAR PENGESAHAN ........................................................................................ iii
KATA PENGANTAR ................................................................................................ iv
DAFTAR ISI ............................................................................................................... vi
DAFTAR GAMBAR .................................................................................................. ix
DAFTAR TABEL ....................................................................................................... xi
BAB I PENDAHULUAN
I.1 Latar Belakang ..................................................................................... 1
I.2 Tujuan .................................................................................................. 2
I.3 Perumusan Masalah ............................................................................. 3
I.4 Batasan Masalah................................................................................... 3
I.5 Metodologi ........................................................................................... 4
I.6 Sistematika Pembahasan ...................................................................... 4
I.7 Pelaksanaan .......................................................................................... 5
BAB II DASAR TEORI
II.1 Voltmeter.............................................................................................. 7
II.2 Soundcard dan Java Sound Sample.................................................... 10
II.3 Konsep Jaringan Client - Server ........................................................ 18
II.4 Pemrograman Java pada Jaringan ...................................................... 20
II.5 Database MySQL .............................................................................. 21
II.6 Teori Dasar Inverting ......................................................................... 25
vii
BAB III PERANCANGAN PEMBUATAN SISTEM
III.1 Spesifikasi Sistem .............................................................................. 26
III.2 Rancangan Sistem Global .................................................................. 27
III.3 Rancangan Probe ................................................................................ 28
III.4 Cara Kerja Aplikasi ............................................................................ 31
III.5 Flowchart Program ............................................................................. 34
III.6 Kamus Data ........................................................................................ 42
III.7 Struktur Rancangan Aplikasi ............................................................. 43
BAB IV PENGUJIAN SISTEM
IV.1 Spesifikasi Sistem Pengujian ............................................................. 48
IV.2 Pengujian Rangkaian Probe ............................................................... 49
IV.3 Proses Kalibrasi .................................................................................. 52
IV.4 Pengujian Tegangan AC .................................................................... 57
IV.5 Pengujian Tegangan DC .................................................................... 58
IV.6 Pengujian Tegangan AC pada Skala Berbeda .................................... 60
IV.7 Penyimpanan dan Pengaksesan Database .......................................... 65
IV.8 Pengujian Koneksi Aplikasi Client - Server ...................................... 67
BAB V KESIMPULAN DAN SARAN
V.1 Kesimpulan ........................................................................................ 68
V.2 Saran ................................................................................................... 69
viii
DAFTAR PUSTAKA ............................................................................................... 70
LAMPIRAN ............................................................................................................ L-1
ix
DAFTAR GAMBAR
Halaman
Gambar II.1 Multimeter analog ................................................................................ 8
Gambar II.2 Multimeter digital................................................................................. 8
Gambar II.3 Bagian-bagian multimeter .................................................................... 9
Gambar II.4 Contoh gelombang suara .................................................................... 12
Gambar II.5 Konfigurasi line untuk audio input .................................................... 15
Gambar II.6 Ilustrasi komunikasi menggunakan socket......................................... 21
Gambar II.7 Spesifikasi Tabel pada Database ....................................................... 21
Gambar II.8 Tampilan MySQL-Front .................................................................... 24
Gambar II.9 Penguat inverting ............................................................................... 25
Gambar III.1 Rancangan sistem global .................................................................... 27
Gambar III.2 Flowchart rangkaian probe scope volt meter ..................................... 29
Gambar III.3 Rangkaian probe scope voltmeter ...................................................... 30
Gambar III.4 Proses pembentukan grafik dan nilai ................................................. 31
Gambar III.5 Flowchart aplikasi scope voltmeter .................................................... 34
Gambar III.6 Flowchart aplikasi client .................................................................... 36
Gambar III.7 Flowchart aplikasi server scope voltmeter ......................................... 38
Gambar III.8 Flowchart aplikasi database client ..................................................... 40
Gambar III.9 Struktur rancangan aplikasi ................................................................ 43
Gambar III.10 Desain awal aplikasi ........................................................................... 44
Gambar III.11 Desain aplikasi server......................................................................... 46
Gambar IV.1 Grafik proses kalibrasi dengan 100 sampel pengukuran.................... 56
Gambar IV.2 Pengujian pengukuran tegangan AC 5.4 volt pada skala 1 : 100 ....... 58
Gambar IV.3 Pengujian pengukuran tegangan DC 1.2 volt pada skala 1 : 100 ....... 59
Gambar IV.4 Pengujian pengukuran tegangan AC 5.5 volt pada skala 1 : 10 ......... 60
Gambar IV.5 Pengujian pengukuran tegangan AC 3.3 volt pada skala 1 : 5 ........... 62
Gambar IV.6 Pengujian pengukuran tegangan AC 3.3 volt pada skala 1 : 1 ........... 63
Gambar IV.7 Pengujian pengukuran tegangan AC 8.1 volt pada skala 1 : 200 ....... 64
x
Gambar IV.8 Penyimpanan nilai pada database MySQL Server ............................. 65
Gambar IV.9 Pemilhan data pada aplikasi ............................................................... 66
Gambar IV.10 Pengujian pengaksesan database pada aplikasi .................................. 66
Gambar IV.11 Pengujian koneksi Client - Server ...................................................... 67
xi
DAFTAR TABEL
Halaman
Tabel I.1 Jadwal pelaksanaan tugas akhir ........................................................... 5
Tabel III.2 Batasan pengukuran sinyal listrik ...................................................... 28
Tabel III.2 Kamus data tabel grafik_info pada database osiloskop ..................... 42
Tabel III.3 Spesifikasi atribut pada aplikasi ......................................................... 43
Tabel IV.1 Pengujian skala 1 : 1 .......................................................................... 49
Tabel IV.2 Pengujian skala 1 : 5 .......................................................................... 50
Tabel IV.3 Pengujian skala 1 : 10 ........................................................................ 51
Tabel IV.4 Proses kalibrasi pada 100 sampel pengukuran ................................... 52
Tabel IV.5 Pengujian pengukuran tegangan AC pada skala 1 : 100 .................... 57
Tabel IV.6 Pengujian pengukuran tegangan DC pada skala 1 : 100 .................... 58
Tabel IV.7 PengujianpPengukuran tegangan AC pada skala 1 : 10 ..................... 60
Tabel IV.8 Pengujian pengukuran tegangan pada skala 1 : 5............................... 61
Tabel IV.9 Pengujian pengukuran tegangan pada skala 1 : 1............................... 63
Tabel IV.10 Pengujian pengukuran pada skala 1 : 200 .......................................... 64
1
BAB I
PENDAHULUAN
I.1 LATAR BELAKANG
Perkembangan teknologi saat ini sudah berkembang dengan sangat pesat, berbagai
peralatan canggih sudah dapat digunakan manusia untuk keperluan mendasar seperti
berkomunikasi dan mencari informasi. Alat ukur juga mulai berkembang dari manual
pengukuran seperti menggunakan penggaris sampai kini pada pengukuran elektronik
digital yang membutuhkan perhitungan rumit.
Seiring dengan perkembangan tersebut, ilmu pengukuran menjadi beragam karena
sesuatu yang baru diketahui oleh ilmu manusia. Sebagai contoh, dahulu manusia hanya
dapat mengukur sesuatu yang sifatnya nyata seperti panjang dan lebar, namun saat ini
manusia sudah dapat mengukur hal yang abstrak sekalipun seperti kecepatan suara dan
tegangan listrik. Keahlian pengukuran tegangan listrik ini sangat dibutuhkan oleh
seorang teknisi dalam menjalankan tugasnya. Oleh karena itu pengukuran saat ini
menjadi suatu hal mendasar yang perlu dipelajari dalam bangku pendidikan.
Dalam dunia pendidikan, pengukuran tegangan listrik biasa dilakukan dengan bantuan
multimeter. Alat ini dapat mengukur tegangan dengan inputan sebuah probe yang
disentuhkan pada titik min dan plus dari sumber tegangan yang ingin diukur. Namun alat
ini hanya dapat menampilkan besarnya tegangan. Jadi peserta didik hanya dapat
mengetahui seberapa besar tegangan yang diukur. Untuk pemahaman tentang
elektronika diperlukan suatu alat yang lebih canggih dan lebih efektif dalam pengukuran
yaitu osiloskop. Osiloskop ini menghasilkan output berupa bentuk sinyal atau
2
gelombang dari kuat tegangan alat yang sedang diukur, sehingga selain mengetahui
besarnya tegangan peserta didik juga dapat memahami tentang gelombang listrik.
Untuk menjalankan program pendidikan seperti itu memang tidak mudah, karena
osiloskop merupakan suatu alat yang tidak murah harganya. Untuk itulah proyek tugas
akhir ini dilakukan, fungsi dari osiloskop yang dapat menampilkan gelombang dan besar
tegangan dapat digantikan dengan sebuah aplikasi berbasis Java yang memanfaatkan
soundcard sebagai port masukan. Kemudian dengan sebuah alat yang didesain khusus
untuk mengalirkan tegangan dari sumber tegangan yang diukur ke soundcard, aplikasi
tersebut dapat menangkap gelombang dari tegangan yang masuk kemudian
menampilkannya.
Selain itu ada beberapa manfaat lainnya dari aplikasi ini, dengan pengembangan
teknologi jaringan maka aplikasi ini dapat menjadi sebuah aplikasi client-server. Dimana
aplikasi server bertugas sebagai monitoring pengukuran. Apabila diterapkan dalam
bidang pendidikan maka server dapat digambarkan sebagai seorang instruktur atau guru
yang melihat proses pengukuran yang sedang dilakukakan oleh siswanya. Fitur lainnya
berupa penyimpanan hasil pengukuran dalam database, dengan fitur ini seseorang dapat
melihat kembali data pengukuran yang telah disimpan dan menampilkan sampel
pengukuran tersebut.
I.2 TUJUAN
Proyek Tugas Akhir yang berjudul “Aplikasi Scope Volt Meter pada PC Memanfaatkan
Soundcard Sebagai Port Masukan” ini bertujuan untuk :
1. menghasilkan suatu perangkat lunak yang berfungsi untuk mengukur tegangan
listrik dan menampilkan gelombang listrik;
3
2. menghasilkan aplikasi yang dapat membantu dalam mempelajari gelombang
listrik dan tegangan listrik.
I.3 PERUMUSAN MASALAH
Dalam pengerjaan proyek tugas akhir ini, permasalahan yang timbul antara lain :
1. mengubah level tegangan dari soundcard menjadi bentuk bit-bit digital dan
memetakannya dalam layar aplikasi;
2. menghitung nilai rata-rata akar kuadrat atau root mean square (RMS) dari level
tegangan masukan sebagai nilai awal dalam proses penyesuaian dengan level
tegangan aslinya;
3. proses pengkalibrasian atau penyesuaian nilai aplikasi dengan tegangan yang
sebenarnya;
4. penyimpanan sampel gelombang dan nilai ke dalam database.
I.4 BATASAN MASALAH
Pada pelaksanaan proyek tugas akhir ini, batasan masalahnya meliputi :
1. tegangan yang diukur merupakan tegangan AC;
2. batas tegangan yang dapat diukur sebesar 0 sampai dengan + 200 Volt AC;
3. server bertugas untuk memonitoring pengukuran dari client.
4
I.5 METODOLOGI
Metoda yang digunakan dalam menyelesaikan proyek tugas akhir ini meliputi :
1. studi literatur.
Pada tahap ini dilakukan studi literatur tentang penggunaan library java sound,
pemetaan nilai pada layar aplikasi, konsep dasar soundcard, konsep dasar
perhitungan root mean square (RMS) dan proses pengkalibrasian;
2. pengumpulan dan pengamatan data.
Pada tahap ini dilakukan pengumpulan data berupa contoh aplikasi yang
mengakses soundcard dan skema rancangan perangkat keras untuk mengatur
tegangan yang masuk;
3. pembuatan perangkat keras dan perangkat lunak
Hasil dari studi literatur sampai pada pengumpulan dan pengamatan data
diterapkan ke dalam sebuah perangkat keras dan perangkat lunak yaitu sebuah
alat untuk mengatur level tegangan yang masuk ke soundcard dan aplikasi yang
dapat mengakses soundcard;
4. pengujian dan analisis
Hasil dari pembuatan perangkat keras dan perangkat lunak adalah menguji alat
dan aplikasi tersebut kemudian menganalisis hasil uji yang didapat untuk
mengetahui kesesuian dengan tujuan dan batasan serta melakukan proses
pengkalibrasian sehingga nilai aplikasi sesuai dengan level tegangan dari alat
yang diukur.
I.6 SISTEMATIKA PEMBAHASAN
Sistematika pembahasan dalam proyek tugas akhir ini disusun dalam bentuk bab-bab
yang secara garis besar dapat dijelaskan sebagai berikut :
5
BAB I berisi tentang pendahuluan yang menjabarkan tentang topik , masalah
yang dikaji, tujuan, dan metoda penelitian.
BAB II berisi tentang teori-teori penunjang yang meliputi uraian tentang dasar
teori yang melandasi pengerjaan proyek tugas akhir
BAB III berisi tentang perancangan dan pembuatan sistem yang meliputi
perancangan model algoritma aplikasi , proses penghitungan nilai root mean square
(RMS) dan pengkalibrasian nilai.
BAB IV berisi tentang pengujian dan analisa terhadap aplikasi yang telah dibuat,
kemudian dibandingkan dengan perencanaan awal serta teori-teori dari proyek akhir
tentang kelebihan dan kekurangan sistem yang dibuat
BAB V berisi kesimpulan dan saran tentang sistem yang dibuat untuk
pengembangan dimasa mendatang.
I.7 PELAKSANAAN
I.7.1 Jadwal Pelaksanaan
Tabel I.1 Jadwal pelaksanaan tugas akhir
NO KEGIATAN FEBRUARI MARET APRIL
1 2 3 4 1 2 3 4 1 2 3 4
1 Pengumpulan bahan referensi
2 Perancangan alat dan aplikasi
3 Pembelian komponen alat dan bahan
4 Pembuatan alat dan aplikasi
5 Pengujian dan implementasi
6 Pembuatan laporan tugas akhir
6
I.7.2 Pembagian Tugas
Dalam pelaksanaan tugas akhir ini, aplikasi yang dibuat dikerjakan oleh tiga orang
dengan pembagian tugas sebagai berikut :
a. Budi Pribowo (48910005)
Pembuatan alat (probe) dan aplikasi server, dengan rincian tugas :
- Membuat rangkaian probe untuk mengukur sumber tegangan;
- Membatasi tegangan yang masuk ke soundcard agar kurang dari 1 volt;
- Merancang algoritma dan analisis pemodelan aplikasi server untuk menerima
data dari client dalam suatu jaringan dengan menggunakan protokol UDP.
b. Febriansyah Razak (48910006)
Pembuatan aplikasi pengolah tegangan dan penyimpanan data, dengan rincian :
- Mengolah tegangan yang masuk ke soundcard untuk ditampilkan menjadi
gelombang;
- Menghitung nilai Root Mean Square (RMS) sebagai dasar dari nilai
pengukuran;
- Melakukan proses pengkalibrasian nilai RMS agar sesuai dengan nilai
tegangan yang sebenarnya;
- Menyimpan sample pengukuran ke database.
c. Abdul Khariri (48910002)
Pembuatan aplikasi client, dengan rincian tugas :
- Merancang algoritma dan analisis pemodelan aplikasi client untuk
mengirimkan data pengukuran dalam suatu jaringan dengan menggunakan
protokol UDP;
- Membuat aplikasi untuk pengaksesan data yang telah disimpan dari database
7
BAB II
TINJAUAN PUSTAKA
II.1 VOLTMETER
Dalam dunia elektronika, untuk mengukur tegangan listrik biasanya digunakan sebuah
alat yang bernama multimeter. Alat ini biasanya memiliki tiga fungsi sekaligus yaitu
mengukur arus listrik (Ampere), mengukur tegangan (Volt), dan mengukur hambatan
(Ohm). Oleh karena itu, multimeter juga sering disebut sebagai avometer (Amper, Volt,
Ohm Meter).
Voltmeter merupakan suatu alat yang berfungsi untuk mengukur tegangan listrik.
Dengan ditambah alat multiplier akan dapat meningkatkan kemampuan pengukuran alat
voltmeter berkali-kali lipat. Multimeter dibagi menjadi dua jenis, antara lain :
1. multimeter analog
Multimeter analog menggunakan tampilan dengan penunjukkan jarum ke range-
range yang akan diukur dengan probe. Multimeter jenis ini tersedia dengan
kemampuan untuk mengukur hambatan (ohm), tegangan (volt) dan arus (mA).
Multimeter analog tidak digunakan untuk mengukur secara detail suatu besaran
nilai komponen tetapi kebanyakan hanya digunakan untuk memeriksa baik atau
tidaknya suatu komponen atau memeriksa suatu rangkaian apakah sudah
tersambung dengan baik sesuai dengan rangkaian blok yang ada.
8
Gambar II.1 Multimeter analog
2. multimeter digital
Multimeter digital hampir sama fungsinya dengan multimeter analog tetapi
multimeter digital menggunakan tampilan angka digital. Multimeter digital
memiliki pembacaan pengukuran lebih tepat jika dibanding dengan multimeter
analog, sehingga multimeter digital dikhususkan untuk mengukur suatu besaran
nilai tertentu dari sebuah komponen secara mendetail sesuai dengan besaran yang
diinginkan.
Gambar II.2 Multimeter digital
9
Gambar II.3 Bagian-bagian multimeter[8]
Bagian-bagian multimeter terdiri dari :
1. Meter korektor yang digunakan untuk menyetel jarum multimeter ke arah nol
saat akan dipergunakan.
2. Range Selector Switch yang merupakan saklar yang dapat diputar sesuai dengan
kemampuan batas ukur yang dipergunakan.
3. Terminal (+) dan (-) yang dipergunakan sebagai terminal probe, yang berwarna
merah untuk (+) sementara yang berwarna hitam untuk (-).
4. Pointer (jarum meter) adalah sebatang plat yang bergerak ke kanan dan ke kiri
yang menunjukkan besaran atau nilai.
5. Mirror (cermin) yang merupakan batas antara Ohmmeter dengan Voltmeter.
6. Skala yang berfungsi sebagai skala pembacaan.
7. Zero Adjustment yang digunakan sebagai pengatur jarum pada kedudukan nol.
8. Angka batas ukur adalah angka yang menunjukkan batas kemampuan alat ukur.
9. Kotak meter adalah kotak atau tempat meletakkan komponen-komponen
multimeter.
10
II.2 SOUNDCARD DAN JAVA SOUND SAMPLE
Soundcard merupakan bagian dari komputer yang bertugas untuk mengubah suara
analog menjadi digital atau sebaliknya. Soundcard memiliki beberapa port yang
befungsi berbeda-beda antara lain :
1. Joystick / MIDI port
Port ini digunakan untuk menghubungkan instrument MIDI, seperti joystick untuk
bermain game.
2. Microphone input
Port ini digunakan khusus untuk input dari microphone komputer. Pada port ini
sudah ditentukan untuk merekam suara secara maksimal menggunakan microphone.
3. Line input
Port ini merupakan port khusus untuk melakukan proses perekaman audio agar
hasilnya maksimal. Line input berarti input jack yang memiliki line level. Line level
adalah standar nilai sebuah line input/output yang memiliki tegangan sekitar 200
milivolt yang kompatibel dengan peralatan stereo. Port ini tidak untuk dihubungkan
langsung dengan jenis microphone, gitar listrik, atau speaker. Port ini hanya
dihubungkan dengan line ouput port yang terdapat pada alat yang digunakan. Untuk
melalukan perekaman suara dari microphone menggunakan port ini diperlukan
sebuah alat tambahan yaitu pre-amp. Pre-amp akan memperkuat sinyal dari
microphone, karena sesungguhnya sinyal dari microphone sangat lemah dan tidak
mencapai level line, sehingga jika tidak menggunakan penguat maka suara rekaman
akan terdengar halus bahkan hampir tidak terdengar.
4. Line output
Port ini dapat dihubungkan dengan beragam insrumen yang memiliki input port,
seperti speaker aktif, mini compo, tape deck, atau amplifier. Pada soundcard laptop
11
tidak terdapat port line output melainkan port headphone yang memiliki fungsi
hampir sama.
Soundcard merupakan sebuah media yang dapat digunakan komputer untuk
menghubungkannya dengan input lain dari luar seperti dalam hal ini tegangan. Untuk
melakukan proses pengolahan data digital diperlukan aplikasi yang dapat melakukan
pengolahan audio, aplikasi ini dapat dibuat dengan menggunakan bahasa pemrogaraman
Java. Pada pemrograman Java sudah tersedia paket Java Sound Sample yang memiliki
beragam fungsi untuk melakukan pengolahan data audio.
Java2 Platform menyediakan Application Programming Interface (API) yang handal
untuk proses merekam audio, memproses audio dan memainkan data audio dan data
Musical Instrument Digital Interface (MIDI). Java Sound memiliki fitur-fitur sebagai
berikut :
format audio file : AIFF, AU dan WAV
format file musik : MIDI dan Rich Music Format (RMF)
format suara : 8 dan 16 bit data audio, mono dan stereo, sample rate
dari 8 kHz sampai dengan 48 kHz
Java Sound API menyediakan level terendah yang disupport Java Platform, Java Sound
API juga menyediakan program dengan jumlah yang besar untuk mengontrol operasi
sound, sebagai contoh Java Sound API menyediakan mekanisme untuk pemasangan,
akses dan manipulasi sumber daya sistem seperti audio, mixer MIDI synthezier, MIDI
Devices, pembacaan dan penulisan file serta convert ke file format tertentu.
12
Java Sound API mendukung audio digital dan MIDI data. Terdapat dua jenis paket
dalam library ini, antara lain :
1. javax.sound.sampled
paket ini dikhusukan untuk mengambil, mengolah, dan memainkan kembali digital
audio.
2. javax.sound.midi
paket ini didesain untuk MIDI Synthesis.
Paket Javax.sound.sampled menangani digital audio data yang mengacu pada sample
audio. Sample adalah pengambilan sinyal yang dilakukan secara terus-menerus. Dalam
hal audio, sinyal adalah sebuah gelombang suara. Sebuah microphone mengubah sinyal
analog menjadi sinyal elektrik yang sesuai, dan (Analog to Digital Converter) ADC pada
soundcard mengubah sinyal analog menjadi bentuk sampel digital.
Gambar II.4 Contoh gelombang suara[7]
Amplitudo dari gelombang sinyal analog adalah pengukuran secara berkala pada rate
tertentu yang mengakibatkan titik-titik yang berlainan pada sinyal audio digital.
Keakuratan pengukuran sinyal digital bergantung pada sampling rate dan jumlah bit per
13
sample. Sebagai contoh (Compact Disc) CD menggunakan sample 44.100 kali per detik
yang diwakili dengan 16 bit per sample.
Java Sound API tidak membatasi pada konfigurasi hardware tertentu. Library ini
didesain untuk mengizinkan jenis komponen audio yang berbeda untuk dipasang di
sistem dan diakses oleh API. Java Sound API mendukung fungsi umum seperti input dan
output dari soundcard.
Dalam menangkap suara menggunakan Java Sound API, dibutuhkan paling tidak tiga
aspek, yaitu : audio data format , mixer dan line. Audio data format merupakan suatu
format standar. Java sound API membedakan antara data format dan file format. Dalam
menangkap data yang dibutuhkan digunakan data format sementara file format
digunakan untuk menyimpan data kedalam file seperti berekstensi .wav.
1. Data Format
Data format memberikan informasi bagaimana mengartikan sebuah byte dari sample
audio data yang masih mentah. Dalam Java Sound API, data format diwakilkan oleh
object AudioFormat, yang terdiri dari :
encoding
Pulse Code Modulation (PCM) adalah satu jenis dari encoding Sound Waveform.
Java Sound API terdiri dari dua PCM encoding yang menggunakan linear
quantization dan signed or unsigned integer values. Linear quantization merupakan
sebuah angka yang disimpan dalam tiap sample berbanding lurus terhadap
amplitudo suara yang asli. Mu-law encoding dan a-law encoding merupakan
encoding non linear yang menghasilkan versi audio data yang lebih dikompresi,
encoding ini biasa diterapkan untuk telphone atau merekam suara.
14
Channel (mono – Stereo)
Channel atau kanal merupakan sebuah bagian format audio yang mengatur output
dari data audio. Mono yang berarti satu kanal dan stereo yang berarti dua kanal.
Sample rate
Sample rate merupakan sebuah pengambilan sampel data yang dilakukan per detik
pada setiap channel
Bit per sample (per channel)
Ketika sinyal audio diubah menjadi digital maka nilai dari sinyal tersebut akan
ditampung oleh bit per sample. Bit per sample ini dapat berupa 8 bit atau 16 bit per
channel.
Frame rate
Frame rate merupakan jumlah frame yang ditunjukkan setiap detik (frame per
second).
Frame Size in bytes
Frame Size merupaan angka dari channel yang dikalikan dengan sample size in bits
dan dibagi dengan bit dalam satu byte.
Byte order
Byte order merupakan penempatan byte dalam suatu memory, big endian akan
menempatkan byte sesuai urutan data yang masuk, sementara little endian akan
menempatkan urutan byte yang masuk pertama menjadi terakhir. Penerapan little
endian terdapat pada pengolahan data MIDI.
2. Mixer
Umumnya Application Programming Interface (API) untuk sound memanfaatkan
perangkat audio. Perangkat audio dalam hal ini dapat berupa software maupun
hardware. Dalam Java Sound API, perangkat tersebut diwakili oleh Object Mixer.
Kegunaan dari mixer adalah untuk menangani audio input dan audio output.
15
Secara default Java Sound API akan mengakses mixer yang sedang aktif di komputer.
Namun apabila dibutuhkan, mixer juga dapat dibuat secara dinamis agar program dapat
memilih mixer yang ingin digunakan.
3. Line
Line adalah sebuah elemen dari digital audio, line merupakan sebuah jalur untuk keluar
masuk audio ke dalam sistem. Audio input dan audio output adalah bagian dari line.
Sebagai contoh audio input menggunakan microphone dan audio output menggunkaan
speaker. Line dalam sebuah konfigurasi audio input dapat digambarkan sebagai berikut :
Gambar II.5 Konfigurasi line untuk audio input[7]
Data mengalir ke mixer dari port input. Port input merupakan sebuah line input dari
perangkat audio, seperti microphone atau line-in. Kemudian mixer mengirim hasil
pengambilan data ke program melalui TargetDataLine. TargetDataLine merupakan
sebuah output mixer. Dalam audio input mixer, source line adalah port input seperti
microphone dan target line merupakan TargetDataLine yang mengirim audio ke
program aplikasi.
TargetDataLine menerima audio data dari mixer. Mixer telah menangkap audio data
dari input port seperti microphone, proses ini terjadi sebelum penempatan data ke buffer.
Buffer merupakan sebuah wadah yang berisi ukuran internal DataLine dalam Byte.
Buffer akan dibaca oleh TargetDataLine. TargetDataLine merupakan sebuah object
16
yang berada di dalam DataLine. TargetDataLine interface menghasilkan sebuah metode
untuk membaca buffer dan untuk menentukan berapa banyak data yang saat ini tersedia
untuk dibaca.
Capture merupakan sebuah proses untuk mendapatkan sinyal dari luar komputer.
Capture merupakan bagian kecil dari proses perekaman. Dalam proses perekaman, data
disimpan ke dalam sebuah tempat penyimpanan (storage) dan dapat dimainkan kembali,
namun dalam proses capture data yang diterima akan di tampilkan kemudian di buang
setelah proses selesai tanpa adanya media penyimpanan.
Dalam proses capture sebuah port input seperti microphone/line in memberikan audio
data yang datang melalui mixer yang kemudian dikirimkan ke TargetDataLine.
TargetDataLine, terdiri dari :
1. method read untuk mengambil audio dari mixer;
2. method available untuk menentukan berapa banyak data yang dapat dibaca dari
buffer.
Untuk menyeting TargetDataLine dapat ditulis :
TargetDataLine line;
DataLine.Info info = new DataLine.Info(TargetDataLine.class,
format);
line = (TargetDataLine) AudioSystem.getLine(info);
line.open(format);
Setelah line terbuka, maka proses capture data dapat dilakukan. Untuk itu gunakan
method start pada DataLine. Proses ini akan mulai mengirimkan audio data input ke
17
aplikasi line buffer untuk dibaca. Berikut contoh kode program untuk memulai dan
membaca TargetDataLine :
//diasumsikan line sudah terbuka dan siap digunakan
ByterrayOutputStream out = new ByteArrayOutputSteram();
Int numBytesRead;
int bufferSize = (int) 800;
Byte[] data = new byte[bufferSize];
//memulai capture
Line.start;
While(!stopped) {
//membaca data dari TargetDataLine
numBytesRead = line.read(data, 0, data.length);
//menyimpan capture data
out.write(data, 0, numBytesRead);
}
Read method dari TargetDataLine membutuhkan tiga argumen : byte array, titik awal
pembacaan, dan titik akhir yang ingin dibaca. Dapat dituliskan sebagai berikut :
Int read(byte[] b, int offset, int length);
Sedangkan untuk menuliskannya ke dalam ByteArrayOutputStream diperlukan format :
out.write(byte[] b, int offset, variable method read);
ByteArrayOutputStream merupakan sebuah object pada library input ouput pada
java.io.ByteArrayOutputStream yang digunakan untuk membuat buffer dalam memori.
Semua data yang dikirim akan disimpan di memori ini.
18
II.3 KONSEP JARINGAN CLIENT-SERVER
Client – server adalah arsitektur jaringan yang memisahkan client dengan server.
Masing- masing client dapat meminta data atau informasi dari server. Sistem client -
server di definisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan
karakteristik yaitu :
1. Service (Layanan)
- Hubungan antara proses yang berjalan pada mesin yang berbeda;
- Pemisahan fungsi berdasarkan ide layanannya
- Server sebagai provider, client sebagai konsumen
2. Sharing resource (Sumber daya)
- Server bisa melayani beberapa client pada waktu yang sama dan meregulasi
akses bersama untuk share sumber daya dalam menjamin konsistensiya.
3. Asymmetrical Protocol (Protokol yang tidak simetris)
- Asymmetrical Protocol merupakan hubungan many to one antara client dan
server. Client selalu menginisialisasikan dialog melalui layanan permintaan dan
server menunggu secara pasif request dari client.
4. Transparasi lokal
- Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada
mesin yang berbeda melalui jaringan. Lokasi server harus mudah diakses dari
client.
5. Mix and Match
- Perbedaan client server platform
6. Pesan berbasiskan komunikasi
- Interaksi server dan client melalui pengiriman pesan yang menyertakan
permintaan atau jawaban
7. Pemisahan interface dan implementasi
- Server bisa diupgrade tanpa mempengaruhi client selama interface pesan yang
diterbitkan tidak berubah
19
Perbedaan tipe client – server meliputi :
1. File Server
- Tipe ini merupakan tipe jaringan untuk sharing file melalui jaringan
2. Database Server
- Client mengirimkan SQL request sebagai pesan pada database server,
selanjutnya hasil perintah SQL dikembalikan;
- Server memproses request dari client untuk menemukan data yang diminta
dan kemudian semua record dikembalikan kepada client
3. Transaction Server
- Client meminta remote procedures yang terletak pada server dengan sebuah
SQL database engine;
- Remote procedures ini mengeksekusi sebuah grup dari SQL Statement;
- Hanya satu permintaan atau jawaban yang dibutuhkan untuk melakukan
transaksi.
4. Groupsware Servers
- Dikenal sebagai computer-supported cooperative working;
- Manajemen semi – struktur informasi seperti teks, image dan aliran kerja;
- Data diatur sebagai dokumen.
5. Object Application Servers
- Aplikasi client – server ditulis sebagai satu set obyek komunikasi.
- Client object berkomunikasi dengan server objects melalui Object Request
Broker (ORB);
- Client meminta sebuah method pada remote object.
6. Web Application Server (aplikasi web server)
- World Wide Web (www) adalah aplikasi client – server yang pertama
digunakan untuk web
- Client dan server berkomunikasi menggunakan protokol HTTP.
20
II.4 PEMROGRAMAN JAVA PADA JARINGAN
Pemrograman jaringan dikembangkan untuk menyambungkan proses-proses komputasi
yang berjalan dalam mesin-mesin yang berbeda dan terhubung dalam suatu jaringan
komputer. Untuk mengirimkan data dari sebuah proses ke proses lainnya memerlukan
pipa untuk menghubungkan keduanya. Maka masing-masing proses akan memegang
satu ujung. Setiap ujung dari pipa data disebut socket. Socket merupakan IP dan Port
pada sebuah host mesin yang spesifik. Socket adalah sebuah konsep yang telah
berkembang pada paradigma bahasa pemrograman untuk beberapa waktu. Socket
pertama kali digunakan pada sistem Unix pada tahun 1970-an dan sekarang socket
merupakan standar low-level komunikasi primitif. Sebenarnya ada dua jenis socket, yaitu
connection-oriented socket, yang termasuk dalam Transport Control Protocol,(TCP)
dan connectionless socket, yang berdasar pada User Datagram Protocol (UDP). Jika
dianalogikan, komunikasi socket merupakan komunikasi dua arah antar komputer
dengan jalur pipa sebagai penghubungnya dan masing-masing pipa tersebut tertancap
pada sebuah gerbang tertentu yang dinamakan port. Siklus dari sebuah socket terdiri dari
tiga fase, antara lain :
1. creation : inisialisasi untuk membuat socket;
2. reading and writing : menerima dan mengirim data ke sebuah socket;
3. destruction : menutup/mengakhiri socket.
Java menyediakan utilitas yang lengkap untuk pemrograman network yang dibundel
dalam package java.net.* dan javax.net.*. Java menyediakan dua buah tipe socket yang
berbeda dan sebuah socket spesial untuk berkomunikasi antar node yaitu:
1. TCP sockets (connection -oriented socket) yang diimplementasikan pada kelas
java.net.Socket
2. UDP sockets (connection -less socket) yang diimplentasikan oleh kelas
java.net.DatagramSocket.
21
Gambar II.6 Ilustrasi komunikasi menggunakan socket[10]
II.5 DATABASE MySQL
MySQL merupakan sebuah aplikasi pengolahan data yang berdasarkan pada bahasa
Structured Query Language (SQL). Bahasa tersebut merupakan bahasa standar yang
digunakan untuk mengolah, menyimpan, memanipulasi data dari sebuah database pada
server. Dalam bahasa SQL pada umumnya informasi tersimpan dalam tabel-tabel yang
merupakan struktur dua dimensi terdiri dari baris (row atau record) dan kolom (column
atau field). Sedangakan pada sebuah database dapat terdiri dari beberapa table.
Kolom 1 Kolom 2 Kolom 3 Kolom (n)
Baris 1
Baris (n)
Gambar II.7 Spesifikasi tabel pada database
22
Saat ini telah banyak Database yang tersedia. Bagaimanapun konsep dasar SQL tetap
sama apapun jenis database yang dipergunakan. Dalam pengolahan data pada aplikasi
yang menggunakan database secara umum dikenal dengan konsep CRUD yaitu Create,
Read, Update, dan Delete. Dengan adanya CRUD maka aplikasi yang berhubungan
dengan database dapat distandarisasikan.
MySQL adalah suatu Relational Database Management System (RDBMS) yang
mendukung database agar terdiri dari sekumpulan relasi atau tabel. Di dalam suatu
database RDBMS terdapat entitas dan relationship. Entitas adalah berbagai hal dalam
dunia nyata yang informasinya dapat disimpan dalam database. Sementara relationship
merupakan hubungan antar entitas. Relationship terdiri dari tiga derajat yang berbeda,
yaitu :
1. one-to-one menghubungkan secara tepat dua entitas dengan satu kunci (key);
2. one-to-many (many-to-one) hubungan antar entitas dimana kunci (key) pada satu
tabel muncul berkali-kali pada tabel lainnya;
3. many-to-many berarti banyak field pada sebuah tabel berhubungan dengan
banyak field pada tabel lainnya.
Perintah-perintah pada bahasa SQL yang digunakan secara umum antara lain :
Create : untuk membuat atau menciptakan objek baru
create database kampus
maka akan tercipta sebuah database kampus;
create table mahasiswa (nim varchar(15) not null primary key,
nama varchar(50) not null, kelas varchar(5) not null)
Maka akan tercipta sebuat table mahasiswa yang terdiri dari kolom nim, nama,
dan kelas.
23
Untuk memanipulasi database dapat digunakan perintah :
Select : digunakan untuk mengambil data dari table pada suatu database
Select * from mahasiswa
Menampilkan semua record data yang terdapat pada table mahasiswa
Delete : digunakan untuk menghapus record data dari table pada suatu database
Delete from mahasiswa;
Menghapus semua record yang berada pada table mahasiswa
Insert : digunakan untuk menambahkan record data pada table
Insert into mahasiswa (nim, nama, kelas) value (‘48910006,
‘Febriansyah Razak’, ‘TKJ’);
Menambahkan record dengan nim 48910006 pada table mahasiswa
Update : digunakan untuk memodifikasi data pada database
Update mahasiswa set nama = ‘Febri’, kelas = ‘TKJ where nim =
‘48910006;
Mengubah record pada field nama menjadi „Febri‟ dengan nim = „48910006‟
Selain itu terdapat juga perintah-perintah lainnya seperti :
Show : Untuk menampilkan seluruh database yang telah terbuat.
Show databases;
Use : Untuk menggunakan suatu database sehingga dapat merubah data yang ada
di dalamnya
24
use kampus;
Desc : Untuk menampilkan struktur table pada suatu database
desc mahasiswa;
Maka akan tampil struktur table mahasiswa yang terdiri dari beberapa field dan
attributnya. Selain menggunakan query seperti diatas, proses eksekusi database
juga dapat digunakan melalui bantuan interface MySQL-Front. Dalam aplikasi
ini seluruh query sudah diadaptasi menjadi tombol sehingga memudahkan
pengguna dalam melakukan pengoperasian database.
Gambar II.8 Tampilan MySQL-Front
25
II.6 TEORI DASAR INVERTING
Inverting amplifier (penguat pembalik) menggunakan umpan balik negatif untuk
membalik dan menguatkan sebuah tegangan. Resistor Rf melewatkan sebagian sinyal
keluaran kembali ke masukan Penguatan pembalik dapat dirumuskan sebagai berikut :
Pers. (2.1)
Gambar II.9 Penguat inverting
[5]
Sinyal masukan dari penguat jenis ini melalui masukan inverting dari penguat dengan
tanda minus (-). Sinyal masukan berbeda fasa 180o dengan sinyal keluarannya.
Vin merupakan tegangan yang masuk, dalam hal ini Vin merupakan tegangan yang
diukur dari sumber tegangan (alat yang diukur).
Rin merupakan hambatan berupa resistor yang nilainya tetap.
Rf merupakan hambatan berupa resistor yang nilanya dinamis sesuai dengan
pemilihan skala.
Vout merupakan tegangan keluar dari rangkaian yang dibuat untuk masuk ke
soundcard.
Untuk membatasi tegangan tersebut diperlukan sebuah IC yang berfungsi sebagai
pengatur tegangan yaitu IC TL 082
26
BAB III
PERANCANGAN PEMBUATAN SISTEM
III.1 SPESIFIKASI SISTEM
Sistem yang dibuat merupakan aplikasi untuk mengukur tegangan listrik AC yang dapat
menampilkan bentuk gelombang dan nilai tegangan listrik dengan besar tegangan dari
sumber tegangan yang diukur mulai dari 0 – 200 volt. Spesifikasi sistem meliputi :
1. Probe dapat mengukur tegangan mulai dari 0 – 200 volt dengan skala pengukuran
1:1, 1:5, 1:10, 1:100 dan 1:200;
2. Tegangan yang keluar dari probe dibatasi hingga kurang atau sama dengan 1 volt
untuk masuk ke dalam soundcard;
3. Aplikasi dapat mengukur tegangan AC yang masuk melalui soundcard;
4. Apliksi dapat memetakan nilai tegangan yang masuk menjadi kordinat pada layar
dan menghubungkannya dengan garis sehingga membentuk gelombang;
5. Aplikasi dapat menampilkan nilai Root Mean Square (RMS) yang telah dikalibrasi
agar sesuai dengan tegangan asli dari sumber tegangan;
6. Client dapat mengirimkan data hasil pengukuran kepada server melalui jaringan
dengan menggunakan protokol UDP;
7. Server dapat memonitoring hasil pengukuran yang dilakukan client;
8. Client yang sedang melakukan pengukuran dapat menyimpan hasil pengukuran
pada databse dan dapat mengakses database yang telah disimpan;
27
III.2 RANCANGAN SISTEM GLOBAL
Gambar III.1 Rancangan sistem global
Desain aplikasi ini ditujukan sebagai aplikasi pengukuran terhadap tegangan, tegangan
yang diukur melalui probe akan menghasilkan suatu sinyal listrik yang akan dirubah
menjadi digital dan ditampilkan oleh aplikasi. Secara sistem global aplikasi ini dapat
berjalan pada sebuah jaringan client-server dengan menggunakan protokol UDP, fitur
tambahan lainnya berupa penyimpanan data pengukuran pada database MySQL yang
dapat ditampilkan kembali pada aplikasi client.
Mengirim Data
Pengukuran (UDP)
Komputer A Komputer Server Database
Range Selector
Aplikasi Scope
VoltMeter
Input Port (Sound Card)
Komputer B
Aplikasi Scope DB Client
/ Monitoring Server
jdbc
jdbc
Database
Server
Mengakses
database
Menyimpan dan
mengakses
database
28
III.3 RANCANGAN PROBE
Probe yang dimaksud merupakan media untuk menghantarkan sinyal listrik yang diukur
dan keluarannya akan masuk pada port input Soundcard. Untuk memilih batasan sinyal
listrik yang diukur diperlukan suatu rangkaian selector dengan menerapkan penguat
inverting. Dengan tujuan untuk membatasi sinyal listrik yang masuk pada port input
soundcard. Berikut tabel batasan pengukuran rangkaian selector :
Tabel III.1 Batasan pengukuran sinyal listrik
Range Selector Vin Vout
x1 ≤ 1 volt ≤ 1 volt
x5 ≤ 5 volt ≤ 1 volt
x10 ≤ 10 volt ≤ 1 volt
x100 ≤ 100 volt ≤ 1 volt
x200 ≤ 200 volt ≤ 1 volt
Karena tegangan yang masuk ke soundcard memiliki batas maksimal 1 volt maka
dengan adanya range selector yang dibentuk dengan menggunakan komponen
elektronika IC TL 082 untuk pengutan inverting, maka tegangan yang masuk pada
soundacard dapat dibatasi hanya mencapai kurang dari 1 volt. Range Selector memiliki
pilihan dari x1 sampai x200 yang berarti dapat mengukur tegangan mencapai 200 volt
dan menjadikannya 1 volt. Pada rangkaian selector dibutuhkan dua buah penguat
inverting, dimana penguat inverting pertama untuk memilih tegangan yang akan diukur
dan penguat inverting kedua untuk membalikkan sinyal listrik yang dihasilkan oleh
penguat inverting pertama.
29
Flowchart rangkaian probe scope volt meter
Gambar III.2 Flowchart rangkaian probe scope volt meter
Y
Y
Y
Y
Y
T
T
T
T
Mulai
Baca tegangan
(Vi)
If vi ≤ 1
If 1v <
Vi ≤ 5v
If 5v <
Vi ≤ 10 v
Posisi saklar
selector = x1
Posisi saklar
selector = x5
Posisi saklar
selector = x10
Kirim ke port
input soundcard
selesai
If 10v <
Vi ≤ 100v
If 100v <
Vi ≤ 200v
Posisi saklar
selector = x100
Posisi saklar
selector = x200
Tegangan tidak
dapat diukur
T
30
Rangkaian probe scope volt meter.
Gambar III.3 Rangkaian probe scope volt meter
Probe scope volt meter yang dibuat menggunakan lima pilihan range selector, yaitu
skala 1 (x1), skala 5 (x5), skala 10 (x10), skala 100 (x100) dan skala 200 (x200). Range
selector tersebut berfungsi untuk membatasi tegangan yang masuk ke soundcard dengan
menggunakan komponen elektronika IC TL082 yang menerapkan teori penguat
inverting. Hasil dari proses tersebut akan mengakibatkan polaritas tegangan menjadi
berbanding terbalik dari posisi polaritas tagangan semula sehingga diperlukan penguat
inverting kembali untuk membalikkan polaritas agar tetap seperti semula. Jika memang
diperlukan polaritas yang berbanding terbalik dari posisi polaritas tegangan semula
maka tersedia saklar yang berfungsi untuk langsung mengalirkan tegangan setelah
proses inverting yang pertama sebagai tegangan keluar tanpa adanya proses pembalikan
atau inverting yang kedua.
31
III.4 CARA KERJA APLIKASI
Gambar III.4 Proses pembentukan grafik dan nilai
Aplikasi ini dibuat menggunakan bahasa pemrograman Java dengan library
javax.sound.sampled dimana library ini akan mengolah data yang berasal dari
soundcard kemudian ditampung pada buffer dan ditulis ke ByteArrayOutputStream
sebagai nilai ouput, kemudian nilai tersebut diolah menjadi sebuah grafik dan
perhitungan Root Mean Square (RMS). RMS merupakan ukuran statis dari suatu
besaran yang memiliki nilai magnitud yang bervariasi (berubah secara terus menerus
Javax.sound.sampled [Data Format]
Mixer
Soundcard
input
TargetDataLine
ByteArrayOutputStream
Nilai
Output Grafik Wave
Nilai Kalibrasi RMS
RMS
Kalibrasi
buffer
inputMicrop
hone
input
32
dalam suatu selang waktu). Perhitungan RMS dilakukan dengan cara mengambil nilai
rata-rata akar kuadrat dari sample data yang dapat dirumuskan :[12]
Pers. (3.1)
Dengan :
𝑥1, 𝑥2, 𝑥𝑛 merupakan sampel data pengukuran;
𝑛 merupakan jumlah dari sampel data yang diambil.
Setelah itu nilai RMS yang didapat akan dilakukan penyesuaian (proses kalibrasi)
dengan nilai asli pada multimeter sebagai pembanding, proses ini dilakukan dengan
menggunakan rumus persamaan linear :[13]
Pers. (3.2)
Dimana variable y adalah nilai pengukuran asli pada multimeter, variable a merupakan
pengali pada variable x, variable x merupakan nilai RMS dan variable b merupakan
penambah. Melalui proses ini akan didapat suatu garis linear yang mewakili semua data.
Dari nilai tersebutlah proses kalibrasi dapat dilakukan.
Dalam kode program, fungsi dari perhitungan RMS dan proses kalibrasi dapat ditulis
sebagai berikut :
33
public void hitungRMS()
{
// proses perhitungan nilai RMS
long lSum = 0;
for (int i = 0; i < bufferAsyn.length; i++)
{
lSum = lSum + bufferAsyn[i];
}
double dAvg = lSum / bufferAsyn.length;
double sumMeanSquare = 0;
for (int j = 0; j < bufferAsyn.length; j++)
{
sumMeanSquare= sumMeanSquare + Math.pow(bufferAsyn[j] - dAvg, 2);
}
double averageMeanSquare = sumMeanSquare / bufferAsyn.length;
double rms, adjRms;
rms = (Math.pow(averageMeanSquare, 0.5));
RMSmurni.setText("" + rms);
RMSmurni.setVisible(false);
// proses kalibrasi
double a = 4.5538, b = 1.9136, y = 0, x = 0;
x = (rms - b) / a;
if (x < 0)
{
x = 0;
}
BigDecimal nKalibrasi = new BigDecimal(x);
nKalibrasi = nKalibrasi.setScale(pre, RoundingMode.UP);
x = nKalibrasi.doubleValue();
labelNilai.setText("" + x);
}
III.5 FLOWCHART PROGRAM
T
Mulai
Cari port input default
If default =
tersedia
34
Gambar III.5 Flowchart Aplikasi Scope Volt Meter
Tampil garis penghubung
antar titik
Pesan Error :Line
tidak tersedia
Hitung RMS dan Hitung Kalibrasi
35
Berikut ini merupakan kode program untuk memetakan titik pada layar dan
menghubungkan garis antar titik sehingga membentuk gelombang.
while (running) {
kuat = gainSlider.getValue();
reGain = gainSlider.getValue();
penguatNilai.setText(""+reGain);
int count = line.read(bufferAsyn, 0, buffer.length);
if (count > 0) {
if(sliderTepat.getValue()==0){
lblNilaiAwal.setText("normal");
}else{
lblNilaiAwal.setText(""+sliderTepat.getValue());
}
out.write(bufferAsyn, 0, count);
for ( int i = sliderTepat.getValue()+20; i < buffer.length; i++)
{
z.setColor(Color.blue);
z.drawLine(0, titikNol, batasLebar, titikNol);
z.setColor(Color.black);
z.fillOval(i, titikNol - bufferAsyn[i]*reGain, 1, 1);
if (i < 1) {
z.drawLine(i, titikNol - bufferAsyn[i]*reGain, i, titikNol
- bufferAsyn[i]*reGain);
} else {
z.drawLine(i - 1, titikNol - bufferAsyn[i - 1]*reGain, i,
titikNol - bufferAsyn[i]*reGain);
}
}
}
hitungRMS();
jPanel1.repaint();
out.close();
}
36
Flowchart aplikasi ini dimulai dengan mengenali port input default pada soundcard,
kemudian aplikasi akan membuka akses dan mengirim sinyal digital ke memory, setelah
itu data akan dipetakan ke dalam layar aplikasi dengan menjadikannya titik kordinat,
kemudian setiap titik akan dihubungkan dengan garis. Setelah itu data tersebut akan
diolah menjadi nilai RMS yang kemudian dengan proses pengkalibrasian akan
menghasilkan suatu nilai yang dapat mewakili pengukuran.
Gambar III.6 Flowchart aplikasi client
Aplikasi client pada perancangan akan disatukan dengan aplikasi utama scope volt
meter, flowchart tidak digabung karena memiliki sistem dan fungsi yang berbeda dari
sistem aplikasi utama
Mulai
Kirim data pengukuran
Masukan ip dan
port server
If selesai =
true
Selesai
If ip dan port =
tersedia
Pesan error : ip dan
server tidak tersedia T
Y
Y
T
37
public class SendRequest {
SendRequest() {
try {
DatagramSocket socket;
DatagramPacket packet;
InetAddress address;
socket = new DatagramSocket();
String dip = txtIP.getText();
address = InetAddress.getByName(dip);
String port = txtPort.getText();
int pnum = Integer.parseInt(port);
packet = new DatagramPacket(bufferAsyn, bufferAsyn.length,
address, pnum);
socket.send(packet);
socket.close();
} catch (IOException io) {
}
}
}
Kelas SendRequest ini merupakan sebuah fungsi yang berada dalam form aplikasi scope
volt meter yang berfungsi untuk mengirimkan data pengukuran kepada server tujuan.
Pengukur akan diminta untuk memasukkan alamat ip server dan nomor port yang telah
ditentukan untuk berkomunikasi kemudian data pengukuran yang telah ditampung dalam
variable bufferAsyn akan dikirimkan setelah socket terbuka. Apabila packet yang
dikirmkan telah selesai maka socket akan ditutup dan komunikasi berakhir.
38
Tampilkan data client dalam
grafik
Gambar III.7 Flowchart aplikasi server scope volt meter
Hitung RMS dan Kalibrasi
Mulai
Buka socket untuk menerima data
dari client
Terima dan baca data dari
client
Tampilkan nilai kalibrasi
Selesai
If selesai = true
Tutup socket dan koneksi
T
Y
39
Berikut merupakan kode program form server untuk menerima dan menampilkan data.
for (int i = 0; i < str.length; i++) {
DatagramPacket packet = new DatagramPacket(buffer, buffer.length,
str[i], port);
socket.receive(packet);
addresStr[i] = packet.getAddress().toString();
Graphics layar = drawPanel.getGraphics();
int titikNol = drawPanel.getHeight() / 2 +2;
if(sliderPosAwal.getValue()==0){
lblPosAwal.setText("normal");
}else{
lblPosAwal.setText(""+sliderPosAwal.getValue());
}
for (int j = sliderPosAwal.getValue()+20; j < 800; j++) {
layar.setColor(Color.blue);
layar.drawLine(0, titikNol, drawPanel.getWidth(),
titikNol);
layar.setColor(Color.black);
layar.fillOval(j, titikNol - buffer[j]*reGain, 1, 1);
if (j < 1) {
layar.drawLine(j, titikNol - buffer[j]*reGain, j, titikNol
- buffer[j]*reGain);
} else {
layar.drawLine(j - 1, titikNol - buffer[j - 1]*reGain, j,
titikNol - buffer[j]*reGain);
}
}
repaint();
hitungRMS();
}
40
Gambar III.8 Flowchart aplikasi database client
Mulai
Buka Koneksi ke Database
Pilih data yang ingin ditampilkan
Tampilkan database
Baca id data yang terpilih
Baca Nilai dari database
Tampilkan 800 nilai pertama
Tampilkan garis penghubung antar titik
Tampilkan nilai RMS terakhir
Selesai
If koneksi
tersambung
Pesan error : tidak ada
koneksi
T Y
41
Berikut merupakan kode program untuk menyimpan hasil pengukuran ke dalam
database.
public void SimpanGrafik() {
try {
konekDB objkoneksi = new konekDB();
Connection con = (Connection) objkoneksi.bukakoneksi();
String namaAlat = txtAlat.getText();
for (int i = 0; i < bufferAsyn.length; i++) {
String sql = "insert into grafik_info (nama, nilai, rms, id_hub, waktu)
values ( '" + namaAlat + "'," + bufferAsyn[i]*reGain + "," + x + ", " +
txt_idAlat.getText() + ",(select CURRENT_TIMESTAMP))";
PreparedStatement stat = (PreparedStatement)
con.prepareStatement(sql);
try {
stat.executeUpdate();
} catch (SQLException ser) {
System.out.println("ada yang salah dalam query " + ser);
}
if (saving == false) {
stat.close();
}
}
} catch (Exception e) {
System.out.println("gagal pemanggilan koneksi sql " + e);
}
}
42
III.6 KAMUS DATA
Fitur tambahan aplikasi ini adalah proses penyimpanan data dalam database, database
yang perlu dipersiapkan untuk aplikasi ini adalah database osiloskop dengan table
grafik_info, table ini akan menampung seluruh data ketika proses penyimpanan
dilakukan.
Tabel III.2 Kamus data tabel grafik_info pada database osiloskop
Nama Kolom Tipe Data Keterangan Kunci Utama
Sequence Int Auto increment Primary Key
Nilai Int
Rms Double
Waktu Timestamp Current timestamp
Id_alat int
Pada pemanggilan data dari database digunakan aplikasi scope DB client, aplikasi ini
akan menampilkan sejumlah sampling data yang berhasil direkam oleh database.
43
III.7 STRUKTUR RANCANGAN APLIKASI
Gambar III.9 Struktur Rancangan Aplikasi
Tabel III.3 Spesifikasi atribut pada aplikasi
No. Nama Fungsi
1. Menu : Pilihan bar tabulasi dalam Aplikasi
2. Server : Menu untuk membuka layanan Client – Server
3. Aplikasi : Menu untuk membuka layanan aplikasi Scope
Meter
4. Bantuan : Menu untuk membuka layanan bantuan aplikasi
5. Monitoring Server : Tombol untuk mengaktifkan aplikasi Server untuk
Monitoring Pengukuran
6. Scope Volt Meter : Tombol untuk mengaktifkan aplikasi Volt Meter
client untuk melakukan pengukuran langsung
Menu
Server Aplikasi Bantuan
Monitoring
Server
Scope Volt
Meter
Scope DB
Client
Tentang
Aplikasi
Manual
Aplikasi
Keluar
44
7. Scope DB Client : Tombol untuk mengaktifkan aplikasi pembacaan
database dan menampilkan hasil pengukuran yang
telah tersimpan
8. Tentang Aplikasi : Tombol untuk mengaktifkan jendela tentang
informasi mengenai aplikasi
9. Manual Aplikasi : Tombol untuk membuka file yang berisi manual
aplikasi
10. Keluar : Tombol untuk menutup aplikasi
Gambar III.10 Desain Awal Aplikasi
3. Layar Gelombang
a b c d e
f
g
h
i
j k l
1. Panel
Capture
2. Panel Penyimpanan
4. Panel Nilai 5. Panel Pengiriman
45
Keterangan Gambar :
1 Panel Capture
Panel untuk melakukan proses capture data
a Tombol Start : Digunakan untuk memulai capture data
b Tombol Stop : Digunakan untuk memberhentikan capture
data
2 Panel Penyimpanan
c TextField Nama
Alat
: Digunakan untuk menampung nama alat yang
sedang diukur
d Tombol Simpan : Digunakan untuk memulai penyimpanan data
ke database
e Tombol Berhenti : Digunakan untuk menghentikan proses
penyimpanan data ke database
3 Layar Gelombang
Layar yang digunakan untuk menampilkan gelombang dari hasil
pengukuran
4 Panel Nilai
f Nilai Kalibrasi V
RMS
: Text yang menampung nilai pengukuran
g Sampling Rate : Text yang menampung data sampling rate
yang digunakan
5 Panel Pengiriman
h TextField IP : Text yang menampung IP Server tujuan
untuk pengiriman data pengukuran
i TextField Port : Text yang menampung port tujuan untuk
46
pengiriman data pengukuran
j Tombol Kirim : Tombol yang berfungsi untuk memulai
proses pengiriman data ke server
k Tombol Selesai : Tombol yang berfungsi untuk mengakhiri
proses pengiriman data ke server
l Tombol Keluar : Tombol yang berfungsi untuk menutup
Aplikasi Scope Volt Meter yang sedang aktif
Gambar III.11 Desain aplikasi server
Layar
a b c
Koneksi
e
Display
Tegangan
Aplikasi Server Osiloskop Volt Meter
d
d
47
Aplikasi server terdiri dari bagian-bagian yang mempunyai fungsi untuk mengatur atau
menampilkan data, antara lain :
a. Tombol Terima untuk memulai pendengaran apakah ada klien yang terhubung;
b. Tombol Berhenti untuk menutup interaksi aplikasi server dengan klien yang
terhubung;
c. Panel Koneksi, pada bagian ini digunakan untuk melihat klien yang terhubung
dengan server;
d. Layar osiloskop volt meter, untuk menampilkan data yang diterima dalam bentuk
seperti grafik gelombang sinyal listrik;
e. Tombol Keluar untuk keluar dari program aplikasi server.
48
BAB IV
PENGUJIAN SISTEM
Uji coba sistem diperlukan untuk mengetahui apakah spesifikasi yang telah dibangun
dapat berjalan dengan baik dan memenuhi spesifikasi yang telah ditentukan. Uji coba
telah dilakukan beberapa kali dengan tipe pengujian yang berbeda-beda.
IV.1 SPESIFIKASI SISTEM PENGUJIAN
Pengujian Aplikasi dilakukan dengan spesifikasi sistem sebagai berkut :
1. Sistem Operasi : Microsoft Windows 7
2. JDK : JDK 1.6.0_14
3. JRE : JRE 1.6.0_14
4. Database : MySQL Server 5.5
5. Soundcard Driver : Realtek High Definition Audio
6. Microphone Level : 58
7. Skala Pengukuran : 100
8. Multi Meter :
Jenis : Digital Multimeter
Merk : Cadik
Tipe : CM-888D
Produksi : Cadik-Tech Tool Co,.Ltd.
Buatan : Taiwan
Skala Ukur : 200 AC
49
IV.2 PENGUJIAN RANGKAIAN PROBE
Pengukuran yang dilakukan pada rangkaian probe osiloskop volt meter adalah untuk
mengetahui besar sinyal listrik pada keluaran sesuai dengan posisi pemilihan saklar.
Alat dan bahan pengujian rangkaian probe osiloskop volt meter :
1. digital multimeter merek cadik model cm-888D
2. battery AA sony 1.2 V
3. battery Sony Ericsson 3.6V
4. transformator adaptor 12V, 15V, 18V
5. modul dengan keluaran tegangan variabel 0-10VAC
Pengukuran dilakukan pada catudaya rangkaian +11.86V dan -11.98V.Titik pengukuran
pada Vi dan Vo, dimana besar tegangan yang diberikan di Vi adalah dari modul
tegangan variabel 0-10VAC.
Skala 1 : 1
Tabel IV.1 Pengujian skala 1 : 1
No Tegangan masukan Tegangan keluaran
1 0.1 0.1
2 0.2 0.2
3 0.3 0.3
4 0.4 0.3
5 0.5 0.3 - 0.4
6 0.6 0.3 - 0.4
7 0.7 0.3 - 0.4
8 0.8 0.3 - 0.4
9 0.9 0.4
10 1.0 0.4
50
Skala 1 : 5
Tabel IV.2 Pengujian skala 1 : 5
No
Tegangan
Masukan
Tegangan
Keluaran
1 1.5 0.1
2 1.6 0.1
3 1.7 0.1
4 1.8 0.1
5 1.9 0.1 - 0.2
6 2.0 0.2
7 2.1 0.2
8 2.2 0.2
9 2.3 0.2
10 2.4 0.2
11 2.5 0.2 - 0.3
12 2.6 0.3
13 2.7 0.3
14 3.6 0.3
15 3.7 0.3 - 0.4
16 3.9 0.3 - 0.4
17 4.4 0.3 - 0.4
18 4.6 0.3 - 0.4
19 4.7 0.3 - 0.4
20 4.8 0.3 - 0.4
21 4.9 0.4
22 5.0 0.4
51
Skala 1 : 10
Tabel IV.3 Pengujian Skala 1 : 10
No
Tegangan
masukan
Tegangan
keluaran
1 3.2 0.1
2 4.3 0.2
3 5.9 0.3
4 7.4 0.3
5 7.5 0.3
6 7.6 0.3 - 0.4
7 7.8 0.3 - 0.4
8 9.4 0.4
52
IV.3 PROSES KALIBRASI
Proses kalibrasi merupakan suatu proses untuk menyamakan nilai pengukuran di
multimeter dengan nilai pengukuran pada aplikasi, proses ini sangat vital diperlukan
karena akan menentukan keakuratan data pengukuran. Aplikasi ini telah dilakukan
kalibrasi sampai dengan pengukuran 9.9 volt AC menggunakan rangkaian potensio pada
skala pengukuran 1 : 100.
Tabel IV.4 Proses kalibrasi pada 100 sampel pengukuran
No. Nilai pengukuran
avo meter
Nilai RMS
Aplikasi
1 0 0
2 0.1 2.1
3 0.2 2.6
4 0.3 3.0
5 0.4 3.7
6 0.5 4.1
7 0.6 4.4
8 0.7 4.9
9 0.8 5.3
10 0.9 5.7
11 1.0 6.3
12 1.1 6.9
13 1.2 7.3
14 1.3 7.7
15 1.4 8.3
16 1.5 8.8
17 1.6 9.2
53
18 1.7 9.8
19 1.8 10.2
20 1.9 10.7
21 2.0 11.3
22 2.1 11.6
23 2.2 12.1
24 2.3 12.6
25 2.4 13.1
26 2.5 13.5
27 2.6 13.7
28 2.7 14.5
29 2.8 14.6
30 2.9 15.0
31 3.0 15.6
32 3.1 16.0
33 3.2 16.4
34 3.3 17.3
35 3.4 17.4
36 3.5 17.8
37 3.6 18.5
38 3.7 18.7
39 3.8 19.2
40 3.9 19.6
41 4.0 20.1
42 4.1 20.9
43 4.2 21.4
44 4.3 21.6
45 4.4 22.1
54
46 4.5 22.8
47 4.6 23.2
48 4.7 23.8
49 4.8 24.2
50 4.9 24.6
51 5.0 25.0
52 5.1 25.2
53 5.2 25.7
54 5.3 26.3
55 5.4 26.6
56 5.5 27.4
57 5.6 27.6
58 5.7 28.2
59 5.8 28.4
60 5.9 28.9
61 6.0 29.3
62 6.1 29.8
63 6.2 30.2
64 6.3 30.8
65 6.4 31.3
66 6.5 31.5
67 6.6 32.2
68 6.7 32.6
69 6.8 33.0
70 6.9 33.6
71 7.0 34.0
72 7.1 34.2
73 7.2 34.8
55
74 7.3 35.2
75 7.4 35.6
76 7.5 36.0
77 7.6 36.4
78 7.7 36.8
79 7.8 37.1
80 7.9 37.6
81 8.0 38.3
82 8.1 38.7
83 8.2 39.2
84 8.3 39.7
85 8.4 40.1
86 8.5 40.5
87 8.6 40.8
88 8.7 41.4
89 8.8 41.7
90 8.9 42.2
91 9.0 42.7
92 9.1 43.1
93 9.2 43.6
94 9.3 43.9
95 9.4 44.4
96 9.5 44.9
97 9.6 45.5
98 9.7 46.1
99 9.8 46.5
100 9.9 46.7
56
Dari table pengukuran diatas diperoleh grafik seperti dibawah ini dengan persamaan
(3.2):
𝑦 = 𝑎 𝑥 + 𝑏
Gambar IV.1 Grafik proses kalibrasi dengan 100 sampel pengukuran
Grafik tersebut menunjukkan bahwa a = 4.5538 dan b = 1.9136, nilai ini akan
dimasukkan kedalam kode program untuk melakukan proses kalibrasi.
57
IV.4 PENGUJIAN TEGANGAN AC
Tabel IV.5 Pengujian pengukuran tegangan AC pada skala 1 : 100
No. Nama Alat Pengukuran
pada Multi
Meter (x200)
Pengukuran
pada Scope
Volt Meter
(x100)
Persentase
Keakuratan
1 Tegangan Variabel 1.5 1.5 100 %
2.2 2.2 100 %
3.6 3.6 100 %
4.2 4.2 100 %
5.1 5.1 100 %
6.6 6.6 100 %
7.2 7.2 100 %
8.3 8.3 100 %
9.1 9.1 100 %
9.7 9.7 100 %
2 Trafo 800 mA 11.0 10.8 98 %
13.9 13.6 98 %
16.4 16.1 98 %
Pengujian pengukuran pada skala 1 : 100 menunjukkan bahwa proses kalibrasi telah
sesuai dengan hasil pengukuran sampai pada level 9.7 volt. Namun pada tegangan lebih
dari 10 volt nilai pengukuran akan menunjukkan hasil yang berbeda.
58
Gambar IV.2 Pengujian pengukuran tegangan AC 5.4 volt pada skala 1 : 100
IV.5 PENGUJIAN TEGANGAN DC
Tabel IV.6 Pengujian pengukuran tegangan DC pada skala 1 : 100
No. Nama Alat Pengukuran pada
Multi Meter (x200)
Pengukuran pada Scope
Volt Meter (x100)
1 1 Baterai AA Sony 1.2 0.0
2 2 Baterai AA Sony 2.5 0.0
3 Baterai HP 3.9 0.0
59
Gambar IV.3 Pengujian pengukuran tegangan DC 1.2 volt pada skala 1 : 100
Pada pengujian tegangan DC, nilai dan gelombang tidak dapat ditampilkan oleh aplikasi,
namun pengukuran manual pada multimeter menunjukkan angka yang sesuai. Nilai
tegangan pada aplikasi tetap bernilai 0 tanpa ada gelombang.
60
IV.6 PENGUJIAN TEGANGAN AC PADA SKALA BERBEDA
1. Skala 1 : 10
Tabel IV.7 Pengujian pengukuran tegangan AC pada skala 1 : 10
No. Nama Alat Pengukuran pada
Multi Meter (x200)
Pengukuran pada
Scope Volt Meter
1 Tegangan Variabel 0.2 4.5
1.8 21.9
3.6 21.9
4.7 21.9
5.5 21.9
Gambar IV.4 Pengujian pngukuran tegangan AC 5.5 volt pada skala 1 : 10
61
Pada pengujian pengukuran skala 1 : 10 terdapat hasil yang tidak sesuai dengan nilai
pengukuran pada multimeter. Keakuratan menjadi menurun dan gelombang pada level
tegangan 5.5 volt pada multimeter menghasilkan gelombang yang hampir kotak.
2. Skala 1 : 5
Tabel IV.8 Pengujian pengukuran tegangan pada skala 1 : 5
No. Nama Alat Pengukuran pada
Multi Meter (x200)
Pengukuran pada
Scope Volt Meter
1 Tegangan Variabel 0.3 14.1
0.5 17.4
0.9 21.9
1.7 21.9
2.4 21.9
3.1 22.0
3.3 22.3
62
Gambar IV.5 Pengukuran pengujian tegangan AC 3.3 volt pada skala 1 : 5
Pada pengujian pengukuran dengan skala 1 : 5 terdapat kesalahan hasil pengukuran,
persentase keakuratan pengukuran menjadi jauh menurun. Gelombang pada aplikasi
hampir membentuk kotak pada level tegangan 3.3 volt dengan multimeter. Sementara
nilai pada aplikasi menunjukkan angka 22.3.
63
3. Skala 1 : 1
Tabel IV.9 Pengujian pengukuran tegangan pada skala 1 : 1
No. Nama Alat Pengukuran pada
Multi Meter (x200)
Pengukuran pada
Scope Volt Meter
1 Tegangan Variabel 0.3 21.8
0.5 22.7
0.9 23.4
1.7 21.9
Gambar IV.6 Pengujian pengukuran tegangan AC 0.3 volt pada skala 1 : 1
Pengujian pengukuran dengan skala 1 : 1 masih memiliki kesalahan akurasi pengukuran.
Bentuk gelombang menjadi hampir kotak pada level tegangan 3.3 volt multimeter
dengan nilai pada aplikasi 21.9.
64
4. Skala 1 : 200
Tabel IV.10 Pengujian pengukuran pada skala 1 : 200
No. Nama Alat Pengukuran pada
Multi Meter (x200)
Pengukuran pada
Scope Volt Meter
1 Tegangan Variabel 1.6 0.7
4.7 2.4
6.3 3.2
7.1 3.6
8.1 4.1
Gambar IV.7 Pengujian pengukuran tegangan AC 8.1 volt pada skala 1 : 200
Pengujian pengukuran pada skala 1 : 200 mengalami perbandingan akurasi dengan
pengukuran pada skala 1 : 100. Perbandingan tersebut sekitar 50 %, yang berarti nilai
pada aplikasi menjadi sekitar dua kali lipat dari nilai yang terukur di multimeter. Grafik
masih tampak normal pada level tegangan 8.1 volt di multimeter.
65
IV.7 PENYIMPANAN DAN PENGAKSESAN DATABASE
Pengujian penyimpanan database dilakukan dengan melakukan ujicoba penyimpanan
pada database server sesuai dengan pengujian pengukuran, kemudian hasilnya diakses
oleh program MySQL front yang difungsikan sebagai remote client database.
Gambar IV.8 Penyimpanan nilai pada database MySQL Server
Pengaksesan database dapat dilakukan melalui aplikasi Scope DB Client, aplikasi ini
ditujukan untuk client yang ingin mengakses database. Database berada pada server dan
melalui sebuah koneksi aplikasi Scope DB Client dapat mengakses database tersebut.
66
Gambar IV.9 Pemilhan data pada aplikasi
Gambar IV.10 Pengujian pengaksesan database pada aplikasi
67
IV.8 PENGUJIAN KONEKSI APLIKASI CLIENT - SERVER
Pengujian aplikasi servser telah dilakukan pada komputer yang diberikan alamat IP :
192.168.69.69 dan aplikasi server terbuka pada port : 5000. Berikut merupakan hasil
dari pengujian pada aplikasi server dengan IP Address klien yang terhubung.
Gambar IV.11 Pengujian koneksi client - server
68
BAB V
KESIMPULAN DAN SARAN
V.1 KESIMPULAN
Berdasarkan hasil pengujian yang telah dilakukan, dapat diambil kesimpulan bahwa :
1. Nilai Root Mean Square (RMS) yang didapat belum mewakili tegangan yang
sebenarnya, untuk itu diperlukan proses kalibrasi untuk menyesuaikan dengan
tegangan sumber yang sebenarnya.
2. Pengukuran pada skala kalibrasi yang berbeda memerlukan proses ulang kalibrasi
dengan sample pengukuran sesuai kebutuhan.
3. Aplikasi scope voltmeter yang dibuat sudah dapat melakukan pengukuran dan
menampilkan bentuk gelombang tegangan AC walaupun tidak akurat.
V.2 SARAN
Berdasarkan pengujian dan kesimpulan yang telah diambil, beberapa saran yang dapat
diterapkan untuk pengembangan aplikasi mendatang antara lain :
1. Kalibrasi perlu lebih mendetail dengan sampel pengukuran lebih dari 9.9 volt agar
pengukuran dapat dilakukan maksimal
2. Dalam proses kalibrasi perlu digunakan alat ukur multimeter yang memiliki
keakuratan terjamin agar nilai pada aplikasi setelah proses kalibrasi juga dapat
terjaga keakuratannya.
3. Aplikasi scope volt meter dapat dikembangkan untuk pengukuran lainnya dengan
memodifikasi alat yang dipakai untuk melakukan pengukuran
69
4. Gelombang pada aplikasi scope volt meter dapat ditambahkan dengan garis yang
mewakili pengukuran tertentu seperti pada osiloskop
5. Aplikasi yang sama dapat diterapkan dalam mobile device sehingga dapat lebih
praktis dan efisien.
70
DAFTAR PUSTAKA
[1] Behrouz A. Forouzan. Data Communication and Networking 2nd
edition
Upadate. McGraw-Hill Publishing Company Ltd., Singapore, 2002.
[2] G Sri Hartati dan B. Herry Suharto. Pemrograman GUI Swing Java dengan
Netbeans 5. Andi, Yogyakarta, 2007.
[3] M. Salahudin dan Rossa A.S. Belajar Pemrograman dengan Bahasa C++ dan
Java. Informatika, Bandung, 2009.
[4] Putu Rusdi Ariawan. Avometer Pengukuran Listrik, Makalah Fakultas Teknik
Universitas Udayana Denpasar, 2009.
[5] Ridwan Sanjaya. Membuat Aplikasi Windows Multiplatform dengan Java GUI.
Elex Media Komputindo, Jakarta, 2003.
[6] Wahana Komputer. Membuat Aplikasi Database dengan Java 2. Andi, Bandung,
2006.
[7] “__________________”. Java Sound Programmer Guide. Sun Microsystem Inc,
USA, 2000;
[8] Dara AtengDjaja. Pengenalan J2ME.
http://daraatengdjaja.wordpress.com/2009/01/04/pengenalan-j2me/, 2 April
2011, 10.57.
71
[9] “__________________”. Java Introduction Part II.
http://ltodi.est.ips.pt/hgamboa/Linguagens/intro-java-II.htm, 4 April 2011, 19.34.
[10] “__________________”. Client/Server.
http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part2/Chapter13/serverCli
ent.html, 4 April 2011, 20.10.
[11] “__________________”. Penguat Operasional.
http://id.wikipedia.org/wiki/Penguat_operasional, 7 April 2011, 13.41.
[12] “__________________”. Root mean square.
http://en.wikipedia.org/wiki/Root_mean_square, 10 April 2011, 15.50.
[13] “__________________”. Persamaan Linear.
http://id.wikipedia.org/wiki/Persamaan_linear, 15 April 2011, 17.20.
L A M P I R A N
L-1
/*
* FrameGrafik.java
*
* Created on 11 Apr 11, 15:21:40
*/
package voltmeter;
// library yang digunakan
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.sampled.TargetDataLine;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
L-2
import javax.sound.sampled.Clip;
import javax.sound.sampled.CompoundControl;
import javax.sound.sampled.Control;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.Line;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.Mixer;
import javax.sound.sampled.Port;
/**
*
* @author feraz
*/
// kelas FrameGrafik
public class FrameGrafik extends javax.swing.JInternalFrame {
// inisialisasi dan deklarasi variable global
TargetDataLine line;
boolean stopCapture = false;
boolean threadEnded = true;
public boolean tutup = false;
boolean running, saving = false, sending = false;
ByteArrayOutputStream out;
int bufferSize = (int) 800;
public byte buffer[] = new byte[bufferSize];
public byte bufferAsyn[] = new byte[bufferSize];
public int rms = 0, pre = 1;
private Thread captureThread;
double a = 4.5538, b = 1.9136, y = 0, x = 0;
L-3
public float nilaiRate = 8000;
public Mixer.Info[] mixer;
private Line.Info targetDLInfo = new Line.Info(TargetDataLine.class);
FloatControl volume=null;
Port mic;
int kuat = 0, reGain = 0;
// konstruktor kelas FrameGrafik
public FrameGrafik() {
initComponents();
setMicrophoneVolume(59);
jLabel6.setVisible(false);
spinRate.setVisible(false);
isiData();
}
// aksi jika tombol Mulai ditekan
private void Mulai(java.awt.event.ActionEvent evt) {
captureAudio();
captureThread.start();
spinRate.setEnabled(false);
btnQuit.setEnabled(false);
btnStart.setEnabled(false);
Henti.setEnabled(true);
}
// aksi jika tombol Berhenti ditekan
private void HentiActionPerformed(java.awt.event.ActionEvent evt) {
L-4
captureThread.stop();
spinRate.setEnabled(true);
btnQuit.setEnabled(true);
Henti.setEnabled(false);
btnStart.setEnabled(true);
line.stop();
line.close();
}
// aksi jika tombol Simpan ditekan
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
saving = true;
btnSimpan.setEnabled(false);
btnCancel.setEnabled(true);
txtAlat.setEnabled(false);
}
// aksi jika tombol Batal ditekan
private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {
saving = false;
btnSimpan.setEnabled(true);
btnCancel.setEnabled(false);
txtAlat.setEnabled(true);
}
// aksi jika tombol Keluar ditekan
private void btnQuitActionPerformed(java.awt.event.ActionEvent evt) {
tutup = true;
L-5
Graphics j = jPanel1.getGraphics();
j.setColor(Color.black);
repaint();
this.setVisible(false);
running = false;
jPanel1.setVisible(false);
jPanel1.hide();
}
// aksi jika tombol Kirim ditekan
private void btnKirimActionPerformed(java.awt.event.ActionEvent evt) {
sending = true;
txtIP.setEnabled(false);
txtPort.setEnabled(false);
}
// aksi jika tombol Stop ditekan
private void btnStopActionPerformed(java.awt.event.ActionEvent evt) {
sending = false;
txtIP.setEnabled(true);
txtPort.setEnabled(true);
}
// fungsi untuk mendapatkan informasi mixer yang digunakan
public void InfoMixer() {
mixer = AudioSystem.getMixerInfo();
System.out.println("mixer :");
for (int cnt = 0; cnt < mixer.length; cnt++) {
L-6
Mixer currentMixer = AudioSystem.getMixer(mixer[cnt]);
if (currentMixer.isLineSupported(targetDLInfo)) {
System.out.println("mixer name: " + mixer[cnt].getName());
}
}
}
// fungsi untuk setting format audio
public AudioFormat format() {
int sampleSizeInBits = 8;
int channels = 1;
boolean signed = true;
boolean bigEndian = true;
return new AudioFormat(
nilaiRate,
sampleSizeInBits,
channels,
signed,
bigEndian);
}
// fungsi untuk menangkap audio yang masuk
public void captureAudio() {
InfoMixer();
try {
final AudioFormat format = format();
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
line = (TargetDataLine) AudioSystem.getLine(info);
L-7
line.open(format);
line.start();
Runnable runner = new Runnable() {
public void run() {
out = new ByteArrayOutputStream();
Graphics z = jPanel1.getGraphics();
int titikNol = jPanel1.getHeight() / 2 +2;
int batasLebar = jPanel1.getWidth();
running = true;
try {
while (running) {
kuat = gainSlider.getValue();
reGain = gainSlider.getValue();
penguatNilai.setText(""+reGain);
int count = line.read(bufferAsyn, 0, buffer.length);
if (count > 0) {
if(sliderTepat.getValue()==0){
lblNilaiAwal.setText("normal");
}else{
lblNilaiAwal.setText(""+sliderTepat.getValue());
}
out.write(bufferAsyn, 0, count);
for ( int i = sliderTepat.getValue()+20; i < buffer.length; i++) {
z.setColor(Color.blue);
z.drawLine(0, titikNol, batasLebar, titikNol);
z.setColor(Color.black);
z.fillOval(i, titikNol - bufferAsyn[i]*reGain, 1, 1);
if (i < 1) {
L-8
z.drawLine(i, titikNol - bufferAsyn[i]*reGain, i, titikNol -
bufferAsyn[i]*reGain);
} else {
z.drawLine(i - 1, titikNol - bufferAsyn[i - 1]*reGain, i, titikNol -
bufferAsyn[i]*reGain);
}
}
}
hitungRMS();
if (saving == true) {
SimpanGrafik();
}
jPanel1.repaint();
if (sending == true) {
new SendRequest();
}
out.close();
}
} catch (IOException e) {
System.err.println("ada masalah dalam I/O: " + e);
System.exit(-1);
}
}
};
captureThread = new Thread(runner);
} catch (LineUnavailableException e) {
System.err.println("Line tidak tersedia: " + e);
System.exit(-2);
}
L-9
}
// fungsi untuk menghitung nilai RMS
public void hitungRMS() {
long lSum = 0;
for (int i = 0; i < bufferAsyn.length; i++) {
lSum = lSum + bufferAsyn[i];
}
double dAvg = lSum / bufferAsyn.length;
double sumMeanSquare = 0;
for (int j = 0; j < bufferAsyn.length; j++) {
sumMeanSquare = sumMeanSquare + Math.pow(bufferAsyn[j] - dAvg, 2);
}
double averageMeanSquare = sumMeanSquare / bufferAsyn.length;
double rms, adjRms;
rms = (Math.pow(averageMeanSquare, 0.5));
RMSmurni.setText("" + rms);
RMSmurni.setVisible(false);
// fungsi untuk menghitung kalibrasi
x = (rms - b) / a;
if (x < 0) {
x = 0; }
BigDecimal nKalibrasi = new BigDecimal(x);
nKalibrasi = nKalibrasi.setScale(pre, RoundingMode.UP);
x = nKalibrasi.doubleValue();
labelNilai.setText("" + x);
}
L-10
// fungsi untuk menyimpan data pengukuran
public void SimpanGrafik() {
try {
konekDB objkoneksi = new konekDB();
Connection con = (Connection) objkoneksi.bukakoneksi();
String namaAlat = txtAlat.getText();
for (int i = 0; i < bufferAsyn.length; i++) {
String sql = "insert into grafik_info (nama, nilai, rms,
id_hub, waktu) values ( '" + namaAlat + "'," + bufferAsyn[i]*reGain +
"," + x + ", " + txt_idAlat.getText() + ",(select CURRENT_TIMESTAMP))";
PreparedStatement stat = (PreparedStatement)
con.prepareStatement(sql);
try {
stat.executeUpdate();
} catch (SQLException ser) {
System.out.println("ada yang salah dalam query " + ser);
}
if (saving == false) {
stat.close();
}
}
} catch (Exception e) {
System.out.println("gagal pemanggilan koneksi sql " + e);
}
}
// fungsi untuk mengirimkan data pengukuran ke server tujuan
public class SendRequest {
SendRequest() {
try {
L-11
DatagramSocket socket;
DatagramPacket packet;
InetAddress address;
socket = new DatagramSocket();
String dip = txtIP.getText();
address = InetAddress.getByName(dip);
String port = txtPort.getText();
int pnum = Integer.parseInt(port);
packet = new DatagramPacket(bufferAsyn, bufferAsyn.length, address,
pnum);
socket.send(packet);
socket.close();
} catch (IOException io) {
}
}
}
// fungsi untuk membentuk id alat yang sedang diukur
public void isiData() {
txt_idAlat.setVisible(false);
try {
konekDB objkoneksi = new konekDB();
Connection con = (Connection) objkoneksi.bukakoneksi();
Statement stat = (Statement) con.createStatement();
String query = "select MAX(id_hub)+1 as data from grafik_info ";
ResultSet rs = stat.executeQuery(query);
if (rs.next()) {
if (rs.getString("data") == null) {
L-12
txt_idAlat.setText("1");
txt_idAlat.requestFocus();
} else {
txt_idAlat.setText("" + rs.getString("data"));
txt_idAlat.requestFocus();
}
}
} catch (SQLException e) {
}
}
// fungsi untuk mengeset volume mic sesuai pada saat kalibrasi
public void setMicrophoneVolume(int value) {
Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo();
for (int i = 0; i < mixerInfos.length; i++) {
Mixer mixer = AudioSystem.getMixer(mixerInfos[i]);
int maxLines = mixer.getMaxLines(Port.Info.MICROPHONE);
Port lineIn = null;
FloatControl volCtrl = null;
int cekVol;
if (maxLines > 0) {
try {
lineIn = (Port) mixer.getLine(Port.Info.MICROPHONE);
lineIn.open();
CompoundControl cc = (CompoundControl) lineIn.getControls()[0];
Control[] controls = cc.getMemberControls();
for (Control c : controls) {
if (c instanceof FloatControl) {
L-13
volCtrl = (FloatControl) c;
volCtrl.setValue((float) value / 100);
}
}
} catch (Exception ex) {
continue;
}
}
}
}
// fungsi dari main class
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FrameGrafik().setVisible(true);
}
});
}
}