• Tidak ada hasil yang ditemukan

ANALISIS SISTEM

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

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

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

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.

3.9.2.1Lampu -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.2Lampu-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;

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.

Dokumen terkait