BAB 3 ANALISIS DAN PERANCANGAN

dokumen-dokumen yang mirip
ANALISIS DAN PERANCANGAN CONVERTER PENGIRIMAN DATA UNICAST KE MULTICAST DAN FORMAT DATA ASTERIX-21 VERSI 0.26 KE VERSI 0.

BAB 3 ANALISIS DAN PERANCANGAN

BAB 1 PENDAHULUAN. agar dapat mentransmisikan gelombang untuk pendeteksian. Dengan

BAB 2 LANDASAN TEORI

BAB 4 IMPLEMESTASI DAN EVALUASI. permasalahan yang telah dilakukan pada bab sebelumnya.

BAB I PENDAHULUAN. anggota International Civil Aviation Organization (ICAO) terikat dengan

Laporan Tugas Scheduling Pengantar Sistem Operasi

BAB III ANALISIS DAN PERANCANGAN

BAB 1 PENDAHULUAN. transportasi udara sebagai media perpindahan barang, orang dan jasa yang cepat

1. Pendahuluan. 2. Tinjauan Pustaka

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB II LANDASAN TEORI

Proses Burst Time Prioritas P P1 7 1 P2 9 3 P P4 19 2

BAB IV REKAYASA SISTEM

BAB II DASAR TEORI. teknologi informasi belum maksimal diterapkan. Penggunaan Personal Computer

BAB III ANALISA DAN PERANCANGAN APLIKASI

= t t... (1) HASIL DAN PEMBAHASAN

Published By Stefanikha

Jaringan Komputer. Pengalamatan Logis Internet Protocol versi 4 (IPV4)

BAB II TINJAUAN PUSTAKA

BAB III METODOLOGI. Penelitian ini dimulai dengan studi literatur dari teori-teori yang

TRANSPORT LAYER. Fikri Fadlillah, ST

Apa yang akan dipelajari?

IP Addressing. Oleh : Akhmad Mukhammad

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

Gambar 11. Perbandingan Arsitektur OSI dan TCP/IP

BAB III ANALISIS DAN PERANCANGAN

BAB III PERANCANGAN. 3.1 Diagram blok sistem

SOLUSI QUIZ 2 SISOP CS3613

REVIEW MODEL OSI DAN TCP/IP

BAB III METODE PENELITIAN

Concurrency 1: y Mutual Exclusion dan Sinkronisasi (Perte rt muan ke muan -10) 10 Oktober 2014

Algoritma Dan Struktur Data II. Queue

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM. ruangan yang menggunakan led matrix dan sensor PING))). Led matrix berfungsi

Sistem Operasi. Critical section, konkurensi, mutasi exclusion, starvation dan deadlock. Juliansyahwiran, S. Kom, MTI. Modul ke: Fakultas FASILKOM

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif

BAB II LANDASAN TEORI

BAB III PERANCANGAN SISTEM

BAB III ANALISA MASALAH DAN PERANCANGAN

Transport Layer El E ectro ect n ro ic En E gineerin ri g Pol o ytech tec nic In I stitu sti t of o Surabaya ITS Kampus ITS Sukolilo Surabaya 60111

BAB I PENDAHULUAN. I.1. Sistem Air Traffic Control (ATC)

IMPLEMENTASI TCP/IP UNTUK MEMBUAT SERVER DATABASE ACCESS ABSTRAK

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM

Praktikum Jaringan Komputer

BAB 3 PERANCANGAN SISTEM. Perancangan aplikasi meliputi server, pengajar dan mahasiswa. Server akan

LAPORAN RESMI ADMINISTRASI & MANAGEMENT JARINGAN. PRAKTIKUM 3 Pemrograman Socket dengan TCP

Version untuk menunjukkan versi protokol yang dipakai, Header Length menunjukkan panjang paket header dalam hitungan 32 bit.

Tugas Jaringan Komputer

BAB 3 PERANCANGAN PROGRAM. dilanjutkan dengan rancangan cetak biru untuk program yang akan dibangun.

BAB IV PERANCANGAN. 4.1 Perancangan Mobile Tracker Simulator (MTS)

KUM 5 IMPLEMENTASI QUEUE

BAB III METODE PENELITIAN. transmisi data streaming menggunakan Zigbee wireless network dengan

BAB III ANALISIS DAN PERANCANGAN MODEL SIMULASI (NS-3) yang dibutuhkan kedalam database MySQL. Data informasi client (NAVAID)

BAB II TEORI DASAR. Resource Reservation Protocol (RSVP) merupakan protokol pada layer

BAB III ANALISIS DAN PERANCANGAN

Model Proses : 1. Sequential Process / bergantian 2. Multiprogramming 3. CPU Switching peralihan prosedur dalam mengolah 1 proses ke proses lainnya.

MAKALAH PERBEDAAN TCP/IP DENGAN OSI

BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:

SMK-TI TRAINING AND CERTIFICATION. Modul 5 IP ADDRESS. Team Training SMK TI 37

UNIT I IP Address, Subnetting, VLSM dan IP Assignment

III Bab III Analisis dan Perancangan

BAB III ANALISIS DAN PERANCANGAN SISTEM. Penelitian ini akan menghasilkan suatu aplikasi yang. digunakan untuk menemukan lokasi hotel terdekat dan

Jaringan Komputer. IP Addressing (IPV4 dan IPV6) Adhitya Nugraha.

BAB I PENDAHULUAN. memperlancar perekonomian sebagai pendorong, penggerak kemajuan suatu wilayah.

Bab 19. Solusi Critical Section

Sistem Operasi. Konkurensi

LAMPIRAN. Panggil class Singleapplication modul Run. IF Run == false THEN. Program ini akan keluar. Form_utama. InitializeComponent

BAB III ANALISIS SISTEM DAN PERANCANGAN

BAB III PERENCANAAN KEBUTUHAN DAN PERANCANGAN

Minggu 6 Transport Layer

BAB IV PERANCANGAN SISTEM

Pendeteksian Kemacetan Lalu Lintas dengan Compute Unified Device Architecture (CUDA)

Soal-jawab Quiz 2. Oleh: Endro Ariyanto (END) Oktober 2008

BAB 4 IMPLEMENTASI DAN EVALUASI. Untuk membantu dalam proses pemantauan jaringan switch backbone

PENGHITUNGAN SUBNETTING SECARA OTOMATIS

BAB III ANALISIS DAN PERANCANGAN

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

Sistem Operasi. Deadlock

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

BAB III PERANCANGAN STAND ALONE RFID READER. Dalam penelitian ini, perancangan sistem meliputi :

BAB III METODE PENELITIAN. studi kepustakaan, percobaan dan analisis. Dengan ini penulis berusaha untuk

BAB III PERANCANGAN SISTEM HARDWARE DAN SOFTWARE

BAB III ANALISA DAN PERANCANGAN SISTEM


BAB IV INTERNET PROTOCOL

BAB III RANCANG BANGUN

BAB III METODOLOGI PENELITIAN

BAB 3 PERANCANGAN SISTEM. 3.1 Rancangan Perangkat Keras Sistem Penuntun Satpam. diilustrasikan berdasarkan blok diagram sebagai berikut:

BAB III METODE PENGEMBANGAN

BAB IV ANALISA DAN PERANCANGAN

LAPORAN PRAKTIKUM RESMI QUEUE

Pemrograman Jaringan

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

BAB III PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM

Transkripsi:

BAB 3 ANALISIS DAN PERANCANGAN 3.1 Analisis Sistem yang Berjalan Sesuai dengan rekomendasi ICAO (International Civil Aviation Organization) pada tahun 2002 untuk memilih teknologi ADS-B sebagai prioritas utama untuk diterapkan dalam penerbangan di kawasan Asia/Pasifik, PT. Angkasa Pura dan BPPT terus berusaha untuk menerapkan teknologi ini di wilayah Indonesia. Sebelumnya, dengan menggunakan radar, dibutuhkan waktu kurang lebih 12 detik bagi radar untuk mendapatkan posisi pesawat dengan melakukan putaran 360 derajat. Dengan diterapkannya ADS-B, ATC (Air Traffic Control) akan mendapatkan posisi pesawat dengan lebih cepat dan akurat. Indonesia memulai program ADS-B pada tahun 2006 dalam suatu kemitraan dengan SITA dan Thales yang merupakan produsen dari perangkat keras teknologi ADS-B. Sejak saat itu, Indonesia sudah memiliki 30 ground station yang dilengkapi dengan ADS-B yang siap dioperasionalisasikan untuk mencakup lintasan pesawat di udara dalam radius 250 mil. Hingga saat ini, BPPT (Badan Pengkajian dan Penerapan Teknologi) terus berusaha untuk mengembangkan sistem ADS-B pada penerbangan di Indonesia. Salah satunya adalah sistem yang akan diimplementasikan pada ADP (ADS-B Data Processor). Pengembangan sistem ini bertujuan agar ADP dapat memproses data Asterix-21 yang diterima dari alat ADS-B Receiver yang memiliki beragam versi dan telah tersebar di berbagai wilayah di Indonesia, seperti 47

48 di Jakarta, Makassar, Sorong dan Natuna. Hingga bulan Maret 2009, data Asterix-21 diketahui telah memiliki 34 versi dengan versi 1.3 sebagai yang terbaru. ADP memiliki fungsi untuk memproses data yang dikirimkan oleh ADS-B Receiver. Data Asterix-21 yang telah diterima oleh ADP kemudian akan kembali diproses untuk diformat ulang menjadi format data Asterix-62 untuk kemudian dikirimkan ke HMI (Human-Machine Interface). HMI inilah yang akan menampilkan berbagai macam informasi tentang setiap pesawat yang terus mengirimkan datanya ke ground station melalui ADS-B Transponder yang mereka miliki. Pesawat akan secara terus menerus mengirimkan semua informasi penerbangan secara broadcast untuk selanjutnya diterima oleh ADS-B Receiver yang terdapat di ground station maupun di pesawat-pesawat lainnya.

49 (Gambar 3.1 Sistem ADS-B di PTIK-BPPT) Dalam proses pengembangannya, BPPT hendak melakukan pengujian untuk memastikan agar sistem tersebut dapat menerima data Asterix-21 dengan berbagai macam versi. Salah satunya, BPPT akan menguji sistem tersebut untuk memastikan bahwa ADP dapat menerima data Asterix-21 dengan versi 0.23. Saat ini, alat ADS-B Data Receiver yang terdapat di BPPT mengirimkan data Asterix-21 ke ADP dengan versi 0.26 secara unicast. Maka untuk melakukan pengujian tersebut, BPPT membutuhkan alat ADS-B Receiver yang dapat mengirimkan data Asterix-21 dengan versi 0.23. Untuk itu BPPT harus mengambil data Asterix-21 dari salah satu alat ADS-B Receiver dengan transmisi data Asterix-21 versi 0.23 yang salah satunya terdapat di Makassar.

50 3.2 Analisis Permasalahan (Gambar 3.2 Kondisi saat ini) Sistem yang sekarang sedang dikembangkan oleh BPPT untuk dijalankan pada ADP bertujuan agar kelak ADP dapat menerima data Asterix-21 dari seluruh versi yang dimiliki oleh ADS-B Receiver. Saat ini proses pengembangan sistem tersebut sedang berada dalam tahap pengembangan agar ADP dapat menerima data Asterix-21 versi 0.23 dari ADS-B Receiver secara multicast. Namun yang menjadi permasalahan adalah saat ini ADS-B Receiver yang berada di BPPT mengirimkan data Asterix-21 dengan versi 0.26 secara unicast. Hal tersebut menyebabkan BPPT tidak dapat menguji sistem ADP yang sedang dikembangkan tersebut. (Gambar 3.3 Kondisi yang diharapkan)

51 Selain itu, karena ADP yang menerima data dari ADS-B Receiver akan berjumlah lebih dari satu, ADP diharapkan dapat melakukan penerimaan data dari ADS-B Receiver secara multicast. Hal ini tentunya bertentangan dengan metode pengiriman data secara unicast yang dilakukan oleh ADS-B Receiver yang terdapat di BPPT. Untuk itu dibutuhkan suatu program yang dapat mengkonversi format data Asterix-21 versi 0.26 menjadi versi 0.23 dan mengubah metode pengiriman data unicast menjadi multicast. Hal ini tentunya bertujuan untuk memudahkan BPPT dalam melakukan pengujian implementasi sistem pada ADP. 3.3 Usulan Pemecahan Masalah Untuk mengatasi permasalahan yang dihadapi BPPT dalam melakukan pengujian sistem pada ADP tersebut, maka dibutuhkan suatu program converter yang dapat menerima data Asterix-21 versi 0.26 dari ADS-B Receiver. Program ini akan berfungsi untuk melakukan konversi pada data tersebut menjadi data Asterix-21 versi 0.23. Selain itu program juga harus mampu mengirimkan kembali data tersebut kepada ADP dengan mengubah metode transmisi data dengan menerima data secara unicast dan mengirimkannya kembali secara multicast. Pada implementasinya, program ini akan dijalankan pada komputer yang akan ditempatkan diantara ADS-B Data Receiver dan ADP.

52 (Gambar 3.4 Letak Program Converter) Proses konversi pada data akan meliputi penyesuaian dari format setiap field yang ada di Asterix-21 versi 0.26 sehingga berubah menjadi seperti format pada versi 0.23. Selain itu proses konversi juga akan meliputi perubahan panjang dari keseluruhan blok data dan pengurangan beberapa field yang tidak terdapat pada versi 0.23. Setelah proses konversi pada data selesai dilakukan, data yang semula diterima dari ADS-B Receiver melalui metode unicast dengan protokol TCP tersebut akan kembali dikirimkan kepada ADP melalui metode multicast dengan protokol UDP. Sehingga pada akhirnya ADP akan menerima format data Asterix-21 dengan versi 0.23 secara multicast.

53 3.4 Perancangan Program 3.4.1 Perancangan Program Utama (Gambar 3.5 Data Flow Diagram) Di dalam program ini akan terdapat 3 proses utama yang akan terus berjalan secara simultan dan terus menerus, yaitu proses penerimaan data dari ADS-B Receiver, proses konversi data menjadi data Asterix-21 versi 0.26, dan proses pengiriman kembali data hasil konversi tersebut kepada ADP secara multicast. Berikut ini adalah penjelasan dari ketiga proses tersebut : 1. Penerimaan Data Program akan terus menerus menerima aliran data dari ADS-B Receiver yang akan mengirimkan data Asterix-21 versi 0.23 secara

54 unicast. Proses identifikasi akan terlebih dahulu dilakukan terhadap setiap data yang masuk untuk menentukan awal dari blok data yang akan ditandai dengan oktet yang memiliki nilai desimal 21 dimana oktet tersebut merupakan penanda dari awal blok data Asterix-21. Setelah itu program akan kembali menerima data sesuai dengan panjang dari keseluruhan blok data tersebut hingga didapatkan suatu blok data Asterix-21 yang utuh. Kemudian program akan terus mengulangi proses yang sama untuk mendapatkan setiap blok data yang dikirimkan oleh ADS-B Receiver. 2. Konversi Data Setiap blok data yang telah berhasil diterima akan dikonversi menjadi blok data Asterix-21 versi 0.23. Proses konversi ini akan dilakukan dengan cara menyalin satu persatu isi dari blok data Asterix-21 versi 0.26 ke dalam blok data baru yang akan berisi data Asterix-21 versi 0.23. Sebelum dipindahkan, data yang memiliki format berbeda akan terlebih dahulu di konversi, sedangkan data yang harus dihilangkan tidak akan ikut disalin kedalam blok data baru tersebut. Proses ini akan dilakukan terhadap setiap blok data yang sudah berhasil diterima dari ADS-B Receiver. 3. Pengiriman Data Setiap blok data yang telah berhasil dikonversi menjadi blok data Asterix-21 versi 0.23 akan kembali dikirimkan kepada ADP. Blok-blok data tersebut akan dikirimkan kembali dengan

55 menggunakan metode pengiriman secara multicast. Proses pengiriman kembali data ini akan berlangsung secara terus menerus beriringan dengan proses penerimaan dan konversi data. 3.4.2 Sinkronisasi Antar Proses Ketiga proses yang berjalan dalam program ini akan terus berlangsung secara terus menerus dan beriringan. Aliran data yang dikirimkan oleh ADS- B Receiver akan berjalan dengan sangat cepat dan berpotensi untuk menimbulkan masalah pada salah satu proses. Contohnya proses pengiriman kembali data mungkin akan berlangsung lebih lama dari proses penerimaan data karena data tersebut akan terlebih dahulu melewati proses konversi sehingga menimbulkan potensi terjadinya penumpukan data. Untuk itu dibutuhkan sinkronisasi antara proses penerimaan, konversi, dan pengiriman kembali data agar program dapat terus berjalan dengan lancar. Pada ketiga proses tersebut akan terdapat sumber daya yang digunakan secara bersamasama (shared resources), sehingga suatu mekanisme sinkronisasi mutlak dibutuhkan untuk diterapkan pada program. Mekanisme sinkronisasi akan menjamin ketersediaan sumberdaya yang dibutuhkan dalam masing-masing proses tersebut. Hal ini bertujuan agar setiap proses dapat menggunakan sumberdaya secara bergantian serta menghindari terjadinya konflik yang mungkin terjadi diantara ketiga proses tersebut. Program ini akan menggunakan 2 sistem antrian (Queue) yang berfungsi untuk menampung setiap blok data hasil proses. Masing-masing sistem antrian ini akan berfungsi sebagai tempat penyimpanan sementara

56 setiap blok data hasil proses penerimaan data dan blok-blok data hasil proses konversi. Sistem antrian ini akan dibagi menjadi 2, yaitu satu antrian yang bertugas untuk mengatur alur proses penerimaan dengan proses konversi data dan satu antrian lainnya yang bertugas untuk mengatur alur proses konversi dan proses pengiriman kembali data. Mekanisme sinkronisasi akan terjadi melalui kedua sistem antrian tersebut. Sinkronisasi akan dilakukan dengan cara mengatur akses dari setiap proses terhadap masing-masing sistem antrian tersebut. Suatu proses harus menunggu apabila proses lainnya sedangkan memasukkan atau mengambil data dari sistem antrian. Proses konversi data akan menunggu hingga proses penerimaan data menghasilkan blok data yang siap untuk di konversi dan memasukannya ke dalam antrian. Selain itu proses pengiriman kembali data juga akan menunggu hingga ada blok data hasil dari proses konversi di dalam antrian yang siap untuk dikirimkan. 3.4.3 Penerapan Multithread Untuk menunjang performa, program ini akan dirancang dengan menggunakan konsep multithread. Ketiga proses yang menjadi proses utama masing-masing akan dijadikan setiap thread yang menjalankan prosesnya sendiri. Hal ini bertujuan agar ketiga proses tersebut dapat berjalan secara cepat dan simultan sehingga dapat mengimbangi kecepatan penerimaan aliran data yang sangat tinggi. Selain itu, penerapan multithread juga diharapkan

dapat memaksimalkan penggunaan sumberdaya memori yang dialokasikan oleh CPU. 57 Sesuai dengan tugasnya masing-masing, akan ada 3 thread yang dipanggil oleh thread utama dalam program ini, yaitu thread receiver yang berfungsi untuk menerima data, thread converter yang bertugas melakukan konversi data, dan thread sender yang berfungsi untuk mengirimkan kembali data. Ketiga thread tersebut akan memanggil method-method yang berasal dari 4 class, yaitu class receiver, converter, sender dan queue. Komunikasi antara ketiga thread tersebut akan dijembatani oleh sistem antriannya masingmasing. 3.4.4 Penerapan Mutual Exclusion Dengan perancangan program yang menggunakan konsep multithread, maka diperlukan adanya suatu mekanisme yang dapat melindungi shared resource yang akan diakses oleh ketiga thread. Mekanisme yang dimaksud adalah mutex (mutual exclusion). Mutex akan berfungsi untuk melindungi bagian-bagian dari program yang termasuk dalam critical section. Di dalam program ini, critical section yang dimaksud adalah proses pemasukkan dan pengambilan blok data oleh ketiga thread yang merupakan bagian dari operasi terhadap sistem antrian. Ketika salah satu thread akan memasukkan suatu blok data ke dalam sistem antrian, thread tersebut akan mengunci mutex agar thread lain tidak dapat mengambil blok data dari dalam sistem antrian. Sebagai contoh, apabila

58 thread receiver akan untuk memasukkan blok data ke dalam sistem antrian, maka thread tersebut akan mengunci mutex agar blok-blok data tidak dapat diambil dari dalam sistem antrian. Thread converter yang akan melakukan proses konversi data harus menunggu thread receiver untuk melepaskan kunci mutex nya untuk mengambil blok data dari dalam antrian. Hal ini bertujuan agar blok data akan selalu tersedia ketika sebuah thread ingin melakukan prosesnya. Berikut ini adalah ilustrasi dari salah satu contoh mekanisme perlindungan sumber daya bersama yang akan diakses oleh thread receiver dan thread converter secara bersamaan. No. Thread Receiver Thread Converter 1 Thread receiver mengunci mutex. Thread converter ingin memasukkan blok data ke dalam antrian namun mutex dikunci oleh thread receiver. 2 Thread receiver memasukkan Thread converter menunggu. blok data ke dalam antrian 3 Thread receiver melepaskan kunci mutex. Thread converter mengunci mutex. 4 Thread receiver melanjutkan proses. Thread converter mengambil data dari dalam antrian

59 5 Thread receiver melanjutkan proses. Thread converter melepaskan kunci mutex. (Tabel 3.1 Ilustrasi Penggunaan Mutex) (Gambar 3.6 Ilustrasi Sinkronisasi Antar Thread)

60 3.4.5 Class Diagram (Gambar 3.7 Class Diagram)

61 3.4.6 Sequence Diagram Thread Receiver (Penerimaan Data) (Gambar 3.8 Sequence Diagram Thread Receiver)

62 3.4.7 Sequence Diagram Thread Converter (Konversi Data) (Gambar 3.9 Sequence Diagram Thread Converter)

63 3.4.8 Sequence Diagram Thread Sender (Pengiriman Data) (Gambar 3.10 Sequence Diagram Thread Sender)

64 3.4.9 Flowchart Penerimaan Data (Gambar 3.11 Flowchart Penerimaan Data) Proses ini diawali dengan inisialisasi socket dan pembuatan koneksi ke ADS-B Receiver. Setelah koneksi berhasil terjalin dan aliran data telah berhasil diterima, program akan mengidentifikasi setiap oktet yang masuk untuk mencari awal dari blok data yang ditandai dengan oktet yang memiliki

65 nilai desimal 21. Setelah itu program akan terus menerus menerima satu persatu oktet hingga didapatkan satu blok data yang utuh. Blok data tersebut kemudian akan dimasukkan ke dalam antrian, menunggu untuk di konversi. Proses ini akan berjalan terus menerus hingga user memberikan input berupa CTRL + C pada komputer. Input tersebut akan memberikan signal SIGINT pada program yang berfungsi untuk menghentikan jalannya thread. Flowchart Method isasterix21() (Gambar 3.12 Flowchart Method isasterix21() ) Method ini berfungsi untuk menentukan oktet awal dari blok data. Program akan terus menerima satu persatu

66 oktet hingga mendapatkan oktet dengan nilai desimal 21. Setelah itu method akan mengembalikan nilai TRUE yang menandakan bahwa awal dari satu blok data yang akan diproses telah berhasil diketahui. Flowchart Method receivedata() (Gambar 3.13 Flowchart Method receivedata() ) Oktet pertama yang memiliki nilai desimal 21 akan terlebih dulu disalin pada blok data baru. Setelah itu program

67 akan kembali menerima dua oktet berikutnya (oktet-oktet LEN) yang berisi informasi tentang panjang keseluruhan blok data. Setelah kedua oktet tersebut ikut disalin ke dalam blok data dan panjang dari blok data telah diketahui, method akan terus menerima setiap oktet yang masih merupakan bagian dari blok data tersebut.

68 3.4.10 Flowchart Konversi Data (Gambar 3.14 Flowchart Konversi Data) Proses ini juga akan terus berlangsung selama program tidak menerima signal SIGINT berupa input CTRL+C pada komputer. Blok-blok data yang sebelumnya telah berada di dalam antrian akan dikonversi menjadi blok data Asterix-21 versi 0.23. Setelah itu proses konversi selesai, blok data tersebut akan dimasukkan kembali ke dalam antrian pengiriman, menunggu untuk dikirimkan ke ADP. Apabila tidak terdapat data dalam antrian, program

69 dirancang untuk menunggu selama 5 detik hingga data di dalam antrian kembali terisi. Flowchart Method prosesdata() (Gambar 3.15 Flowchart Method prosesdata() ) Blok data yang telah diambil dari dalam antrian akan disalin ke dalam blok data Asterix-21 versi 0.26. Tiga oktet pertama yang menginformasikan awal dan panjang keseluruhan dari blok data akan langsung disalin ke dalam blok data versi 0.23. Setelah itu akan dilakukan pengecekan terhadap oktetoktet yang berisi informasi tentang FSPEC. Operasi AND akan dilakukan

70 pada setiap oktet FSPEC dengan bilangan desimal 1 untuk mengetahui nilai bit FX (Field Extension) dari setiap oktet FSPEC. Hal ini bertujuan untuk mengidentifikasi oktet mana saja yang termasuk oktet FSPEC. Proses ini akan berhenti setelah didapatkan FSPEC yang memiliki bit FX bernilai 0. Setelah itu oktet-oktet FSPEC yang telah berhasil diidentifikasi akan ikut disalin ke dalam blok data versi 0.23. Setelah itu akan dilakukan pengecekan terhadap eksistensi dari setiap field dengan FRN 1 hingga FRN 35 dimana bit-bit pada oktet FSPEC akan menjadi penanda terhadap eksistensi setiap field dengan FRN tertentu di dalam blok data. Keberadaan sebuah field di dalam suatu blok data akan ditandai dengan nilai 1 pada bit penandanya dalam FSPEC. Proses pengecekan akan terus berlangsung dengan diikuti proses penyalinan data ke dalam blok data versi 0.23. Namun apabila selama proses pegecekan ditemukan field dengan FRN 4, 27 atau 28, akan terlebih dulu dilakukan proses konversi sebelum field itu disalin ke blok data versi 0.23. Proses ini akan terus dilakukan hingga setiap field yang ada berhasil disalin ke dalam blok data versi 0.23 dan field-field dengan FRN 4, 27 & 28 yang terdapat pada blok data berhasil di konversi.

71 3.4.11 Flowchart Pengiriman Data (Gambar 3.16 Flowchart Pengiriman Data)

72 Sama seperti proses penerimaan dan konversi data, proses ini juga akan terus berlangsung selama program belum menerima signal SIGINT. Untuk melakukan pengiriman data secara multicast, sebelum melakukan looping, socket dan multicast group akan terlebih dahulu diinisialisasi. Proses akan terus berjalan dengan mengambil data hasil konversi yang diambil dari dalam antrian. Setelah itu setiap blok data Asterix-21 yang sudah dikonversi menjadi versi 0.23 tersebut akan dikirimkan ke ADP secara multicast.

73 3.4.12 Flowchart Method enqueue() (Gambar 3.17 Flowchart Method enqueue() ) Method enqueue() memiliki tugas untuk menyimpan blok data yang berbentuk array bertipe unsigned char ke dalam sistem antrian. Blok data yang berada di dalam antrian kemudian akan diambil oleh thread yang membutuhkan. Method ini akan mengembalikan nilai TRUE apabila proses penyimpanan data ke dalam antrian berhasil dilakukan. Hal ini bertujuan untuk memberikan validasi apakah method berikutnya dalam suatu thread akan dieksekusi atau tidak. Contohnya, proses konversi data akan menunggu hingga proses pemasukan data ke dalam antrian berhasil dilakukan.

74 3.4.13 Flowchart Method dequeue() (Gambar 3.18 Flowchart Method dequeue() ) Setiap blok data yang telah disimpan dalam antrian akan diambil oleh proses yang membutuhkan menggunakan method dequeue (), contohnya ketika sebuah blok data akan dikonversi atau akan dikirimkan kembali. Untuk itu, satu persatu isi dari blok data akan disalin ke blok data lain yang akan digunakan oleh thread lainnya untuk diproses. Setelah blok data selesai disalin, maka memori di dalam list yang telah dialokasikan sebelumnya untuk blok data tersebut akan dibebaskan kembali.

75 3.5 Perbedaan Asterix-21 Versi 0.26 dan Versi 0.23 3.5.1 Perbedaan pada Field FRN 4 (Gambar 3.19 FRN 4 Asterix-21 versi 0.26) Pada format data Asterix-21 versi 0.26 seperti yang ditunjukkan oleh gambar 3.2, field dengan FRN 4 berisikan informasi tentang Position in WGS-84 Co-ordinates atau yang biasa dikenal dengan posisi menurut lintang dan bujur. Field ini memiliki panjang keseluruhan 8 oktet yang terdiri dari 4 oktet informasi tentang latitude dan 4 oktet mengenai informasi longitude. Masing-masing informasi latitude dan longitude ini akan dikalikan dengan derajat sebesar 180/2 25 untuk mendapatkan nilai posisi yang sebenarnya.

76 (Gambar 3.20 FRN 4 Asterix-21 versi 0.23) Perbedaan yang tampak pada data Asterix-21 dengan versi 0.23 adalah field dengan FRN 4 tersebut hanya memiliki panjang 6 oktet yang terdiri dari 3 oktet latitude dan 3 oktet longitude. Selain itu, nilai latitude dan longitude pada Asterix-21 versi 0.23 akan dikalikan dengan derajat yang berbeda dengan derajat pada Asterix-21 versi 0.26, yaitu sebesar 180/2 23. Perbedaan ini sebenarnya berkaitan dengan tingkat akurasi yang lebih tinggi tentang informasi posisi lintang dan bujur yang terdapat pada data Asterix- 21. 3.5.2 Perbedaan pada Field FRN 27 & FRN 28 (Gambar 3.21 FRN 27 dan 28 Asterix-21 versi 0.26)

77 (Gambar 3.22 FRN 27 dan 28 Asterix-21 versi 0.23) Field dengan FRN 27 dan FRN 28 yang berisi informasi tentang Mode 3/A in Octal Representation dan Signal Amplitude baru ditambahkan pada format data Asterix-21 dengan versi 0.26. Dengan demikian dapat disimpulkan bahwa pada format data Asterix-21 dengan versi 0.23, kedua field tersebut masih belum diikutsertakan atau dapat dikatakan bahwa nilai bit-bit mereka masih di-set menjadi 0. Perbedaan ini tentunya juga akan memberikan dampak pada perbedaan bit-bit pada FSPEC dan panjang keseluruhan dari blok data. 3.6 Metode Konversi Data 3.6.1 Konversi Terhadap Field FRN 4 Pada dasarnya perbedaan FRN 4 pada Asterix-21 versi 0.26 dan versi 0.23 terletak pada panjang data dan derajat yang digunakan. Meskipun demikian, sebenarnya field FRN 4 dari kedua versi tersebut tetap memiliki nilai yang sama karena nilai yang sebenarnya merupakan hasil kali dari nilai desimal 4 oktet latitude atau 4 oktet longitude dengan derajat yang digunakan.

78 Karena itu, untuk melakukan konversi pada FRN 4, nilai sebenarnya dari latitude dan longitude pada Asterix-21 versi 0.26 harus diketahui terlebih dahulu. Setelah nilai itu diketahui baru kemudian nilai itu akan dibagi dengan derajat FRN 4 yang dimiliki Asterix-21 versi 0.23. Setelah proses tersebut selesai, maka nilai itu akan ditampung dalam variabel n yang bertipe integer untuk kemudian diambil sebanyak 3 oktet menggunakan struktur data bertipe union. Sebuah struktur data bertipe union yang memiliki variabel bertipe integer dan array bertipe unsigned char [4] dibutuhkan dalam proses konversi ini. Nilai yang telah didapat sebelumnya akan dimasukkan ke variabel bertipe integer tersebut. Selanjutnya 3 oktet akan diambil melalui array yang bertipe unsigned char tersebut dengan index [0], [1], dan [2]. 3.6.2 Konversi Terhadap Field FRN 27 & 28 Proses konversi yang dilakukan terhadap field FRN 27 dan 28 pada data Asterix-21 versi 0.26 dilakukan dengan cara tidak mengikutsertakan nilai dari kedua FRN tersebut ketika proses penyalinan satu persatu oktet pada blok data dilakukan. Dengan tidak diikutsertakannya kedua field ini tetntunya akan berdampak pada perubahan bit penanda kedua field tersebut pada FSPEC. Bit- bit penanda field FRN 27 & FRN 28 pada FSPEC akan di-set menjadi 0 untuk menandakan bahwa kedua field tersebut tidak lagiterdapat di blok data.

79 Selain perubahan pada FSPEC, konversi terhadap dua field ini juga akan berpengaruh pada panjang keseluruhan data. Dengan demikian perubahan pada oktet-oktet LEN di blok data tersebut juga harus dilakukan. Karena field FRN 27 memiliki panjang 2 oktet dan FRN 28 memiliki panjang 1 oktet, maka nilai desimal dari 2 oktet LEN pada blok data harus dikurangi 3. Apabila perubahan yang terjadi pada bit-bit FSPEC menyebabkan salah satu oktet FSPEC tersebut menjadi bernilai 0, maka oktet FSPEC itu juga harus dihilangkan dari blok data. Dengan dihilangkannya oktet FSPEC tersebut, maka nilai desimal dari 2 oktet LEN harus kembali dikurangi dengan 1.

80 3.6.3 Contoh Konversi Data Berikut ini adalah contoh data Asterix-21 versi.26 yang akan di konversi : [15] [00] [2D] [FB] [A3] [51] [06] [00] [00] [00] [20] [32] [3B] [2B] [FF] [EF] [00] [A3] [01] [31] [30] [68] [8A] [02] [61] [00] [07] [08] [01] [91] [FF] [00] [05] [25] [C3] [3C] [30] [E2] [75] [DF] [58] [20] [2C] [E8] [32] Proses identifikasi akan dilakukan terhadap FSPEC untuk mengetahui eksistensi dari setiap field pada blok data : FB : 1 1 1 1 1 0 1 [1] FRN 1, FRN 2, FRN 3, FRN 4, 1 2 3 4 5 6 7 FX FRN 5, FRN 7 A3 : 1 0 1 0 0 0 1 [1] FRN 8, FRN 10, FRN 14 8 9 10 11 12 13 14 FX 51 : 0 1 0 1 0 0 0 [1] FRN 16, FRN 18 15 16 17 18 19 20 21 FX 06 : 0 0 0 0 0 1 1 [0] FRN 27, FRN 28 22 23 24 25 26 27 28 FX Pada oktet FSPEC terakhir yang memiliki nilai hexadesimal 06, terlihat bahwa bit FX bernilai 0. Hal tersebut menunjukkan bahwa oktet tersebut merupakan oktet FSPEC terakhir dan oktet-oktet yang ada setelahnya merupakan field-field data yang memiliki bit penanda bernilai 1 pada FSPEC.

81 Proses konversi pada field dengan FRN 4 meliputi konversi pada oktet-oktet field longitude dan latitude. Konversi Field Longitude Longitude versi 0.26 = FF EF 00 A3 (Hexadesimal) = -1113949 (Desimal) Longitude * 180/2 25 = -1113949 * 180/2 25 Longitude versi 0.26 = 5,97568809986114501953125 Longitude versi 0.23 = (Longitude versi 0.26) / (180/2 23 ) = -5,9756 / 180/2 23 = -278487 (Desimal) = FB C0 29 (Hexadesimal) Longitude * 180/2 23 = -278487 * 180/2 23 Longitude versi 0.23 = -5,975682735443115234375 Masukkan ke dalam array pada union: [0] [1] [2] [3] 29 C0 FB FF Pindahkan oktet dengan index [2], [1], dan [0] ke dalam field dengan FRN4 pada blok data Asterix-21 versi 0.23 : FRN 4 FRN4 FRN4... FB C0 29...

82 Konversi Field Latitude Latitude versi 0.26 = 01 31 30 68 (Hexadesimal) = 3600156960 (Desimal) Latitude *180/2 25 = 3600156960 * 180/2 25 Latitude versi 0.26 = 107,29303836822509765 Latitude versi 0.23 = (Longitude versi 0.26) / (180/2 23 ) = 107,2930 / 180/2 23 = 5000218,2384 (Desimal) = 4C 4C 1A (Hexadesimal) Latitude * 180/2 23 = 5000218 * 180/2 23 Latitude versi 0.23 = 107,29303836822509765 Masukkan ke dalam array pada union: [0] [1] [2] [3] 1A 4C 4C NULL Pindahkan oktet dengan index [2], [1], dan [0] ke dalam field dengan FRN4 pada blok data Asterix-21 versi 0.23 : FRN 4 FRN4 FRN4... 4C 4C 1A...

83 Dengan tidak diikutsertakannya field FRN 27 & FRN 28, maka proses perubahan yang akan terjadi pada blok data dapat digambarkan sebagai berikut : FRN... FRN27 FRN27 FRN28 FRN...... 2C E8 32... FRN... FRN... FRN... FRN... FRN.................. FSPEC pada versi 0.26 FB A3 51 06 1 1 1 1 1 0 1 [1] 0 1 0 0 0 1 [1] 0 1 0 1 0 0 0 [1] 0 0 0 0 0 1 1 [0] (Bit-bit penanda FRN 27 & 28 pada FSPEC di-set menjadi 0) 1 1 1 1 1 0 1 [1] 0 1 0 0 0 1 [1] 0 1 0 1 0 0 0 [1] 0 0 0 0 0 0 0 [0] (Hilangkan FSPEC yang bernilai 0) 1 1 1 1 1 0 1 [1] 0 1 0 0 0 1 [1] 0 1 0 1 0 0 0 [1] (Dihilangkan) (Bit FX sebelumnya di-set menjadi 0) 1 1 1 1 1 0 1 [1] 0 1 0 0 0 1 [1] 0 1 0 1 0 0 0 [0] FSPEC pada versi 0.23 FB A3 50 Perubahan yang terjadi pada FSPEC: LEN FSPEC FSPEC FSPEC FSPEC FRN...... FB A3 51 06... LEN FSPEC FSPEC FSPEC FRN... FRN...... FB A3 50......

84 Field Versi 0.26 Konversi Versi 0.23 CAT 15-15 LEN 00 2D Pengurangan 6 oktet 00 27 Oktet FSPEC terakhir FSPEC FB A3 51 06 dihilangkan dan nilai FX FB A3 50 sebelumnya di-set menjadi 0 FRN 1 00 00-00 00 FRN 2 00 20-00 20 FRN 3 32 3B 2B - 32 3B 2B FRN 4 FF EF 00 A3 Konversi 8 oktet menjadi 6 FB C0 29 01 31 30 68 oktet 4C 4C 1A FRN 5 8A 02 61-8A 02 61 FRN 7 00 07-00 07 FRN 8 08-08 FRN 10 01 91-01 91 FRN 14 FF 00 - FF 00 FRN 16 05 25 C3 3C - 05 25 C3 3C FRN 18 30 E2 75 30 E2 75 - DF 58 20 DF 58 20 FRN 27 2C E8 Dihilangkan - FRN 28 32 Dihilangkan - (Tabel 3.2 Tabel Konversi Data) Setelah proses konversi selesai, maka akan didapatkan data Asterix-21 dengan versi 0.23 : [15] [00] [27] [FB] [A3] [50] [00] [00] [00] [20] [32] [3B] [2B] [FB] [C0] [29] [4C] [4C] [1A] [8A] [02] [61] [00] [07] [08] [01] [91] [FF] [00] [05] [25] [C3] [3C] [30] [E2] [75] [DF] [58] [20]