PENGOLAHAN DATA KELUARAN DTMF (DUAL TONE MULTI FREQUENCY) DECODER UNTUK MENGENDALIKAN PERALATAN LISTRIK
SKRIPSI
GITA ATIKA FAUZY 041401038
PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2009
Gita Atika Fauzy : Pengolahan Data Keluaran Dtmf (Dual Tone Multi Frequency) Decoder Untuk Mengendalikan Peralatan Listrik, 2009 USU Repository © 2008
ii
PERSETUJUAN
Judul Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: PENGOLAHAN DATA KELUARAN DTMF (DUAL TONE MULTI FREQUENCY) DECODER UNTUK MENGENDALIKAN PERALATAN LISTRIK : SKRIPSI : GITA ATIKA FAUZY : 041401038 : SARJANA (S1) ILMU KOMPUTER : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, 2009
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
M. Umar Saleh T, ST NIP. 131 757 011
Prof. Dr. Muhammad Zarlis NIP. 131 570 434
Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua,
Prof. Dr. Muhammad Zarlis NIP 131 570 434
iii
PERNYATAAN
PENGOLAHAN DATA KELUARAN DTMF (DUAL TONE MULTI FREQUENCY) DECODER UNTUK MENGENDALIKAN PERALATAN LISTRIK SKRIPSI
Penulis mengakui bahwa skripsi ini adalah hasil karya penulis sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Februari 2009
Gita Atika Fauzy 041401038
iv
PENGHARGAAN
Alhamdulillah wa syukrilah, puji syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan rahmat, ridho-Ny, iman dan Islam serta segala sesuatunya dalam hidup, sehingga penulis dapat menyelesaikan penyusunan Skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Universitas Sumatera Utara. Shalawat dan Salam penulis hadiahkan kepada Nabi Besar Muhammad SAW. Ucapan terima kasih yang sebesar-besarnya penulis sampaikan kepada Bapak Prof.Dr. Muhammad Zarlis sebagai Dosen Pembimbing I dan Bapak M. Umar Saleh T, ST. sebagai Dosen Pembimbing II atas bimbingan, saran, masukan kepada penulis untuk menyempurnakan kajian ini. Panduan ringkas dan padat dan profesional telah diberikan kepada penulis agar penulis dapat menyelesaikan tugas ini. Selanjutnya kepada para Dosen Penguji Bapak Ir. Arman Sani, MIT dan Bapak Syariol Sitorus, S.Si., MIT atas saran dan kritikan yang sangat berguna bagi Penulis. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Ilmu Komputer, Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syariol Sitorus, S.Si., MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Program Studi Ilmu Komputer FMIPA USU, pegawai di FMIPA USU. Seluruh proses pengerjaan Skripsi ini tidak akan dapat dilalui tanpa dukungan kedua Orang Tua dan Keluarga. Skripsi ini penulis persembahkan untuk Mama Hj.Elidar dan Papa, Ir. Fauzy R, yang telah memberikan segalanya dalam hidup, dan juga untuk kedua adik penulis yaitu Fadly dan Aya. Semoga Allah SWT akan membalasnya. Kepada Bang Aan dan teman-teman sekelas KomA atas kelapangan waktu yang diberikan kepada penulis untuk berbagi ilmu. Selanjutnya buat sahabat-sahabat terbaik, Cacha Simanjuntak, terimakasih atas motivasi dan perhatiannya, BigSto berserta para pengawalnya, Fosma kampunk ESQ 165, Generasi 8 SMUP Al-Azhar, serta kepada para ayah bunda yang penulis hormati layaknya orang tua sendiri. Terimakasih pula kepada semua pihak-pihak yang tidak dapat penulis sebutkan satu persatu, terima kasih atas ide, saran, dan kerjasama yang baik. Penulis menyadari bahwa laporan ini masih jauh dari kesempurnaan, karena kesempurnaan hanya milik Allah kekurangan adalah milik penulis. Oleh karena itu Penulis menerima saran dan kritik yang bersifat membangun demi kesempurnaan laporan ini. Semoga dapat bermanfaat bagi kita semuanya.
v
ABSTRAK
Maraknya penggunaan telepon dan handphone yang kini tidak lagi dianggap sebagai barang mewah mendasari dibuatnya skripsi ini. Kajian ini bertujuan untuk membangun suatu sistem yang berfungsi untuk memonitoring serta mengendalikan peralatan listrik yang terhubung dengan komputer dari jarak jauh dengan memanfaatkan tone pada telepon berbasis DTMF dan memonitoring dengan memanfaatkan jasa SMS. Sistem ini dibangun menggunakan perangkat lunak Borland Delphi 7.0 interfacing Paralel port. Tahapan yang penulis lakukan untuk melakukan proses pembentukan sistem tersebut meliputi tahapan analisis permasalahan dan kebutuhan perangkat lunak serta perangkat keras, perancangan aplikasi dan desain antar muka aplikasi, sehingga aplikasi yang terbentuk menjadi mudah dipergunakan dan memiliki fungsi yang optimal.
vi
PROCESSING OUTPUT OF DTMF (DUAL TONE MULTI FREQUENCY) DECODER TO CONTROL PERALATAN LISTRIK ABSTRACT
The increasing of telephone and hand phone usage isn’t as luxurious goods anymore. It provides the bases of this thesis. This study has a purpose to develop a system which is functioning to monitor and control the electricity equipment which is connected by the computer and can be controlled from long distance by using the tone of the phone based on DTMF and monitoring by using SMS service. This system was built by using Borland Delphi 7.0 interfacing with parallel port. The step that the writer does to make the system include the problem analysis process, software needs, application planning and design interface so that the application can be used and had an optimal function.
vii
DAFTAR ISI Halaman HALAMAN PERSETUJUAN PERNYATAAN PENGHARGAAN ABSTRAK ABSTRACT DAFTAR ISI DAFTAR TABEL DAFTAR GAMBAR Bab 1
Bab 2
PENDAHULUAN 1.1 Latar Belakang 1.2 Perumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan 1.5 Ruang Lingkup 1.6 Metodologi Penelitian 1.7 Sistematika Penulisan
ii iii iv v vi vii x ix
1 3 3 4 4 5 6
DASAR TEORI 2.1 Komunikasi Data 2.2 Sistem Pengendali 2.3 Sistem Monitoring 2.4 Teknologi Telepon 2.4.1 DTMF Decoder 2.4.2 MT8870 DTMF Receiver/Decoder
8 10 10 10 10 12
2.5 SMS (Short Message Service) Report 2.5.1 SMS Gateway Gammu 2.5.2 Oxygen SMS 2.6 Interfacing Parallel Port 2.6.1 Parallel Port 2.6.2 Alamat Parallel Port 2.6.3 Register-Register Port Parallel 2.6.4 Interfacing Parallel 2.6.4.1 Interfacing Murni 2.6.4.2 Interfacing dengan Komponen Bantuan 2.7 Pengujian perangkat Lunak 2.7.1 Pengujian Cacat 2.7.1.1 Pengujian Kotak Hitam 2.7.1.2 Pengujian Struktural 2.7.1.3 Pengujian Jalur 2.7.2 Pengujian Integrasi
14 15 17 17 17 22 22 23 23 24 25 25 26 26 27 27
viii
Bab 3
Bab 4
ANALISIS SISTEM 3.1 Blok Diagram Perangkat Keras 3.2 Rangkaian Power Supply Adaptor (PSA) 3.3 Rangkaian DTMF Dekoder 3.4 Rangkaian Driver Lampu 3.5 Analisis Sistem 3.5.1 Tujuan Sitem 3.5.2 Identifikasi Sistem 3.5.3 Kebutuhan Perangkat Lunak 3.5.4 Alur Kerja Sistem 3.6 Menu Pilihan 3.7 Proses Penyampaian Data DTMF Dekoder ke Paralel Port 3.8 Proses Penyampaian Data Lampu 3.9 Proses Pemilihan Data 3.9.1 Pendefinisian Data DTMF 3.9.2 Pendefinisian Nilai Status Lampu 3.9.2.1 Lampu 1 3.9.2.2 Lampu 2 3.10 Proses Penghidupan Lampu 3.10.1 Proses Menghidupkan Lampu 1 3.10.2 Proses Menghidupkan Lampu 2 3.11 Proses Pemadaman Lampu 3.11.1 Proses Pemadaman Lampu 1 3.11.2 Proses Pemadaman Lampu 2 3.12 Proses Pengiriman Pesan 3.13 Proses Pemeriksaan Data Masuk IMPLEMENTASI DAN UJI COBA SISTEM 4.1 Implementasi Perangkat Lunak sistem 4.2 Pengujian Data 4.3 Pengujian Perangkat Lunak Sistem 4.3.1 Halaman Menu Utama Aplikasi 4.3.2 Pengendalian Manual 4.3.3 Pengendalian Otomatis 4.3.4 Pengujian Setting 4.4 Pengujian Perangkat keras Sistem 4.4.1 Pengujian Penerimaan Data DTMF 4.4.2 Pengujian Penghidupan Lampu 4.4.3 Pengujian Pemadaman Lampu 4.4.4 Pengujian Penerimaan Laporan
Bab 5
28 29 30 32 33 33 33 33 34 36 36 38 38 39 41 42 42 43 45 46 47 48 50 50 51
53 54 55 56 56 58 60 63 63 64 65 65
KESIMPULAN DAN SARAN 5.1 Kesimpulan 5.2 Saran
67 68
ix
DAFTAR PUSTAKA LAMPIRAN A : Rincian Rangkaian LAMPIRAN B : Perhitungan Perbandingan Penggunaan Sistem Kendali Jarak Jauh, Photocell dan Kendali Manual. LAMPIRAN C : Flowchart Sistem LAMPIRAN D : Listing Program
69 70 72 75 81
x
DAFTAR TABEL
Halaman Tabel 2.1 Tabel 2.2 Tabel 2.3 Tabel 2.4 Tabel 3.1 Tabel 3.2 Tabel 3.3 Tabel 3.4 Tabel 3.5 Tabel 3.6 Tabel 3.7 Tabel 3.8 Tabel 3.9 Tabel 3.10 Tabel 3.11 Tabel 3.12 Tabel 4.1 Tabel 4.2 Tabel 4.3 Tabel 4.4 Tabel 4.5
Daftar Frekuensi dari Tombol Daftar Keluaran Hasil Dekode Sinyal IC MT8870 Daftar Pin Parallel Port Alamat Parallel Port PC Menu pada Tombol Rangkaian Output DTMF Dekoder Port Status dengan Input DTMF = 1 Port Status Rangkaian Proses Operasi Logika AND pada Register Status Ilustrasi Umum Proses Pemadaman Lampu pada Register Data Ilustrasi Proses Penghidupan Lampu pada Register Data Proses Pemadaman Lampu Gambaran Proses Ketika Lampu 2 Menyala Gambaran Nilai Saat Memadamkan Lampu Ilustrasi Keadaan Register Data Saat Kedua Lampu Menyala Ilustrasi Proses Operasi AND pada Register Data Konversi Nilai pada Sistem Hasil Pengujian Kendali Manual Hasil Pengujian Kendali Otomatis/Jarak Jauh Hasil pengujian Ubah nomor Tujuan Perhitungan pada LED
11 13 20 22 36 37 38 39 40 43 45 47 49 49 49 50 54 57 59 62 64
xi
DAFTAR GAMBAR
Halaman Gambar 1.1 Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6 Gambar 3.7 Gambar 3.8 Gambar 3.9 Gambar 3.10 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12
Diagram Alir Prosedur Penelitian Gambaran Kerja Sistem Pena-pena MT8870 Port Paralel DB 25 Register pada Port Paralel UserPort.sys Pengujian Kotak Hitam Blok Diagram Rangkaian Power Supply (PSA) Rangkaian DTMF Dekoder Rangkaian Driver Lampu Diagram Alur Sistem Default Port Status Hubungan antara DTMF, DB-25 dan Handphone Diagram Alur Proses Pendefinisian nilai DTMF Alur Proses Penghidupan Lampu Alur Proses Pemadaman Lampu Halaman Utama Menu Halaman Kendali Manual Keterangan Status Koneksi Handphone-Komputer Halaman Edit Nomor Tujuan Klarifikasi Nomor Tujuan Pemberitahuan Keberhasilan Nomor Telah Berubah Pemberitahuan Kesalahan LED Pembacaan DTMF Lampu Hidup Memadamkan Lampu Laporan Status
6 9 13 20 23 24 26 28 30 31 32 35 37 39 41 44 48 56 57 58 60 61 61 61 62 63 64 65 65
1
BAB 1
PENDAHULUAN
1.1 Latar Belakang Perkembangan teknologi komunikasi dan komputer yang semakin hari semakin bertambah pesat mendorong manusia untuk melakukan aktifitasnya dengan cara-cara yang termudah, praktis, murah dan efisien. Salah satu teknologi hasil penggabungan kedua teknologi komunikasi dan komputer tersebut yaitu dengan adanya telepon/handphone yang dimiliki oleh hampir seluruh masyarakat. Penggunaan handphone sebagai media komunikasi sudah umum dijumpai dalam masyarakat. Terlebih, kini handphone tidak lagi dianggap sebagai barang mewah di kalangan masyarakat. Selain sebagai media komunikasi, teknologi yang berada dalam ruang lingkup teknik telekomunikasi ini dapat pula diaplikasikan sebagai suatu media yang dapat mempermudah aktivitas sehari-hari. Salah satunya adalah sebagai pengendali jarak jauh pemakaian listrik di rumah terhadap perangkat-perangkat elektronik. Sistem pengendalian merupakan salah satu contoh pemaksimalan kegunaan teknologi komunikasi di bidang teknologi dan industri. Contoh nyatanya adalah ketika seseorang hendak berpergian jauh meninggalkan rumah dalam keadaan kosong. Tentu saja untuk menjaga keamanan rumah, orang tersebut harus terus membiarkan lampu rumah dalam keadaan menyala. Hal tersebut merupakan suatu pemborosan. Contoh lain adalah ketika seseorang sedang dalam perjalanan, untuk memastikan apakah orang tersebut benar telah mematikan ataupun menghidupkan perangkat elektronik lain ketika menginggalkan rumah, itu berarti orang yang bersangkutan harus memutar haluan, kembali ke rumahnya untuk memastikan apakah perangkat elektroniknya hidup atau padam. Jika harus kembali ke rumah, pastilah merepotkan dan mengakibatkan kerugian dalam banyak hal, terlebih-lebih waktu.
2
Penggunaan lampu dengan menggunakan photocell saat ini mulai dijadikan alternatif
pilihan
untuk
mengatasi
permasalahan
tersebut.
Photocell
dapat
dianalogikan sebagai sebuah saklar terhadap sebuah lampu. Jika saklar dioperasikan secara manual, maka photocell sendiri beroperasi menggunakan sinar matahari sebagai takarannya. Ketika sinar matahari redup, maka secara otomatis lampu akan hidup, dan ketika sinar matahari kembali cerah, maka lampu akan secara otomatis padam. Penggunaan photocell saat ini sudah sering dijumpai, terutama pada lampu penerangan jalan raya. Biaya yang murah dan penggunaannya yang efisien dan praktis menjadikan photocell mulai digemari bukan hanya pada instansi besar, namun juga digunakan secara indivudual. Namun photocell ini tidak memungkinkan user untuk mengontrol lampu, karena photocell hanya lah sebuah alat yang menggunakan komponen LDR (Light Dependent Resistor) yang merupakan resistor yang bekerja berdasarkan intensitas cahaya, yang berarti sistem kerja photocell diatur oleh cahaya. Sebagai alternatif pengganti photocell, dapat digunakan cara lain, yaitu dengan pemanfaatan sinyal DTMF (Dual Tone Multi Frequency) yang terdapat pada telepon. Telepon maupun handphone saat ini jelas lebih memasyarakat penggunaannya dibandingkan dengan solar cell, handphone yang bayak digunakan saat ini menggunakan sistem yang dikenal secara umum disebut dengan DTMF. DTMF merupakan sinyal informasi berupa nada pada frekuensi tertentu yang dikirim oleh satu handphone ke handphone lain. Tone yang dibangkitkan dapat dikodekan menggunakan DTMF decoder yang menghasilkan data keluaran 4 bit. Data keluaran DTMF Decoder dapat dimanfaatkan sebagai sarana untuk mengendalikan peralatan listrik. Dengan kata lain, dapat digunakan sebagai solusi alternatif untuk mengatasi permasalahan seperti yang telah dicontohkan sebelumnya. Walaupun penggunaannya dianggap tidak seefisien penggunaan lampu dengan energi matahari, namun penggunaan energi matahari tidak memungkinkan pengguna untuk mengontrol hidup matinya lampu dari jarak jauh kapan saja, dan dimana saja. Oleh karena itu, melalui keberadaan DTMF decoder, handphone dapat dimanfaatkan sebagai sarana pengendali peralatan listrik dari jarak jauh.
3
1.2 Perumusan Masalah Berdasarkan latar belakang permasalahan, maka dapat dibuat rumusan masalah yaitu bagaimana mengendalikan perangkat elektronik dari jarak jauh dengan memanfaatkan data hasil keluaran DTMF (Dual Tone Multi Frequency) dekoder serta mengetahui status perangkat tersebut melalui SMS (Short Message Service) dari jarak jauh melalui handphone.
1.3. Pembatasan Masalah Dalam pengembangan dan pembuatan sistem, akan ditemui berbagai kemungkinan permasalahan. Untuk menjaga agar pembahasan tidak menyimpang dari tujuan skripsi dan lebih terarah, diberikan batasan pembuatan sistem sebagai berikut: a. Diasumsikan pengguna sistem telah memiliki buku pedoman pilihan menu sistem beserta pedoman penggunaan sistem. b. Input sistem berupa nada yang dihasilkan dari menekanan tombol menu melalui tombol handphone pengguna. c. Sistem reply/ report disampaikan melalui peran singkat/ sms. d. Reply atau report status ditujukan hanya kepada satu nomor tujuan tertentu yang telah ditentukan oleh pengguna sistem. e. Sms hanya sebagai pesan status perangkat. f. Perangkat elektronik yang digunakan sebagai contoh peraga adalah 2 (dua) buah bola lampu. g. Tidak menggunakan suara operator sebagai guide dalam pemakaian. h. Pembahasan ditekankan pada pengolahan data hasil keluaran DTMF decoder. i. Tidak membahas mengenai bagaimana cara DTMF dekoder bekerja, bagaimana MT8870 menghasilkan data keluaran serta rangkaian yang mendukungnya j. Hanya menggunakan dua operator logika, yaitu AND dan OR dalam proses menghidupkan dan memadamkan lampu k. Tidak mencakup antisipasi valid tidaknya nomor telepon yang dimasukkan.
4
1.4.Tujuan Secara umum penelitian ini memiliki tujuan untuk memperoleh suatu sistem yang dapat memudahkan pengguna untuk memonitoring status perangkat elektronik serta mengendalikan on-off peralatan tersebut menggunakan telepon seluler melalui fasilitas SMS.
1.5 Ruang Lingkup Sesuai dengan rumusan masalah, maka ruang lingkup permasalahan adalah sebagai berikut: 1. Sistem yang dibangun disimulasikan dengan 2 (dua) buah bola lampu, dan dapat dikembangkan sesuai dengan kebutuhan. 2. Fitur utama: 1. Pengontrolan perangkat elektronik, meliputi: a. Menghidupkan lampu b. Memadamkan lampu 2. Penyampaian status setelah selesai melakukan perintah hidup-matikan lampu kepada pemberi perintah/ penelpon. 3. Perintah mengirimkan status kepada user akhir.
1.6 Metode Penelitian
5
Penelitian yang akan dilakukan nantinya direncanakan ke dalam langkah-langkah secara sistematis. Penelitian ini dilakukan dengan beberapa tahapan, yaitu: a. Studi Literatur. Penulisan ini dimulai dengan studi kepustakaan yaitu mengumpulkan bahan-bahan referensi baik dari buku, artikel, paper, jurnal, makalah, maupun situs internet
mengenai penggunaan DTMF Dekoder,
interfacing parallel port dan konsep matematis yang mendasarinya serta pemrograman untuk pambuatan aplikasinya, dan beberapa referensi lainnya untuk menunjang pencapaian tujuan tugas akhir. b. Analisis masalah. Pada tahap ini akan dilakukan analisis permasalahan dan kebutuhan sistem serta pemodelannya. c. Perancangan Sistem. Pada tahap ini dilakukan perancangan arsitektur perangkat
keras
dilanjutkan
dengan
perancangan
perangkat
lunak,
perancangan interface. d. Pengkodean. Pada tahap ini sistem yang telah dirancang kemudian diimplementasikan kedalam bahasa pemrograman. e. Pengujian. Pada tahap ini dilakukan pengujian program dan mencari kesalahan pada program hingga program itu dapat berjalan seperti yang diharapkan. f. Penyusunan laporan dan kesimpulan akhir. Menyusun laporan hasil analisis dan perancangan ke dalam format penulisan tugas akhir dengan disertai kesimpulan akhir.
Diagram alir proses penelitian dapat dilihat pada Gambar 1.1
6
MULAI
Studi Literatur
Analisis masalah
Perancangan sistem
Pengkodean
Implementasi dan pengujian
Hasil OK ?
YA
TIDAK
SELESAI
Gambar 1.1 Diagram alir prosedur penelitian
1.7 Sistematika Penulisan Dalam penulisan ini, penulis membuat suatu sistematika yang bertujuan untuk menggambarkan secara ringkas bab-bab yang mencakup hal-hal sebagai berikut:
7
BAB I
PENDAHULUAN Bab pendahuluan ini berisikan mengenai latar belakang penulisan, identifikasi masalah, pembatasan masalah tentang apa yang akan diberikan dalam penulisan, maksud dan tujuan dari penulisan, metode penelitian apa yang digunakan serta sistematika penulisan.
BAB II
DASAR TEORI Bab ini menjelaskan tentang tinjauan teoritis yang meliputi uraian singkat mengenai Sms gateway, MYSQL dan Interfacing port parallel. Serta pengertian DTMF Decoder dan komunikasi data.
BAB III
ANALISIS SISTEM Bab III memaparkan mengenai analisis pengolahan yang meliputi analisis pengolahan data yang dihasilkan oleh DTMF dekoder sehingga dapat berfungsi sesuai dengan tujuannya, yaitu memonitoring lampu.
BAB IV
IMPLEMENTASI DAN PENGUJIAN SISTEM Berisi batasan implementasi perangkat lunak serta berisi tentang pengujian perangkat lunak dengan menggunakan metode black-box..
.
BAB V
PENUTUP Berisi kesimpulan dari Skripsi dan saran-saran untuk pengembangan perangkat lunak lebih lanjut.
8
BAB 2 DASAR TEORI
2.1
Komunikasi Data
Komunikasi
dapat
diartikan
sebagai
cara
untuk
menyampaikan
ataupun
menyebarluaskan informasi, data, pikiran dalam berbagai bentuk. Komunikasi data berhubungan erat dengan pengiriman data menggunakan sistem transmisi elektronik dari satu komputer ke komputer lain, ataupun dari satu terminal ke terminal lain. Dalam mengkomunikasikan data dari satu lokasi ke lokasi lain, diperlukan 3 (tiga) elemen utama sistem, yaitu sumber data, media transmisi dan penerima. Jika salah satu elemen tidak tersedia, maka proses komunikasi data tidak dapat dilakukan. Berikut ini merupakan alasan mengapa komunikasi data sangat dibutuhkan: a. Perbedaan lokasi antara lokasi transaksi dengan lokasi pengolahan data, sehingga data perlu dikirimkan ke lokasi yang membutuhkan informasi dari data tersebut b. Lebih efisien dari segi waktu dan biaya jika mengirim data melalui jalur komunikasi komputerisasi c. Memungkinkan pengembangan sistem komputer secara relatif lebih mudah dan menyebabkan sistem menjadi lebih fleksibel d. Terjadinya distributed pocessing pada jaringan, sehingga dapat mencegah ketergantungan pada sumber komunikasi atau komputer pusat Pada sistem yang akan dibangun, transmisi data terbagi atas dua, yaitu proses penerimaan data berupa penyampaian perintah ke perangkat yang dikontrol dan yang kedua adalah pengiriman data yang berupa laporan dari perangkat yang dikontrol kepada user. Gambaran kerja sistem dijelaskan pada Gambar 2.1.
9
Gambar 2.1 Gambaran Kerja Sistem Gambar 2.1 menjelaskan bahwa dalam proses pengiriman perintah, handphone pengirim melakukan panggilan kepada handphone penerima. Setelah tersambung, pengguna menekan tombol menu yang dikehendakinya. Tombol yang ditekan pengguna menghasilkan nada yang memiliki frekuensi tertentu. Frekuensi tersebutlah yang kemudian diteruskan handphone kepada DTMF decoder. Oleh DTMF decoder, frekuensi tersebut dikodekan menjadi data biner 4 (empat) bit. Data yang dihasilkan diteruskan ke PC/Laptop melalui interfacing port parallel. Data tersebut masuk sebagai input parallel port untuk selanjutnya diproses dalam program pada sistem. Data hasil proses ditransmisikan kembali keluar melewati port paralel sebagai output menuju perangkat yang akan dikendalikan. Data biner keluaran dari paralel port tersebut berisikan dua kemungkinan, yakni hidup atau mati. Sedangkan untuk proses pengiriman data balasan ke pemberi perintah, dilakukan pengambilan data dari port paralel, dan kemudian data tersebut diproses di dalam pemrograman untuk selanjutnya dikirimkan dengan sms service ke handphone tujuan.
2.2 Sistem Pengendali
10
Sistem pengendali atau control system adalah interkoneksi komponen-komponen yang dapat
mengatur
fungsi
kerja
sistem
lain
(http://en.wikipedia.org/
wiki/Control_system).
2.3 Sistem Monitoring Sistem monitoring dapat diartikan sebagai suatu sistem yang berfungsi untuk mengawasi
kinerja
suatu
sistem
lain.
(http://www.allwords.com/word-
performance+monitoring+system.html).
2.4 Teknologi Telepon Kata telepon berasal dari bahasa Yunani yaitu “Tele” yang berarti Jauh dan “Phone” yang berarti suara. Dalam pengertian masa kini telepon (telephony) meliputi konversi dari sinyal suara menjadi sinyal-sinyal listrik frekuensi audio yang kemudian dipancarkan melalui suatu sistem transmisi listrik, dan akhirnya dikonversikan kembali menjadi sinyal-sinyal tekanan suara pada ujung penerima. Bila dilihat dari sistem signallingnya, maka pesawat telepon terdiri atas : a. Pesawat telepon jenis pulsa dekade (decadic – pulse) b. Pesawat telepon jenis DTMF (dual tone multi frequency)
2.4.1 DTMF Decoder DTMF merupakan metode pensinyalan yang digunakan untuk memutar nomor telepon pilihan oleh sebagian besar telepon. (http://www.accesscomms.com.au/ reference/dtmf.htm)
11
DTMF decoder berfungsi untuk mengubah sinyal DTMF ke data biner sehingga dapat digunakan oleh microcontroller ataupun rangkaian-rangkaian digital untuk diolah lebih lanjut. Untuk mengawali suatu panggilan telepon, perlu dilakukan penekanan tomboltombol angka sesuai dengan nomor tujuan yang diinginkan. Setiap penekanan akan membangkitkan nada. Nada-nada tersebutlah yang dikenal dengan sebutan DTMF. DTMF decoder adalah sebuah alat yang menterjemahkan sinyal DTMF. Sehingga dengan menggunakan DTMF decoder ini dapat diketahui nomor yang dipilih ataupun ditekan penelepon. Dalam sistem yang akan dibangun, setiap nomor yang dipilih penelepon berisikan instruksi yang berbeda-beda terhadap perangkat-perangkat elektronik yang terhubung. Tombol tersebut bersifat sama seperti menu dalam sistem. Tiap tombol yang ditekan akan membangkitkan dua nada (tone) yang berfrekuensi tinggi dan rendah. Nada yang dihasilkan berbeda-beda di tiap tombol, sehingga begitu juga dengan frekuensinya. Ketika dilakukan sambungan telepon dan telepon telah tersambung, kedua sinyal tersebut dikirimkan ke penerima. Kedua sinyal tersebut kemudian diuraikan (decoding) menjadi digit biner 4bit. Dengan cara ini lah penerima dapat mendeteksi nomor-nomor yang ditekan oleh penelepon. Pengkodean terhadap tombol tersebut dapat dilakukan berdasarkan Tabel 2.1.
Tabel 2.1 Daftar Frekuensi dari Tombol Frekwensi Tinggi (High Frequencies)
Frekwensi Rendah
(Low Frequencies)
1209 Hz
1336 Hz
1477 Hz
1633 Hz
679 Hz
1
2
3
A
770 Hz
4
5
6
B
852 Hz
7
8
9
C
941 Hz
*
0
#
D
12
Dari Tabel 2.1 diatas dapat di baca bahwa setiap penekanan tombol di pesawat telepon akan membangkitkan dua nada (tone) yaitu nada berfrekwensi tinggi dan satu nada berfrekwensi rendah. Kedua sinyal tersebut dikirimkan ke telepon seluler penerima. Dengan cara melakukan penguraian (decoding) terhadap kedua sinyal tadi, maka penerima dapat mengetahui tombol-tombol apa saja yang ditekan oleh lawan bicaranya. Sifat inilah yang akan dimanfaatkan untuk membangun sistem pengendali perangkat elektronik jarak jauh.
2.4.2
MT8870 DTMF Receiver/Decoder
Dalam Skripsi ini DTMF yang digunakan adalah seri MT8870. MT8870 merupakan DTMF penerima yang menggunakan tehnik perhitungan digital untuk mendeteksi dan mengkodekan 16 pasang nada DTMF menjadi sebuah output kode 4 (empat) bit. MT8870 memiliki beberapa fitur, antara lain : 1. Bekerja pada tegangan 2.5 v ~5.5 v 2. Komponen tambahan yang dibutuhkan sedikit 3. Kinerja yang baik Pena-pena IC MT8870 dapat dilihat pada Gambar 2.2 dan kaluaran hasil dekode sinyal IC MT 8870 dapat dilihat pada Tabel 2.2.
13
Gambar 2.2 Pena-Pena MT8870 (http://pdf1.alldatasheet.com/datasheet-pdf/view/77085/MITEL/MT8870.html)
Tabel 2.2 Daftar Keluaran Hasil Dekode sinyal IC MT8770 Digit
TOE NH ESt
Q4
Q3
Q2
Q1
ANY L
X
H
Z
Z
Z
Z
1
H
X
H
0
0
0
1
2
H
X
H
0
0
1
0
3
H
X
H
0
0
1
1
4
H
X
H
0
1
0
0
5
H
X
H
0
1
0
1
6
H
X
H
0
1
1
0
7
H
X
H
0
1
1
1
8
H
X
H
1
0
0
0
9
H
X
H
1
0
0
1
0
H
X
H
1
0
1
0
*
H
X
H
1
0
1
1
#
H
X
H
1
1
0
0
A
H
L
H
1
1
0
1
B
H
L
H
1
1
1
0
C
H
L
H
1
1
1
1
D
H
L
H
0
0
0
0
14
Tabel 2.2 (lanjutan) Digit
TOE NH ESt
Q4
Q3
Q2
Q1
A
H
H
L
B
H
H
L
Output Tidak
C
H
H
L
Terdeteksi
D
H
H
L
Keterangan: H = Logika High L = Logika Low X = tidak diperhatikan Z = Impedansi Tinggi 1 = Logika 1 standar TTL 0 = Logika 0 Standar TTL
2.5 SMS (Short message Service) Report. Sms (Short Message Service) atau layanan pesan singkat mempunyai sejarah tersendiri sebagai media layanan yang meledak abad ini. Untuk mempermudah penyebutannya, selanjutnya kita akan menyebutnya sebagai sms saja. Awalnya sms berfungsi untuk memberikan layanan pengiriman pesan teks singkat antar perangkat mobile phone (telepon genggam/ telepon seluler/ telepon bergerak). Sms sebetulnya hanya layanan tambahan terhadap layanan utama dari telepon seluler, yakni layanan voice dalam sistem komunikasi GSM (Global system for Mobile Communications). Sms gateway adalah penghubung antara program aplikasi yang akan dibuat dengan jaringan GSM. Hal ini berfungsi untuk pengiriman sms report kepada user. Fungsi-fungsi pendukung sms Gateway yang biasanya digunakan, sudah disediakan oleh unit tools yang digunakan.
15
Sms saat ini tidak hanya berfungsi sebagai media penyampaian pesan saja, namun juga mulai melebarkan kemampuannya dengan kemampuan interaksinya untuk melakukan berbagai fungsi lain. Secara singkat, selain sebagai media layanan penyampaian pesan singkat, sms secara umum telah dikembangkan untuk: a. Sistem Pemilihan (polling) dan Jajak Pendapat (Voting) Jajak pendapat yang diadakan oleh suatu media atau organisasi terhadap suatu permasalahan tertentu dapat dilakukan menggunakan aplikasi sms b. Program Affinity Merupakan jenis layanan yang pada awalnya merupakan kerja sama dari operator network dengan perusahaan-perusahaan yang memiliki pelanggan cukup besar, seperti perusahaan TV, radio, perusahaan penerbangan atau bank. Aplikasi sms dapat dikembangkan untuk memberikan pelayanan kepada pelanggan melalui pengiriman pesan c. Mobile Banking. Merupakan salah satu jenis program affinity untuk layanan perusahaan perbankan. Layanan ini memberikan kemudahan kepada pelanggan nasabah sebuah bank dalam bertransakasi melalui rekeningnya d. Remote monitoring Layanan ini dibangun untuk memantau kinerja suatu perangkat atau mesin dalam suatu perusahaan, seperti mesin dalam suatu pabrik, seperti mesin penggiling, mesin uap, dan lain-lain. Layanan ini dibangun dengan aplikasi yang dapat melaporkan keadaan suatu alat, maka ketika diinginkan saat itu juga aplikasi akan mengirimkan pesan pemberitahuan melalui sms ke telepon seluler administrator. Layanan ini akan memudahkan pekerja untuk memantau kinerja suatu peralatan tanpa harus selalu menunggu di depan alat yang di pantau e. Dan banyak lagi pengembangan lainnya
2.5.1
Sms Gateway Gammu
Sms gateway merupakan gerbang pertukaran informasi dengan menggunakan sms. Banyak tools sms gateway yang beredar, salah satunya adalah Gammu. Gammu
16
bukanlah sebuah aplikasi, melainkan sebagai salah satu modul sms gateway yang dapat digabungkan dengan bahasa pemrograman apa saja. Berikut ini beberapa kelebihan dari GAMMU: a. Dapat dijalankan baik di Operating System (OS) Windows maupun LINUX based. b. Mendukung banyak perangkat yang cocok/sesuai, baik itu HP maupun GSM Modem c. Menggunakan mysql database, yang tentunya juga open-source d. Interface untuk aplikasi, bisa menggunakan client-server maupun web-based (PHP,ASP,ASP.Net maupun J2EE) e. Kabel data yang digunakan baik USB maupun Serial dapat digunakan Arsitektur yang akan digunakan dalam implementasi aplikasi yang akan dibuat adalah arsitektur stand alone. Arsitektur ini membutuhkan empat hardware yaitu dua buah handphone, sebuah kabel data dan sebuah PC ataupun laptop. a. PC/Laptop PC/Laptop disini digunakan untuk meletakkan aplikasi sms gateway dan juga sebagai sms centre b. Handphone-1 (Sender) Handphone pertama digunakan sebagai pemberi perintah berupa panggilan ke handphone-2 atau yang disebut dengan receiver c. Handphone-2 (Receiver) Digunakan sebagai pengirim sms report ke handphone-1 d. Kabel data Handphone dihubungkan ke PC secara fixed line (wired), dengan menggunakan kabel data Pada perencanaan program, sms gateway gammu akan digunakan sebagai tools sms gateway. Namun dalam pelaksanaannya, ditemukan banyak kendala dalam penggunaannya. Oleh karena itu, digunakan tools lain yang dianggap lebih stabil penggunaannya dan juga lebih sederhana, yaitu OxygenSMS.
17
2.5.2 OxygenSMS TOxygenSMS adalah komponen ShareWare yang berfungsi lebih spesifik lagi, yaitu menghubungkan perangkat komputer dan perangkat GSM Nokia tm. shareWare berarti komponen itu gratis untuk dicoba, tapi wajib membayar jika hendak digunakan secara komersial, dapat berfungsi penuh dan tambahan fitur lainnya, tapi ada beberapa bagian properti yang tidak dapat dirubah. TOxygenSMS penggunaanya lebih mudah dibandingkan komponen yang lain. TOxygenSMS lebih mudah diprogram untuk manajemen sms, sayangnya hanya mendukung handset Nokia saja. TOxygenSMS tidak membentuk database sendiri, berbeda dengan gammu yang membentuk database sendiri sepaket dengan Gammu. Oleh karena itu, aplikasi yang akan dibangun tidak lagi menggunakan database MySQL seperti perencanaan awal, sehingga lebih sedikit memakan memori komputer.
2.6 Interfacing Parallel Port Interfacing merupakan suatu cara kita menghubungkan komputer dengan piranti lain di luar komputer. Komputer dimanfaatkan sebagai pusat kendali untuk mengendalikan piranti diluarnya. Misal: mengendalikan motor, led, lampu, dan komputer juga dapat dimanfaatkan sebagai masukan dari sensor-sensor, saklar dan piranti input lain. ( Widodo, 2007, hal: 45)
2.6.1 Parallel Port Parallel port adalah antarmuka suatu dari sistem komputer yang berfungsi mentransfer data secara paralel. Parallel port biasanya digunakan untuk menghubungkan komputer dengan printer. (http://en.wikipedia.org/wiki/Parallel_port)
18
Parallel adalah sistem pengiriman data digital, dimana beberapa bit data dikirim sekaligus pada satu waktu dengan menggunakan jalur terpisah. Jadi port paralel adalah salah satu jenis soket pada personal komputer untuk berkomunikasi dengan peralatan luar untuk mengirim data digital seperti printer model lama. Oleh karena itu parallel port sering juga disebut printer port. Perusahaan yang memperkenalkan port ini adalah Centronic, maka port ini juga disebut dengan Centronics port. Kesederhanaan port ini dari sisi pemrograman dan antarmuka dengan hardware membuat port ini sering digunakan untuk percobaan-percobaan sederhana dalam perancangan peralatan elektronika. Komputer XT/AT buatan IBM atau yang kompatibel pada umumnya menggunakan dua jenis port untuk komunikasi antara komputer dengan dunia luar, port tersebut adalah port paralel dan port serial. Di katakan port paralel karena data yang dikirim atau diterima pada port tersebut dilakukan dengan sistem paralel (serentak), sedangkan pada port serial data dikirim maupun diterima dengan sistem serial (bergantian). Kedua sistem tersebut memiliki kekurangan dan kelebihan masingmasing. Pada port paralel, data yang ditransmisikan memiliki kecepatan yang tinggi, namun dibutuhkan satu kabel per bitnya, sehingga transmisi data menjadi mahal. Sedangkan pada sistem serial data di transmisikan secara bergantian, sehingga lebih lambat dari sistem paralel. Namun biaya menjadi lebih murah karena hanya membutuhkan satu kabel untuk transmisi datanya. Port Parallel ini terdiri dari 3(tiga) jalur, yaitu: a. Jalur Kontrol b. 5 Jalur Status c. 8 Jalur Data Paralel port, distandarisasi oleh standart IEEE 1284 pada tahun 1994. standart ini membedakan 5(lima) model operasi sebagai berikut: 1. Compatible mode 2. Nibble mode 3. Byte mode 4. EPP mode
19
5. Ecp mode Tujuan standarisasi ini adalah untuk mendisain driver dan perlatan yang baru sehingga kompatibel dengan peralatan lainnya dan standard parallel port sebelumnya (SPP) yang diluncurkan pada tahun 1981. Mode Kompatibel (Compatible mode), Nibble, dan Byte digunakan sebagai standard perangkat keras yang tersedia di port parallel original. Sedangkan untuk EPP dan ECP membutuhkan tambahan hardware sehingga mampu bekerja dengan kecepatan tinggi. Compatible mode hanya dapat mengirim data dari komputer yang mempunyai kecepatan berkisar antara 80kbyte per detik. Agar komputer dapat menerima suatu data, nibble mode atau byte mode harus diterapkan. Nibble mode dapat menerima data sepanjang 1(satu) nibble (4bit), sementara Byte mode dapat menerima data sepanjang 1byte (8bit). Sesuai dengan standard IEEE 1284 ada tiga jenis parallel port yang bisa digunakan: 1
1284 Tipe A adalah konektor DB-25 yang banyak dijumpai pada komputerkomputer saat ini
2
1284 Tipe B adalah konektor Centronics 34 Pin yang banyak dijumpai pada printer
3
1284 Tipe C adalah konektor 36 Pin yang mirip dengan Centronics namun lebih kecil. Konektor ini diklaim memiliki pengunci (Latch) jenis klip (Clip), sifat elektrik yang lebih baik dan mudah dirakit. Juga mengandung pin tambahan yang dapat digunakan untuk mendeteksi apakah piranti yang terpasang memiliki daya atau tidak I/O jenis paralel memanfaatkan LPT port/ printer port, secara fisik berupa
DB25-female/betina. Melalui LPT port, dapat dikontrol 12 output dan 5 (lima) input. Gambar 2.3 adalah gambar konektor port paralel DB-25 yang banyak digunakan pada komputer.
20
Gambar 2.3. Port Paralel DB 25
Keterangan gambar: 1. Secara umum LPT port terbagi menjadi tiga saluran: a. Saluran Data: pin 2 sampai pin 9. Bersifat sebagai output b. Saluran Status: pin 15, 13, 12, 10 dan 11. Bersifat sebagai input c. Saluran Control/kendali: pin 1, 14, 16 dan 17 2. Pin nomor 18 sampai dengan 25 terhubung ke ground (body) 3. Pin 1, 11, 14 dan 17 bersifat aktif rendah Secara umum LPT port terbagi atas tiga saluran. Untuk melakukan interfacing, maka terlebih dahulu harus diketahui alamat dari ketiga saluran tersebut. Masingmasing pin dari parallel port mempunyai fungsi seperti yang diperlihatkan pada Tabel 2.3. Tabel 2.3 Daftar pin parallel port Nomor Pin
Sinyal SPP
Arah
Register
Sifat
(DB25) 1
nStrobe
In/out
PC0
Inverting
2
Data 0
Out
Data
Normal
3
Data 1
Out
Data
Normal
4
Data 2
Out
Data
Normal
5
Data 3
Out
Data
Normal
6
Data 4
Out
Data
Normal
7
Data 5
Out
Data
Normal
8
Data 6
Out
Data
Normal
21
Tabel 2.3 (lanjutan) Nomor Pin
Sinyal SPP
Arah
Register
Sifat
(DB25) 9
Data 7
Out
Data
Normal
10
ACK
In
Data
Normal
11
nBusy
In
PS7
Inverting
12
Paper-out/
In
PS5
Normal
paper-end 13
Select
In
PS4
Normal
14
nAuto-
In/out
PC1
Inverting
linefeed 15
Error
In
PS3
Normal
16
Initialize /
In/out
PC2
Normal
In/out
PC3
Inverting
Reset 17
nSelect-in / select printer
18 - 25
Ground
Gnd
Tabel 2.3 diatas menggunakan huruf ‘n” di depan nama sinyal untuk menyatakan bahwa sinyal tersebut bersifat aktif rendah (active low). Semua keluaran pada data port berlogika sebenarnya yaitu menuliskan logika 1(satu) ke salah satu bit pada data Port menyebabkan logika 1(satu) pada bit yang bersangkutan. Namun demikian, keluaran–keluaran /SELECT_IN, /AUTO FEED, dan /STROBE pada control port berlogika inversi (kebalikan). Artinya, penulisan logika 1(satu) ke salah satu bit pada control port menyebabkan logika 0(nol) pada bit yang bersangkutan. Untuk bit–bit yang menggunakan logika inversi, hal ini harus diperhatikan agar tidak mengacaukan maksudnya. Untuk itu, bit yang akan dikirimkan tersebut dapat dibalik dengan cara menggunakan fungsi EX–OR (Exclusive OR) sebelum operasi penulisan.
22
2.6.2
Alamat Parallel Port
Untuk dapat menggunakan port parallel, harus terlebih dahulu diketahui alamatnya. BIOS yang akan mengatur pengalamatannya. Alamat basis (base address) untuk LPT1 adalah 888 (378h) dan LPT2 biasanya 632 (278h). LPT1 ditempatkan pada alamat dasar 378h, sedangkan LPT2 pada alamat 278h. 378h dan 278h adalah alamat yang selalu digunakan untuk parallel port. (Iswanto, 2008, hal:35) Setelah diketahui alamat dari port parallel, maka untuk kemudian dapat diketahui alamat dari data port, status port dan port control. Alamat data port merupakan alamat dari port parallel tersebut, dengan kata lain, alamat dari port parallel sama dengan alamat data port. Untuk alamat dari status port merupakan penaikan 1 (satu) angka dari data port, dan untuk control port beralamatkan hasil penaikan satu angka dari status port, ataupun penaikan 2 (dua) angka dari data port. (Iswanto, 2008 hal 35). Gambaran lebih jelas mengenai pengalamatan port diperlihatkan pada Tabel 2.4.
Tabel 2.4 Alamat parallel port PC
2.6.3
Nama port
Alamat register
LPT1 Data
378h/888
LPT1 Status
379h/889
LPT1 Control
37Ah/890
Register-Register Port Paralel
Ketiga port pada port paralel, yaitu port data, port status, dan port kontrol, memiliki register perangkat lunak yang masing-masing berukuran 8 bit. Parallel port memiliki 5 pin masukan dan 8 pin keluaran. Input data menggunakan saluran Status port parallel, dan data keluaran dari parallel port disalurkan melalui saluran data. Susunan bit-bit pada register untuk masing-masing port dapat dilihat pada Gambar 2.4.
23
Port Data (alamat 0x378):
D7
D6
D5
D4
D3
D2
D1
D0
Data
Data
Data
Data
Data
Data
Data
Data
7
6
5
4
3
2
1
0
Port Status (alamat 0x379):
~S7
S6
S5
S4
S3
-
-
-
~Busy
Ack
PE
Select
Error
-
-
-
Port Kontrol (alamat 0x37A):
-
-
-
-
~C3
C2
~C1
~C0
-
-
-
-
~Select
Init
~AutoFeed
~Strobe
in
Gambar 2.4 Register pada Port Paralel
Keterangan : Tanda ~ di depan nama sinyal atau bit berarti bahwa sinyal atau bit yang bersangkutan bersifat aktif rendah
2.6.4
Interfacing Parallel
Interfacing parallel dengan perangkat lunak yang digunakan dapat dibagi menjadi dua jenis, yaitu interfacing murni dan interfacing dengan komponen bantuan.
2.6.4.1 Interfacing Murni Interfacing murni berarti interfacing tanpa menggunakan komponen bantuan. Interfacing jenis ini dilakukan dengan menyisipkan kode assembly kedalam perintah Pascal. Namun ironinya interfacing jenis ini hanya dapat dilakukan jika sistem operasi yang digunakan adalah Windows 9x dan Windows Me. Jika menggunakan Windows 2000, NT dan XP maka diperlukan suatu driver untuk membuka port parallel pada
24
sistem operasi tersebut. Hal ini dikarenakan Microsoft telah menutup akses I/O port untuk alasan keamanannya. Bagi pengguna sistem
operasi Windows 2000, NT dan XP tetap dapat
melakukan interfacing murni dengan menggunakan driver tambahan. Salah satu driver yang dapat digunakan adalah driver ‘User Port’ yang dibuat oleh Thomas Franzon dan menginstalnya terlebih dahulu. Dengan menggunakan User Port pengguna dapat menambahkan dan mengurangi alamat port yang akan digunakan. Tampilan untuk merubah alamat port dari program ’User Port ’adalah seperti Gambar 2.5.
Gambar 2.5 User Port.sys Pada awalnya aplikasi yang dibangun menggunakan interfacing murni dengan user port, namun karena banyaknya kesalahan error interfacing dalam penggunaannya, maka kemudian sistem dibangun dengan menggunakan komponen bantuan.
2.6.4.2 Interfacing dengan Menggunakan Komponen Bantuan Interfacing dengan komponen bantuan berarti tidak diperlukan lagi penyisipan bahasa assembly pada kode pascal yang akan dibuat. Banyak jenis komponen bantuan yang dapat digunakan sebagai interfacing dengan port parallel, diantaranya adalah
25
komponen SmallPort dan HWinterface. Dengan menggunakan komponen tersebut, programmer tidak perlu lagi menyisipkan kode assembly ataupun menggunakan UserPort untuk mengolah port parallel. Berikut sedikit penjelasan mengenai kedua komponen tersebut: 1. SmallPort Small Port dibuat oleh Alexander Weitzman dan bebas untuk digunakan. 2. HWinterface Hwinterface merupakan komponen lain yang dapat digunakan selain SmallPort. HWintrface juga bebas digunakan. Aplikasi yang akan dibuat menggunakan komponen HWinterface sebagai interfacing dengan port parallel.
2.7 Pengujian Perangkat Lunak Menurut Pressman, pengujian sistem adalah sederetan pengujian yang berbeda yang tujuan utamanya adalah sepenuhnya mempergunakan sistem berbasis komputer. Sedangkan menurut Kruse, uji coba atau testing adalah proses menjalankan suatu program dengan data yang telah dipilih untuk mencari kesalahan jika memang ada.
2.7.1 Pengujian Cacat Tujuan pengujian cacat (defect testing) adalah mengungkap cacat laten pada sistem perangkat lunak sebelum sistem diserahkan kepada user. Hal ini berlawanan dengan pengujian validasi yang ditujukan untuk mendemonstrasikan bahwa sistem telah memenuhi spesifikasinya. Pengujian validasi menuntut sistem berlaku dengan benar dengan menggunakan kasus uji penerimaan. Uji cacat yang berhasil merupakan uji yang menyebabkan sistem berlaku tidak benar dan dengan demikian mengungkap adanya cacat. Hal ini menekankan fakta penting mengenai pengujian. Pengujian menunjukkan keberadaan, bukan tidak adanya ataupun kesalahan program.
26
2.7.1.1 Pengujian Kotak Hitam Pengujian fungsional atau pengujian kotak hitam (black-box testing) merupakan pendekatan pengujian yang ujinya diturunkan dari spesifikasi program atau komponen. Sistem merupakan kotak hitam yang perilakunya hanya dapat ditentukan dengan mempelajari input dan output yang berkaitan. Nama lain untuk cara ini adalah pengujian fungsional karena penguji hanya berkepentingan dengan fungsionalitas dan bukan implementasi perangkat lunak. (Summervilee, 2003, hal:87)
Gambar 2.6 Pengujian Kotak Hitam Gambar 2.6 mengilustrasikan model sistem yang diasumsikan pada pengujian kotak hitam. Pendekatan ini dapat juga diterapkan pada sistem yang disusun sebagai fungsi atau objek. Jika output bukan merupakan yang diramalkan berarti uji tersebut telah berhasil mendeteksi masalah dengan perangkat lunak tersebut.
2.7.1.2 Pengujian Struktural Pengujian struktural merupakan pendekatan terhadap pengujian yang diturunkan dari pengetahuan struktur dan implementasi perangkat lunak. Pendekatan ini kadangkadang disebut pengujian ‘kotak putih (white-box testing)’, pengujian kotak kaca atau
27
pengujian kotak jernih untuk membedakannya dari pengujian kotak hitam. (Summerville, 2003 hal:91) Pengujian struktural biasanya diterapkan untuk unit program yang relatif kecil. Sebagaimana ditunjukkan oleh namanya, penguji dapat menganalisis kode dan menggunakan pengetahuan mengenai struktur komponen untuk menurunkan data uji. Analisis kode dapat digunakan untuk menemukan berapa kasus uji yang dibutuhkan untuk menjamin bahwa semua statement pada program paling tidak diuji satu kali pada proses pengujian.
2.7.1.3 Pengujian Jalur Pengujian jalur (path testing) adalah strategi pengujian struktural yang bertujuan untuk melatih setiap jalur eksekusi independent melalui komponen atau program. Jika setiap jalur independen dieksekusi, maka semua statement pada komponen harus dieksekusi paling tidak satu kali. Lebih jauh lagi, semua statement kondisional diuji untuk kasus true dan false. (Summerville, 2003 hal:93)
2.7.2 Pengujian Integrasi Begitu komponen telah teruji, dilanjutkan dengan integrasi untuk membentuk sistem parsial atau lengkap. Pengujian integrasi harus dikembangkan dari spesifikasi sitem. Pengujian integrasi memiliki beberapa strategi pengujian, diantaranya adalah pengujian top-down, pengujian bottom-up, pengujian interface dan pengujian stress. Presman mengatakan validasi dapat ditentukan dengan berbagai cara, tetapi definisi yang sederhana adalah “bahwa validasi berhasil bila perangkat lunak berfungsi dengan cara yang dapat diharapkan secara bertanggung jawab oleh pelanggan. Validasi perangkat lunak dicapai melalui sederatan pengujian Black-Box yang memperlihatkan komformitas dengan persyaratan. (Summerville, 2003 hal:95)
28
BAB 3 ANALISIS SISTEM
3.1 Blok Diagram Sistem Pada tahap awal perancangan sistem yang dilakukan adalah perancangan diagram blok. Blok diagram merupakan penyederhanaan dari rangkaian yang menyatakan hubungan berurutan dari satu atau lebih rangkaian yang memiliki kesatuan kerja tersendiri. Blok diagram sistem ditunjukkan pada Gambar 3.1 .
Hp Client
Hp Server OxygenSMS
SMS DTMF
Kabel Data Port Serial Userport.DLL
Kabel Headset Rangkaian DTMF Decoder
4 Bit biner
Port Paralel
Rangkaian Sensor Gambar 3.1 Blok Diagram
Rangkaian Driver
Lampu Pijar
29
Gambar 3.1 menjelaskan bahwa dalam proses pengiriman perintah, hp pengirim atau hp server menghubungi hp penerima atau yang disebut hp client, saat hp client telah terhubung ke hp server, maka komunikasi dapat dilakukan, demikian pula dengan komunikasi nada DTMF (Dual Tone Multi Frequency). Bagian yang akan dibahas dalam Skripsi ini adalah bagian yang ditandai dengan garis merah. Penekanan salah satu tombol pada hp client akan menghasilkan nada DTMF, nada DTMF ini akan terkirim ke hp server yang akan diteruskan ke rangkaian DTMF decoder yang terhubung melalui kabel headset. Nada DTMF yang berisikan frekwensi tertentu tersebut akan diterjemahkan oleh rangkaian DTMF decoder menjadi data biner 4 (empat) bit. Data yang dihasilkan diteruskan ke PC/laptop melalui port paralel. Data tersebut masuk sebagai input pada port paralel untuk selanjutnya diproses dalam program pada sistem, sehingga PC/laptop dapat mengakses nilai pada input port paralel tersebut. Nilai yang didapatkan dari port paralel akan diolah oleh program untuk menentukan tindakan selanjutnya, yaitu menghidupkan atau mematikan lampu tertentu yang terkoneksi ke PC tersebut. Sistem ini menggunakan MT8870 sebagai DTMF decoder. Sedangkan untuk proses pengiriman data balasan ke user, maka lampu dihubungkan dengan rangkaian sensor. Output rangkaian sensor dihubungkan ke input port paralel, sehingga program yang dirancang akan mengetahui status lampu. Selanjutnya program akan dikoneksikan dengan OxygenSMS untuk mengirimkan SMS ke hp client.
3.2
Rangkaian Power Supply Adaptor (PSA)
Agar rangkaian dapat bekerja, maka dibutuhkan sumber tegangan. Pada perancangan ini dibutuhkan 3 sumber tegangan yang berbeda, yaitu (+) 5 volt DC, (+) 12 volt DC dan (–) 12 volt DC. Tegangan (+) 5 volt DC digunakan untuk mensupplay tegangan ke IC DTMF decoder, keluaran (+) 12 volt digunakan untuk mensupplay tegangan positip
Op-Amp dan relay, sedangkan keluaran (-) 12 volt untuk mensupplay
tegangan negatip Op-Amp. Rangkaian tampak seperti Gambar 3.2.
30
Gambar 3.2 Rangkaian Power Supplay (PSA) Trafo merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 18 volt AC. Kemudian 18 volt AC akan disearahkan dengan menggunakan dioda, selanjutnya 18 volt DC akan diratakan oleh kapasitor 2200 μF. Untuk menghasilkan tegangan (+) 5 volt DC digunakan Regulator tegangan 5 volt (LM7805CT). Untuk menghasilkan tegangan (+) 12 volt DC digunakan Regulator tegangan 12 volt (LM7812CT) dan untuk menghasilkan tegangan (-) 12 volt DC digunakan Regulator tegangan - 12 volt (LM7912CT).
3.3 Rangkaian DTMF Dekoder.
Untuk menangkap tombol apa yang ditekan oleh penelepon maka peranti pertama yang harus disediakan adalah peranti yang bertugas mendeteksi sinyal apa yang dikirimkan. Jika sinyal yang dikirimkan adalah sinyal hasil penekanan tombol telepon maka dapat digunakan Tabel 2.1 untuk melakukan pendekode-an. Untuk itu diperlukan sebuah rangkaian elektronik yang mendapat masukan dari kabel headset dan keluaran bilangan hasil pendekodean sinyal tersebut.
31
Paralel port hanya mengenal data digital (high atau low), sedangkan nada DTMF merupakan sinyal analog, untuk merubah sinyal analog dari nada DTMF menjadi data digital digunakanlah rangkaian DTMF dekoder. IC MT8870 merupakan IC DTMF dekoder yang dirancang untuk keperluan tersebut. IC ini akan merubah sinyal analog dari nada DTMF decoder menjadi 4 (empat) bit data biner. Rangkaian DTMF decoder ditunjukkan oleh Gambar 3.3.
Gambar 3.3 Rangkaian DTMF Dekoder. Komponen utama dari rangkaian ini adalah IC MT8870. IC ini akan merubah nada DTMF yang ada menjadi 4 bit data biner. Jika nada yang diterima adalah nada dari penekanan keypad angka 1, maka output dari rangkaian ini adalah 0001. Jika yang diterima nada dari tombol 2, maka output dari rangkaian ini adalah 0010 dan demikian seterusnya. Output dari rangkaian DTMF dekoder ini dihubungkan ke komputer melalui konektor DB 25, pada pin 15, 13 dan 12. Pin-pin tersebut merupakan pin input untuk port 379. sehingga komputer dapat mengenali data yang dikirimkan oleh rangkaian ini untuk kemudian diolah oleh komputer untuk melaksanakan instruksi selanjutnya.
32
3.4 Rangkaian Driver Lampu Port paralel tidak dapat mengendalikan lampu beban secara langsung, karena itu diperlukan rangkaian driver sebagai perantara antara lampu dengan port paralel. Rangkaian driver ini menggunakan sebuah transistor C945 dan relay, dimana keduanya merupakan saklar elektronik. Rangkaian Driver Lampu ditunjukkan pada Gambar 3.4.
Gambar 3.4 Rangkaian Driver Lampu Rangkaian ini menggunakan konektor DB 25 yang merupakan konektor untuk paralel port. Konektor DB 25 ini langsung dihubungkan dengan rangkaian sensor arus dan dihubungkan ke rangkaian DTMF Dekoder. Namun, Gambar 3.4 diatas bukanlah gambar rangkaian untuk kedua bola lampu. Rangkian ini hanya digunakan untuk salah satu lampu saja. Perbedaan rangkaian terletak pada pin yang terhubung dengan port parallel, untuk lampu pasangannya digunakan pin-2 dan penghubungnya.
pin-11 sebagai
33
3.5
Analisis Sistem
Analisis mengenai tujuan, identifikasi dan kebutuhan sistem kendali jarak jauh dijabarkan masing-masing pada poin-poin berikut:
3.5.1
Tujuan Sistem Sistem ini bertujuan untuk memberikan kemudahan pengendalian peralatan
elektronik dari jarak jauh, sehingga untuk suatu keadaan tertentu tidak dibutuhkan lagi tenaga manusia sebagai pengendali langsung. Selain itu sistem juga bertujuan untuk memberi informasi mengenai keadaan hidup atau tidaknya peralatan yang dikontrol dan mendapatkan jawaban laporan melalui fasilitas SMS (Short Message Service). Informasi tersebut dapat diakses dengan memanfaatkan nada DTMF pada telepon.
3.5.2
Identifikasi Sistem Sistem memiliki kemampuan – kemampuan sebagai berikut : 1. Dapat mengolah data keluaran DTMF dekoder. 2. Dapat mengirim suatu pesan SMS sebagai laporan. 3. Dapat memproses perintah yang masuk sesuai dengan pendefinisian kode yang telah ditentukan.
3.5.3
Kebutuhan Perangkat Lunak Berdasarkan kebutuhan sistem secara umum, perangkat lunak yang akan
dibangun harus memenuhi kebutuhan-kebutuhan sebagai berikut : 1. Mampu mengambil data yang dikirimkan oleh DTMF decoder. 2. Mampu mengeksekusi perintah sesuai dengan input yang diterima. 3. Mampu mengeksekusi perintah baru tanpa mengganggu keadaan sebelumnya. 4. Mampu memberikan laporan status peralatan melalui jasa SMS.
34
3.5.4
Alur Kerja Sistem
Secara garis besar, alur kerja program yang akan dibahas dapat dilihat pada Gambar 3.5, sedangkan alur kerja sistem secara keseluruhan dapat dilihat pada Lampiran C. Gambar 3.5 hanya menjelaskan garis-garis besar proses yang dikerjakan oleh sistem. Proses yang digambarkan oleh diagram tersebut adalah ketika program dijalankan oleh user, maka saat itu juga program mulai melakukan proses pembacaan nilai DTMF. Selanjutnya program akan membaca nilai DTMF yang dikirim. Setelah diperoleh nilai DTMF, dilakukanlah proses perbandingan untuk mengatasi agar kegiatan yang sama tidak dilakukan berulang kali, hal ini dilakukan untuk mengatasi permasalahan DTMF dekoder yang bersifat latch. Setelah melakukan proses perbandingan antara nilai DTMF yang baru dengan yang lama, jika menghasilkan nilai yang sama, maka program kembali melakukan pembacaan nilai DTMF. Jika hasil operasi false, maka proses dilakukan dengan mencari data yang sesuai dengan looping if bersarang. Setelah menemukan kemungkinan yang sesuai, maka dilanjutkan dengan proses menghidup-matikan lampu serta pendefinisian status lampu yang terhubung. Proses menghidup-matikan lampu disini berisikan operasi logika. Setelah itu, semua proses dilanjutkan dengan pengiriman laporan status mengenai alat-alat yang terhubung. Selanjutnya program akan kembali ke proses pembacaan nilai DTMF hingga program dihentikan. Penjelasan mengenai proses-proses dan algoritma yang terjadi dalam masing-masing proses hidup-matikan lampu dijelaskan dengan rinci pada poin selanjutnya. Sedangkan diagram alir sistem secara keseluruhan dapat dilihat pada LampiranC.
35
Gambar 3.5 Diagram Alur Sistem
36
3.6 Menu Pilihan Pengguna aplikasi diasumsikan sudah mengetahui menu pilihan dari masing-masing tombol. Rincian masing-masing pilihan perintah yang diwakilkan oleh tombol pada handphone dijelaskan pada Tabel 3.1. Tabel 3.1 Menu pada Tombol No. tombol
Perintah yang diwakili oleh tombol
1
Menghidupkan semua lampu
2
Menghidupkan lampu-1
3
Menghidupkan lampu-2
4
Mematikan lampu-1
5
Mematikan lampu-2
6
Meminta laporan status kedua lampu
7
Mematikan semua lampu
Karena dari 4 bit keluaran DTMF dekoder hanya digunakan 3 (tiga) bit pertama saja, maka jika user menekan tombol 8 akan sama dengan nilai 0 (nol), dan nilai tombol 9 akan sama dengan 1 (satu), 0 (nol) sama dengan 2 (dua), bintang sama dengan 3 dan pagar sama dengan 4.
3.7 Proses Penyampaian Data DTMF Dekoder ke Paralel Port
Data 4 (empat) bit hasil keluaran DTMF dekoder, diteruskan ke port paralel sebagai input ke register status dengan alamat 379h. Namun tidak keseluruhan bit tersebut dipergunakan. Karena alat peraga hanya memakai dua buah lampu sehingga ragam instruksi yang digunakan hanyalah sedikit, yakni 7 (tujuh) perintah instruksi. Oleh karena itu, 3 (tiga) bit data biner dari DTMF dekoder sudah cukup untuk mewakili instruksi yang akan digunakan. Jadi, hanya 3 (tiga) bit data yang disampaikan ke register status pada port paralel. Seperti yang digambarkan oleh Tabel 3.2.
37
Tabel 3.2 Rangkaian Output DTMF decoder D3
D2
D1
D0
-
-
-
-
Dari gambar diatas tampak bahwa ada 4 (empat) bit data keluaran DTMF dekoder dan yang dihubungkan dengan port paralel dan digunakan sebagai input hanya 3 (tiga) bit pertama saja, yakni D0-D2. Ketiga bit data tersebut dihubungkan dengan pin ke 15, 13 dan 12 dari port paralel, seperti yang digambarkan pada Gambar3.3.
Data yang disampaikan ke paralel port sebagai input masuk ke register status. Data yang disampaikan oleh DTMF dekoder akan mengalami perubahan nilai ketika berada di register status. Hal ini dikarenakan ketika berada pada register status yang memiliki 8 (delapan) pin, 5 (lima) pin diantaranya memiliki nilai masing-masing, adanya 3 (tiga) pin yang tidak digunakan yang selalu bernilai logika 1 (nilai default) dan juga diakibatkan adanya inverting pada S7 ataupun bit kedelapan pada register status. Inverting berarti pin bersifat aktif rendah, dan setiap data yang masuk akan di iverskan, dengan kata lain, apabila data yang disampaikan ke S7 adalah 1 (satu), maka data tersebut akan di inverskan menjadi 0 (nol). Nilai default setiap pin ketika tidak digunakan adalah 1 (satu). Proses perubahan nilai tersebut dapat digambarkan seperti rangkaian Gambar 3.6. Tabel Keadaan default port status ~S7
S6
S5
S4
S3
-
-
-
0
1
1
1
1
1
1
1
Data DTMF dekoder = S5,S4,S3
Gambar 3.6 Default Port Status Selanjutnya keadaan register status ketika menerima data dari DTMF dekoder (misalkan data yang disampaikan adalah 0001) akan berubah menjadi seperti Tabel 3.3
38
Tabel 3.3 Port Status dengan Input DTMF = 1 ~S7
S6
S5
S4
S3
-
-
-
0
1
0
0
1
1
1
1
Dari Tabel 3.3 diatas terlihat jelas bagaimana perbedaan antara nilai yang dikirim oleh DTMF dekoder dan yang terbaca pada port status (alamat 379). Nilai tersebut yang kemudian dibaca oleh perangkat lunak yang digunakan sebagai antarmukanya untuk mengetahui perintah ekseskusi selanjutnya.
3.8 Proses Penyampaian Data Lampu
Data pada register status DB-25 tidaklah bersumber dari DTMF dekoder saja. Lampu yang dikendalikan juga berfungsi sebagai input bagi port paralel. Lampu yang terhubung ke port paralel DB-25 menyampaikan data ke register status secara kontinu. Data yang disampaikan ke port paralel masuk melalui pin 11 dan 10, yaitu ~S7 dan S6 pada register status, hal ini juga dapat dilihat lebih jelas pada Gambar 3.4.
3.9 Proses Pemilihan Data
Sumber data pada DB-25 tidaklah berasal dari satu sumber saja, namun ada 2 (dua) sumber data, yakni DTMF dekoder dan lampu. Pembacaan data pada register status dilakukan secara bersamaan (bukan dari tiap-tiap pin), yang berarti bahwa data yang dikirimkan oleh lampu dan data yang dikirimkan oleh DTMF dekoder akan dibaca bersamaan dalam satu kesatuan waktu. Sumber data yang lebih dari satu menimbulkan permasalahan baru, yakni bagaimana cara membedakan apakah data yang masuk berupa data yang berasal dari DTMF dekoder atau dari perangkat elektronik yang dikontrol, dalam hal ini lampu. Seperti yang telah dijelaskan diatas bahwa input port paralel dilakukan pada register status. Dalam hal ini, port paralel DB-25 tidak bersifat bi-directional. Sehingga masukan port paralel hanya bisa dilakukan pada register status, dan pin pada
39
register status digunakan untuk dua sumber data. Gambaran mengenai hubungan antara handphone, port paralel dan DTMF dekoder dijelaskan pada Gambar 3.7.
1 = port paralel 2 = DTMF decoder 3 = Handphone penerima panggilan = lampu
Gambar 3.7 Hubungan antara DTMF, DB-25 dan Handphone Dari gambar diatas, dapat dilihat bahwa perangkat yang terkoneksi, dalam hal ini lampu tidak hanya menjadi perangkat yang diberikan data keluaran dari port paralel, namun juga sebagai sumber data bagi port paralel. Dengan menggunakan rancangan rangkaian tersebut, hanya memungkinkan untuk menghubungkan dua buah perangkat saja untuk dikendalikan /dikontrol. Kemudian dalam pendefinisian data masukan, pendefinisian terbagi atas dua proses, yaitu pendefinisian mana data yang berasal dari DTMF dekoder, dan proses pendefinisian nilai data yang diberikan oleh lampu.
3.9.1
Pendefinisian Data DTMF
Untuk dapat memahami bagaimana proses ini terjadi, terlebih dahulu perlu diingat kembali mengenai tabel register status yang digambarkan pada Tabel 3.4.
Tabel 3.4 Port Status (alamat 379) ~S7
S6
S5
S4
S3
-
-
-
~Busy
Ack
PE
Select
Error
-
-
-
40
Ketika dalam rangkaian terbuka, atau tanpa pengaruh dari perangkat luar, register status bernilai 127, yang dalam biner adalah 01111111. Untuk mecari bagaimana cara memperoleh data hanya data DTMF saja, dicari satu operator dan operand yang dapat menghasilkan kemungkinan hanya S3, S4 dan S5 yang berpeluang bernilai logika 1 (satu). Maka digunakanlah operasi AND dan operand 56. Dengan menggunakan operasi AND dengan operand 56, maka akan diperoleh data yang diinginkan, sedangkan data lain akan bernilai 0 (nol), dimana untuk saluran status S0 dan S1 masih tercadang, S2 tidak dikeluarkan ke pin DB25. Ilustrasi proses yang terjadi, digambarkan dalam Tabel 3.5.
Tabel 3.5 Rangkaian Proses Operasi Logika AND pada Register Status ~S7 S6
S5
S4
S3
S2 S1 S0
0
1
1
1
1
1
1
1
Keadaan default register status
0
1
1
0
1
1
1
1
Diberikan input dari DTMF decoder
0
0
1
1
1
0
0
0
Oprasi AND dengan operand 56
0
0
1
0
1
0
0
0
Hasil operasi AND
Tabel 3.5 memperlihatkan gambaran yang jelas mengenai bagaimana pendefinisian nilai DTMF dekoder pada register status dapat dilakukan. Tabel 3.5 menggambarkan contoh pendefinisian data DTMF dekoder dengan nilai data 5 (lima , 0101 dalam biner) dari data keseluruhan pada register status. Melalui operasi AND akan dihasilkan nilai 1 (satu) hanya jika keduanya benilai 1(satu). Sehingga hanya ada kemungkinan terbesar 3 (tiga) bit data yang bernilai logika 1 (satu). Berikut algoritma yang digunakan dalam pendefinisian nilai DTMF dekoder dalam program: temp := Hwinterface1.InPort($378); temp1 := Hwinterface1.InPort($379); nilai := temp1 and 56;
Dari algoritma diatas terlihat bahwa proses yang pertama kali dilakukan adalah membaca data yang ada pada register status dengan alamat $379, kemudian menyimpannya pada satu variabel, yaitu variabel temp. Kemudian nilai dari variabel temp di-AND kan dengan operand, yakni 56, dan kemudian disimpan dalam variabel
41
nilai. Untuk melakukan operasi logika tersebut, nilai yang dalam desimal tidak perlu dirubah ke dalam biner terlebih dahulu karena bahasa pemrograman sudah memiliki kemampuan untuk melakukan operasi logika dengan nilai desimal. Gambaran alur proses pendefinisian nilai DTMF dijelaskan pada Gambar 3.8.
Mengambil data dari register status (alamat 379)
Data DTMF AND 56 = nilai
Nilai = nilai div 8
Pemrosesan delphi
Gambar 3.8 Alur proses pendefinisian nilai DTMF
3.9.2 Pendefinisian Nilai Status Lampu Berikutnya dicari operand dan operator yang digunakan untuk memproses data yang masuk dari lampu. Proses ini bertujuan untuk memilah dan mengetahui nilai yang dikirimkan oleh lampu. Untuk operasi pendefinisian nilai status lampu tidaklah seperti pada DTMF dekoder, operand yang digunakan untuk kedua lampu tidak bisa disamakan. Hal ini dikarenakan adanya operasi invers pada S7, ataupun sifat ‘active low’ pada S7, gambaran ini dapat dilihat kembali pada Gambar 2.4, yakni gambar port status.
42
3.9.2.1 Lampu -1 Lampu 1 adalah lampu yang terhubung dengan pin 11, yakni S7. S7 yang bersifat aktif low yang berarti memiliki sifat kebalikan dari sinyal listrik lain, akan aktif ketika sinyal low. Berikut algoritma yang digunakan untuk mengetahui nilai status lampu-1: temp1 := Hwinterface1.InPort(lptdata); nilai := temp1 and 128; Nilai := nilai div 128;
Penjelasan dari algoritma diatas adalah: hal yang pertama dilakukan adalah menyimpan nilai yang dibaca dari register status dalam sebuah variabel bernama temp1, kemudian dilakukan operasi logika dengan operator AND dengan operand 128. Operator AND digunakan karena operator AND hanya akan bernilai 1 (satu) jika kedua operand bernilai 1 (satu). Sehingga hanya akan ada satu pin yang bernilai 1 (satu), yaitu pin 11 yang terhubung ke lampu-1. Dengan demikian hasil operasi hanya mungkin memiliki dua nilai, yaitu 128 atau 0 (nol). Nilai hasil opererasi AND tersebut selanjutnya di bagi dengan 128, yang memiliki kemungkinan hasil adalah 0 (nol) dan 1 (satu). 0 (nol) dan 1 (satu) sudah jelas menggambarkan keadaan sinyal lampu. Hanya saja ada sedikit perbedaan dari sinyal listrik biasanya. Bila secara umum nilai 1 (satu) menyatakan lampu dalam keadaan menyala, maka pada lampu 1 (satu), nilai 1 (satu) menyatakan bahwa lampu dalam keadaan padam, begitu juga sebaliknya.
3.9.2.2 Lampu-2 Lampu-2 memiliki kesamaan proses dengan lampu-1 dalam pendefinisian nilai status yang diberikan lampu. Hanya saja ada perbedaan yang lerletak pada nilai operand dan pendefinisian status. Berikut algoritma dalam pemrograman untuk pendefinisian nilai status lampu-2: temp1 := Hwinterface1.InPort(lptdata); nilai := temp1 and 64; Nilai := nilai div 64;
43
Dari algoritma program diatas terlihat bahwa nilai yang dibaca dari register status alamat $379 disimpan dalam sebuah variabel. Selanjutnya nilai dalam variabel tersebut di AND kan dengan operand 64. Hasil dari operasi tersebut disimpan kembali dalam satu variabel yang berbeda, dan dibagi dengan operand 64. Hasil yang mungkin keluar dari operasi tersebut adalah 1 (satu) dan 0 (nol). Disinilah letak perbedaan kedua antara lampu-1 dengan lampu-2. Jika pada lampu-1 nilai 1 (satu) menyatakan bahwa lampu padam, pada lampu-2 nilai 1 (satu) menyatakan bahwa lampu menyala. Hasil akhir tersebut selanjutnya diproses oleh pemrograman.
3.10
Proses Penghidupan Lampu
Jika dibayangkan secara selintas mengenai cara penghidupan lampu, yang terbesit dibenak yaitu bahwa untuk menghidupkan lampu yang dikontrol melalui interface DB-25 sangatlah mudah. Hanya tinggal mengirimkan nilai 1 (satu) pada pin yang terhubung dengan lampu yang dikontrol. Namun keadaan itu hanya berlaku jika yang dikontrol hanya satu buah lampu saja. Hal ini tidak berlaku untuk pengontrolan lampu yang berjumlah lebih dari satu.
Jika menggunakan prinsip seperti diatas, dalam satu keadaan dapat terjadi kemungkinan bahwa ketika dikirimkan nilai logika 1 (satu) untuk menghidupkan sebuah lampu dapat mengakibatkan lampu yang telah menyala sebelumnya menjadi padam. Kesalahan ini dapat diilustrasikan dengan rangkaian Tabel 3.6.
Tabel 3.6 Ilustrasi Umum Proses Penghidupan Lampu pada Register Data D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
0
0
Nilai awal
0
0
0
0
0
0
0
1
Perintah pertama
0
0
0
0
0
0
1
0
Perintah kedua
0
0
0
0
0
0
1
0
Keadaan akhir
0
0
0
0
0
0
1
1
Keadaan yang diharapkan
44
Tabel 3.6 menggambarkan keadaan seperti berikut: Apabila pada keadaan awal tidak ada satupun lampu yang hidup, yang berarti, data yang dikirimkan pada register data adalah 0 (nol). Selanjutnya, dikirimkan data untuk menghidupkan lampu-1, berarti data yang dikirimkan bernilai 1 (satu). Beberapa saat kemudian, user memberikan perintah untuk menyalakan lampu-2 tanpa mematikan lampu yang sudah menyala sebelumnya. Dari tabel diatas, terlihat bahwa ketika dikirimkan data yang baru, maka data yang sebelumnya akan terhapus digantikan oleh data yang baru, yang berarti lampu yang telah menyala sebelumnya akan padam bersamaan dengan hidupnya lampu-2. Ketika diberikan perintah untuk menyalakan lampu, maka semua lampu yang telah menyala sebelumnya akan padam. Nilai data baru yang diterima secara menyeluruh langsung menggantikan data yang sebelumnya, sehingga lampu yang pada mulanya menyala akan padam dikarenakan oleh bit 1 (satu) hanya diberikan kepada pin yang dituju saja, sedangkan nilai pin yang lain akan ter-reset menjadi 0(nol) kembali. Oleh karena itu perlu ditambahkan proses logika ataupun aritmatika untuk mengatasi permasalahan tersebut. Berikut proses yang terjadi untuk menghidupkan lampu-1 dan lampu-2. Proses penghidupan lampu dalam diagram alur adalah seperti Gambar 3.9.
Gambar 3. 9 Alur proses penghidupan lampu
45
Keterangan: n = nilai operand yang berbeda-beda untuk tiap lampu.
3.10.1 Proses Menghidupkan Lampu-1 Algoritma untuk menghidupkan lampu dan membaca nilai DTMF pada dasarnya adalah hampir sama. Yakni menggunakan operator logika dan sebuah operand. Namun operand yang digunakan pada lampu-1 dan lampu-2 tidaklah sama. Hal pertama yang dilakukan adalah membaca nilai dari register data (alamat 378) dan menyimpannya ke dalam sebuah variabel. Operator logika yang digunakan adalah operator OR. Operator OR hanya akan bernilai 0 (nol) apabila kedua operand bernilai 0 (nol). Variabel yang berisikan nilai awal dari register data di OR kan dengan operand 1 (satu). Karena nilai 0(nol) hanya akan hadir ketika kedua operand bernilai 0 (nol), hal ini berarti bahwa nilai yang ada sebelumnya tidak akan terhapus ataupun berubah nilainya. Digunakan nilai 1 (satu) sebagai operand karena lampu-1 yang terhubung dengan D0 akan bernilai 1 (satu) bila diberi logika 1 (satu) pada pin D0. Gambaran proses kejadian untuk menghidupkan lampu diilustrasikan pada Tabel 3.7.
Tabel 3.7 Ilustrasi Proses Penghidupan Lampu pada Register Data D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
0
0
Nilai awal
0
0
0
0
0
0
1
0
Perintah pertama
0
0
0
0
0
0
0
1
Perintah kedua
Apabila perintah petama telah dieksekusi, dan nilainya dibaca dan disimpan pada satu variabel dan kemudian variabel tersebut di OR kan dengan perintah kedua maka: 00000010 00000001 00000011
+
46
Dari perhitungan logika diatas terlihat bahwa hasil dari operasi logika OR nilai perintah pertama dan nilai perintah kedua dapat menghasilkan data yang diharapkan. Jadi apa yang sebenarnya dilakukan ketika perintah menghidupkan lampu pertama adalah proses mengirimkan data ke register data (alamat 378), nilai yang dikirimkan adalah nilai hasil dari operasi logika OR antara variabel yang menyimpan nilai register data sebelumnya dengan operand 1 (satu).
3.10.2 Proses Menghidupkan Lampu-2 Selanjutnya untuk proses menghidupkan lampu-2, proses yang dilakukan sama dengan menghidupkan lampu-1. Perbedaannya terletak pada operand yang digunakan. Jika lampu-1 menggunakan operand 1 (satu), maka lampu-2 menggunakan operand 2 (dua) dalam prosesnya. Digunakan operand bernilai 2 (dua) karena pin yang dituju pada register data akan bernilai 2 (dua) jika diberi logika 1 (satu) untuk menghidupkan lampu-2. Sedangkan pin yang lain pada register data di OR kan dengan nilai 0 (nol) karena nilai 0 (nol) pada operasi logika OR tidak akan mempengaruhi nilai sesungguhnya. Berikut perhitungannya: 00000001 00000010
+
00000011 Dengan demikian rangkaian proses yang terjadi untuk menghidupkan lampu-2 adalah pengiriman sebuah nilai (misal: X). Nilai variabel X tersebut merupakan hasil dari operasi logika OR antara nilai register data yang lama dengan operand 2. Hasil proses tersebutlah yang kemudian disampaikan kembali ke register data. Dengan demikian, variabel X sebenarnya berisikan : X=Y+Z Keterangan: Z = 2 Y = nilai register data yang lama
47
3.11
Proses Pemadaman Lampu
Permasalahan untuk menghidupkan lampu ditemukan ketika lampu yang dikontrol berjumlah lebih dari satu. Begitu juga dengan proses mematikan lampu apabila peralatan yang dikontrol (dalam hal ini lampu) berjumlah lebih dari satu. Secara umum, cara yang digunakan untuk mematikan lampu yang diinginkan adalah mengirimkan data 0 (nol) pada pin yang dituju. Hal ini digambarkan pada Tabel 3.8.
Tabel 3.8 Proses pemadaman lampu -
-
Lamp6
Lamp5
Lamp4
Lamp3
Lamp2
Lamp1
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
1
0
0
0
0
Jika ingin mematikan lampu, hanya tinggal memberikan nilai 0 (nol) saja. Namun jika hal ini dilakukan, sudah sangat jelas apa yang akan terjadi. Tentu saja akan mengganggu nilai dari pin-pin yang kemungkinan telah terisi sebelumnya, yang berarti apabila lampu lain yang dalam keadaan menyala akan ikut padam bersamaan dengan padamnya lampu-5. Prinsip pemadaman ini digunakan hanya untuk memadamkan seluruh lampu sekaligus. Oleh karena itu, lagi-lagi dibutuhkan juga proses operasi aritmatik ataupun logika untuk proses pemadaman lampu. Proses pemadaman lampu secara umum digambarkan pada Gambar 3.10.
48
Mengambil data dari register data (alamat 378)
Data DTMF AND n = hasil
Pengiriman hasil ke port data (alamat 378)
Gambar 3.10 Alur proses pemadaman lampu Keterangan: n merupakan nilai operand yang berbeda-beda untuk masing-masing lampu.
3.11.1 Proses Pemadaman Lampu-1 Untuk memadamkan lampu-1 tanpa harus mengganggu lampu lainnya berarti dituliskan nilai logika 0 (nol) pada pin yang sesuai dengan pin pada alat yang diinginkan saja. Konsep dasar yang dilakukan adalah sama, yaitu membaca terlebih dahulu nilai data pada register data dengan alamat 378. kemudian nilai tersbut disimpan dalam sebuah variabel. Dalam pemadaman ini, operator logika yang digunakan adalah operator AND. Namun operand yang digunakan bukanlah nilai yang sama dengan nilai pin yang dituju pada register data ketika berlogika 1 (satu). Untuk lampu-1 digunakan operand 2 (dua) dalam proses pemadamannya. Penggunaan operand 2 (dua) untuk memadamkan lampu-1 tidak akan menganggu nilai pin lain yang berada pada port data. Berikut ilustrasi pembuktiannya:
49
Berikut dicontohkan keadaan yang mungkin terjadi. Apabila keadaan awal kedua lampu dalam keadaan menyala, berarti D0 dan D1 dalam keadaan logika 1 (satu). Tabel 3.9 Gambaran Proses Ketika Lampu 2 Menyala -
-
-
-
-
Lamp3
Lamp2
Lamp1
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
1
1
Selanjutnya, dikirimkan data untuk memadamkan lampu-1, berarti data yang dikirimkan bernilai 0 (nol).
Tabel 3.10 Gambaran Nilai Saat Memadamkan Lampu -
-
-
-
-
Lamp3
Lamp2
Lamp1
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
0
0
Dari tabel 3.10 diatas, terlihat bahwa ketika dikirimkan data yang baru, maka data yang sebelumnya akan terhapus digantikan oleh data yang baru, yang berarti lampu yang telah menyala sebelumnya akan ikut padam bersamaan dengan padamnya lampu-1. Namun dengan menggunakan operasi AND dan operand 2 (dua) akan dihasilkan hal seperti Tabel 3.11. Diasumsikan keadaan awal adalah kedua lampu menyala seperti Tabel 3.11.
Tabel 3.11 Ilustrasi Keadaan Register Data Bila Kedua Lampu Menyala -
-
-
-
-
Lamp3
Lamp2
Lamp1
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
1
1
Selanjutnya, ketika datang perintah untuk mematikan lampu-1, yang terjadi adalah nilai register data di atas di OR kan dengan 2 seperti Tabel 3.12.
50
Tabel 3.12 Ilustrasi Proses Operasi AND pada Register Data D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
1
0
Keadaan yang diharapkan
1
1
1
1
1
1
1
1
Keadaan awal
0
0
0
0
0
0
1
0
Operand 2
0
0
0
0
0
0
1
0
Hasil operasi dengan AND
0
0
0
0
0
0
1
0
Keadaan akhir
Tabel diatas menunjukkan bahwa dengan menggunakan operasi logika AND, maka hasil yang diperoleh sama dengan hasil yang ingin dicapai. Maka data yang akan dikirimkan untuk memadamkan lampu-1 adalah data hasil operasi logika tersebut.
3.11.2 Proses Pemadaman Lampu -2 Sama halnya dengan proses menghidupkan lampu-1 yang menyerupai proses menghidupkan lampu-2, bagitu juga dengan proses pemadaman. Proses pemadaman lampu-2 sejalan dengan proses pemadaman lampu-1, yang berbeda hanyalah operand yang digunakan. Bila memadamkan lampu-1 menggunakan operand 2 (dua), maka untuk memadamkan lampu 2 digunakan operand 1 (satu). Nilai hasil operasi logika OR tersebut lah yang kemudian dikirimkan ke register data (alamat 378) untuk mematikan lampu-2. Oleh karena itu, yang dilakukan bukanlah mengirim nilai baru untuk mematikan, tetapi memproses nilai yang sebelumnya sudah ada di register data.
3.12
Proses Pengiriman Pesan
Segala hal mengenai pengiriman sms ditangani oleh Toxygensms. Sms dikirimkan dengan mengambil status dari edit text yang tersedia dari program. Pengiriman pesan dilakukan dengan perintah :
51
OxygenSMS1.SendSMSMessage(edit1.Text,balas.Text,167,true,false ,nil);
Prosedur ini berfungsi untuk mengirimkan SMS. Adapun beberapa parameter yang terdapat dalam prosedur ini adalah edit1.text berisi nomor telepon yang dituju, balas.text berisi isi pesan yang akan dikirimkan, 167 merupakan lama validitas pesan tersebut, true menunjukkan laporan pengiriman diterima, nil bermakna tidak ada gambar yang dikirimkan.
3.13
Proses Pemeriksaan Data Masuk
Setelah masing-masing proses pengolahan data dijelaskan diatas, selanjutnya yang perlu dipahami dan diketahui adalah bagaimana sistem dapat mengetahui bahwasanya ada data yang masuk yang dikirimkan oleh sumber. Baik itu bersumber dari DTMF dekoder ataupun dari lampu. Sistem terus menerus melakukan pengecekan terhadap data yang masuk. Data yang diterima oleh port paralel bersifat latch. Latch berarti bahwa data yang ada tersebut akan terus ada hingga muncul data berikutnya. Seperti pada lampu, rangkaian lampu terhubung secara langsung sebagai sumber input pada register status yang berarti keadaan lampu akan terus menerus tersampaikan kepada register status. Agar respon terhadap data baru dan dilakukan secara cepat, maka dilakukanlah rutin pembacaan nilai register status dengan menggunakan komponen timer yang tersedia. Komponen timer bersifat non visual digunakan untuk menjalankan suatu event pada suatu saat ataupun secara berulang-ulang berdasarkan nilai interval tertentu. Secara tidak langsung, timer mempunyai peranan yang sangat penting dalam sistem ini. Dengan menggunakan timer, dapat dilakukan pengecekan secara terus menerus terhadap nilai yang disampaikan pada register status.
52
BAB 4
IMPLEMENTASI DAN UJI COBA SISTEM
Pada perancangan software ini digunakan bahasa pemrograman tingkat tinggi sebagai pengolah data dari dan ke rangkaian dan juga sebagai interface terhadap DB 25, dengan tambahan tools Hwinterface dan Toxygensms. Langkah pertama dalam merancang software adalah membuat algoritma program yang merupakan garis besar jalannya suatu program. Adapun algoritma software yang dirancang secara garis besar adalah sebagai berikut : 1. Mulai 2. User melakukan pengaktifan koneksi handphone- PC/laptop 3. Melakukan pemeriksaan nilai DTMF 4. Eksekusi perintah 5. Jika tidak ada data yang baru kembali ke awal (langkah 3) 6. Selesai
4.1 Implementasi Perangkat Lunak Sistem Pengendali Perangkat Elektronik Jarak Jauh Program aplikasi sistem pengendali peralatan elektronik jarak jauh ini bertujuan untuk memberikan kemudahan pemantauan terhadap peralatan lisktrik yang meliputi pemadaman dan penghidupan serta permintaan laporan terhadap status peralatan yang terkoneksi. Kegiatan pemantauan, kontrol dan kendali tersebut hanya dapat digunakan memanfaatkan telepon dengan jenis DTMF tone. Sistem ini merupakan pilihan lain bagi pengguna apabila pengguna ingin berpergian jauh dan tidak ingin menggunakan jasa manusia untuk mengontrol peralatan elektronik rumah. Sistem ini diharapkan
53
dapat membantu pengguna untuk mengetahui informasi status peralatan elektronik di rumah serta mengontrolnya. Untuk
dapat
mengoperasikan
perangkat
lunak
sistem
ini
dapat
diimplementasikan dalam beberapa tahap antara lain : 1. Implementasi perangkat keras. Perangkat lunak sistem pengendali perangkat elektronik jarak jauh ini diimplentasikan pada perangkat komputer dengan spesifikasi perangkat keras sebagai berikut : a. Prosessor Intel pentium 4 (1,6 GHz) keatas b. Disk Drives 40 GB. c. RAM 256 MB. d. Ponsel Nokia 3310 beserta Sim Card GSM. e. Kabel data FBUS. f. Port Paralel dan Port Serial. 2. Implementasi perangkat lunak. Perangkat lunak sistem pengendali perangkat elektronik jarak jauh ini diimplementasikan pada perangkat komputer dengan menggunakan sistem operasi Windows XP. Sebelum menggunakan/mengoperasikan perangkat lunak sistem pengendali perangkat elektronik jarak jauh, terlebih dahulu harus di-install tools tambahan. Tools tambahan yang diperlukan antara lain adalah Hwinterface dan komponen TOxygenSMS sebagai penghubung antara ponsel dengan PC, dan dilanjutkan dengan menghubungkan ponsel dengan komputer melalui port serial dengan menggunakan kabel data FBUS. 3. Menggunakan/mengoperasikan perangkat lunak sistem pengendali perangkat elektronik jarak jauh: a. Menggunakan sistem pengendali perangkat elektronik jarak jauh dengan men-double klik file pDTMF.exe.
54
b. Form pertama yang akan muncul adalah langsung berupa halaman utama sistem, yang berisikan beberapa menu pilihan yang dapat digunakan sesuai kebutuhan.
4.2 Pengujian Data Pengujian data berarti pengujian mengenai berapa nilai data yang ditekan pada tombol handphone client, berapa banyak data yang dibaca oleh DTMF dekoder dan berapa banyak data yang dibaca oleh port paralel yang bersumber dari DTMF dekoder. Hasil pengujian dideskripsikan pada Tabel 4.1.
Tabel 4.1 Konversi nilai pada sistem Hp
DTMF decoder
Paralel Port
Desimal
Biner
1
1
0001
xx001111
2
2
0010
xx010111
3
3
0011
xx011111
4
4
0100
xx100111
5
5
0101
xx101111
6
6
0110
xx110111
7
7
0111
xx111111
8
8
1000
xx000111
9
9
1001
xx001111
0
10
1010
xx010111
*
11
1011
xx011111
55
4.3 Pengujian Perangkat Lunak Sistem Pengendali Perangkat Elektronik Jarak Jauh Pengujian program aplikasi sistem sistem pengendali perangkat elektronik jarak jauh dilakukan pada komputer stand alone. Metode yang digunakan untuk pengujian adalah metode Black-Box. Pengujian bertujuan untuk memeriksa apakah program dapat berjalan dengan baik sesuai dengan yang direncanakan. Data pengujian dipilih berdasarkan spesifikasi masalah tanpa memperhatikan detail internal dari program. Pengujian ini langsung dilakukan oleh user yaitu mahasiswa . Perangkat keras yang dipergunakan saat pengujian program aplikasi dengan komputer stand alone yaitu: 1. processor Intel Pentium 4 1.60 Ghz RAM 256 MB, 2. disk drives 40 GB, 3. sistem operasi Windows XP, 4. ponsel Nokia 3310 beserta Sim Card GSM, 5. kabel data FBUS. Uji coba dilakukan dengan memberikan beberapa skenario untuk mengetahui fungsionalitas dari program. Uji coba dilakukan mulai dari masuknya input dan diproses sampai akhirnya menghasilkan output. Selain itu, uji coba dilakukan untuk menguji kesesuaian perangkat lunak dengan fitur yang digunakan. Pengujian dilakukan dengan mengacu kepada kebutuhan dan tujuan utama sistem, diantaranya: 1. Menghidupkan masing-masing lampu, yaitu lampu-1 dan lampu-2 2. Memadamkan masing-masing lampu, yaitu lampu-1 dan lampu-2 3. Menerima laporan setiap memberi perintah/ input 4. Merubah nomor telepon tujuan
56
4.3.1
Pengoperasian Sistem
Aplikasi tidak menggunakan proses login dalam pengkatifan sistem, karena dianggap tidak perlu. Sehingga ketika diaktifkan akan muncul halaman pembuka yang selanjutnya akan langsung masuk ke halaman menu. Tampilan menu utama aplikasi adalah seperti Gambar 4.1.
Gambar 4.1 Halaman Menu Utama
4.3.2
Pengendali Manual
Pengendalian alat dapat dilakukan baik secara manual, yakni langsung dari komputer ataupun jarak jauh, melalui telepon. Halaman tampilan untuk pengendalian manual tampak pada Gambar 4.2.
57
Gambar 4.2 Halaman Pengendali Manual Untuk memadamkan atau menghidupkan lampu, masing-masing perintah dikelompokkan dalam groupbox masing-masing. User tinggal memilih menu yang diinginkan. Ketika dipilih menghidupkan lampu-1, maka lampu-1 akan menyala, selanjutnya jika dipilih tombol menghidupkan lampu-2, maka lampu-2 akan menyala tanpa mengakibatkan pemadaman lampu-1. Begitu juga untuk pilihan pemadaman lampu. Pada pilihan pengendalian secara manual, tidak dilakukan pengiriman laporan status mengenai alat yang terkoneksi. Dalam halaman ini, hanya dimungkinkan untuk melakukan pengendalian lampu saja, tanpa ada laporan sms yang dikirim. Hasil pengujian dapat dilihat pada Tabel 4.2.
Tabel 4.2 Hasil Pengujian Kendali Manual Perintah/Input
Hasil Eksekusi
Hasil yang Diharapkan
Hidupkan lampu-1
Lampu-1 hidup
Lampu-1 hidup
Hidupkan lampu-2
Lampu-2 hidup
Lampu-2 hidup
Hidupkan lampu-1 (saat Lampu-2 dan lampu- Lampu-1
dan
lampu-1 masih menyala)
1 hidup
tetap hidup
Padamkan lampu-1
Lampu-1 padam
Lampu-1 padam
Padamkan lampu-2
Lampu-2 padam
Lampu-2 padam
lampu-2
58
Tabel 4.2 (lanjutan) Perintah/Input
Hasil Eksekusi
Hasil yang Diharapkan
Padamkan lampu-1 (saat Lampu-2 dan lampu- Lampu-1 lampu-1 masih menyala)
1 padam
dan
lampu-2
tetap padam
Dari hasil perbandingan yang terlihat pada kolom Hasil Eksekusi dan kolom Hasil yang Diharapkan pada Tabel 4.2 terbukti bahwa hasil eksekusi sama dengan hasil yang diharapkan, hal ini berarti sistem berhasil dalam hal kendali manual.
4.3.3
Pengendali Otomatis
Pada pengendalian otomatis, pengguna ataupun user terlebih dahulu harus mengaktifkan koneksi antara handphone dengan komputer, pelaksanaannya dapat dilakukan dengan menekan tombol ”Connect” yang ada pada form. Jika koneksi antara handphone dengan PC/Laptop tidak diaktifkan, fungsi kontrol terhadap peralatan tetap dapat digunakan, hanya saja tidak akan ada laporan berupa pesan sms yang dikirimkan. Laporan mengenai keberhasilan ataupun kegagalan koneksi ditampilkan pada Gambar 4.3.
Gambar 4.3 Keterangan Status koneksi handphone- komputer
59
Setelah koneksi dengan handphone berhasil, maka ketika dilakukan pengiriman perintah untuk mengendalikan ataupun hanya untuk mengecek status lampu, laporan status lampu-lampu yang terhubung akan dikirimkan melalui pesan singkat atau SMS. Proses pengiriman sms tidak terlihat pada halaman form. Pada halaman kendali otomatis, terdapat rincian mangenai nilai register 378, 379 dan nilai DTMF. Serta ditampilkan juga status mengenai kedua lampu yang terkoneksi. Pada keadaan pertama kali aktif, halaman menu berfungsi layaknya koneksi otomatis. Pada sistem yang dibangun, terdapat akses untuk keluar langsung dari program pada masing-masing halaman. Hasil pengujian kendali otomatis dapat dilihat pada Tabel 4.3.
Tabel 4.3 Hasil Pengujian Kendali Otomatis/ Jarak Jauh Perintah/Input
Hasil Eksekusi
Hasil yang Diharapkan
Tombol 2
Lampu-1 hidup,
Lampu-1 hidup, laporan
laporan terkirim
terkirim
Lampu-2 hidup,
Lampu-2 hidup, laporan
laporan terkirim
terkirim
Lampu-2 dan lampu-
Lampu-1 dan lampu-2
1 hidup, laporan
tetap hidup, laporan
terkirim
terkirim
Lampu-1 padam,
Lampu-1 padam, laporan
laporan terkirim
terkirim
Lampu-2 padam,
Lampu-2 padam, laporan
laporan terkirim
terkirim
Lampu-2 dan lampu-
Lampu-1 dan lampu-2
1 padam, laporan
tetap padam, laporan
terkirim
terkirim
Mengirim laporan
Laporan terkirim
Tombol 3 Tombol 1
Tombol 4 Tombol 5 Tombol 7
Tombol 6
60
Dari hasil perbandingan yang terlihat pada kolom Hasil Eksekusi dan kolom Hasil yang Diharapkan pada Tabel 4.3 terbukti bahwa hasil eksekusi sama dengan hasil yang diharapkan, hal ini berarti sistem berhasil dalam hal kendali jarak jauh.
4.3.4
Pengujian Setting
Setting disini befungsi untuk mengganti nomor telepon tujuan pengiriman pesan status. Akses masuk ke halaman setting dapat dilakukan melalui tombol edit nomor telepon pada halaman menu utama. Tampilan halaman setting untuk mengganti ataupun merubah nomor tujuan pengiriman pesan status dapat diihat pada Gambar 4.4.
Gambar 4.4 Halaman Edit Nomor Tujuan Ketika halaman edit nomor telepon aktif, maka yang berada diluar kotak edit akan ersifat tidak aktif. Penekanan pada tombol diluar edit text tidak akan mempengaruhi halaman edit. Untuk keluar dari halaman edit, harus dilakukan melalui tombol back pada box edit. Setelah selesai memasukkan nomor tujuan baru, ketika akan menyimpan nomor tujuan tersebut akan muncul pesan seperti Gambar 4.5.
61
Gambar 4.5 Klarifikasi Nomor Telepon Setelah nomor tujuan baru berhasil disimpan, akan muncul pesan pemberitahuan seperti Gambar 4.6.
Gambar 4.6 Pemberitahuan keberhasilan Selanjutnya, halaman setting akan tertutup secara otomatis, dan kembali ke halaman sebelumnya, yakni menu utama. Pada menu utama, nomor telepon tujuan sudah terganti dengan nomor tujuan yang baru, seperti yang terlihat pada Gambar 4.7.
62
Gambar 4.7 Nomor Telah Berubah Apabila user memutuskan untuk membatalkan pengubahan nomor tujuan, maka halaman edit nomor telepon akan tertutup secara otomatis dan kembali ke halaman menu. Selanjutnya apabila nomor yang disimpan kosong, maka akan muncul pesan kesalahan seperti Gambar 4.8 dan hasil pengujian proses merubah nomor telepon tujuan dapat dilihat pada Tabel 4.4.
Gambar 4.8 Pemberitahuan Kesalahan
Tabel 4.4 Pengujian Ubah Nomor Tujuan Perintah/Input
Hasil Eksekusi
Keterangan
Nomor tujuan
Data tidak berhasil di
Pesan kesalahan : Data tidak
kosong
inpur
terisi
Nomor tujuan baru
Data berhasil disimpan
Data berhasil dieksekusi, nomor tujuan telah berubah
Nomor tujuan sama
Data berhasil disimpan
Data berhasil dieksekusi,
dengan nomor yang
nomor tujuan telah berubah,
sebelumnya
serupa dengan nomor sebelumnya, tidak ada perubahan.
Nomor tujuan dengan nomor salah
Data berhasil disimpan
Dapat terjadi kemungkinan kesalahan kegagalan pengiriman pesan
63
Dari hasil yang terlihat pada Tabel 4.3 terbukti bahwa hasil eksekusi sama dengan hasil yang diharapkan, hal ini berarti sistem berhasil dalam hal merubah nomor telepon tujuan. Untuk input data kosong, akan mengakibatkan kesalahan, namun hal ini telah dapat diantisipasi. Sedangkan untuk input yang bersifat acak (belum tentu benar keberadaannya) hal ini tidak dapat diantisipasi.
4.4 Pengujian Perangkat Keras Sistem Pengendali Perangkat Elektronik Jarak Jauh Pengujian perangkat kelas sistem dilakukan sesuai dengan kebutuhan sistem, yakni memenuhi tujuan dibuatnya sistem ini, mengontrol hidp mati lampu dari jarak jauh. Berikut ini digambarkan pengujian masing-masing bagian.
4.4.1
Pengujian Penerimaan Data DTMF pada Rangkaian
Pada rangkaian DTMF, disediakan 4(empat) buah LED berjejer. Tujuan dari LED ini adalah untuk membuktikan ataupun sebagai pertanda apakah rangkaian telah berhasil menerima tone dari telepon atau tidak. 4 (empat) buah LED dapat digambarkan sebagai 4 (empat) bit biner. Tampilan LED diperlihatkan pada Gambar 4.9.
64
Gambar 4.9 LED Pembacaan DTMF Ketika tombol 1 ditekan, lampu pertama akan hidup, tombol 2 ditekan, lampu kedua akan hidup. Aturan mengenai hidup mati LED sesuai dengan perhitungan biner, seperti Tabel 4.5.
Tabel 4.5 Perhitungan pada LED L4 L3
L2
L1
23
22
21
20
0
0
1
0
Contoh dari gambaran diatas adalah: Bila data= 0001 = penekanan tombol 1 dan LED 1 menyala, 0011 = penekanan tombol 3 dan LED 1 dan LED 2 menyala, dan begitu seterusnya.
4.4.2
Pengujian Penghidupan Lampu
Melalui halaman menu utama, hasil yang terjadi apabila dilakukan perintah menghidupkan kedua adalah yang terlihat pada Gambar 4.10.
65
Gambar 4.10 Lampu Hidup Dari gambar tersebut terlihat bahwa lampu telah berhasil dihidupkan sesuai dengan sasaran pembuatan skripsi.
4.4.3
Pengujian Pemadaman Lampu
Setelah proses menghidupkan berhasil dilakukan, selanjutnya diberikan perintah untuk memadamkan lampu-2. Gambaran hasil pengujian pemadaman lampu dapat dilihat pada Gambar 4.11.
Gambar 4.11 Memadamkan Lampu
4.4.4
Pengujian Penerimaan Pesan Laporan
66
Fasilitas lain yang diberikan oleh sistem ini adalah adanya feedback berupa laporan mengenai keadaan lampu yang dikirimkan kepada user. Pesan laporan dapat dilihat pada Gambar 4.12.
Gambar 4.12 Laporan Status Karena Toxygen yang digunakan bersifat trial, maka dalam setiap pesan yang dikirim akan diselipkan teks promo mengenai Toxygen itu sendiri. Pesan diatas merupakan pesan status ketika diberi perintah untuk menghidupkan kedua lampu. Apabila suatu saat pesan yang diterima tidak sesuai dengan perintah yang diberikan, maka kemungkinan terbesar yang terjadi adalah bola lampu yang dikontrol tersebut putus, sehingga tidak dapat dikontrol hidup-matinya.
67
BAB 5
PENUTUP
5.1 Kesimpulan Berdasarkan hasil analisis, implementasi, dan pengujian terhadap perangkat lunak sistem dapat ditarik kesimpulan sebagai berikut: 1. Penggunaan DTMF decoder sebagai alat untuk memonitoring peralatan dianggap masih kurang efisien apabila digunakan dalam skala kecil. Kecuali apabila alat tersebut diimplementasikan dalam unit yang besar ataupun pada unit yang kecil namun bernilai investasi besar, pembuktian mengenai perhitungan efisiesnsi dapat dilihat pada Lampiran B. 2. Alat DTMF decoder dapat juga diimplementasikan dalam bidang keamanan ataupun sensoring. Namun prinsip kerja yang digunakan dengan memonitoring lampu adalah sama. 3. SMS tidak hanya dapat digunakan sebagai report, namun dapat juga digunakan sebagai akses memberi perintah (input). 4. Berdasarkan sistem yang ada hampir pada seluruh telepon yaitu DTMF, dapat dimanfaatkan sebuah rangkaian DTMF dekoder yang dapat mengkodekan setiap tombol yang ditekan yang diterima oleh telepon seluler penerima. Untuk mendekode dapat digunakan salah satu produk IC yaitu IC MT8770 yang mengkodekan input menjadi bilangan biner 4 digit. Bilangan biner 4 digit ini dapat ditangkap oleh port paralel dan dimanfaatkan oleh komputer untuk melakukan monitoring dan control terhadap peralatan-peralatan elektronik ataupun untuk kebutuhan lainnya.
68
5.2 Saran Untuk pengembangan perangkat lunak lebih lanjut agar hasilnya lebih baik lagi, maka ada beberapa hal yang dapat ditambahkan antara lain : 1. Dengan adanya pembatasan hak, yaitu hak monitoring dan hak controlling, melalui proses login yang disampaikan berupa feedback ke handphone pengguna ataupun dengan cara lain, sistem menjadi lebih aman. 2. Permasalahan yang timbul akibat padamnya aliran listrik belum bisa ditangani. Tetapi hal ini dapat diatasi dengan menggunakan Uninterruptable Power Supply (UPS) dan ditambahkan sebuah sensor yang akan mengirimkan sinyal ke perangkat elektronik apabila aliran listrik padam. Kemudian sinyal tersebut diolah dan akhirnya SMS akan dikirim ke user untuk me-monitoring. 3. DTMF decoder dapat juga dimanfaatkan pada aplikasi mesin penjawab telpon otomatis berdasarkan sebuah isi basis data. Sebagai contoh aplikasi yang biasa dilakukan adalah pada saat pengisian pulsa handphone, ataupun operator elektronik pada banyak jasa telekomunikasi ataupun mobile bangking. Oleh karena itu pengembangan penelitian penerapan aplikasi ini masih sangat terbuka. 4. Untuk pengembangan selanjutnya dapat dibuat aplikasi dengan sms report dimana perubahan status lampu menjadi pemicu dikirimnya laporan.
69
DAFTAR PUSTAKA
Budhi widodo, Romi. 2007. Interfacing Paralel & Serial Menggunakan Delphi. Yogyakarta: Graha Ilmu. Iswanto, ST. 2008. Antarmuka Port Paralel dan Port Serial dengan Delphi 6. Yogyakarta: Gava Media. Summerville, Ian. 2003. Software Engneering. Jilid 2. Jakarta: Erlangga. Sutadi, Dwi. 2003. I/O Bus & Motherboard. Yogyakarta: Andi. Zakaria, Teddy Marcus. 2006. Aplikasi SMS untuk Berbagai Keperluan. Informatika: Bandung. Datasheet MT8870, http://pdf1.alldatasheet.com/datasheet-pdf/view/77085/MITEL/MT8870.html, 6 Oktober 2008. DTMF Signalling, http://www.accesscomms.com.au/reference/dtmf.htm, 4 Agustus 2008. Parallel Port, http://en.wikipedia.org/wiki/Parallel_port, 30 Juli 2008, 6 Agustus 2008. Control System, http://en.wikipedia.org/wiki/Control_system, 6 Agustus 2008. __________, http://www.allwords.com/word-performance+monitoring+system.html), 4 Februari 2009.
70
LAMPIRAN A: RINCIAN RANGKAIAN
Rangkaian DTMF terdiri dari 4 (empat) rangkaian utama yang saling terkait satu sama lain dalam prosesnya. Rangkaian tersebut antara lain
rangkaian power supply,
rangkaian DTMF decoder, rangkaian lampu yang bergabung dengan rangkaian sensor. Masing-masing gambar tersebut diperlihatkan pada Gambar 3.2, Gambar 3.3 dan Gambar 3.4. Proses kerja dari rangkaian dimulai dari rangkaian power supply yang diteruskan ke rangkaian DTMF dekoder, dilanjutkan ke pemrosesan dan terakhir disampaikan ke rangkaian lampu. Rangkaian Power Supply berfungsi sebagai pembagi sumber arus yang dibutuhkan, rangkaian DTMF dekoder MT8870 berfungsi sebagai penterjemah nilai tone dan rangkaian lampu berfungsi sebagai rangkaian lampu dan sensor hidup tidaknya lampu. Rangkaian lampu dan DTMF dekoder terhubung dengan parallel port. Daftar komponen yang digunakan: 1. Rangkaian Power Supply
Travo 15V
Dioda 2 Ampere
Resistor 100 Ω
Resistor 330 Ω
Resistor 1k Ω
Kapasitor elektrolit 2200µF
Kapasitor elektrolit 10µF
Voltage regulator 7805
Voltage regulator 7812
Voltage regulator 7912
2. Rangkaian DTMF MT8870 Rangkaian DTMF dekoder MT8870 terdiri atas MT8870 dan sebuah penguat. Penggunaan komponen pendukung dari masing-masing komponen tersebut sudah
71
ditentukan oleh cara penggunaan komponen sesuai dengan petunjuk yang didapat ketika pembelian. 3. Rangkaian Lampu dan Sensor
Relai
Lampu pijar 5W
Dioda 2A
Transistor NPN
Resistor 10k
Optocoupler
Elco 100 µF
72
LAMPIRAN B: PERHITUNGAN PERBANDINGAN EFISIENSI MENGGUNAKAN SISTEM KENDALI JARAK JAUH, PHOTOCELL DAN KENDALI MANUAL
Terdapat beberapa jenis lampu yang dikontrol berdasarkan besar cahaya sesuai dengan kebutuhan user. Oleh karena itu, perhitungan diibaratkan dengan penggunaan lampu 300Watt. Tujuan utama dari sistem kendali jarak jauh ini adalah kemudahan monitoring dan kontrol peralatan. Untuk tujuan pengontrolan, selain dengan menggunakan sistem kendali jarak jauh, terdapat juga cara lain, yakni dengan menggunakan photocell. Berikut dijelasakan perhitungan perincian mengenai penggunaan sistem kendali jarak jauh, dengan menggunakan photocell ataupun dengan control secara langsung menggunakan tenaga manusia.
1. Perhitungan Biaya Pokok
Perlengkapan
Kendali manual
Photocell
Kendali jarak jauh
Photocell
------------
45000
-------------
Komputer
------------
---------
2.000.000
Handphone
------------
---------
300.000
Rangkaian
-----------
---------
100.000
Lampu
Keterangan:
Harga photocell diambil berdasarkan harga rata-rata yang beredar di pasaran kota medan dengan kualitas standard Rp. 45000,-. Namun harga photocell berbeda untuk tiap-tiap merk. Data diatas menggunakan harga berdasarkan photocell
yang
dijual
umunya
di
kota
Medan.
Berdasarkan
situs
http://www.residential-landscape-lightingdesign.com/store/photocell_controls.htm , terdapat banyak variasi photocell
73
susai kebutuhan, harga yang diberikan untuk photocell dengan kemampuan lampu 300Watt adalah seharga $17.00
Diasumsikan menggunakan laptop tipe lama yang masih memiliki port serial dan parallel, sehingga penggunaan listrik lebih hemat dan harga lebih murah dibandingkan menggunakan Desktop PC.
2. Penghitungan Penggunaan Listrik 2.1. Pemakaian standard Dengan pemakaian selama 24 jam: = 300 x 24 x 495 x 0.0001 = Rp. 3.564 ,-
2.2. Kendali menggunakan photocell Dengan pemakaian selama 11 jam: = 300 x 11 x 495 x 0.0001 = Rp 1633.5
2.3. Pemakaian dengan sistem Penggunaan Komputer: = 80 x 24 x 495 x 0.0001 = Rp 950.4 Penggunaan Lampu: = 300 x 10 x 495 x 0.0001 = Rp 1485 Total rupiah yang digunakan= Rp 1485 + Rp 950.4 = Rp 2435.4 Dari hasil perhitungan diatas terlihat jelas bahwa pengendalian menggunakan photocell lebih efisien dan murah jika dibandingkan dengan menggunakan sistem yang dibangun baik dari segi penggunaan listrik ataupun biaya pokok. Walaupun
74
begitu, penggunaan dengan sistem kendali jarak jauh masih lebih efisien dibanding dengan membiarkannya hidup selama 24 jam. Namun, sistem tersebut dapat digunakan di banyak sektor, dalam sistem ini digunakan lampu sebagai simulasinya. Sedangkan photocell hanya dapat digunakan pada lampu lagi, terlebih photocell tidak dapat dipantau dari jarak jauh sesuai dengan kemauan pengguna. Dengan kata lain, photocell disini berfungsi layaknya timer.
75
LAMPIRAN C : FLOWCHART SISTEM KENDALI JARAK JAUH
Berikut disajikan Flowchart dari sistem secara keseluruhan:
1 = proses pendefinisian nilai DTMF
76
1
Nilai=1
yes
no
Nilai=2
menghidupkan semua lampu
no
Nilai=3
no
yes
Nilai=4 menghidupkan lampu 1
no
yes Nilai=5 menghidupkan lampu 2
no
yes Nilai=6
memadamkan lampu1
yes
no
Nilai=7
yes
yes memadamkan lampu 2
2
memadamkan seluruh lampu
2 = proses pelaksanaan perintah sesuai perbandingan nilai DTMF
77
2
Temp1
Nilai = temp1.64 (operasi logika)
Nilai = nilai : 64
Output kondisi lampu2
Nilai = temp1.128 (operasi logika)
Nilai = nilai : 128
Kondisi lampu-1
Status = true
yes 3
no
4
78
3 4
Pesan laporan
Status = false
j≠0
j = j-1
no
j=0 yes yes
Status = true
Stop
no
79
Dari gambar tersebut diatas tampak alur program secara keseluruhan. Untuk bagian yang ditandai merupakan prosedur pendefinisian nilai DTMF, prosedur eksekusi perintah dan pendefinisian status lampu, merupakan bagian pokok dalam sistem kendali jarak jauh ini. Berikut penjelasan dari flowchart di atas: 1. Mulai 2. nilai awal j, k =0 3. Baca temp 4. Nilai = temp AND 56 5. Nilai = nilai DIV 8 6. Output nilai 7. Periksa apakah nilai ≠ k 8. Jika ya, lanjutkan ke langkah (10) 9. Jika tidak, lanjutkan ke langkah (32) 10. K = nilai 11. Periksa apakah nilai = 1 12. Jika tidak, maka lanjutkan ke langkah (14) 13. Jika iya, maka lakukan proses menghidupkan seluruh lampu 14. Periksa apakah nilai = 2 15. Jika iya, maka lakukan proses menghidupkan lampu-1 16. Jika tidak, maka lanjutkan ke langkah (17) 17. Periksa apakah nilai = 3 18. Jika iya, maka lakukan proses menghidupkan lampu-2 19. Jika tidak, maka lanjutkan ke langkah (20) 20. Periksa apakah nilai = 4 21. Jika iya, maka lakukan proses memadamkan lampu-1 22. Jika tidak, maka lanjutkan ke langkah (23) 23. Periksa apakah nilai = 5 24. Jika iya, maka lakukan proses memadamkan lampu-2
80
25. Jika tidak, maka lanjutkan ke langkah (26) 26. Periksa apakah nilai = 6 27. Jika iya, maka j=3 28. Jika tidak, maka lanjutkan ke langkah (29) 29. Periksa apakah nilai = 7 30. Jika iya, maka lakukan proses pemadaman seluruh lampu 31. Jika tidak, maka lanjutkan ke langkah (32) 32. Baca temp1 33. Nilai = temp1 AND 64 34. Nilai = nilai DIV 64 35. Tampilkan status lampu-2 36. Nilai = temp1 AND 128 37. Nilai = temp1 DIV 128 38. Tampilkan status lampu-1 39. Periksa apakah status = true 40. Jika tidak, ke langkah (44) 41. Jika iya, lanjutkan ke langkah (42) 42. output pesan 43. Status = false 44. Periksa apakah j ≠ 0 45. jika tidak, lanjutkan ke langkah (51) 46. jika iya, lanjutkan ke langkah (47) 47. j = j-1 48. periksa apakah j = 0 49. jika iya, maka status = true 50. jika tidak, lanjutkan ke langkah (51) 51. stop
81
LAMPIRAN D : LISTING PROGRAM
1. Halaman Welcome unit uWelcome; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons; type TfWelcome = class(TForm) Timer1: TTimer; bExit: TBitBtn; Image1: TImage; Label1: TLabel; procedure Timer1Timer(Sender: TObject); procedure FormActivate(Sender: TObject); procedure bExitClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var fWelcome: TfWelcome; n : integer; implementation uses uMenu; {$R *.dfm} procedure TfWelcome.Timer1Timer(Sender: TObject); begin n:=n+1; if n=1 then label1.Caption:='Loading.'; if n=2 then label1.Caption:='Loading..'; if n=3 then label1.Caption:='Loading...'; if n=4 then label1.Caption:='Loading....'; if n=5 then label1.Caption:='Loading.....'; if n=6 then fMenu.ShowModal; end; procedure TfWelcome.FormActivate(Sender: TObject); begin
82
n:=0; end; procedure TfWelcome.bExitClick(Sender: TObject); begin application.Terminate; end; end.
2. Halaman Menu unit uMenu; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, OleCtrls, HWINTERFACELib_TLB, SMSComp, jpeg; type TfMenu = class(TForm) gHidup: TGroupBox; gMati: TGroupBox; bOnSemua: TBitBtn; bOnLamp1: TBitBtn; bOnLamp2: TBitBtn; bOfSemua: TBitBtn; bOfLamp1: TBitBtn; bOffLamp2: TBitBtn; OxygenSMS1: TOxygenSMS; eSMS: TEdit; lStatKoneksi: TLabel; Timer1: TTimer; gMonitoring: TGroupBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; lLAmpu1: TLabel; lStatsLamp1: TLabel; lStatsLamp2: TLabel; Label4: TLabel; Label5: TLabel; gBMonitoring: TGroupBox; bEditNo: TBitBtn; bConnect: TBitBtn; lNoTelp: TLabel; lDTMF: TLabel; l379: TLabel; l378: TLabel; bManual: TBitBtn; bOtomat: TBitBtn; bExit: TBitBtn; Hwinterface1: THwinterface; lTemp: TLabel; Timer2: TTimer; Label6: TLabel;
83
gEdit: TGroupBox; Label7: TLabel; eTelptemp: TEdit; eTelp: TEdit; bSimpan: TBitBtn; bBack: TBitBtn; gButton: TGroupBox; procedure bOnSemuaClick(Sender: TObject); procedure bOnLamp1Click(Sender: TObject); procedure bOnLamp2Click(Sender: TObject); procedure bOfSemuaClick(Sender: TObject); procedure bOfLamp1Click(Sender: TObject); procedure bOffLamp2Click(Sender: TObject); procedure bConnectClick(Sender: TObject); procedure bManualClick(Sender: TObject); procedure default; procedure Status_Lampu; procedure Timer1Timer(Sender: TObject); procedure FormActivate(Sender: TObject); procedure bOtomatClick(Sender: TObject); procedure bExitClick(Sender: TObject); procedure bEditNoClick(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure bSimpanClick(Sender: TObject); procedure bBackClick(Sender: TObject); procedure eTelpChange(Sender: TObject); private { Private declarations } public { Public declarations } end; var fMenu: TfMenu; nilai : byte ; status:boolean; n :integer; j,k : integer; laporan: string; const LPTdata = $378; LPTstatus = $378; LPTstatus1=$379; implementation uses fSetting,uWelcome; {$R *.dfm}
procedure TfMenu.default; begin gHidup.Visible:=false; gMati.Visible:=false; gMonitoring.Visible:=true; gEdit.Visible:=false; lNoTelp.Caption:=lTemp.Caption; gBMonitoring.Enabled:=true; end;
84
function isNumber(const c: char): boolean; var b: byte; begin b := ord(c); if ((b >= 48) and (b <= 57)) then result := true else result:=false; end; procedure TfMenu.Status_Lampu; var temp1 : byte; begin temp1 := Hwinterface1.inport(LPTStatus1); //fungsi pendefinisian nilai status lamp 2 nilai := temp1 and 64; Nilai := nilai div 64; if nilai = 1 then lStatsLamp2.Caption := 'OFF' else lStatsLamp2.Caption := 'ON'; //pendefinisian nilai status lampu1 nilai := temp1 and 128; Nilai := nilai div 128; if nilai = 1 then lStatsLamp1.Caption := 'ON' else lStatsLamp1.Caption := 'OFF'; eSMS.Text := 'Status lampu 1 = '+ lStatsLamp1.Caption + '. Status lampu 2 = ' + lStatsLamp2.Caption; laporan := eSMS.Text; end; {procedure TfMenu.kirim_pesan; var temp1 : byte; begin oxygensms1.SendSMSMessage(lNoTelp.Caption ,false ,nil); status:=false; end;}
,laporan
,167
,true
procedure TfMenu.bOnSemuaClick(Sender: TObject); begin Hwinterface1.outport(LPTdata,$3); end; procedure TfMenu.bOfSemuaClick(Sender: TObject); begin Hwinterface1.outport(LPTdata,$00); end; procedure TfMenu.bOnLamp1Click(Sender: TObject); begin Hwinterface1.outport(LPTdata,Hwinterface1.inport(LPTStatus)or 1); end; procedure TfMenu.bOfLamp1Click(Sender: TObject); begin Hwinterface1.outport(LPTdata,Hwinterface1.inport(LPTStatus)and 2);
85
end;
procedure TfMenu.bOnLamp2Click(Sender: TObject); begin Hwinterface1.outport(LPTdata,Hwinterface1.inport(LPTStatus)or 2); end;
procedure TfMenu.bOffLamp2Click(Sender: TObject); begin Hwinterface1.outport(LPTdata,Hwinterface1.inport(LPTStatus)and 1); end;
procedure TfMenu.Timer1Timer(Sender: TObject); var temp,temp1,nilai_akhir :byte; begin { fungsi membaca nilai DTMF} temp := Hwinterface1.inport(LPTStatus); l378.Caption:=inttostr(temp); temp1 := Hwinterface1.inport(LPTStatus1); l379.Caption:=inttostr(temp1); nilai := temp1 and 56; Nilai := nilai div 8; lDTMF.Caption := intToStr(nilai); begin if nilai<>k then begin if nilai = 1 then begin //if k<> 1 then //begin Hwinterface1.outport(LPTdata,$3); //Status_Lampu; j:=3; k:= 1; //end; end; if nilai = 2 then begin //if k<> 2 then //begin Hwinterface1.outport(LPTdata,Hwinterface1.inport(LPTStatus)or 1); //Status_Lampu; j:=3; k:= 2; //end; end; if nilai = 3 then begin //if k<> 3 then //begin Hwinterface1.outport(LPTdata,Hwinterface1.inport(LPTStatus)or 2); //Status_Lampu; j:=3;
86
k:= 3; //end; end; if nilai = 4 then begin //if k<> 4 then //begin Hwinterface1.outport(LPTdata,Hwinterface1.inport(LPTStatus)and 2); //Status_Lampu; j:=3; k:= 4; //end; end; if nilai = 5 then begin //if k<> 5 then //begin Hwinterface1.outport(LPTdata,Hwinterface1.inport(LPTStatus)and 1); //Status_Lampu; j:=3; k:= 5; //end; end; if nilai = 6 then begin //if k<> 6 then //begin //oxygensms1.SendSMSMessage(lNoTelp.Caption ,eSMS.Text ,167 ,true ,false ,nil); k:= 6; j:=3; //end; end; if nilai = 7 then begin //if k<> 7 then //begin Hwinterface1.outport(LPTdata,$0); //Status_Lampu; j:=3; k:= 7; //end; end; // nilai_akhir:=k; end; end; status_lampu; if status=true then begin oxygensms1.SendSMSMessage(lNoTelp.Caption ,false ,nil); status := false; end; if j<>0 then begin j := j -1;
,eSMS.Text
,167
,true
87
if j = 0 then begin status := true; end; end; end;
procedure TfMenu.bConnectClick(Sender: TObject); begin if oxygensms1.Open then lStatKoneksi.Caption := 'Connected' Else lStatKoneksi.Caption := 'Failed' end; procedure TfMenu.FormActivate(Sender: TObject); begin //fWelcome.Close; l379.Caption:=''; l378.Caption:=''; lDTMF.Caption:=''; lNoTelp.Caption:='085261050727'; lTemp.Caption:=lNoTelp.Caption; status := false; k:=0; default; end;
procedure TfMenu.bOtomatClick(Sender: TObject); begin default; end; procedure TfMenu.bManualClick(Sender: TObject); begin gHidup.Visible:=true; gMati.Visible:=true; gMonitoring.Visible:=false; gBMonitoring.Enabled:=false; gEdit.Visible:=false; //bConnect.Visible:=false; eSMS.Visible:=false; lTemp.Caption:=lNoTelp.Caption; end; procedure TfMenu.bExitClick(Sender: TObject); begin application.Terminate; end; procedure TfMenu.bEditNoClick(Sender: TObject); begin gEdit.Visible:=true; gHidup.Visible:=false; gMati.Visible:=false; gMonitoring.Visible:=false; gBMonitoring.Enabled:=false; gButton.Enabled:=false;
88
// fMenu.Height:=310 ; end;
//333
procedure TfMenu.Timer2Timer(Sender: TObject); begin lTemp.Caption:=lNoTelp.Caption; end; procedure TfMenu.bSimpanClick(Sender: TObject); begin if eTelp.text='' then begin MessageDlg(' Nomor yang kosong',mtInformation,[mbOk],0); end
dimasukkan
else begin if MessageDlg('Menyimpan nomor: '+eTelp.text,mtWarning,[mbOk,mbCancel],0)=mrOK then begin eTelptemp.Text:=eTelp.Text; fMenu.lNoTelp.Caption:=eTelpTemp.Text; MessageDlg('Nomor telah disimpan',mtWarning,[mbOk],0); gEdit.Visible:=false; gMonitoring.Visible:=true; gBMonitoring.Visible:=true; gButton.Visible:=true; //fMenu.Height:=333 ; end else begin gEdit.Visible:=false; gMonitoring.Visible:=true; gBMonitoring.Visible:=true; gButton.Visible:=true; //fMenu.Height:=333 ; end; end; end; procedure TfMenu.bBackClick(Sender: TObject); begin gEdit.Visible:=false; gMonitoring.Visible:=true; gBMonitoring.Enabled:=true; gButton.Enabled:=true; fMenu.Height:=333 ; end;
procedure TfMenu.eTelpChange(Sender: TObject); var c,i:integer; begin c:= eTelp.GetTextLen; for i:=1 to c do begin if isnumber(eTelp.text[i])=false then begin MessageDlg('Nomor salah',mtError,[mbOk],0);
89
end end; end; end.