7
BAB 2
LANDASAN TEORI
2.1 
Metode Transmisi Data
Metode transmisi data terbagi menjadi 3 cara yaitu unicast, multicast,
dan broadcast.
2.1.1   Unicast
Unicast adalah metode transmisi data dimana server mengirim
data
hanya kepada satu  client. Dengan kata
lain, hanya melibatkan
satu pengirim dan satu penerima. Server harus membuat jalur koneksi
yang baru untuk setiap client yang meminta data. Oleh karna itu,
metode  unicast menghabiskan bandwidth
yang besar
dan
mengakibatkan beban server bertambah. Bandwidth
sendiri adalah
kecepatan untuk melakukan transmisi data antar device yang memiliki
jaringan internet. Biasanya metode ini dipakai untuk melakukan
browsing internet. Protokol yang dipakai oleh metode ini adalah
protokol TCP (Transmission  Control Protocol) sehingga pertukaran
data lebih reliable (Kurose & Ross, 2003).
2.1.2 
Multicast
Multicast
adalah metode transmisi data dimana server
mengirim data kepada banyak  client melalui IP multicast. Metode ini
  
8
dapat bekerja apabila router atau switch yang berada di antara server
dan client
merupakan router atau switch yang multicast-enabled.
Metode ini  bertujuan untuk mengurangi beban pada server jaringan.
Data dari server akan di-copy
oleh router sesuai kebutuhan client
sehingga bandwidth
yang diperlukan hanya sedikit.
Biasanya metode
ini dipakai untuk melakukan transfer data secara massal seperti update
program atau
update
sistem operasi. Protokol yang digunakan oleh
metode ini adalah protokol UDP (User  Datagram Protocol) sehingga
pertukaran data unreliable (Meserve, 2000).
.
2.1.3
Broadcast
Broadcast
adalah metode transmisi data dimana server
mengirim data kepada banyak client
sesuai broadcast address
yang
telah ditetapkan. Metode ini menggunakan protokol UDP sehingga
memiliki sifat yang unreliable
dan memungkinkan terjadinya
duplikasi datagram. Mekanisme kerja
broadcast adalah ketika
datagram
sedang di-broadcast, semua client
yang berada dalam
broadcast address
akan menerima datagram tersebut
(Tanenbaum,
1996).
Broadcast dibagi menjadi 2 yaitu :
1.
Limited Broadcast : mengirimkan data ke semua NIC
(Network
Interface Card). Limited Broadcast mempunyai broadcast address
  
9
yaitu 255.255.255.255 dalam TCP/IP. Metode ini tidak melibatkan
router.
2.
Direct Broadcast
: mengirimkan data ke semua host
dalam
sebuah jaringan. Contohnya adalah jaringan dengan IP address
192.168.0.0 memiliki broadcast address 192.168.255.255.
2.2
Metodologi Perancangan dan Pengembangan Program
Terdapat beberapa metodologi dalam melakukan perancangan dan
pengembangan program :
2.2.1 
Waterfall Model
Waterfall model
merupakan proses perancangan dan
pengembangan program yang langkah-langkahnya berurutan. Berikut
adalah
langkah-langkah yang dilakukan apabila
ingin
memakai
waterfall model :
1.
Communication
= mengumpulkan informasi yang dibutuhkan
untuk merancang program. 
2.
Planning
= menentukan berapa lama waktu yang dibutuhkan
untuk membuat program.
3.
Modeling = menganalisis dan mendesain program.
4.
Construction = melakukan koding dan tes program.
5.
Deployment = menyerahkan program kepada klien dan melakukan
perbaikan apabila terdapat error.
 
  
10
Kelebihan menggunakan waterfall model :
1.
Tersedia waktu yang cukup untuk mengidentifikasi sistem.
2.
Mengurangi peluang terjadinya pengubahan sistem pada saat
proses pengembangan perangkat lunak.
Kekurangan menggunakan waterfall model :
1.
Harus melakukan perancangan sistem dengan sebaik mungkin.
2.
Selisih waktu yang cukup lama antara pengajuan dan
pembaharuan sistem.
Gambar 2.1 Ilustrasi Waterfall Model
2.2.2
Agile Model
Agile Model merupakan proses
pengerjaan perangkat lunak
dengan waktu yang singkat.
Metode pengembangan program ini
mengutamakan kecepatan dalam prosesnya.
  
11
Kelebihan menggunakan agile model :
1.
Hasil dapat diraih dalam waktu yang singkat.
2.
Fokus dalam pengerjaan proyek.
Kekurangan menggunakan agile model :
1.
Membutuhkan kedisiplinan yang tinggi.
2.
Cocok untuk pengerjaan proyek dalam skala kecil.
3.
Membutuhkan lebih banyak informasi dari user.
2.2.3
Parallel Model 
Parallel model
merupakan proses
perancangan dan 
pengembangan perangkat lunak dimana fase desain dan implementasi
dilakukan secara parallel. Kelebihan dari model ini adalah
mengurangi waktu penjadwalan dan meminimalisasi pengerjaan
ulang. Kekurangan dari model ini adalah banyak terjadi kegagalan
saat penggabungan subproyek.
2.2.4
Rapid Model
Rapid model
merupakan proses perancangan dan
pengembangan perangkat lunak dimana developer
terlebih dahulu
menunjukkan software prototype
kepada customer. Kelebihan dari
model ini adalah user dapat menggunakan sistem lebih awal dan user
dapat mengajukan fitur apa yang harus ditambahkan untuk versi
selanjutnya.
  
12
2.3
UML (Unified Modelling Language)
Unified modeling language
adalah standar untuk visualisasi,
perancangan, dan dokumentasi pada sistem perangkat lunak. Berikut adalah
beragam macam diagram yang direpresentasikan oleh UML :
2.3.1
Use Case Diagram
Use case diagram menggambarkan kegunaan yang diharapkan
dari sebuah sistem. Use case
merepresentasikan interaksi antara user
dan sistem.
Use case
sangat membantu bila kita sedang menyusun
persyaratan sebuah sistem, mengkomunikasikan rancangan dengan
klien, dan merancang test case
untuk semua fitur yang ada pada
sistem. 
 
Gambar 2.2 Notasi Use Case Diagram
2.3.2
Class Diagram
Class diagram
menggambarkan struktur dan deskripsi class,
package, dan objek
beserta hubungan satu sama lain dalam konsep
  
13
OOP. Class
memiliki 3 hal penting yaitu nama, atribut, dan metoda.
Atribut dan metoda dapat memiliki salah satu sifat berikut :
1.
Private
=
Tidak dapat dipanggil oleh class lain.
2.
Protected
= Hanya dapat dipanggil oleh class
yang bersangkutan
dan subclass yang mewarisinya.
3.
Public
= Dapat dipanggil oleh siapa saja.
2.3.3
State Diagram
State diagram
menggambarkan perubahan keadaan suatu
objek pada sistem dan pada umumnya state diagram menggambarkan
class tertentu.
2.3.4
Activity Diagram
Activity diagram
menggambarkan
berbagai alur aktivitas
dalam sistem yang sedang dirancang, bagaimana setiap alur berawal,
decision
yang mungkin terjadi, dan bagaimana alur-alur tersebut
berakhir. Activity diagram dapat juga menggambarkan proses parallel
yang mungkin terjadi pada beberapa eksekusi.  
 
2.3.5
Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek yang
berada di dalam sistem. Jika digambarkan dalam sebuah grafik, garis
vertikal menggambarkan dimensi waktu dan garis horizontal
menggambarkan objek-objek yang terhubung berada suatu
sistem.
  
14
Sequence diagram
biasanya menggambarkan skenario dari sebuah
event untuk menghasilkan output tertentu.
2.4
ADS-B (Automatic Dependent Surveillance-Broadcast)
ADS-B adalah sebuah teknologi
baru dalam dunia penerbangan yang
berfungsi untuk melakukan pengamatan
dan memperoleh informasi dari
pesawat
yang sedang mengudara
(Stites,
2006).
Pesawat
yang
telah
menggunakan
teknologi ADS-B saja yang dapat memberikan informasi ke
ADS-B ground station. Data yang diperoleh
dari teknologi ADS-B adalah
visualisasi posisi pesawat
dan informasi seperti : ketinggian, kecepatan, dan
identifikasi pesawat.
Teknologi ini memberikan kelebihan dalam hal
keselamatan penerbangan (Access Intelligence LLC, 2007).
Teknologi lain
yang digunakan oleh dunia penerbangan adalah
sistem
radar. Radar adalah
sistem yang berfungsi untuk
mendeteksi
posisi dari pesawat yang sedang
mengudara. Perbedaan kedua sistem tersebut adalah pesawat yang memakai
sistem ADS-B dapat mengirimkan data secara real time kepada pesawat lain
dan ground station
yang telah menggunakan sistem yang sama sedangkan
radar membutuhkan rentang waktu 12 detik agar dapat meng-update
posisi
pesawat (Ross, 2012).
  
15
Gambar 2.2 Perbandingan Cara Kerja Radar dengan ADS-B
Pesawat yang dilengkapi
oleh MOD-S Transponder akan menerima
data dari GNSS
(Global Navigation Satellite System) lalu kemudian
mengirimkan data tersebut ke ADS-B receiver atau ground station. Format
data yang digunakan oleh pesawat ke ADS-B receiver
adalah
format data
MOD-S sedangkan dari ADS-B receiver
ke ATC adalah
format data
ASTERIX-21. ADS-B receiver
menggunakan metode transmisi data unicast
dan format data Asterix kategori versi 0.26, sedangkan ADP menggunakan
metode transmisi data multicast dan format data Asterix kategori
versi 0.23
(ICAO, 2010).
  
16
Gambar 2.3 Proses Kerja ADS-B
2.5
Konkurensi
Konkurensi adalah beberapa proses yang terjadi pada saat bersamaan
dan berpotensi saling berinteraksi dengan proses lainnya. Kelebihan
dalam
menggunakan konkurensi
adalah
dapat memberikan
efisiensi
dalam 
pengolahan dan penstrukturan program  (Rescoe, 1997).
Berikut prinsip-prinsip dalam konkurensi :
1.
Alokasi waktu untuk menjalankan banyak proses.
  
17
2.
Pemakaian proses secara bersamaan dan persaingan untuk mendapatkan
sumber daya. 
3.
Komunikasi antar proses.
4.
Sinkronisasi aktivitas yang dijalankan oleh banyak proses.
Adapun kemungkinan terjadi masalah-masalah pada konkurensi :
1.
Deadlock
= kondisi dimana banyak proses yang terlibat namun tidak
dapat menyelesaikan prosesnya.
2.
Starvation = kondisi dimana terdapat proses yang tidak dilayani.
Sinkronisasi merupakan sebuah langkah untuk mengatur jalannya
proses pada saat yang bersamaan. Tujuan utama dari sinkronisasi adalah
menghindari terjadinya inkonsistensi data karna pengaksesan oleh beberapa
proses yang berbeda dan juga untuk mengatur urutan jalannya proses-proses
agar terhindar dari deadlock dan starvation (Stalings, 2008).
2.5.1
Pemrograman Konkuren
Pemrograman konkuren adalah proses
memprogram dua atau
lebih kode supaya dapat dijalankan secara bersamaan.
Beberapa
komputer yang mengeksekusi
kode program secara simultan disebut
  
18
sebagai distributed computing
sedangkan jika berada pada satu
komputer saja disebut sebagai single computing (Bustard, 1990).
2.6
Proses
Proses adalah
program yang
dieksekusi. Perbedaan
antara program
dan proses
adalah program merupakan sebuah entitas pasif atau yang
lebih
sering dikenal dengan file yang siap dieksekusi (executable file). Sedangkan
proses adalah
sebuah entitas aktif dengan
program counter yang
menspesifikasikan
instruksi yang akan dieksekusi dan menyiapkan sumber
daya yang akan digunakan. Sebuah program akan
menjadi sebuah proses
apabila file
tersebut sudah siap untuk dieksekusi (executable file)
dan telah
dimuat ke dalam memori (Silberschatz, 2005).
  
19
Gambar 2.4 Skema Umum Proses
Sebuah proses memiliki sifat–sifat sebagai berikut :
1.
Setiap proses memiliki sebuah user address space
yang terdiri dari
segmen teks, segmen data, segmen stack dan segmen heap.
2.
Sebuah proses memiliki sebuah image dari kode-kode biner sebuah
perangkat lunak yang akan dieksekusi. Image tersebut terdapat dalam
segment teks pada user address space.
3.
Sebuah proses memiliki variabel global yang tersimpan di dalam
segmen
data.
  
20
4.
Sebuah proses memiliki jatah memori yang bersifat privat yang
dapat
dialokasikan untuk kebutuhan melacak subrutin
yang sedang aktif dan
menyimpan data temporer di segmen stack serta menyimpan data yang
teralokasi pada saat runtime di segmen heap. Memori yang tersedia dapat
berupa memori virtual maupun nyata.
5.
Sebuah proses memiliki deskriptor seperti deskriptor file, deskriptor
socket, deskriptor shared memory, dll.
6.
Sebuah proses memiliki atribut keamanan yang telah disediakan oleh
sistem operasi pada saat proses berjalan.
7.
Sebuah proses memiliki status proses
yaitu penanda bahwa proses yang
terdapat di register sistem operasi bila proses aktif atau di memori sistem
bila proses tidak aktif.
8.
Proses dapat saling melakukan komunikasi dan sharing resources dengan
proses lain dalam komputer yang sama.
  
21
Gambar 2.5 Status-Status pada Proses
Berikut status-status pada proses :
1.
Running
: Proses yang terdapat pada state ini sudah berjalan.
2.
Ready 
: Proses yang dipersiapkan untuk segera dieksekusi.
3.
Blocked
: Proses tidak dapat dilanjutkan selagi menunggu event
atau I/O dari Sistem Operasi.
4.
New
:
Proses yang baru dibuat oleh Sistem Operasi, dan
belum mendapatkan alokasi memori.
5.
Exit
: Proses sudah dihentikan dan keluar dari model state
tersebut.
  
22
2.6.1
Multiprocess
Secara konsep, setiap proses memiliki virtual CPU masing-
masing. Namun dalam praktiknya,
CPU hanya dapat melakukan
proses secara bergantian
atau yang sering disebut sebagai
pseudoparalleism.
Jika memang terjadi sebuah multiprocess, proses yang sedang
berjalan akan memblok proses yang lainnya. Proses membuat suatu
output yang bisa digunakan proses lain sebagai input. Namun, proses
ini tidak memberikan output yang dibutuhkan oleh proses lain,
sehingga proses lain pun
akan
menunggu hingga input tersedia.
Adapun kasus lain yang memungkinkan untuk proses yang sudah siap
namun dihentikan oleh sistem operasi karena sistem operasi
tersebut
memutuskan untuk mengalokasikan memori
agar dapat digunakan
oleh proses yang lain (Tanenbaum, 2009).
2.7 
Thread
Thread
adalah sebuah unit dasar utilisasi prosesor (CPU). Sebuah
thread
memiliki thread
ID, program counter, satu set register, dan sebuah
stack. Sebuah thread
saling berbagi sumber
daya sistem operasi,
segmen
kode, dan segmen data dengan thread lainnya dalam satu proses yang sama.
Bila suatu proses memiliki thread
yang banyak, maka proses tersebut dapat
melakukan tugasnya lebih dari satu dalam satu waktu.
  
23
Gambar 2.6 Skema Umum Thread
Sebuah proses memiliki minimal satu buah thread. Komunikasi antar
thread dapat dilakukan selama masih dalam satu proses. Dalam konsepnya
juga, thread dapat berjalan secara bersamaan, namun dalam praktiknya, CPU
hanya dapat menjalankan satu buah thread saja.
Thread lainnya harus
menunggu untuk mendapatkan giliran (Silberschatz & Galvin, 2008).
Berikut karakteristik thread dengan standar POSIX :
1.
Thread dimiliki oleh suatu proses dan menggunakan sumber daya yang
sama dengan proses tersebut.
  
24
2.
Suatu sistem kontrol dimiliki oleh
thread selama proses parent
berlangsung dan sistem operasi mendukung.
3.
Komunikasi dan sharing resources dapat dilakukan oleh thread dengan
thread lainnya namun memerlukan sinkronisasi antar thread.
4.
Jika proses berhenti maka thread akan berhenti.
2.7.1
Multithread
Pemrograman
multithread sering digunakan karna
tidak
komplek
dan
lebih
mudah dalam melakukan maintenance
dan
berbagi informasi (Silberschatz & Galvin, 2008).
Setiap sistem operasi memiliki system call yang berbeda untuk
memanggil fungsi pada multithread programming.
Pada sistem
operasi varian UNIX/LINUX, digunakan
standar
pustaka POSIX
thread (pthread). Sedangkan pada sistem operasi Windows, digunakan
pustaka CWinThread yang terdapat dalam
Microsoft Foundation
Classes (MFC) Windows SDK.
No.
Thread Utama
1
Thread utama membuat dan menjalankan 2 buah thread. Thread utama aktif.
2
Thread 1 melakukan proses create dan thread
diaktifkan.
Thread 2 juga melakukan
proses create dan thread
diaktifkan.
  
25
3
Thread 1 dan 2 melakukan proses join dimana
thread 1 akan menunggu hingga thread 2
selesai.
Thread 2 masih aktif.
4
Thread 2 telah selesai dan
memberitahukan ke thread 1.
5
Pemberitahuan dari thread 2 diterima oleh
thread 1, lalu thread 1 kembali aktif.
6
Thread selesai.
Tabel 2.1 Tahapan Pembuatan Thread
Tahapan
Command
Keterangan
Create
pthread_create
Membentuk sebuah thread.
Join
pthread_join
Menunggu sebuah thread sampai selesai.
Detach
pthread_detach
Membatalkan tahapan join.
Terminate
pthread_exit
Memberhentikan sebuah thread.
Tabel 2.2 Library pthread
2.7.2
Mutex (Mutual Exclusion)
Mutual exclusion adalah kondisi dimana terdapat sumber daya
yang tidak dapat dipakai dalam waktu bersamaan. Kondisi seperti ini
hanya dapat mengijinkan satu proses pada waktu tertentu untuk masuk
ke critical section. Mutual exclusion
menjamin hanya ada satu proses
  
26
yang mengakses sumber daya pada waktu tertentu
(Silberschatz
&
Galvin, 2008).
No.
Thread Utama
1
Thread utama membuat sebuah mutex yang akan digunakan oleh semua
thread. Thread utama membuat dan menjalankan 2 buah thread. Thread
utama aktif.
Thread 1
Mutex
Thread 2
2
Thread 1 diaktifkan.
Thread 2 diaktifkan.
3
Thread 1 memulai proses
dengan menggunakan
lock terhadap mutex.
Mutex berada di
thread 1.
Thread 2 masih Aktif.
4
Thread 1 masih aktif.
Mutex berada di
thread 1.
Thread 2 melakukan
lock terhadap mutex.
Thread 2 menunggu.
5
Thread 1 melakukan
unlock terhadap mutex
Thread 2 selesai
menunggu.
6
Thread 1 selesai.
Mutex berada di
thread 2.
Thread 2 melakukan
unlock terhadap
mutex. Thread 2
selesai.
7
Thread selesai dan mutex dihapus.
Tabel 2.3 Tahapan Pembuatan Mutex
  
27
Tahapan
Command
Keterangan
Create
pthread_mutex_init
Membuat sebuah mutex.
Lock
pthread_mutex_lock
Mengunci sebuah mutex.Bila tidak
berhasil, dicoba terus sampai berhasil.
pthread_mutex_trylock
Mengunci sebuah mutex. Bila tidak
berhasil mengembalikan nilai false.
pthread_mutex_timedlock
Mengunci sebuah mutex dalam satuan
waktu. Bila tidak berhasil
mengembalikan nilai false.
Unlock
pthread_mutex_unlock
Melepaskan kunci mutex.
Destroy
pthread_mutex_destroy
Menghancurkan sebuah mutex.
Tabel 2.4 Library Mutex
2.8
Socket
Socket digunakan untuk menjembatani komunikasi antar proses yang
berada di satu atau beberapa komputer melalui sebuah aplikasi. Pemrograman
socket berada pada network layer (layer 3) dan transport layer (layer 4). Ipv4
digunakan pada network layer. Sedangkan untuk transport layer, yang akan
digunakan adalah TCP dan UDP (Comer, 2004). 
TCP
UDP
Membutuhkan koneksi 2 arah
Hanya membutuhkan koneksi searah
Reliable
Unreliable
  
28
Kecepatan pengiriman lambat
Kecepatan pengiriman cepat
Tabel 2.5 Perbedaan TCP dan UDP
2.8.1
Pemrograman Socket
Pemrograman socket memerlukan 2 buah program yaitu untuk
client dan server
serta bertujuan agar client
dan server
dapat
melakukan komunikasi.
No.
Server
Client
1
Membuat socket.
Membuat socket.
2
Melakukan bind ke sebuah port.
Melakukan bind ke sebuah port.
3
Untuk TCP : proses accept.
Sedangkan
UDP : langsung memulai
pertukaran data.
4
Koneksi terhubung.
Koneksi terhubung.
5
Melakukan proses send/receive.
Melakukan proses send/receive.
6
Melakukan proses close.
Melakukan proses close.
7
Koneksi terputus.
Koneksi terputus.
8
Menghapus socket.
Menghapus socket.
Tabel 2.6 Tahapan Pembuatan Socket 
Tahapan
Command
Keterangan
Create
Socket
Membuat socket.
  
29
Bind
Bind
Memesan port.
Listen
Listen
Menunggu koneksi yang akan masuk.
Accept
Accept
Menerima koneksi.
Send
Send
Mengirimkan data.
Receive
Receive
Menerima data.
Sendto
Sendto
Mengirimkan data. (untuk UDP)
ReceiveFrom
Receivefrom
Menerima data. (untuk UDP)
Close
Close
Menutup koneksi.
Tabel 2.7 Library Socket
Server akan membuat sebuah socket dan kemudian melakukan
bind
agar
socket
memiliki alamat
yang
unik. Pada bind
diperlukan
nomor port
dan alamat IP kemudian server
memulai untuk listen.
Client
juga
akan
membuat socket
dan
meminta koneksi agar dapat
terhubung
dengan server. Setelah tercipta sebuah komunikasi
atau
pertukaran data, client
atau server
dapat
mengakhiri komunikasi
dengan menutup koneksi socket (Comer, 2004).
  
30
Gambar 2.7 Pemodelan Server dan Client
Hal-hal yang harus diperhatikan dalam membuat program untuk
client:
1.
Harus mendukung operating system yang beragam.
2.
Performa yang stabil untuk melakukan komunikasi.
Hal-hal yang harus diperhatikan dalam membuat program untuk
server :
1.
Harus dapat melayani tiap client
dengan baik dari segi jaringan
dan pertukaran data.
  
31
2.
Server
dapat diakses oleh banyak client
dan
setiap
client
dapat
melakukan komunikasi dengan server secara simultan.
3.
Memiliki tingkat keamanan yang tinggi agar tidak terjadi
pencurian data.
2.9
OOP (Object Oriented Programming) 
Object Oriented Programming
adalah suatu metode pemrograman
yang berorientasi pada objek. Objek digunakan untuk membungkus data dan
fungsi. Sementara kelas merupakan kumpulan data dan fungsi yang
penjelasannya sebagai berikut : 
1.
Attributes
= menentukan karakteristik dari sebuah objek dan memiliki
nilai. Contoh : mobil mempunyai atribut warna, ukuran velg, dan jenis
mesin.
2.
Methods
= menentukan bagaimana sebuah objek dapat berinteraksi
dengan objek lain. Contoh : method dari mobil adalah startCar, driveCar,
dan changeWheel.
3.
Object state
= menentukan status
objek yang sedang diakses. Contoh :
stopped, running.
  
32
Gambar 2.8 Ilustrasi Objek dan Kelas
Konsep dasar OOP :
1.
Encapsulation
= sebuah konsep dimana isi dari sebuah informasi
dimanipulasi sedemikian mungkin sehingga atribut-atribut yang
digunakan tidak diketahui oleh user.
2.
Inheritance = sebuah konsep dimana suatu kelas baru mewarisi sifat dari
kelas lain yang sudah ada.
3.
Polymorphism
= sebuah konsep dimana tiap-tiap objek yang berbeda
kelas menggunakan metode yang sama. 
4.
Overriding
= sebuah konsep dimana kelas child
mengimplementasikan
metode-metode yang disediakan oleh kelas parent.
  
33
2.10
Array
Array
adalah
suatu kumpulan data homogen yang jumlah elemennya
telah ditentukan dari awal. Pembentukan array dimulai dari menentukan tipe
data, memberikan nama variabel, dan menentukan jumlah maksimum index
yang akan dipakai (Ngoen, 2009).
Contoh :
Int billy[5];
Tipe data yang digunakan adalah integer, nama variabel adalah billy,
dan jumlah maksimum index adalah 5. 
Gambar 2.9 Contoh Array
Karakteristik dari sebuah array :
1.
Mempunyai batasan dalam memesan alokasi memori.
2.
Mempunyai tipe data yang sama.
Keunggulan dalam menggunakan array :
1.
Dapat mengakses elemen secara acak.
2.
Penyimpanan elemen sangat efisien.
  
34
Kelemahan dalam menggunakan array :
1.
Harus bersifat homogen.
2.
Sulit untuk merubah batasan maksimum index (Deitel, 2004).
2.11
Linked List
Linked list
adalah suatu kumpulan data linier yang mengisi setiap
node dan node-node tersebut dihubungkan oleh pointer. Sebuah linked list
diakses oleh pointer
dari node pertama dalam list
tersebut. Node terakhir
dalam sebuah linked list di-set menjadi NULL untuk menandakan akhir dari
list. Setiap node dibuat sesuai kebutuhan dan dapat mempunyai tipe data apa
saja
(Sjukani, 2010). Data dapat disimpan dalam bentuk array, tetapi linked
list
memberikan beberapa kelebihan. Linked list
lebih cocok digunakan saat
jumlah elemen data yang ingin disimpan
belum dapat dipastikan. Data
disimpan dalam linked list
secara dinamis, jadi panjang sebuah list
dapat
ditambah atau dikurangi sesuai kebutuhan tetapi ukuran dari sebuah array
tidak dapat diubah saat memori
sudah ditentukan. Linked list dapat
menjadi
penuh jika sistem tidak memiliki memori yang cukup untuk menampung data
(Deitel, 2004). 
.
Berikut merupakan fungsi-fungsi yang terdapat dalam linked list :
1.
Insert
= fungsi yang digunakan untuk menambah elemen pada sebuah
node.
  
35
2.
Delete
= fungsi yang digunakan untuk menghapus elemen pada sebuah
node.
3.
IsEmpty
= fungsi yang digunakan untuk menentukan apakah node yang
ditunjuk oleh pointer kosong atau tidak.
4.
Retrieve = fungsi yang digunakan untuk mengambil elemen pada sebuah
node.
5.
Update = fungsi yang digunakan untuk merubah isi sebuah node.
2.12
Queue
Queue
adalah suatu kumpulan
data
dimana penambahan data
dilakukan pada akhir antrian dan penghapusan data dilakukan pada awal
antrian.
Dengan kata lain, queue
memakai prinsip FIFO (First In First Out)
yakni data yang masuk terlebih dahulu akan didahulukan prosesnya dan data
yang lain akan menunggu
hingga proses itu selesai dieksekusi. Istilah yang
digunakan untuk penambahan dan penghapusan data adalah enqueue
dan
dequeue (Sjukani, 2010)
  
36
Gambar 2.10 Proses Queue
Berikut merupakan pergerakan pointer dari enqueue :
1.
Untuk membuat node baru. Ditujukan untuk menempatkan lokasi
memori
(newPtr) dan
memasukkan nilai
ke dalam queue
(newPtr
data).
2.
Jika queue kosong, newPtr menuju ke nextPtr atau tailPtr menuju ke
nextPtr.
Berikut merupakan pergerakan pointer dari dequeue :
1.
Untuk menyimpan data (headPtr->data).
2.
Untuk mengosongkan memori yang tidak digunakan (headPtr-
>tempPtr).
  
37
3.
Menempatkan (headPtr
nextPtr)
menuju ke headPtr sehingga
headPtr sekarang menunjuk ke node baru pada queue.
4.
Jika headPtr berisi NULL, NULL ditujukan ke tailPtr (Deitel, 2004).
2.13
ASTERIX
ASTERIX
(All purpose STructured Eurocontrol suRveillance
Information eXchange) adalah standar Eurocontrol untuk format data yang
digunakan dalam pertukaran
informasi antara sistem yang berada di pesawat
dan ATC. 
Menurut Open System Interconnection
(OSI) Reference Model
(International Standar Organization (ISO) Standar 7498), ASTERIX bekerja
pada layer
6 dan layer
7, yaitu presentation layer
dan application layer.
Untuk transmisi data yang terkait dengan aplikasi tertentu, ASTERIX
telah
dikelompokkan ke dalam 256 kategori oleh RDE-TF (suRveillance Data
Exchange-Task Force). Transmisi data untuk
penerbangan komersil
menggunakan format data ASTERIX kategori 21 (Icriverzi & Cristea, 2012).
Berikut
ini
merupakan definisi dari istilah-istilah
yang digunakan
dalam format data ASTERIX kategori 21 :  
Catalogue of Data Items
: daftar seluruh data items yang berada di setiap
data category.
Data Block
:
kumpulan
informasi yang berisi data
category, panjang dari data block, dan record. Sebuah data block berisi
satu atau lebih record dari category yang sama.
  
38
Data Category
:
kategori yang digunakan oleh struktur data
ASTERIX.
Data Field
: unit terkecil dari informasi yang telah
ditransmisi dan memiliki field reference number yang unik.
Data Item 
: unit informasi terkecil pada setiap data
category.
Record
:
kumpulan data field
yang berasal dari
category yang sama dan telah ditransmisi.  
User Application Profile : Memasangkan
tiap data item
ke tiap data
field.
Gambar 2.11 Struktur Data Block
2.13.1
Format Standar Data Field
Data field adalah slot yang berisi data item.
  
39
2.13.1.1
Fixed Length Data Field
Fixed length data field
adalah data field
yang 
panjang byte-nya sudah tetap.
2.13.1.2
Extended Length Data Field
Extended length data field
adalah
data field
yang panjang byte-nya tidak tetap. Apabila bit terakhir
bernilai 1,
maka akan dilanjutkan
ke data
field
sesudahnya. Apabila bit terakhir bernilai 0, berarti itu
adalah akhir dari data field.
2.13.1.3
Repetitive Data Field
Repetitive data field merupakan data field yang
byte awalnya berisi nilai n untuk menunjukkan adanya
data field yang sejenis.
2.13.1.4
Field Specification
Field specification
merupakan sebuah data
yang
berisi
lebih dari satu buah data field
yang tidak
sejenis. Urutan
data field
telah ditentukan oleh
  
40
ASTERIX
namun tidak semua data field
selalu aktif.
Field specification
yang terletak pada byte-byte
awal
digunakan untuk menentukan data field
yang aktif.
Field specification adalah daftar isi dari data field yang
aktif berupa kumpulan bit-bit
biner. Bit
ke-n
menunjukkan status data field ke-n. Jika bit bernilai 1,
maka dalam pesan
tersebut terdapat data untuk data
field
ke-n. Bit
ke-8 pada setiap byte
menyatakan bila
bit
tersebut bernilai 1, maka byte
berikutnya
merupakan field specification. Namun jika bit tersebut
adalah 0, maka byte tersebut merupakan akhir dari field
specification
dan byte
berikutnya adalah
data field
pertama.
2.13.1.5
Compound Data Field
Yang membedakan compound data field
dengan field specification adalah
compound data field
terdapat pada
data field
sedangkan field specification
selalu terdapat pada setiap record data ASTERIX.
  
41
Gambar 2.12 Fixed, Extended, dan Repetitive Data Field
Gambar 2.13 Field Specification
  
42
Gambar 2.14 Compound Data Field
2.13.2 Tipe Data ASTERIX-21
Gambar 2.15 Data Block ASTERIX-21
CAT = 021 adalah field  berisi 8 bit yang menjelaskan bahwa data block
ini mengandung pesan ASTERIX-21.
  
43
LEN adalah field
berisi 16 bit
yang menjelaskan total panjang dari data
block.
FSPEC adalah field
berisi 8 bit
yang menjelaskan eksistensi
dari
data
field.
Pesan ASTERIX-21
akan dibuat berdasarkan data items
yang disusun
sesuai urutan yang ditentukan oleh field reference number.
Tabel Isi Record ASTERIX-21 Versi 0.26
FRN
Data Item
Information
Length 
1
I021/010
Data Source Identification
2
2
I021/040
Targer Report Descriptor
1+
3
I021/030
Time of Day
3
4
I021/130
Position in WGS-84 co-ordinates
6
5
I021/080
Target Address
3
6
I021/140
Geometric Altitude
2
7
I021/090
Figure Of Merit
2
FX
-
Field extension indicator
-
8
I021/210
Link Technology
1
9
I021/230
Roll Angle
2
  
44
10
I021/145
Flight Level
2
11
I021/150
Air Speed
2
12
I021/151
True Air Speed
2
13
I021/152
Magnetic Heading
2
14
I021/155
Barometric Vertical Rate
2
FX
-
Field extension indicator
-
15
I021/157
Geometric Vertical Rate
2
16
I021/160
Ground Vector
4
17
I021/165
Rate of Turn
1+
18
I021/170
Target Identification
6
19
I021/095
Velocity Accuracy
1
20
I021/032
Time of Day Accuracy
1
21
I021/200
Target Status
1
FX
-
Field extension indicator
-
22
I021/020
Emitter Category
1
23
I021/220
Met Report
1+
24
I021/146
Intermediate State Selected Altitude
2
  
45
25
I021/148
Final State Selected Altitude
2
26
I021/110
Trajectory Intent
1+N*15
27
I021/070
Mode 3/A Code in Octal
Representation
2
28
I021/131
Signal Amplitude
1
FX
-
Field extension indicator
-
29
-
Spare Bits Set To Zero
-
30
-
Spare Bits Set To Zero
-
31
-
Spare Bits Set To Zero
-
32
-
Spare Bits Set To Zero
-
33
-
Spare Bits Set To Zero
-
34
RE
Reserved Expansion  Field
1+
35
SP
Special Purpose Field
1+
FX
-
Field extension indicator
-
Tabel 2.8 Isi Record Asterix-21
FRN (Field Reference Number) terasosiasi dengan setiap data item
yang ada pada record
sebagai penanda dari informasi yang dimiliki
oleh field tersebut.
FX (Field Extension Indicator)
adalah indikator perpanjangan field
yang menunjukkan setiap kelipatan dari 7 FRN.
  
46
Length
menjelaskan panjang data
dimana angka tersebut
menunjukkan jumlah oktet dari fixed-length data item.
Pada ASTERIX-21
versi 0.23, panjang data item
dari FRN 27 dan
FRN 28 telah di-set menjadi 0 (EUROCONTROL, 2002).
2.13.3
Contoh Data ASTERIX-21
Dibawah ini merupakan sebuah contoh record
ASTERIX-21
dalam satuan heksadesimal :
[15] [00] [2B] [FB] [A3]
[51]
[02] [00] [00] [00] [20] [25] [90] [83]
[FF] [EE] [5D] [87] [01] [2E] [EF] [72] [8A] [18] [20] [00] [06] [08]
[00] [58] [00] [00] [03] [2E]
Keterangan masing-masing bit :
1.
15
bila dirubah menjadi
bilangan desimal adalah
21, yang
menunjukkan data category 021.
2.
00 2B
bila dirubah menjadi
bilangan desimal adalah
43, yang
menunjukkan panjang data 43 oktet.
3.
FB A3 51 02
adalah
FSPEC
menentukan isi FRN.
FRN 1
menunjuk data item
ke 1, FRN 2 menunjuk data item ke 2, dan
seterusnya.