• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS DAN PERANCANGAN"

Copied!
62
0
0

Teks penuh

(1)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Permasalahan

Titik permasalahan dalam teknologi perikanan Indonesia selama ini adalah kurangnya penginderaan jarak jauh untuk mengetahui lokasi keberadaan ikan (fishing ground) sebelum nelayan melaut, bagi nelayan di pesisir pantai. (Kompas Media, 11

November 2003). Hal ini mengakibatkan operasi penangkapan ikan yang kurang efisien, mengingat semakin naiknya harga bahan bakar untuk menjalankan kapal. Di samping minimnya perangkat yang digunakan untuk mendukung perikanan, sumber daya manusia juga menjadi masalah utama.

Sebuah sistem yang akan dirancang dikehendaki untuk dapat menentukan lokasi keberadaan ikan dalam radius yang relatif sempit. Tidak seperti penginderaan satelit, sistem ini harus dirancang bukan untuk memperkirakan keberadaan ikan di sebuah tempat, tetapi untuk menentukan lokasi yang benar-benar terdapat ikan. FishFinder akan

diperlukan untuk membantu jalannya sistem ini. Sistem juga dirancang untuk dapat menuntun kapal nelayan untuk sampai pada titik ikan (fishingground).

Sistem harus dirancang untuk bekerja dengan intervensi nelayan seminimal mungkin, dan memberikan informasi yang komprehensif kepada nelayan. Dengan demikian, diharapkan nelayan dapat mengoperasikannya.

(2)

3.2 Sistem yang Diperlukan

Sistem ini dikehendaki untuk dapat menyelesaikan masalah-masalah yang telah dianalisis tersebut, dengan:

ƒ Membangun perangkat bergerak (Mobile Scanner) yang akan digunakan untuk:

mengirimkan lokasi keberadaan ikan ke pusat (Terminal) bila ditekan tombol

fungsinya, proses tracking kapal, dan menuntun nelayan sampai pada titik ikan

dengan memberikan informasi arah yang harus dituju.

ƒ Membangun perangkat lunak yang digunakan di pusat (Terminal) yang akan

digunakan untuk: mengumpulkan data keberadaan ikan dan kapal, mengirimkan lokasi ikan terdekat ke kapal yang meminta (untuk proses penuntun nelayan), dan memvisualisasikan secara real-time titik-titik ikan yang ada beserta

keberadaan kapal.

ƒ Informasi titik ikan dikumpulkan di Terminal, beserta keberadaan kapal dengan

identitas masing-masing kapal berbeda. Semua informasi itu divisualisasikan ke layar monitor dalam bentuk grafis (peta).

ƒ Setiap titik ikan dilengkapi berbagai informasi seperti kedalaman, dan waktu pemindaian. Setiap titik ikan memiliki waktu timeout (dapat diubah di antarmuka Terminal). Waktu ini dihitung mundur, dan bila habis waktunya maka titik ikan

tersebut akan dihapuskan dari Terminal. Tujuan dari adanya waktu timeout

adalah supaya sebuah titik ikan tidak menunggu terlalu lama untuk dikunjungi sehingga ikannya tidak berpindah terlalu jauh.

(3)

ƒ Perangkat lunak Terminal ditujukan untuk monitoring dan melayani Mobile Scanner bila meminta titik ikan. Satu-satunya nilai yang bisa diatur adalah waktu timeout dari titik ikan. Waktu timeout ini dapat diatur dengan tujuan kemudahan Terminal untuk diadaptasi di berbagai kondisi lapangan.

3.3 Cara Kerja Sistem yang Dirancang

Sistem membutuhkan sebuah speedboat atau kapal cepat yang dipasang Fishfinder untuk bekerja. Fishfinder akan memberikan informasi pencitraan dari dalam

air untuk mengetahui ada atau tidaknya ikan kepada operator. Jika terdapat ikan dan operator tersebut menganggap ikan di tempat tersebut cukup banyak untuk ditangkap, maka operator tersebut dapat menggunakan Mobile Scanner untuk mengirimkan ke

pusat (Terminal) lokasi di mana dia berada. Lokasi ini didapat dari modul GPS yang

terintegrasi dengan Mobile Scanner.

Nelayan yang ingin melaut juga membawa Mobile Scanner sebagai sumber

informasi arah yang harus dituju nelayan. Mobile Scanner akan melakukan komunikasi

dengan Terminal untuk mengetahui koordinat mana yang harus dituju nelayan, di mana

koordinat tersebut telah diketahui mengindikasikan keberadaan ikan dari hasil pemindaian sebelumnya.

Mobile Scanner dan Terminal adalah satu sistem yang tidak dapat dipisah.

(4)

Gambar 3.1 Skenario kerja sistem

Cara kerja sistem adalah sebagai berikut:

ƒ Sebuah Speedboat dilengkapi dengan Mobile Scanner dalam mode Scanner, dan FishFinder, akan melakukan sweeping di perairan. Jika dari FishFinder

ditemukan adanya indikator ikan, dan operator menganggap ikan tersebut kualitas dan kuantitasnya layak untuk ditangkap, maka operator tersebut dapat mengirimkan titik keberadaan ikan tersebut ke pusat (Terminal) dengan menekan

(5)

tombol keterangan kedalaman ikan, kemudian menekan tombol Ya untuk konfirmasi pengiriman ke pusat.

ƒ Ketika Terminal mendapatkan kiriman data koordinat keberadaan ikan, maka Terminal akan memprosesnya dan menampilkan titik ikan tersebut ke layar.

ƒ Pada saat ini, bila ada kapal yang mau melaut, sudah bisa melaut. Kapal nelayan ini juga akan dilengkapi dengan Mobile Scanner dalam mode Nelayan. Ketika

mode ini dipilih di Mobile Scanner, maka Mobile Scanner tersebut akan meminta

titik ikan kepada Terminal. Terminal akan merespon dengan mengirimkan titik

ikan terdekat ke kapal tersebut. Jika kapal tersebut belum diketahui koordinat keberadaannya, maka titik ikan yang dikirim ke kapal tersebut adalah titik ikan terdekat dari Terminal, mengasumsi semua kapal berangkat dari pusat.

ƒ Setiap kapal akan dibedakan dengan identitas empat digit alfanumerik case -insensitive, yaitu karakter A-Z dan 0-9. Empat digit ini akan memberikan

kemungkinan ID kapal berbeda sejumlah 364 = 1.679.616. Identitas ini tidak dapat diubah-ubah dan diprogram langsung ke dalam ROM mikrokontroler

Mobile Scanner. Setiap titik ikan yang didapat di pusat akan di-tag dengan

nomor ID yang dimulai dari 1 dan terus meningkat setiap Terminal mendapat

kiriman informasi titik ikan dari Mobile Scanner.

ƒ Ketika Mobile Scanner menerima titik ikan yang dikirim Terminal. Mobile Scanner akan membandingkan koordinat keberadaan dia sekarang dengan

koordinat titik ikan, kemudian menentukan arah yang harus dituju nelayan dan menampilkan informasi arah yang harus dituju tersebut ke nelayan. Informasi arah ini selalu diperbaharui setiap kali update dari GPS diterima

(6)

ƒ Jika nelayan berada dalam radius 15 meter dari titik ikan yang dituju, maka nelayan tersebut dinyatakan telah sampai, dan dapat memulai penangkapan ikan di sekitar lokasi tersebut. 15 meter adalah toleransi untuk menentukan bahwa nelayan telah sampai. Toleransi terlalu kecil akan menyebabkan kapal harus benar-benar tepat agar bisa dinyatakan sampai. Toleransi terlalu besar akan menyebabkan kapal nelayan belum begitu mendekati tujuan namun sudah dinyatakan sampai. 15 meter dipilih karena toleransi hasil baca GPS bisa mencapai kesalahan 15 meter.

ƒ Setelah menyimpulkan bahwa kapal telah sampai pada koordinat yang dituju,

Mobile Scanner akan memberikan pilihan kepada nelayan untuk meminta titik

ikan baru. Jika tombol Tidak ditekan, maka nelayan tersebut diberikan koordinat

Terminal (dianggap akan segera pulang). Jika Ya, titik ikan terdekat dari

keberadaan nelayan tersebut akan dikirimkan kepada nelayan itu, dan titik ikan yang telah dikunjungi tersebut dihapus dari Terminal.

ƒ Jika nelayan juga menggunakan FishFinder dan menemukan adanya ikan selama

perjalanannya ke titik ikan yang sudah ditentukan sebelumnya, nelayan tersebut dapat menggunakan Mobile Scanner untuk mengirimkan koordinat ikan yang

baru ditemukan tersebut ke pusat. Cara mengirimkan koordinat titik ikan tersebut sama dengan cara pada mode Scanner.

ƒ Mobile Scanner selalu (dalam interval tertentu) memberikan koordinat

keberadaannya ke pusat untuk tujuan tracking.

ƒ Titik ikan akan dihapus dari Terminal bila kedua syarat terpenuhi: kapal telah

(7)

ƒ Mobile Scanner hanya meminta titik ikan pada dua kondisi. Pertama adalah

ketika mode Nelayan dipilih. Kedua, ketika nelayan tersebut diberikan pilihan

untuk meminta titik ikan baru pada saat titik ikan tujuannya dinyatakan telah sampai.

ƒ Titik ikan dihapus dari Terminal ketika kapal meminta titik baru dengan asumsi

bahwa nelayan dianggap telah menangkap ikan di koordinat sebelumnya kemudian memilih untuk meminta titik baru, atau nelayan tidak menemukan adanya indikasi ikan di tempat tersebut lagi sehingga nelayan meminta titik ikan baru.

3.4 Perancangan

Pembangunan sistem ini melalui tahap perancangan, dimana diagram blok, diagram alir, dan rancang bangun sistem dibuat terlebih dahulu.

3.4.1 Mobile Scanner

Mobile Scanner adalah perangkat yang akan dibawa oleh pengguna untuk

melakukan pemindaian di perairan sekitar. Perangkat ini berfungsi untuk mengetahui posisi keberadaan pengguna di bumi, dan mengirimkan posisi tersebut beserta informasi lain sesuai dengan perintah dari pengguna tersebut yang dilayani melalui tombol keypad

yang tersedia.

Mobile Scanner akan dirancang untuk memiliki dua mode, yaitu sebagai

pemindai (mode Scanner) dan sebagai alat informasi bagi nelayan (mode Nelayan). Pada

(8)

Scanner akan standby sampai operator menekan tombol untuk mengirim titik ikan ke Terminal. Mobile Scanner juga akan mengirimkan titik keberadaannya kepada Terminal

setiap interval waktu 30 detik untuk proses tracking. Mode Nelayan memiliki semua

kemampuan mode Scanner, dan dengan tambahan kemampuan untuk meminta titik ikan

dari Terminal dan menampilkan informasi arah yang harus dituju. 3.4.1.1Diagram Blok

Diagram blok dari Mobile Scanner dapat dilihat sebagai berikut:

(9)

Penjelasan untuk setiap blok:

ƒ RF modem

RF modem digunakan untuk mengirimkan data ke darat. RF modem merupakan perangkat end-to-end yang memungkinkan komunikasi dari Mobile Scanner ke Terminal di darat.

ƒ Modul GPS

Modul GPS berfungsi sebagai penerima GPS dari satelit GPS. Modul GPS EG-T10 akan mengirimkan data waktu, lokasi, ketinggian, dan informasi lainnya keluar dari pin Tx setiap satu detik.

ƒ LCD display

LCD display berfungsi menampilkan berbagai informasi, antara lain: waktu pada

saat itu, kuat sinyal RF modem ke Terminal, posisi di bumi (derajat bujur dan

lintang), dan konfirmasi pengiriman informasi dengan kedalaman tertentu (jika tombol ditekan).

ƒ Keypad

Keypad terdiri dari beberapa tombol, yaitu 3 tombol pilihan untuk memasukkan

informasi kedalaman ikan, dan 2 tombol konfirmasi (Ya/Tidak).

ƒ Keseluruhan

Mobile Scanner adalah perangkat yang mengintegrasikan RF modem, modul

GPS, Push Button, dan LCD display. Perangkat ini mendapat informasi posisi

(10)

ke LCD display. Operator dapat menekan tombol pilihan kedalaman kemudian

menekan tombol konfirmasi Ya untuk mengirimkan koordinat lokasi operator tersebut, dan mikrokontroler akan mengirimkan beberapa informasi yang dimasukkan oleh operator ke Terminal di darat.

3.4.1.2Diagram Alir

Program utama:

Pada program utama, mikrokontroler melakukan inisialisasi. Proses-proses yang terjadi dalam tahap inisialisasi ini antara lain:

ƒ Pengaturan baud rate dan interrupt untuk UART, sistem menggunakan dua buah

port UART. Dimana UART0 dihubungkan dengan RF modem dan menggunakan

baud rate 9600bps, sedangkan UART1 dihubungkan dengan modul GPS dan

menggunakan baud rate 4800bps. UART0 berfungsi untuk menerima dan

mengirim data dari dan ke RF modem, maka Tx dan Rx beserta interrupt-nya

perlu diaktifkan. UART1 berfungsi untuk menerima data dari modul GPS, maka Rx dan interruptnya perlu diaktifkan.

ƒ Pengaturan timer, sistem menggunakan 2 buah timer 8 bit yaitu TIMER0 dan

TIMER2. TIMER0 berfungsi untuk mengatur interval pengiriman informasi lokasi kapal ke Terminal, sedangkan TIMER2 berfungsi untuk mengatur interval

pengiriman ulang bila terjadi kegagalan pengiriman informasi sebelumnya. Secara default, TIMER0 diset 30 detik sedangkan TIMER2 diset 0.5 detik.

ƒ Pengaturan external interrupt,interrupt eksternal yang digunakan sistem adalah interrupt jenis Pin Change. Interrupt ini diset pada port C0 hingga C4. Bila

(11)

terjadi perubahan logika pada pin-pin ini, maka interrupt akan dipicu. External interrupt ini digunakan untuk mengatur tombol.

ƒ Inisialisasi variabel-variabel yang akan digunakan.

ƒ Inisialisasi LCD, berupa ukuran huruf yang ditampilkan, jenis pergerakan cursor,

dan jumlah baris tampilan.

start Inisilaisasi* Check data GPS Apakah sudah valid? Kirim posisi pusat dan cetak pilih mode pada LCD Y T Mode Apa? Mode 1 Mode 2 Event Loop Tombol 1 Tombol 2 Input Tombol Dari User F F

Gambar 3.3 Diagram alir utama Mobile Scanner

Setelah proses inisialisasi, mikrokontroler akan memeriksa apakah inputan dari GPS telah valid. Bila inputan telah valid, TPF (Terminal Position Fix) akan segera

dikirimkan ke Terminal. Kemudian mikrokontroler akan menunggu masukan dari

(12)

pertama akan membuat Mobile Scanner masuk ke mode Nelayan, dan tombol kedua

akan masuk ke mode Scanner. Ketika mode ini sudah dipilih, mikrokontroler tidak akan

menjalankan program utama lagi, melainkan masuk ke sub-program. Untuk berpindah mode pengguna harus melakukan reset ke Mobile Scanner ataupun mematikan

kemudian menghidupkannya kembali. Rancangan tampilan untuk program utama:

Ga mbar 3.4 Tampilan layar pemilihan mode

Sub-program untuk mode Nelayan:

Setelah memasuki Mode 1 atau Mode Nelayan, Mobile Scanner akan secara

otomatis menjalankan sub-rutin minta titik ikan yang berfungsi untuk mengirimkan permintaan titik ikan ke Terminal. Setelah permintaan titik ikan dikirimkan dan

informasi titik ikan telah diterima dari Terminal maka mikrokontroler akan segera

memeriksa koordinat sekarang dari GPS dan melakukan kalkulasi untuk menentukan arah yang akan dituju dan perkiraan jarak ke titik ikan tersebut. Hasil kalkulasi dan arah yang telah diperoleh akan ditampilkan pada layar LCD untuk menuntun nelayan ke titik ikan tersebut. Selanjutnya mikrokontroler akan memeriksa apakah waktu update telah

(13)

G ambar 3.5 Sub-program mode Nelayan

• Bila waktu update telah tiba, sub-rutin Kirim Informasi Lokasi Kapal Ke

Terminal (LLK) akan dijalankan. Setelah itu mikrokontroler akan kembali mengambil lokasi sekarang dari GPS dan melakukan kalkulasi jarak dan arah serta menampilkannya pada layar LCD seperti yang dilakukan sebelumnya.

(14)

• Bila waktu update belum tiba, mikrokontroler akan segera melanjutkan alur

program selanjutnya yakni memeriksa apakah ada inputan tombol dari pengguna.

MobileScanner memeriksa apakah terdapat inputan tombol. Jika MobileScanner

memperoleh inputan tombol, maka inputan tombol tersebut akan diperiksa. Adapun diagram alirnya adalah sebagai berikut:

Gambar 3.6 Sub-rutin pilih tombol pada mode Nelayan

Bila tombol satu ditekan maka string kedalaman “01-10m” akan dimasukkan

kedalam paket data informasi titik ikan yang akan dikirimkan, bila tombol dua ditekan maka string kedalaman “11-20m” yang dimasukkan, bila tombol tiga ditekan maka string kedalaman “21-30m” yang dimasukkan. Setelah salah satu dari ketiga tombol ini

(15)

ditekan, LCD akan menampilkan informasi titik yang akan dikirimkan (dalam lintang dan bujur) serta pertanyaan konfirmasi pengiriman yang hanya bisa dijawab dengan tombol empat dan lima. Penekanan ketiga tombol ini menggunakan sistem overwrite

dimana satu tombol akan meng-overwrite tombol lainnya. Contohnya bila tombol satu

ditekan dan kemudian pengguna menekan tombol tiga, maka string yang akan

dimasukkan adalah string kedalaman “21-30m” bukan “01-10m”. Tombol empat dan

tombol lima hanya akan berfungsi bila tombol satu hingga tiga telah ditekan sebelumnya. Tombol empat berfungsi untuk memanggil sub-rutin yang akan mengirimkan titik ikan, sedangkan tombol lima berfungsi untuk menghapus string

kedalaman yang telah dimasukkan sebelumnya dan kembali ke layar penuntun kapal. Jika ternyata Mobile Scanner tidak memperoleh input tombol dari pengguna,

maka Mobile Scanner akan memeriksa apakah tujuan telah tercapai dengan

membandingkan titik sekarang dengan titik ikan yang diperoleh dari Terminal. Bila

kapal telah tiba pada lokasi titik ikan yang dituju, pada layar LCD akan ditampilkan pesan bahwa tujuan telah sampai dan pertanyaan apakah ingin meminta titik baru. Bila tombol empat yang ditekan maka Mobile Scanner akan meminta titik ikan baru ke Terminal, namun bila tombol lima yang ditekan maka Mobile Scanner akan meminta

titik koordinat Terminal ke Terminal. Selanjutnya proses penuntunan akan berulang

kembali dengan titik tujuan yang baru. Diagram alir sub-rutin untuk melakukan permintaan titik Terminal dan titik ikan dari Terminal dapat dilihat pada Gambar 3.7.

(16)

Gambar 3.7 Sub-rutin minta titik terminal dan titik ikan pada mode Nelayan

Sub-rutin minta titik terminal dan minta titik ikan pada dasarnya hampir mirip satu sama lain, yang membedakannya hanyalah tipe paket yang digunakan, dimana minta titik ikan menggunakan PTI sementara minta titik terminal menggunakan PTT. Pengiriman PTI maupun PTT mempunyai retry yang tak terhingga karena pengiriman

ini bersifat krusial dan sangat penting. Tanpa titik ikan ataupun titik Terminal yang

diterima dari Terminal, Mobile Scanner tidak dapat melakukan penuntunan kapal

nelayan, oleh karena itu maka retry untuk PTT dan PTI diberikan tak terhingga. Interval

(17)

akan berhenti bila Terminal telah mengirimkan acknowledgement. Pada kondisi ini Mobile Scanner menunggu titik ikan maupun titik Terminal yang akan dikirimkan oleh Terminal.

Gambar 3.8 Sub-rutin kirim LTI dan kirim LLK pada mode Nelayan

Pengiriman informasi titik ikan (LTI) merupakan pengiriman yang diinput oleh pengguna, sedangkan pengiriman informasi titik kapal (LLK) atau disebut juga dengan

update posisi merupakan pengiriman yang dipicu oleh update timer. Pengiriman LTI

maupun LLK sama-sama mempunyai retry 3 kali. Artinya bila terjadi kegagalan dalam

pengiriman LTI atau LLK maka akan dilakukan pengiriman ulang hingga sebanyak tiga kali. Bila setelah pengiriman ulang ketiga kali pengiriman masih juga gagal dilakukan maka Mobile Scanner akan berhenti mencoba mengirim dan menganggap data gagal

(18)

dikirim serta melanjutkan alur jalannya program. Ketika terjadi kegagalan pengiriman pada LTI, Mobile Scanner akan menampilkan pesan gagal mengirim pada layar LCD,

namun pada LLK pesan sejenis tidak akan ditampilkan pada layar LCD. Interval dari masing-masing pengiriman ulang bila terjadi kegagalan pengiriman adalah 0.5 detik.

Sub-program untuk mode Scanner

(19)

Ga mbar 3.10 Rancangan layar Mobile Scanner pada mode Nelayan

Mode 2 atau Mode Scanner merupakan mode operasi yang digunakan oleh kapal Scanner untuk mencari titik ikan dan mengirimkan informasinya ke Terminal. Ketika

(20)

sekarang berdasarkan posisi lintang dan bujurnya serta waktu sekarang (GMT+7) pada LCD. Mikrokontroler akan memeriksa waktu update, bila waktu update telah tiba, maka

sub-rutin kirim informasi lokasi kapal ke Terminal (LLK) akan dijalankan. Bila waktu update belum tiba maka mikrokontroler akan melanjutkan memeriksa inputan tombol

dari pengguna. Jika terdapat inputan tombol maka jenis tombol akan diperiksa.

• Jika tombol satu ditekan maka string kedalaman “01-10m” akan dirangkai ke

dalam paket data LTI yang akan dikirimkan. Pertanyaan konfirmasi pengiriman akan ditampilkan pada LCD.

• Jika tombol dua ditekan maka string kedalaman “11-20m” akan dirangkai ke

dalam paket data LTI yang akan dikirimkan. Pertanyaan konfirmasi pengiriman akan ditampilkan pada LCD.

• Jika tombol tiga ditekan maka string kedalaman “21-30m” akan dirangkai ke

dalam paket data LTI yang akan dikirimkan. Pertanyaan konfirmasi pengiriman akan ditampilkan pada LCD.

• Jika tombol empat ditekan maka paket data LTI yang telah dirangkai dengan

string kedalaman akan dikirimkan ke Terminal. Tombol empat hanya akan

berfungsi bila tombol satu, dua atau tiga telah ditekan sebelumnya.

• Jika tombol lima ditekan maka string kedalaman yang telah dirangkai kedalam

paket data LTI sebelumnya akan dihapus dan LCD akan kembali ke tampilan sebelumnya yakni tampilan lokasi kapal dan waktu sekarang. Tombol ini hanya berfungsi bila salah satu dari ketiga tombol kedalaman telah ditekan sebelumnya.

(21)

Penekanan ketiga tombol ini menggunakan sistem overwrite dimana satu tombol

akan meng-overwrite tombol lainnya. Contohnya bila tombol satu ditekan dan kemudian

pengguna menekan tombol tiga, maka string yang akan dimasukkan adalah string

kedalaman “21-30m” bukan “01-10m”.

Diagram alir sub-rutin pengiriman titik ikan dan update kapal adalah sebagai

berikut:

Gambar 3.11 Sub-rutin mengirim informasi lokasi ikan dan kapal mode Scanner

Pengiriman titik ikan dan update kapal pada mode Scanner ini sebenarnya sama

(22)

membedakannya hanyalah tampilan pada LCD Mobile Scanner. Tampilan pada mode Nelayan akan berupa arah dan jarak menuju titik ikan, sedangkan pada mode Scanner

berupa koordinat titik dan waktu sekarang. Pengiriman informasi titik ikan (LTI) merupakan pengiriman yang diinput oleh pengguna, sedangkan pengiriman informasi titik kapal (LLK) atau disebut juga dengan update posisi merupakan pengiriman yang

dipicu oleh update timer. Pengiriman LTI maupun LLK sama-sama mempunyai retry 3

kali. Artinya bila terjadi kegagalan dalam pengiriman LTI atau LLK maka akan dilakukan pengiriman ulang hingga sebanyak tiga kali. Bila setelah pengiriman ulang ketiga kali pengiriman masih juga gagal dilakukan maka Mobile Scanner akan berhenti

mencoba mengirim dan menganggap data gagal dikirim serta melanjutkan alur jalannya program. Ketika terjadi kegagalan pengiriman pada LTI, Mobile Scanner akan

menampilkan pesan gagal mengirim pada layar LCD, namun pada LLK pesan sejenis tidak akan ditampilkan pada layar LCD. Interval dari masing-masing pengiriman ulang bila terjadi kegagalan pengiriman adalah 0.5 detik.

(23)

Gambar 3.12 Rancangan layar Mobile Scanner pada mode Scanner

3.4.1.3Rancang Bangun

ƒ Keypad

Keypad terdiri dari berbagai tombol, yaitu pilihan kedalaman, dan konfirmasi

untuk pengiriman.

(24)

Pengguna dapat memberikan perintah kepada Mobile Scanner lewat

tombol-tombol tersebut.

ƒ Rancang Bangun Keseluruhan

Gambar 3.14 Rancang bangun Mobile Scanner

3.4.2 Terminal

Terminal adalah sebuah perangkat lunak yang berjalan pada Personal Computer

(PC) dengan perangkat RF modem terintegrasi untuk berkomunikasi dengan Mobile Scanner. Beberapa fungsinya adalah:

(25)

ƒ Menerima data yang dikirim oleh Mobile Scanner dan memprosesnya. Hasil

proses ini antara lain untuk menampilkan titik ikan di peta pada layar monitor.

ƒ Mengirimkan data koordinat titik ikan tujuan kepada Mobile Scanner bila Mobile Scanner meminta.

3.4.2.1Diagram Blok

Gambar 3.15 Diagram blok Terminal

Pada Terminal, digunakan PC dan RF modem sebagai perangkat komunikasi

dengan Mobile Scanner. Antarmuka PC dengan RF modem menggunakan komunikasi

serial RS-232 pada PC.

3.4.2.2Diagram Alir

Diagram alir untuk program pada PC yang menangani tampilan pada monitor dan melayani Mobile Scanner.

(26)

Gambar 3.16 Program utama Terminal

Ketika program dijalankan, maka program tersebut akan memasuki tahap inisialisasi terlebih dahulu. Beberapa hal yang dilakukan dalam proses inisialisasi ini antara lain:

ƒ Setup GUI. Menggambar window sesuai dengan yang diinginkan, seperti window

utama, toolbar, dan kotak info. Grid pada peta juga digambar pada tahap ini. Zoom peta diberikan nilai awal 100%.

(27)

ƒ Setup Timer. Terdapat dua Timer yang digunakan pada program utama, yaitu Timer 1 untuk melakukan rutinitas pengecekan buffer di serial port dan

mengambil data dari sana, dan Timer 2 untuk mengecek antrian string yang perlu

di-ACK oleh penerima.

ƒ Setup variabel penting lainnya, dan instantiasi objek yang diperlukan. Contoh

variabel yang diset pada waktu inisialisasi adalah variabel-variabel yang menampung nilai default seperti waktu timeout titik ikan, flag yang menandakan

posisi Terminal sudah diset (dikalibrasi) atau belum, dan lain-lain. Contoh objek

yang diinstantiasi adalah objek untuk melakukan koneksi ke serial port dengan pengaturannya yang disesuaikan dengan kebutuhan, objek yang berhubungan dengan window, dan objek-objek lain yang diperlukan.

Setelah dilakukan inisialisasi program melanjutkan ke setting serial port yang

diperlukan dari input user, yaitu nomor serial port yang akan digunakan. Program akan

memunculkan sebuah dialog box yang berisi daftar nomor serial port yang mungkin

dipilih, dan user cukup memilih dari combo box yang disediakan dan menekan tombol OK. Jika OK ditekan, maka program akan mengecek keberadaan RF modem di nomor

serial port yang dipilih oleh user. Cara untuk mengecek keberadaan RF modem di serial

port tertentu adalah dengan mengirimkan string ‘+++’ ke serial port tersebut dan

mendengarkan balasan dari RF modem berupa string ‘OK’. Jika balasan diterima dalam

waktu 1 detik, maka terdapat RF modem di serial port tersebut. Jika terdapat RF modem pada nomor serial port yang dipilih, maka program akan lanjut ke program utama

Terminal. Jika tombol Cancel ditekan, maka user diasumsikan telah mengetahui bahwa

(28)

Setelah proses ini selesai, maka program akan melanjutkan ke program utamanya. Sebelum masuk ke program utamanya, timer 1 dan 2 akan di-start, dimana

akan dimulai pengecekan serial port. Timer 1 (TIMER1) diset untuk firing setiap 1ms,

sedangkan timer 2 (TIMER2) cukup firing setiap 100ms supaya tidak memberatkan

sistem.

Ketika timer 1 melakukan firing, maka program akan mengecek serial port. Pada

inisialisasi program, telah dibuat sebuah variabel boolean lagiAmbil yang bernilai awal False. Variabel ini yang menandakan sebuah paket data sedang diambil atau tidak. Jika mendapat karakter ‘#’ (awal dari sebuah paket data/sentence) dari serial port, maka variabel ini akan diset True. Variabel ini akan diset False jika karakter <LF> atau <CR>

ditemukan. Variabel ini yang menentukan apakah karakter dari serial port tersebut merupakan karakter yang merupakan bagian dari sebuah paket data.

Dari diagram alir (Gambar 3.17) dapat dilihat bahwa bila tidak lagiAmbil, maka akan dicek apakah karakter yang didapat dari serial port tersebut merupakan karakter ‘#’. Jika ya, maka lagiAmbil diset menjadi True, dan variabel string

sentence untuk menampung paket data tersebut akan di-clear untuk bersiap

menampung paket data baru. Kemudian karakter ‘#’ ini dimasukkan ke dalam variabel sentence ini. Ketika lagiAmbil sudah diset menjadi True, maka setiap kali

mengecek serial port dan menemukan adanya karakter yang menunggu, maka karakter tersebut akan diambil dan dimasukkan ke dalam variabel string sentence ini sampai menemukan karakter <LF>. Jika karakter ini ditemukan, maka sebuah paket data telah selesai diambil dan jalan program akan dialihkan ke acknowledgment paket dan parsing

(29)
(30)

Gambar 3.18 Sub-rutin parsing

Parsing paket data tersebut dimulai dari menentukan jenis paket data tersebut,

kemudian melakukan parsing sesuai dengan paket data tersebut. Jenis-jenis paket data

yang ada, yaitu Informasi lokasi keberadaan kapal (LLK), Informasi koordinat keberadaan titik ikan (KTI), Informasi kalibrasi koordinat titik terminal (TPF), Permintaan titik ikan (PTI), Permintaan titik terminal (PTT), dan paket ACK. Tiga paket data yang identik untuk 5 field pertamanya adalah LLK, KTI, dan TPF. Lima field

utamanya adalah Waktu, Derajat Lintang, Utara/Selatan, Derajat Bujur, Barat/Timur. Ketiga paket ini dibuat identik untuk memudahkan proses parsing dimana cukup dibuat

(31)

Gambar 3.19 Sub-rutin yang dipanggil setelah proses parsing selesai

Dalam program Terminal terdapat beberapa container class yang digunakan

untuk menampung berbagai kumpulan objek dengan kelas yang sama. Container class

ini disediakan oleh Qt dengan nama kelas QList. Dari kelas ini dapat dibuat objek

container untuk menampung berbagai objek lain, seperti titik-titik kapal, titik-titik ikan,

dan daftar antrian string yang harus di-ACK. Sebuah objek container digunakan untuk

menampung beberapa objek dari sebuah kelas. Syarat dari kelas objek tersebut agar objek tersebut dapat ditampung dalam container ini adalah kelas tersebut harus

(32)

mempunyai copy constructor, default constructor, dan overload operator assignment

(=).

Daftar titik kapal adalah sebuah objek dari container class QList yang

diinstantiasi untuk menampung objek titik kapal. Beberapa daftar lain adalah daftar titik ikan, dimana adalah objek dari QList yang diinstantiasi untuk menampung objek titik ikan, dan daftar antrian string ACK, dimana adalah objek dari QList yang diinstantiasi

untuk menampung objek string dari kelas QString.

Bila mendapat sentence LLK dari Mobile Scanner, maka Terminal akan

melakukan update titik kapal yang ada dalam daftar titik kapal yang dimiliki oleh Terminal. Update ini dilakukan dengan jalan sebagai berikut:

ƒ Jika daftar titik kapal kosong (belum ada satupun kapal yang dikandung oleh daftar titik kapal), maka titik kapal tersebut langsung dimasukkan ke dalam daftar titik kapal.

ƒ Jika sudah ada titik kapal di dalam daftar titik kapal, maka lakukan pencarian apakah ada kapal dengan ID yang sama dengan kapal yang hendak dimasukkan tersebut. Bila ada, maka kapal yang IDnya sama tersebut dibuang dari daftar dan kapal yang hendak dimasukkan tersebut dimasukkan ke dalam daftar. Bila tidak ada kapal yang IDnya sama, maka masukkan kapal tersebut ke dalam daftar kapal.

Bila mendapat sentence KTI, maka Terminal akan menambahkannya ke dalam

daftar titik ikan. Kemudian setelah itu melakukan update peta untuk menampilkan ikan

(33)

Gambar 3.20 Sub-rutin untuk meng-update posisi Terminal

Sentence TPF dikirimkan oleh Mobile Scanner pada saat Mobile Scanner

tersebut selesai melakukan inisialisasi dan hasil baca dari GPS sudah benar. Sentence ini

digunakan untuk kalibrasi pertama kali pada Terminal. Terminal akan mengasumsikan

bahwa posisi dia pada saat menerima sentence TPF merupakan isi dari sentence TPF

tersebut. Sebagai implikasinya, Mobile Scanner pertama yang akan dihidupkan harus

berada di dekat Terminal, sehingga posisi mereka sama. Terminal hanya akan meng-update posisi dan waktunya sekali setelah Terminal dijalankan. Bila menerima sentence

(34)

Gambar 3.21 Sub-rutin untuk mengecek antrian string yang perlu di-ACK

Untuk mekanisme Acknowledgment, maka setiap akhir dari sebuah paket data

selalu diberikan sebuah sequence number. Sequence number ini nantinya akan

digunakan oleh penerima untuk membuat sebuah paket ACK untuk memberitahukan kepada pengirim bahwa paket data dengan sequencenumber tersebut berhasil diterima.

Terminal dapat berperan sebagai penerima maupun pengirim. Pada saat Terminal

telah mengirimkan sebuah sentence, Terminal akan memasukkan sentence tersebut ke

dalam antrian sentence yang perlu di-ACK. Antrian sentence ini akan dicek setiap

100ms. Apabila terdapat sebuah sentence yang telah menunggu selama 500ms (0,5s)

(35)

dengan waktu kirim terakhir dan jumlah retry. Sebuah sentence dalam daftar sentence

juga dapat dihapus bila Terminal menerima ACK dengan ACK number sesuai dengan

nomor ACK-nya.

3.4.2.3Rancang Bangun

Gambar 3.22 Rancangan Graphical User Interface dari Terminal

Gambar di atas merupakan rancangan tampilan dari program Terminal. Program

(36)

3.4.3 Protokol Komunikasi Terminal dengan Mobile Scanner

Untuk memungkinkan Terminal dan Mobile Scanner dapat bertukar data, maka

protokol komunikasi keduanya perlu didefinisikan. Protokol komunikasi ini berada pada

layer Application. Protokol komunikasi layer Physical dan Data Link diatur oleh RF

modem. Untuk memungkinkan komunikasi Terminal dengan banyak Mobile Scanner,

RF modem pada Terminal perlu dikonfigurasi untuk bekerja pada mode point-to-multipoint.

Format data yang dirancang sekarang ini mirip dengan paket data NMEA, namun dengan jumlah karakter tipe paket yang lebih pendek, yaitu 3 karakter. Format umumnya:

Gambar 3.23 Format umum protokol komunikasi Mobile Scanner dan Terminal

Berikut adalah beberapa jenis paket data (sentence) yang diperlukan dalam

komunikasi antara Terminal dan Mobile Scanner.

a. Lokasi Keberadaan Kapal

Sentence yg dikirimkan dari Mobile Scanner ke Terminal untuk memberitahukan Terminal update posisinya.

(37)

Gambar 3.24 Format sentence Lokasi Keberadaan Kapal

1) Waktu di Mobile Scanner pada saat data dikirimkan

2) Derajat lintang posisi kapal 3) N atau S (utara atau selatan) 4) Derajat bujur posisi kapal 5) E atau W (timur atau barat) 6) ID kapal yang mengirim 7) ACK Number

Derajat lintang dan bujur dalam format DM.

b. Posisi Terminal

Sentence yg dikirimkan dari Mobile Scanner ke Terminal pada saat inisialisasi.

Berisi posisi Mobile Scanner. Tujuan dari sentence ini adalah untuk memberitahukan Terminal posisinya. Oleh karena itu, Mobile Scanner harus berada tepat di atas Terminal supaya posisi Mobile Scanner juga merupakan posisi Terminal.

Gambar 3.25 Format sentence Posisi Fix Terminal

1 2 3 4 5 6 7 | | | | | | | #TPF,hhmmss.sss,ddmm.mmmm,a,dddmm.mmmm,a,xxxx*xx<CR><LF> 1 2 3 4 5 6 7 | | | | | | | #LLK,hhmmss.sss,ddmm.mmmm,a,dddmm.mmmm,a,xxxx*xx<CR><LF>

(38)

1) Waktu di Mobile Scanner pada saat data dikirimkan

2) Derajat lintang posisi terminal 3) N atau S

4) Derajat bujur posisi terminal 5) E atau W

6) ID kapal yang mengirim 7) ACK Number

Derajat lintang dan bujur dalam format DM.

c. Lokasi Titik Ikan

Sentence yg dikirimkan dari Mobile Scanner ke Terminal ketika diminta oleh

operator. Sentence ini memberitahukan kepada Terminal bahwa pada suatu lokasi

terdapat ikan.

Gambar 3.26 Format sentence Lokasi Titik Ikan

1) Waktu di Mobile Scanner pada saat data dikirimkan

2) Derajat lintang posisi ikan 3) N atau S

4) Derajat bujur posisi ikan 5) E atau W

1 2 3 4 5 6 7 8 | | | | | | | |

(39)

6) ID kapal yang mengirim 7) Kedalaman ikan

8) ACK Number

Derajat lintang dan bujur dalam format DM.

d. Permintaan Titik Ikan

Sentence yang dikirimkan oleh Mobile Scanner ke Terminal pertama kali

sewaktu Mobile Scanner masuk mode Nelayan dan pada saat tombol “Ya” ditekan

ketika Mobile Scanner menanyakan pengguna apakah ingin meminta titik ikan baru.

Gambar 3.27 Format sentence Permintaan Titik Ikan

1) ID kapal 2) ACK Number

e. Permintaan Titik Terminal

Sentence yang dikirimkan oleh Mobile Scanner ke Terminal ketika user menekan

tombol “Tidak” pada saat mencapai lokasi titik ikan (pada saat tersebut nelayan diberikan pilihan untuk meminta titik ikan yang baru atau tidak). Jika tombol “Ya” ditekan, maka PTI yang dikirimkan Mobile Scanner.

1 2 | |

(40)

Gambar 3.28 Format sentence Permintaan Titik Terminal

1) ID kapal 2) ACK Number

f. Koordinat Titik Ikan

Sentence yang dikirimkan oleh Terminal ke Mobile Scanner ketika mendapatkan sentence PTI.

Gambar 3.29 Format sentence Koordinat Titik Ikan

1) Derajat lintang titik ikan 2) N atau S

3) Derajat bujur titik ikan 4) E atau W

5) ID kapal yang meminta 6) Kedalaman ikan 1 2 | | #PTT,xxxx*xx<CR><LF > 1 2 3 4 5 6 7 | | | | | | | #KTI,dd.ddddd,a,ddd.ddddd,a,xxxx,xxxxx*xx<CR><LF>

(41)

7) ACK Number

Derajat lintang dan bujur dalam format D.

g. Koordinat Titik Terminal

Sentence yang dikirimkan oleh Terminal ke Mobile Scanner ketika mendapatkan sentence PTT

Gambar 3.30 Format sentence Koordinat Titik Terminal

1) Derajat lintang titik terminal 2) N atau S

3) Derajat bujur titik terminal 4) E atau W

5) ID kapal yang meminta 6) ACK Number

Derajat lintang dan bujur dalam format D.

h. Acknowledgment

Sentence yang dikirimkan baik oleh Terminal maupun Mobile Scanner setelah

selesai menerima sebuah sentence selain sentence ACK.

1 2 3 4 5 6 | | | | | | #KTT,dd.ddddd,a,ddd.ddddd,a,xxxx*xx<CR><LF>

(42)

Gambar 3.31 Format sentenceAcknowledgment

1) sequence number (ACK Number) dari sentence yang diterima

3.4.4 Interval Update Lokasi Mobile Scanner ke Terminal

Sistem ini diharapkan untuk dapat melayani 10 hingga 30 Mobile Scanner secara

serentak. Diasumsikan setiap Mobile Scanner cukup diberikan waktu 1 detik untuk

mengirimkan titik keberadaannya, dan informasi lainnya seperti titik ikan bila ada. Dari referensi datasheet 24XStream, untuk mengirimkan data diperlukan beberapa waktu

sebagai berikut:

Keterangan Waktu(ms)

ChannelInitializationTime 35.00 Data In ke modem pengirim

50byte, 9600bps 41.67

Data out dari modem

penerima 50byte, 9600bps 41.67

Latensi pengiriman data

lewat RF 82.77

Total 201.10

Tabel 3.1 Perhitungan lama waktu pengiriman 50 byte data

Untuk data sepanjang 50 byte (panjang paket data update), dibutuhkan sekitar

201.1 ms untuk dikirimkan dari pengirim ke penerima. Kesempatan untuk mengirim dengan waktu 1000ms diberikan kepada setiap Mobile Scanner. Bila dibandingkan

dengan waktu yang dibutuhkan untuk mengirimkan update keberadaannya, maka setiap

1 |

(43)

Mobile Scanner masih memiliki banyak waktu untuk mengirimkan data lain jika

diperlukan. Untuk maksimum 30 Mobile Scanner dengan waktu 1 detik untuk setiap Mobile Scanner, maka setiap Mobile Scanner akan diset interval untuk memberikan update setiap 30 detik. Sebelum mengirim data, RF modem memiliki mekanisme sendiri

untuk menghindari tabrakan data yang mengakibatkan interferensi, dan akan menunggu sampai tidak ada yang mengirim baru kemudian melakukan inisialisasi dengan penerima.

3.4.5 Implementasi Koordinat Geografis dalam Program Terminal

Dalam program, nilai koordinat geografis lebih mudah disimpan dalam format D, karena dengan format ini cukup menggunakan sebuah variabel Double untuk

menyimpan masing-masing koordinat lintang dan koordinat bujur. Qt juga menyediakan sebuah kelas QPointF yang dapat menyimpan koordinat dua dimensi dalam variabel

Double. Kelas ini sebenarnya disediakan Qt untuk keperluan painting di widget. Namun

karena sifatnya juga adalah koordinat, maka dapat digunakan untuk menyimpan informasi koordinat geografis sebuah titik. QPointF tidak dirancang untuk menyimpan nilai LU/LS dan BB/BT. Namun karena tipe data Double memungkinkan nilai minus,

maka koordinat geografis dapat disesuaikan dengan mengkonversi lagi format D ini menjadi koordinat dua dimensi Kartesian, dimana bila LS maka nilai derajat lintang menjadi minus begitu juga bila BB maka derajat bujur menjadi minus.

(44)

Gambar 3.32 Representasi koordinat geografis ke dalam koordinat Kartesian

Konversi ke dalam derajat Kartesian memberikan beberapa kemudahan dalam proses di dalam komputer. Program Terminal akan menggambarkan setiap titik ikan dan

titik kapal ke peta dengan menggunakan koordinat Terminal sebagai acuan. Setiap titik

ikan dan titik kapal akan digambarkan relatif dengan berapa jauhnya dia dari Terminal,

jarak sebenarnya sebuah titik dengan Terminal kemudian dikonversi ke dalam jarak

dengan satuan pixel. Konversi ini melibatkan perhitungan resolusi peta. Resolusi peta

didefinisikan sebagai satuan jarak sebenarnya yang diwakili oleh setiap pixel di peta

pada PC.

3.4.6 Resolusi Peta

Teknik pemetaan yang digunakan dalam pemetaan berbagai titik ikan/kapal dan peta ini adalah teknik raster. Setiap pixel dari peta ini mengandung berbagai nilai, antara

(45)

sebenarnya di permukaan bumi. Pixel-pixel ini mewakili keadaan bumi yang

sebenarnya, seperti warna dan luas. Sebuah area di laut bisa diwakili oleh sebuah pixel

yang berwarna biru, dan pixel tersebut mewakili panjang dan lebar tertentu area laut

yang diwakilinya tersebut. Misalkan sebuah pixel mewakili sebuah area 0,5x0,5 meter2,

maka resolusi peta tersebut dikatakan 0,5 meter/pixel.

Dalam perancangan program Terminal, peta yang ditampilkan juga dibuat untuk

dapat melakukan zooming. Fasilitas zooming akan membuat resolusi peta tidak tetap.

Sebuah rumusan ditetapkan di dalam perancangan, di mana pada zoom 100%, setiap pixel mewakili 1/10000 dari satu derajat.

Bila satu derajat adalah sekitar 111.23 km, maka satu pixel mewakili sekitar

meter 123 , 11 % 100 1 10000 m 111230 =

× . Ini adalah resolusi peta untuk zoom 100%. Bila zoom

peta 25%, maka satu pixel mewakili 44,492meter

% 25 1 10000 m 111230 = × .

3.4.7 Error Konversi Selisih Koordinat ke Satuan Jarak

Satu derajat lintang mewakili 111,1329 km, sedangkan satu derajat bujur di khatuslitiwa mewakili 111,3195 km. Dalam perancangan ini, baik untuk derajat lintang maupun derajat bujur di lintang manapun, akan dianggap setiap derajat mewakili

= + 2 3195 , 111 1329 , 111

111,23 km. Hal demikian dilakukan untuk simplifikasi perhitungan pada sistem, karena beberapa pertimbangan, yaitu:

(46)

Library yang tersedia untuk melakukan perhitungan trigonometri di

mikrokontroler menghasilkan error perhitungan yang cukup tinggi, mengingat

mikrokontroler 8-bit yang digunakan memiliki keterbatasan perhitungan floating point.

• Sistem tidak mengandalkan perhitungan jarak dalam satuan metrik. Mobile Scanner membandingkan jarak dalam selisih derajat koordinat untuk

menyimpulkan sampai tidaknya kapal ke tujuan. Terminal melayani Mobile Scanner dengan menerima dan mengirim berbagai informasi dalam derajat

koordinat.

Namun simplifikasi ini akan mengakibatkan beberapa hal, yaitu:

• Penggambaran peta pada Terminal akan terjadi penyimpangan karena untuk

setiap derajat lintang, satu derajat bujur diwakili panjang dalam metrik yang berbeda-beda.

Mobile Scanner akan menampilkan hasil perhitungan jarak ke koordinat tujuan

yang kurang tepat.

Akibat-akibat yang ditimbulkan oleh simplifikasi ini dapat ditekan seminimal mungkin dengan mengoperasikan alat di daerah ±15° dari garis khatulistiwa. Pada lintang utara/selatan 15°, satu derajat bujur akan mewakili

111,3195km/drjt x cos(15°) = 107,53 km/drjt. Selisih dari nilai jarak per derajat bujur di ekuator adalah:

(47)

Perhitungan menunjukkan bahwa bila simplifikasi memungkinkan kesalahan maksimal yang dapat dibuat oleh sistem sebesar selisih 3,7 km untuk setiap derajat, yang setara dengan selisih 3,7 / 60 = 61,7 meter untuk setiap menit (1 derajat = 60 menit = 3600 detik).

3.4.8 Parsing Paket Data

Parsing, dengan istilah lain berupa syntax analysis, adalah proses menganalisa

serangkaian token dari sebuah teks/data untuk menentukan struktur gramatikalnya

dengan berdasarkan formal grammar tertentu. (Anonim, 2007). Token adalah elemen

terkecil yang tidak dapat dipisah dan memiliki arti tersendiri. Parsing biasanya akan

menghasilkan parse tree berisi hubungan antar token yang akan diproses kemudian

melalui semanticanalysis.

Dalam perancangan ini, parsing akan diterapkan ke paket data/sentence untuk

mengambil token-tokennya. Kemudian ditentukan dengan melihat dari tipe paket data

tersebut, token-token akan diproses lebih lanjut menjadi sebuah objek di dalam program,

atau sebagai perintah bagi program untuk melakukan sesuatu.

Aturan-aturan (rule) untuk melakukan parsing akan didefinisikan sebagai

berikut:

• Sebuah paket diawali dengan tanda pagar “ # “

• Tiga karakter setelah awal paket akan berisi nilai tipe paket.

(48)

Field data terakhir akan diikuti oleh tanda asterisk “ * “

• Dua karakter setelah tanda asterisk adalah ACK number.

• Paket data diakhiri dengan <CR> dan <LF>.

Ketika sebuah paket data telah selesai diterima, yaitu jika ditemukan karakter <CR> dan <LF>, maka penerima akan meng-ACK paket tersebut dan proses parsing

dimulai. Proses ini terlebih dahulu mengambil tiga karakter pertama setelah tanda “#“ untuk melihat tipe data apakah sebuah paket. Setelah tipe data diketahui, maka program akan melakukan percabangan ke kode parser tertentu yang sesuai dengan tipe data.

Untuk tipe data selain ACK, kode parser kemudian melakukan iterasi untuk mengecek

setiap karakter dari paket data tersebut untuk mendapatkan karakter “,“ yang merupakan awal dari sebuah token. Setelah semua token selesai, program akan menentukan

selanjutnya apa yang harus dikerjakan.

Dalam perancangan ini, parsing tidak akan menghasilkan parse tree seperti parsing pada compiler. Parsing dalam perancangan ini akan memberikan output data

maupun perintah yang diperlukan program untuk jalannya sistem ini.

3.4.9 Penggambaran Peta

Pemrograman Qt memungkinkan kelas QWidget untuk digambar oleh

programmer dengan mengimplementasi ulang fungsi:

(49)

Fungsi ini merupakan fungsi yang dijalankan oleh Qt setiap event painting di-dispatch. QWidget memiliki sebuah slot yang akan memasukkan event

QpaintEvent ke dalam eventloop, yaitu:

void update()

Untuk menggambar di widget, dibutuhkan sebuah kelas yang bernama QPainter.

QPainter akan menggambarkan berbagai jenis grafik maupun bitmap ke widget.

Terminal merupakan pusat dari sistem ini, sehingga titik Terminal harus

digambarkan pada tengah-tengah peta.

3.4.9.1Penentuan Dimensi Peta

Dimensi peta yang akan digambarkan pada Terminal tergantung pada jangkauan

RF modem. Untuk RF modem 24XStream, jangkauan maksimal adalah 16km. Dengan demikian, apabila Terminal digambarkan di tengah-tengah peta, maka peta tersebut

harus memiliki tinggi 16x2 = 32km dan lebar 16x2 = 32km. Karena terdapat kemungkinan kapal berada di titik terjauh sehingga penampilannya akan menjadi tidak baik, maka tambahan 2 km ditambah ke tinggi dan lebarnya, sehingga menjadi sebuah peta dengan dimensi 34x34 km. Ini adalah dimensi dalam kenyataannya di lapangan. Untuk merepresentasikannya ke dalam peta di komputer, perlu ditentukan berapa pixel yang diperlukan untuk mewakili area tersebut.

Jarak yang diwakili oleh setiap derajat lintang dan derajat bujur di daerah ekuatorial adalah sekitar 111.23km/derajat. Jarak 34km akan diwakili oleh 34/111,23 = 0,30567 ≈ 0,3derajat. Telah disepakati sebelumnya bahwa untuk zoom 100%, maka 1

(50)

derajat diwakili oleh 10000 pixel. Dengan demikian 0,3 derajat akan diwakili oleh 3000 pixel. Dengan demikian dimensi peta di program Terminal adalah 3000x3000 pixel.

Gambar 3.33 Dimensi peta dalam pixel, metrik, maupun derajat

3.4.9.2Algoritma Penggambaran Peta

Dimensi peta sebelumnya telah didapat, yaitu 3000x3000 pixel. Terminal akan

dilambangkan dengan icon rumah dan diletakkan di tengah-tengah peta.

Peta ini akan diwakili oleh sebuah widget di program Terminal. Widget ini

diinstantiasi dan dilakukan set ukuran agar 3000x3000 pixel. Setiap pixel dari widget

memiliki nilai koordinat dalam integer 16-bit. Koordinat (0,0) berada di pixel pertama

(kiri-atas) dari widget tersebut, dan koordinat (2999,2999) berada pada kanan bawah dari widget. Karena titik Terminal berada di tengah-tengah peta, maka titik Terminal akan

(51)

Semua titik (titik ikan dan kapal) akan digambarkan sesuai dengan jaraknya dengan titik Terminal. Misalkan terdapat sebuah kapal di koordinat (06,1000 LS;

105,9000BT), sedangkan posisi Terminal berada di (06,0000 LS; 106,0000BT). Di

dalam program, koordinat kapal akan direpresentasikan sebagai (y=-6,1; x=105,9), dan

Terminal direpresentasikan sebagai (y=-6,0; x=106,0). Kapal tersebut akan digambarkan

dengan langkah-langkah sebagai berikut:

ƒ Hitung jarak lintang kapal dengan Terminal.

JL = ykapal – yTerminal = (-6,1)-(-6,0) = -0,1 derajat

ƒ Hitung jarak bujur kapal dengan Terminal.

JB = xkapal – xTerminal = 105,9 – 106.0 = -0,1 derajat

ƒ Kalikan JL dengan -1 JL = 0,1 derajat

ƒ Kalikan JL dan JB masing-masing dengan 10000 JLpix = 1000

JBpix = -1000

ƒ Kalikan JL dan JB dengan faktor (1/zoom peta). Misalkan zoom 100%, maka

faktor skalanya adalah 1.

JLpix = 1000 (jarak translasi koordinat y dalam pixel)

JBpix = -1000 (jarak translasi koordinat x dalam pixel)

ƒ Posisi koordinat painting diletakkan di tengah-tengah peta, yaitu posisi Terminal. Misalkan (1500,1500).

(52)

ƒ Translasi koordinat painting tersebut dengan JLpix dan JBpix, maka koordinat painting tersebut sekarang telah berada di posisi (500,2500). Ikon ikan/kapal

kemudian digambarkan pada koordinat painting tersebut.

3.4.10 Mekanisme Penuntun Kapal Nelayan

Mekanisme untuk mengetahui arah yang harus dituju oleh sebuah kapal nelayan ditentukan dengan algoritma sebagai berikut:

(53)

Kode Arah Arah 0 Barat 1 Telah Sampai 2 Timur 3 Barat Laut 4 Utara 5 Timur Laut 6 Barat Daya 7 Selatan 8 Tenggara

Tabel 3.2 Kode Arah

Posisi kapal pada setiap saat diperoleh dari GPS, posisi tersebut akan selalu dibandingkan dengan posisi ikan yang didapat dari Terminal. Pembandingan pertama

dilakukan terhadap polaritas lintang kedua titik. Algoritma yang digunakan adalah sebagai berikut:

• Bila polaritas lintang keduanya sama, maka akan koordinat lintang akan diperiksa. Algoritmanya adalah:

o Jika koordinat titik ikan lebih besar dari posisi kapal, dan sama-sama berada pada lintang selatan, maka arah sementara akan diberi kode 7. o Jika koordinat titik ikan lebih besar dari posisi kapal, dan sama-sama

berada pada lintang utara, maka arah sementara akan diberi kode 4.

o Jika koordinat titik ikan lebih kecil dari posisi kapal, dan sama-sama berada pada lintang selatan, maka arah sementara akan diberi kode 4.

(54)

o Jika koordinat titik ikan lebih kecil dari posisi kapal, dan sama-sama berada pada lintang utara, maka arah sementara akan diberi kode 7.

o Jika koordinat titik ikan sama dengan posisi kapal, maka arah sementara diberi kode 1.

• Bila polaritas lintang keduanya tidak sama, maka akan digunakan algoritma: o Jika titik ikan berada pada lintang utara dan posisi kapal berada pada

lintang selatan, maka arah sementara adalah 4.

o Jika titik ikan berada pada lintang selatan dan posisi kapal berada pada lintang utara, maka arah sementara adalah 7.

Setelah pembandingan pertama selesai dilakukan, maka akan dilakukan pembandingan kedua, pembandingan kedua ini menggunakan koordinat bujur. Pembandingannya adalah sebagai berikut:

• Bila titik ikan dan titik kapal berada pada polaritas bujur yang sama, maka algoritma sebagai berikut akan digunakan:

o Jika koordinat titik ikan lebih besar dari posisi kapal, dan sama-sama berada pada bujur timur, maka kode akan ditambah satu.

o Jika koordinat titik ikan lebih besar dari posisi kapal, dan sama-sama berada pada bujur barat, maka kode akan dikurang satu.

o Jika koordinat titik ikan lebih kecil dari posisi kapal, dan sama-sama berada pada bujur timur, maka kode akan dikurang satu.

o Jika koordinat titik ikan lebih kecil dari posisi kapal, dan sama-sama berada pada bujur barat, maka kode akan ditambah satu.

(55)

• Bila titik ikan dan titik kapal berada pada polaritas yang berbeda, maka algoritma yang akan digunakan adalah sebagai berikut:

o Jika titik ikan berada pada bujur timur dan posisi kapal berada pada bujur barat, maka kode ditambah satu.

o Jika titik ikan berada pada bujur barat dan posisi kapal berada pada bujur timur, maka kode dikurang satu.

Kode arah yang diperoleh setelah pembandingan kedua akan diterjemahkan kedalam gambar mata angin diatas. Bila kode arah sama dengan satu, maka artinya kapal telah sampai pada titik ikan yang dituju.

3.4.11 Setting Modul RF 24XStream

XStream memerlukan pengaturan-pengaturan awal untuk dapat bekerja sesuai dengan yang diinginkan. Adapun pengaturan-pengaturan yang dilakukan terhadap XStream adalah baud rate, alamat tujuan, alamat asal, dan banyaknya retry count.

Mekanisme retry disini berbeda dengan meknaisme retry yang dibuat pada

pemrograman Mobile Scanner. Retry count ini merupakan low level retry yang lebih

bersifat ke data link layer yang ditangani oleh modul RF XStream.

Baud rate pada XStream dapat diatur dengan perintah ATBD kemudian diikuti

dengan parameter yang menyimbolkan baud rate. Selain baud rate standar, XStream

juga mendukung komunikasi dengan baud rate non-standar. Daftar hubungan antara

(56)

Parameter Baud rate 0 1200 1 2400 2 4800 3 9600 4 19200 5 38400 6 57600

Tabel 3.3 Parameter pengaturan baud rate XStream

Pada perancangan ini digunakan baud rate 9600bps, oleh karena itu maka

pengaturan yang dilakukan adalah sebagai berikut: “ATBD 03”. Baud rate yang diatur

disini bukanlah data rate antar RF modem, melainkan baud rate antara XStream dengan

sistem minimum maupun XStream dengan PC.

Perintah ATRR kemudian diikuti oleh parameter digunakan untuk mengatur banyaknya jumlah low level retry. Pada perancangan ini, jumlah retry diatur sebanyak

tiga kali. Pengaturan dapat dilakukan dengan memasukkan perintah sebagai berikut: “ATRR 03”. Setiap modul yang ingin saling berkomunikasi harus mempunyai setting

jumlah retrycount yang sama.

Pengaturan alamat tujuan pengiriman menggunakan perintah ATDT yang diikuti kemudian dengan parameter. Parameter ini berupa alamat tujuan tersebut. Pengaturan alamat tujuan pengiriman ini berkaitan erat dengan model komunikasi yang diinginkan yaitu Mobile Scanner hanya dapat mengirimkan informasi ke Terminal dan Terminal

(57)

dapat mengirimkan informasi ke semua Mobile Scanner yang ditanganinya. Pada Mobile Scanner alamat tujuan yang diinginkan adalah alamat Terminal yaitu 0000, maka

penulisan perintahnya adalah sebagai berikut: “ATDT 0000”. Sedangkan pada Terminal

alamat tujuan yang diinginkan adalah semua Mobile Scanner, maka digunakan alamat broadcast yaitu FFFF, maka penulisan perintahnya adalah “ATDT FFFF”. Alamat asal

diatur melalui perintah ATMY. Untuk Terminal alamat asalnya adalah 0000, maka

perintah yang digunakan adalah: “ATMY 0000” dan untuk Mobile Scanner alamat

asalnya menggunakan pengalamatan otomatis dimana alamatnya menggunakan ID modul XStream itu sendiri. Perintah yang digunakan adalah “ATAM”.

Setelah seluruh pengaturan selesai, perintah “ATWR” harus diberikan. Perintah ini berfungsi untuk menulis pengaturan yang telah dibuat sebelumnya ke dalam memory

XStream. Untuk keluar dari mode AT-Command, maka perintah “ATCN” diberikan dan

RF modem siap untuk digunakan berkomunikasi.

AT-Command yang dikirim

Respon Modul

+++ OK<CR> ATBD 03<ENTER> OK<CR>

ATDT FFFF<ENTER> OK<CR> ATMY 0000<ENTER> OK<CR> ATRR 03<ENTER> OK<CR>

ATWR<ENTER> OK<CR> ATCN<ENTER> OK<CR> Tabel 3.4 Pengaturan untuk XStream pada Terminal

(58)

AT-Command yang dikirim

Respon Modul

+++ OK<CR> ATBD 03<ENTER> OK<CR>

ATDT 0000<ENTER> OK<CR>

ATAM<ENTER> OK<CR> ATRR 03<ENTER> OK<CR>

ATWR<ENTER> OK<CR> ATCN<ENTER> OK<CR> Tabel 3.5 Pengaturan untuk XStream pada Mobile Scanner

3.4.12 Antarmuka

3.4.12.1 Mikrokontroler

Mikrokontroler yang digunakan adalah Atmega162-16PI. Mendukung hingga dua UART, clock rate hingga 16 MHz, throughput maksimum 16 MIPS (juta instruksi

per detik) pada clock 16MHz, Interrupt eksternal 3 buah. Dalam perancangan ini

menggunakan kristal 14,7456MHz agar menghasilkan baud rate standar yang bulat,

yaitu 9600bps.

Untuk menentukan baud rate, register UBRR dari mikrokontroler harus diisi

dengan nilai: 95 1 9600 16 14745600 1 ) ( 16× − = × − = = baudrate f

(59)

3.4.12.2 XStream RF modem

ƒ XStream ke mikrokontroler

XStream RF modem yang digunakan memiliki antarmuka dengan level tegangan TTL, sehingga langsung dapat dihubungkan dengan mikrokontroler.

Gambar 3.35 Jalur sinyal antara mikrokontroler dengan XStream

ƒ XStream ke PC

XStream dapat dihubungkan ke PC melalui antarmuka serial RS-232 yang umumnya terdapat pada PC. Parameter yang perlu diperhatikan adalah level tegangan RS-232 yang tidak sesuai dengan level tegangan XStream. Untuk mengatasinya, diperlukan IC yang mengubah level tegangan antara TTL dan RS-232. IC yang dapat digunakan untuk tujuan ini adalah MAXRS-232.

(60)

Gambar 3.36 Jalur sinyal antara PC dengan XStream

3.4.12.3 Modul GPS

Gambar 3.37 Jalur sinyal antara mikrokontroler dengan modul GPS

Modul GPS yang digunakan tidak memiliki hardware flow control, sehingga

(61)

Untuk mengambil data dari SFR SBUF, diperlukan

Daftar Perintah Clock Cycle

jump 3

mov SBUF->REGISTER 2

mov REGISTER-->RAM 2

clear SBUF 1

total 8

Tabel 3.6 Perkiraan Clockcycle pengambilan data dari buffer

Mikrokontroler menggunakan clock 14,7456MHz.

Satu clockcycle menggunakan waktu s MHz 0,0678μ

7456 , 14

1 =

Satu byte time dari transfer data asinkron 4800bps: 8 1,666ms 4800

1 × =

Supaya tidak terjadi bufferoverflow, maka

T(eksekusi perintah) < T(byte UART)

ms s ms s 666 , 1 5424 , 0 666 , 1 8 0678 , 0 < < × μ μ

Setiap selesai mengirimkan sebuah paket data, modul GPS menunggu paket ACK dari mikrokontroler sebelum mengirimkan paket data selanjutnya.

(62)

3.4.12.4 LCD display

Gambar 3.38 Jalur sinyal antara mikrokontroler dengan modul LCD

LCD display memiliki pinout seperti gambar di atas. Kombinasi antara RS dan

Gambar

Gambar 3.1  Skenario kerja sistem
Diagram blok dari Mobile Scanner dapat dilihat sebagai berikut:
Gambar 3.3  Diagram alir utama Mobile Scanner
Gambar 3.6  Sub-rutin pilih tombol pada mode Nelayan
+7

Referensi

Garis besar

Dokumen terkait

X merupakan perusahaan yang cukup besar, maka diperlukan adanya alat-alat tersebut untuk mencegah terjadinya kecurangan dalam pencatatan jam kerja maupun untuk mendukung

eski begitu, dalam Bahasa Indonesia terdapat kata seperti sudah, telah, sedang, akan atau nanti yang dapat membantu memberi keterangan kapan suatu kejadian

Kapal dimiliki oleh PT.PANN (Persero) di Jakarta, dilengkapi dengan Surat Ukur Internasional (1969) Nomor 1747/PPm, Surat Laut Nomor PK.674/1075/SL-PM/DK-08, Sertifikat

Pemerintah telah menetapkan kode desa dalam Peraturan Menteri Dalam Negeri Nomor 39 Tahun 2015 tentang Kode dan Data Wilayah Administrasi Pemerintahan, termasuk

Penelitian ini juga bertujuan untuk mengetahui peranan fungsi Bimbingan Konseling Islam dalam upaya mengembangkan religiusitas remaja dan menekan atau mengontrol kenakalan remaja

Mereka hanya mengetahui bahwa si Bungsu sudah mati ditebas Saburo dan anak buahnya sekitar dua tahun yang lalu!. Apakah si Bungsu menyangka bahwa kebocoran rahasia

Kesan-kesan buruk lain : Tiada kesan yang penting atau bahaya kritikal yang diketahui.

Dengan mengucapkan puji dan syukur kehadirat Allah SWT, yang telah memberikan kesehatan dan kekuatan serta kesempatan kepada saya sehingga dapat menyelesaikan