You are on page 1of 97

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

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

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

ii

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


iii

Ir. Agust Isa Martinus, MT

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 doa 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 doa; 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.

iv

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

DAFTAR ISI

Halaman ABSTRAK .................................................................................................................... i ABSTRACT ................................................................................................................. ii LEMBAR PENGESAHAN ........................................................................................ iii KATA PENGANTAR ................................................................................................ iv DAFTAR ISI ............................................................................................................... vi DAFTAR GAMBAR .................................................................................................. ix DAFTAR TABEL ....................................................................................................... xi

BAB I I.1 I.2 I.3 I.4 I.5 I.6 I.7

PENDAHULUAN Latar Belakang ..................................................................................... 1 Tujuan .................................................................................................. 2 Perumusan Masalah ............................................................................. 3 Batasan Masalah................................................................................... 3 Metodologi ........................................................................................... 4 Sistematika Pembahasan ...................................................................... 4 Pelaksanaan .......................................................................................... 5

BAB II II.1 II.2 II.3 II.4 II.5 II.6

DASAR TEORI Voltmeter.............................................................................................. 7 Soundcard dan Java Sound Sample.................................................... 10 Konsep Jaringan Client - Server ........................................................ 18 Pemrograman Java pada Jaringan ...................................................... 20 Database MySQL .............................................................................. 21 Teori Dasar Inverting ......................................................................... 25
vi

BAB III III.1 III.2 III.3 III.4 III.5 III.6 III.7

PERANCANGAN PEMBUATAN SISTEM Spesifikasi Sistem .............................................................................. 26 Rancangan Sistem Global .................................................................. 27 Rancangan Probe ................................................................................ 28 Cara Kerja Aplikasi ............................................................................ 31 Flowchart Program ............................................................................. 34 Kamus Data ........................................................................................ 42 Struktur Rancangan Aplikasi ............................................................. 43

BAB IV IV.1 IV.2 IV.3 IV.4 IV.5 IV.6 IV.7 IV.8

PENGUJIAN SISTEM Spesifikasi Sistem Pengujian ............................................................. 48 Pengujian Rangkaian Probe ............................................................... 49 Proses Kalibrasi .................................................................................. 52 Pengujian Tegangan AC .................................................................... 57 Pengujian Tegangan DC .................................................................... 58 Pengujian Tegangan AC pada Skala Berbeda .................................... 60 Penyimpanan dan Pengaksesan Database .......................................... 65 Pengujian Koneksi Aplikasi Client - Server ...................................... 67

BAB V V.1 V.2

KESIMPULAN DAN SARAN Kesimpulan ........................................................................................ 68 Saran ................................................................................................... 69

vii

DAFTAR PUSTAKA ............................................................................................... 70 LAMPIRAN ............................................................................................................ L-1

viii

DAFTAR GAMBAR

Halaman Gambar II.1 Gambar II.2 Gambar II.3 Gambar II.4 Gambar II.5 Gambar II.6 Gambar II.7 Gambar II.8 Gambar II.9 Multimeter analog ................................................................................ 8 Multimeter digital................................................................................. 8 Bagian-bagian multimeter .................................................................... 9 Contoh gelombang suara .................................................................... 12 Konfigurasi line untuk audio input .................................................... 15 Ilustrasi komunikasi menggunakan socket......................................... 21 Spesifikasi Tabel pada Database ....................................................... 21 Tampilan MySQL-Front .................................................................... 24 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
ix

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

DAFTAR TABEL

Halaman Tabel I.1 Tabel III.2 Tabel III.2 Tabel III.3 Tabel IV.1 Tabel IV.2 Tabel IV.3 Tabel IV.4 Tabel IV.5 Tabel IV.6 Tabel IV.7 Tabel IV.8 Tabel IV.9 Tabel IV.10 Jadwal pelaksanaan tugas akhir ........................................................... 5 Batasan pengukuran sinyal listrik ...................................................... 28 Kamus data tabel grafik_info pada database osiloskop ..................... 42 Spesifikasi atribut pada aplikasi ......................................................... 43 Pengujian skala 1 : 1 .......................................................................... 49 Pengujian skala 1 : 5 .......................................................................... 50 Pengujian skala 1 : 10 ........................................................................ 51 Proses kalibrasi pada 100 sampel pengukuran ................................... 52 Pengujian pengukuran tegangan AC pada skala 1 : 100 .................... 57 Pengujian pengukuran tegangan DC pada skala 1 : 100 .................... 58 PengujianpPengukuran tegangan AC pada skala 1 : 10 ..................... 60 Pengujian pengukuran tegangan pada skala 1 : 5............................... 61 Pengujian pengukuran tegangan pada skala 1 : 1............................... 63 Pengujian pengukuran pada skala 1 : 200 .......................................... 64

xi

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

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;
2

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. 2. 3. tegangan yang diukur merupakan tegangan AC; batas tegangan yang dapat diukur sebesar 0 sampai dengan + 200 Volt AC; server bertugas untuk memonitoring pengukuran dari client.

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 :

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 I.7.1

PELAKSANAAN Jadwal Pelaksanaan Tabel I.1 Jadwal pelaksanaan tugas akhir FEBRUARI
1 2 3 4 1

NO 1 2 3 4 5 6

KEGIATAN Pengumpulan bahan referensi Perancangan alat dan aplikasi Pembelian komponen alat dan bahan Pembuatan alat dan aplikasi Pengujian dan implementasi Pembuatan laporan tugas akhir

MARET
2 3 4 1

APRIL
2 3 4

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

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 rangerange 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.

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

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. 6. 7. 8. 9. Mirror (cermin) yang merupakan batas antara Ohmmeter dengan Voltmeter. Skala yang berfungsi sebagai skala pembacaan. Zero Adjustment yang digunakan sebagai pengatur jarum pada kedudukan nol. Angka batas ukur adalah angka yang menunjukkan batas kemampuan alat ukur. Kotak meter adalah kotak atau tempat meletakkan komponen-komponen multimeter.
9

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
10

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 format file musik format suara : AIFF, AU dan WAV : MIDI dan Rich Music Format (RMF) : 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.

11

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
12

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.

13

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.

14

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
15

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 format); line = (TargetDataLine) AudioSystem.getLine(info); line.open(format); info = new DataLine.Info(TargetDataLine.class,

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

16

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.

17

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) 2. Hubungan antara proses yang berjalan pada mesin yang berbeda; Pemisahan fungsi berdasarkan ide layanannya Server sebagai provider, client sebagai konsumen

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
18

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. 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. client server yang pertama

5. Object Application Servers -

6. Web Application Server (aplikasi web server) World Wide Web (www) adalah aplikasi digunakan untuk web Client dan server berkomunikasi menggunakan protokol HTTP.

19

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. 2. 3. creation reading and writing destruction : inisialisasi untuk membuat socket; : menerima dan mengirim data ke sebuah socket; : 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.

20

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 Baris 1 Baris (n) Gambar II.7 Spesifikasi tabel pada database Kolom 2 Kolom 3 Kolom (n)

21

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. 2. one-to-one menghubungkan secara tepat dua entitas dengan satu kunci (key); 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.

22

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
23

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

24

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

25

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. 4. Aplikasi dapat mengukur tegangan AC yang masuk melalui soundcard; 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. 8. Server dapat memonitoring hasil pengukuran yang dilakukan client; Client yang sedang melakukan pengukuran dapat menyimpan hasil pengukuran pada databse dan dapat mengakses database yang telah disimpan;

26

III.2

RANCANGAN SISTEM GLOBAL

Komputer A

Komputer Server Database

jdbc

Aplikasi Scope VoltMeter Input Port (Sound Card)

Menyimpan dan mengakses database

Database Server

Range Selector

Mengakses database jdbc

Komputer B

Mengirim Data Pengukuran (UDP)

Aplikasi Scope DB Client / Monitoring Server

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.

27

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 x1 x5 x10 x100 x200 Vin 1 volt 5 volt 10 volt 100 volt 200 volt Vout 1 volt 1 volt 1 volt 1 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.

28

Flowchart rangkaian probe scope volt meter

Mulai

Baca tegangan (Vi)

If 100v < Vi 200v


Y

Posisi saklar selector = x200

If 10v < Vi 100v


Y

Posisi saklar selector = x100

If 5v < Vi 10 v
Y

Posisi saklar selector = x10

If 1v < Vi 5v
Y

If vi 1
Posisi saklar selector = x5
Y

Posisi saklar selector = x1

Kirim ke port input soundcard

selesai

Tegangan tidak dapat diukur

Gambar III.2 Flowchart rangkaian probe scope volt meter


29

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.

30

III.4

CARA KERJA APLIKASI


[Data Format]
TargetDataLine

Javax.sound.sampled

Mixer Soundcard

buffer

input

ByteArrayOutputStream

input
Nilai inputMicrop hone RMS

Kalibrasi Output Grafik Wave

Nilai Kalibrasi RMS

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
31

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 :

32

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
Mulai
Cari port input default

33
T

If default =

Pesan Error :Line tidak tersedia

Tampil garis penghubung antar titik Hitung RMS dan Hitung Kalibrasi

Gambar III.5 Flowchart Aplikasi Scope Volt Meter

34

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 ( { 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(); } int i = sliderTepat.getValue()+20; i < buffer.length; i++)

35

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.

Mulai

Masukan ip dan port server

T If ip dan port = tersedia Y Kirim data pengukuran Pesan error : ip dan server tidak tersedia If selesai = true Y Selesai

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

36

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.

37

Mulai

Buka socket untuk menerima data dari client

Terima dan baca data dari client

Tampilkan data client dalam grafik

Hitung RMS dan Kalibrasi

Tampilkan nilai kalibrasi

T If selesai = true Y Tutup socket dan koneksi

Selesai

Gambar III.7 Flowchart aplikasi server scope volt meter

38

Berikut merupakan kode program form server untuk menerima dan menampilkan data.
for (int i = 0; i < str.length; i++) { DatagramPacket 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); 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(); } titikNol, drawPanel.getWidth(), packet = new DatagramPacket(buffer, buffer.length,

39

Mulai

Buka Koneksi ke Database

If koneksi tersambung T Y Tampilkan database

Pilih data yang ingin ditampilkan

Pesan error : tidak ada koneksi

Baca id data yang terpilih

Baca Nilai dari database

Tampilkan 800 nilai pertama

Tampilkan garis penghubung antar titik

Tampilkan nilai RMS terakhir

Selesai

Gambar III.8 Flowchart aplikasi database client

40

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 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); } } stat = (PreparedStatement) con.prepareStatement(sql);

41

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 Nama Kolom Sequence Nilai Rms Waktu Id_alat

Kamus data tabel grafik_info pada database osiloskop Tipe Data Int Int Double Timestamp int Current timestamp Keterangan Auto increment Kunci Utama Primary Key

Pada pemanggilan data dari database digunakan aplikasi scope DB client, aplikasi ini akan menampilkan sejumlah sampling data yang berhasil direkam oleh database.

42

III.7

STRUKTUR RANCANGAN APLIKASI

Menu

Server

Aplikasi

Bantuan

Monitoring Server

Scope Volt Meter

Scope DB Client

Tentang Aplikasi

Manual Aplikasi

Keluar

Gambar III.9 Struktur Rancangan Aplikasi

Tabel III.3 No. 1. Nama Menu

Spesifikasi atribut pada aplikasi Fungsi : Pilihan bar tabulasi dalam Aplikasi : Menu untuk membuka layanan Client Server

2.

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
43

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

1. Panel Capture a b

2. Panel Penyimpanan

3. Layar Gelombang

f g

h i

4. Panel Nilai

5. Panel Pengiriman

Gambar III.10 Desain Awal Aplikasi

44

Keterangan Gambar : 1 Panel Capture Panel untuk melakukan proses capture data a b Tombol Start Tombol Stop : : Digunakan untuk memulai capture data Digunakan untuk memberhentikan capture data

Panel Penyimpanan c TextField Alat d Tombol Simpan : Nama : Digunakan untuk menampung nama alat yang sedang diukur Digunakan untuk memulai penyimpanan data ke database e Tombol Berhenti : Digunakan untuk menghentikan proses

penyimpanan data ke database

Layar Gelombang Layar yang digunakan untuk menampilkan gelombang dari hasil pengukuran

Panel Nilai f Nilai Kalibrasi V : RMS g Sampling Rate : Text yang menampung data sampling rate yang digunakan Text yang menampung nilai pengukuran

Panel Pengiriman h TextField IP : Text yang menampung IP Server tujuan untuk pengiriman data pengukuran i TextField Port : Text yang menampung port tujuan untuk
45

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

Tombol Keluar

Tombol yang berfungsi untuk menutup Aplikasi Scope Volt Meter yang sedang aktif

Koneksi a c b

Display Tegangan

Layar

Aplikasi Server Osiloskop Volt Meter Gambar III.11 Desain aplikasi server

46

Aplikasi server terdiri dari bagian-bagian yang mempunyai fungsi untuk mengatur atau menampilkan data, antara lain : a. b. Tombol Terima untuk memulai pendengaran apakah ada klien yang terhubung; 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.

47

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. 2. 3. 4. 5. 6. 7. 8. Sistem Operasi JDK JRE Database Soundcard Driver Microphone Level Skala Pengukuran Multi Meter Jenis Merk Tipe Produksi Buatan Skala Ukur : Microsoft Windows 7 : JDK 1.6.0_14 : JRE 1.6.0_14 : MySQL Server 5.5 : Realtek High Definition Audio : 58 : 100 : : Digital Multimeter : Cadik : CM-888D : Cadik-Tech Tool Co,.Ltd. : Taiwan : 200 AC

48

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. 2. 3. 4. 5. digital multimeter merek cadik model cm-888D battery AA sony 1.2 V battery Sony Ericsson 3.6V transformator adaptor 12V, 15V, 18V 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 1 2 3 4 5 6 7 8 9 10 Tegangan masukan 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
49

Tegangan keluaran 0.1 0.2 0.3 0.3 0.3 - 0.4 0.3 - 0.4 0.3 - 0.4 0.3 - 0.4 0.4 0.4

Skala 1 : 5

Tabel IV.2 Pengujian skala 1 : 5 Tegangan No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Masukan 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.6 3.7 3.9 4.4 4.6 4.7 4.8 4.9 5.0 Tegangan Keluaran 0.1 0.1 0.1 0.1 0.1 - 0.2 0.2 0.2 0.2 0.2 0.2 0.2 - 0.3 0.3 0.3 0.3 0.3 - 0.4 0.3 - 0.4 0.3 - 0.4 0.3 - 0.4 0.3 - 0.4 0.3 - 0.4 0.4 0.4

50

Skala 1 : 10

Tabel IV.3 Pengujian Skala 1 : 10 Tegangan No masukan 1 2 3 4 5 6 7 8 3.2 4.3 5.9 7.4 7.5 7.6 7.8 9.4 Tegangan keluaran 0.1 0.2 0.3 0.3 0.3 0.3 - 0.4 0.3 - 0.4 0.4

51

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 No.

Proses kalibrasi pada 100 sampel pengukuran Nilai pengukuran avo meter Nilai RMS Aplikasi 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 0 2.1 2.6 3.0 3.7 4.1 4.4 4.9 5.3 5.7 6.3 6.9 7.3 7.7 8.3 8.8 9.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

52

18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 4.1 4.2 4.3 4.4

9.8 10.2 10.7 11.3 11.6 12.1 12.6 13.1 13.5 13.7 14.5 14.6 15.0 15.6 16.0 16.4 17.3 17.4 17.8 18.5 18.7 19.2 19.6 20.1 20.9 21.4 21.6 22.1

53

46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

4.5 4.6 4.7 4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 7.1 7.2

22.8 23.2 23.8 24.2 24.6 25.0 25.2 25.7 26.3 26.6 27.4 27.6 28.2 28.4 28.9 29.3 29.8 30.2 30.8 31.3 31.5 32.2 32.6 33.0 33.6 34.0 34.2 34.8

54

74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

7.3 7.4 7.5 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9

35.2 35.6 36.0 36.4 36.8 37.1 37.6 38.3 38.7 39.2 39.7 40.1 40.5 40.8 41.4 41.7 42.2 42.7 43.1 43.6 43.9 44.4 44.9 45.5 46.1 46.5 46.7

55

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.

56

IV.4

PENGUJIAN TEGANGAN AC

Tabel IV.5

Pengujian pengukuran tegangan AC pada skala 1 : 100 Pengukuran pada Multi Meter (x200) Pengukuran pada Scope Volt Meter (x100) Persentase Keakuratan

No. Nama Alat

Tegangan Variabel

1.5 2.2 3.6 4.2 5.1 6.6 7.2 8.3 9.1 9.7

1.5 2.2 3.6 4.2 5.1 6.6 7.2 8.3 9.1 9.7

100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Trafo 800 mA

11.0 13.9 16.4

10.8 13.6 16.1

98 % 98 % 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.

57

Gambar IV.2

Pengujian pengukuran tegangan AC 5.4 volt pada skala 1 : 100

IV.5

PENGUJIAN TEGANGAN DC

Tabel IV.6 No. Nama Alat

Pengujian pengukuran tegangan DC pada skala 1 : 100 Pengukuran pada Multi Meter (x200) Pengukuran pada Scope Volt Meter (x100) 0.0 0.0 0.0

1 2 3

1 Baterai AA Sony 2 Baterai AA Sony Baterai HP

1.2 2.5 3.9

58

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.

59

IV.6

PENGUJIAN TEGANGAN AC PADA SKALA BERBEDA

1. Skala 1 : 10

Tabel IV.7 No.

Pengujian pengukuran tegangan AC pada skala 1 : 10 Pengukuran pada Multi Meter (x200) Pengukuran pada Scope Volt Meter 4.5 21.9 21.9 21.9 21.9

Nama Alat

Tegangan Variabel

0.2 1.8 3.6 4.7 5.5

Gambar IV.4

Pengujian pngukuran tegangan AC 5.5 volt pada skala 1 : 10

60

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 No. Nama Alat Pengujian pengukuran tegangan pada skala 1 : 5 Pengukuran pada Multi Meter (x200) 1 Tegangan Variabel 0.3 0.5 0.9 1.7 2.4 3.1 3.3 Pengukuran pada Scope Volt Meter 14.1 17.4 21.9 21.9 21.9 22.0 22.3

61

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.

62

3. Skala 1 : 1 Tabel IV.9 Pengujian pengukuran tegangan pada skala 1 : 1 No. Nama Alat Pengukuran pada Multi Meter (x200) 1 Tegangan Variabel 0.3 0.5 0.9 1.7 Pengukuran pada Scope Volt Meter 21.8 22.7 23.4 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.

63

4.

Skala 1 : 200 Tabel IV.10 No. Nama Alat Pengujian pengukuran pada skala 1 : 200 Pengukuran pada Multi Meter (x200) 1 Tegangan Variabel 1.6 4.7 6.3 7.1 8.1 Pengukuran pada Scope Volt Meter 0.7 2.4 3.2 3.6 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.
64

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.

65

Gambar IV.9 Pemilhan data pada aplikasi

Gambar IV.10 Pengujian pengaksesan database pada aplikasi

66

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

67

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

68

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.

69

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 http://daraatengdjaja.wordpress.com/2009/01/04/pengenalan-j2me/, 2011, 10.57.

J2ME. April

70

[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 http://en.wikipedia.org/wiki/Root_mean_square, 10 April 2011, 15.50.

square.

[13]

__________________. Persamaan http://id.wikipedia.org/wiki/Persamaan_linear, 15 April 2011, 17.20.

Linear.

71

LAMPIRAN

/* * 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-1

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-2

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-3

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-4

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-5

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-6

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-7

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-8

// 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-9

// 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-10

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-11

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-12

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);

} }); } }

L-13

You might also like