• Tidak ada hasil yang ditemukan

LAMPIRAN. Lampiran 1 Singkatan yang digunakan

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAMPIRAN. Lampiran 1 Singkatan yang digunakan"

Copied!
33
0
0

Teks penuh

(1)

L1   

Lampiran 1 – Singkatan yang digunakan

1. Data Units

• NM = Nautical Miles

• Kts = Knots

2. Glosarium

• Flight Plan = Informasi mengenai penerbangan dan pesawa

terbang termasuk rute penerbangan, ketinggian pesawat,

kecepatan pesawat dan tipe serta peralatan dari pesawat.

• Repetitive Flight Plan Listing= Informasi penerbangan untuk

memberikan data jadwal keberangkatan dan kedatangan

maskapai penerbangan yang diterbitkan untuk menara ATC.

Lampiran 2 Kerangka Database

Tabel : filter2

Field

Type

Extra

Primary id

smallint

(10)

jarak

double(14,10)

Allow

Null

Tabel : final

Field

Type

Extra

Primary id

bigint(10)

Auto

Increment

eto

datetime

Allow

Null

distance

double(55,2)

Allow

Null

Tabel : hasil

Field

Type

Extra

Primary id

int(5)

Auto

Increment

callsign

varchar(255)

Allow

Null

aircraft_type

varchar(10)

Allow

Null

dof

date

Allow

Null

fixes

varchar(20)

Allow

Null

(2)

lon

double(14,10)

Allow

Null

eto

datetime

Allow

Null

afl

double(5,2)

Allow

Null

speed

double

(6,3)

Tabel : hasil_fixes

Field

Type

Extra

Primary id

int(5)

Auto

Increment

callsign

varchar(255)

Allow

Null

aircraft_type

varchar(10)

Allow

Null

dof

date

Allow

Null

fixes

varchar(20)

Allow

Null

lat

double(14,10)

Allow

Null

lon

double(14,10)

Allow

Null

eto

datetime

Allow

Null

afl

double(5,2)

Allow

Null

speed

double

(6,3)

Tabel : step1

Field

Type

Extra

Primary

id

smallint (11)

Auto Increment

datetime

datetime

Tabel : step2

Field

Type

Extra

Primary callsign varchar(55)

Allow

Null

lat

double(14,10)

Allow

Null

lon

double(14,10)

Allow

Null

(3)

Lampiran 3Technical Note

TECHNICAL NOTE

TN-001

Kajian Layanan Penerbangan

CNS - ATM

Pembuatan jalur pesawat

Dalam aplikasi Simulasi Tabrakan Pesawat (STP), jalur pesawat ditentukan melalui dua file yang berisi koordinat jalur A576 yaitu East.txt yang berisi jalur pesawat dari Singapura ke Bali dan West.txt yang berisi jalur pesawat dari Bali ke Singapura.

Koordinat yang diterima oleh aplikasi STP ditunjukkan dengan garis berwarna ungu, yang diproses menjadi list jalur pesawat dengan kode pemograman sebagai

(4)

berikut :

publicList<Point> BuatJalur(PlaneDirection planeDirection) {

var fileName = "East.txt";

if (planeDirection == PlaneDirection.West) fileName = "West.txt";

var temp = newList<Point>();

using (var reader = newStreamReader(fileName)) {

string line;

while (!string.IsNullOrEmpty(line = reader.ReadLine())) {

var splitted = line.Split(',');

var point = newPoint { X = Convert.ToDouble(splitted[0]), Y = Convert.ToDouble(splitted[1]) };

temp.Add(point); }

} }

Dan contoh format posisi jalur 713.317504961253,644.478419029683 dimana posisi pertama menunjukkan titik koordinat X dan posisi kedua menunjukkan titik koordinat Y pada layar peta aplikasi STP.

(5)

TECHNICAL NOTE

TN-002

Kajian Layanan Penerbangan

CNS - ATM

Menjalankan Simulasi

Dalam menjalankan simulasi, aplikasi Simulasi Tabrakan Pesawat (STP) akan men-generateobjek pesawat dengan properties sebagai berikut :

- AirplaneName

Nama callsign pesawat yang akan menunjukkan arah penerbangan pesawat dengan nama GA_{arah}_{counter}, arah menunjukkan apakah posisi bergerak ke barat atau ke timur dan counter menunjukkan nilai objek ke berapa selama simulasi berlangsung

- DisplayLatitude

Posisi latitude pesawat secara realtime pada saat itu. - DisplayLongitude

Posisi longitude pesawat secara realtime pada saat itu. - GroundSpeed

Nilai kecepatan pesawat dalam satuan pengukuran km/h. - FlightLevel

Nilai ketinggian pesawat dalam satuan pengukuran feet. - Waypoints

Menunjukkan list jalur pesawat yang akan disimulasikan

Setelah objek dan jalur disiapkan maka simulasi akan dijalankan dengan memproses informasi dari inputan user dalam aplikasi yakni :

(6)

Dalam gambar di atas menunjukkan : - Lama simulasi(jam)

Nilai lamanya simulasi akan dijalankan dalam satuan jam, dalam gambar di atas simulasi akan berjalan selama satu bulan dengan lama simulasi yaitu 720 jam.

- Spawn setiap(menit)

Nilai pemunculan objek pesawat, dalam hal ini mempresentasikan jadwal keberangkatan pesawat ke masing-masing tujuan.

- AFL (Airpnale Flight Level)

Nilai standart ketinggian pesawat sesuai asal bandara pesawat tersebut, nilai selisih ketinggian pesawat tersebut akan menjadi nilai Separation Standard yang ingin diberlakukan.

- Interval Data

Lama data yang akan direkam ke dalam database, dalam nilai diatas data akan diperoleh setiap satu detik.

Setelah itu setiap data dari simulasi ini akan dimasukkan ke dalam database “hasil” yang merupakan data mentah simulasi yang kemudian di filter menjadi data Traffic Sample Data (TSD) untuk digunakan kemudian dalam menghitung nilai Total Level of Safety (TLS).

(7)

TECHNICAL NOTE

TN-003

Kajian Layanan Penerbangan

CNS - ATM

Format database hasil simulasi

Hasil data simulasi di simpan ke dalam dua database yang berbeda yakni table “hasil” dan table “hasil_fixes”. Table “hasil” ini berisi data mentah / hasil radar dari hasil simulasi sedangkan table “hasil_fixes” ini merupakan data yang telah di-filter sehingga mendekati format Traffic Sample Data (TSD) dimana posisi setiap pesawat hanya akan dicatat merupakan posisi pesawat yang paling dekat dengan Waypoint di sepanjang jalur A756 yakni aktod, sanos, liana, apari, apaga, akula, sabil, sumbu, siput.

Format data table “hasil” dan “hasil_fixes” dibuat dengan query sebagai berikut :

DROP TABLE IF EXISTS `nama_table`; CREATE TABLE `nama_table` (

`id` int(5) NOT NULL auto_increment, `callsign` varchar(10) default NULL, `aircraft_type` varchar(10) default NULL, `dof` date default NULL,

`fixes` varchar(20) default NULL, `lat` double(8,0) default NULL, `lon` double(8,0) default NULL, `eto` datetime default NULL, `afl` double(6,0) default NULL, PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Dalam mem-filter data simulasi menjadi data TSD digunakan kode pemograman sebagai berikut :

(8)

{

{"AKTOD",newGeoCoordinate {Latitude = 0.713333, Longitude = 105.993056}},

{"SANOS",newGeoCoordinate {Latitude = 0.7, Longitude = 106.316667}}, {"LIANA",newGeoCoordinate {Latitude = 1.4773, Longitude = 107.1983}}, {"APARI",newGeoCoordinate {Latitude = 2.043411, Longitude =

107.340383}},

{"APAGA",newGeoCoordinate {Latitude = 2.782675, Longitude = 108.580897}},

{"AKULA",newGeoCoordinate {Latitude = 3.119878, Longitude = 108.950925}},

{"SABIL",newGeoCoordinate {Latitude = 4.019069, Longitude = 109.938528}},

{"SUMBU",newGeoCoordinate {Latitude = 4.755, Longitude = 110.823333}},

{"SIPUT",newGeoCoordinate {Latitude = 6.283333, Longitude = 112.583333}}

};

var hasils = (from p inActiveRecordLinq.AsQueryable<Hasil>() select p).ToList().GroupBy(c => c.CallSign).ToList();

using (newSessionScope()) {

foreach (var hasil in hasils) {

var values = hasil.ToList(); var idxKiri = 0;

foreach (var fixTower in listTower) {

var tempNearest = double.MaxValue; var fix = newHasilFix();

(9)

foreach (var value in values) {

var tempCoor = newGeoCoordinate { Latitude = value.Latitude, Longitude = value.Longitude };

var jarak = tempCoor.GetDistance(fixTower.Value); if (jarak < tempNearest) { tempNearest = jarak; fix.AircraftType = value.AircraftType; fix.AssignFlightLevel = value.AssignFlightLevel; fix.CallSign = value.CallSign; fix.DateOfFlight = value.DateOfFlight; fix.EstimatedTimeOver = value.EstimatedTimeOver; fix.Fixes = fixTower.Key; fix.GroundSpeed = value.GroundSpeed; fix.Latitude = value.Latitude; fix.Longitude = value.Longitude; } } fix.Create(); } } } }

(10)

TECHNICAL NOTE

TN-004

Kajian Layanan Penerbangan

CNS - ATM

Merubah koordinat X,Y menjadi Latitude, Longitude

Dalam mencatat posisi pesawat dalam aplikasi Simulasi Tabrakan Pesawat (STP), setiap posisi pesawat pada mulanya memakai koordinat X dan koordinat Y gambar EnRoute A576 dalam aplikasi.

Dengan asumsi bahwa jalur pesawat dianggap garis lurus terhadap peta, lalu di belokkan sesuai jalur A576. Yang ditunjukkan dengan illustrasi gambar di bawah ini :

Ratio pada kode di atas merupakan derajat pergeseran yang dibutuhkan untuk menyesuaikan jalur lurus yang bewarna merah menjadi jalur A756 yang bewarna ungu. Agar koordinat pesawat sejalan dengan jalurnya baik dari arah Singapura ke Bali demikian juga sebaliknya maka dilakukan perhitungan sebagai berikut :

Untuk jalur Latitude : 0.90354 – RATIO X Posisi Latitude Untuk jalur Longitude : 104.51456 + RATIO X Posisi Longitude

(11)

di Singapura. Posisi koordinat X,Y dapat dirubah menjadi koordinat Lat, Lon melalui kode pemograman sebagai berikut :

privateconstdouble RATIO = 0.0152033228346457;

publicdouble DisplayLatitude{ get { return 0.90354 - RATIO*CurrentLatitude;}} publicdouble DisplayLongitude{ get { return 104.51456 +

(12)

TECHNICAL NOTE

TN-005

Kajian Layanan Penerbangan

CNS - ATM

Menghitung jarak antar pesawat

Untuk menghitung jarak antar pesawat dilakukan dengan formula Haversine di bawah ini :

sin sin ∆

Gambar 3. Haversin Formula dimana :

haversin = ( • R = jari-jari bola

• = poin latitude pertama • = poin latitude kedua • ∆ = separasi longitude

Kemudian dilakukan berulang ke setiap pesawat pada saat waktu penerbangan seperti yang ditunjukkan pada gambar 1 dengan asumsi pada saat itu terdapat empat pesawat dari hasil query di database.

Gambar 1 Looping logic

(13)

dengan kode pemograman sebagai berikut :

var hasils = (from p inActiveRecordLinq.AsQueryable<Hasil>() select p).ToList().GroupBy(c => c.EstimatedTimeOver).ToList(); var radius = 3440.27694;

foreach (var hasil in hasils) {

var values = hasil.ToList(); var idxKiri = 0;

foreach (var value in values) {

for (int i = idxKiri + 1; i < values.Count; i++) {

var valueKanan = values[i];

var inner = Math.Cos(Radian(value.Latitude)) *

Math.Cos(Radian(valueKanan.Latitude)) * Math.Cos(Radian(valueKanan.Longitude) - Radian(value.Longitude)) + (Math.Sin(Radian(value.Latitude)) * Math.Sin(Radian(valueKanan.Latitude))); var acos = Math.Acos(inner);

var distance = radius * acos; if (double.IsNaN(distance)) distance = 0;

_worker.ReportProgress(i);

newDataFinal { Distance = distance, EstimatedTimeOver = hasil.Key }.Create(); }

idxKiri++; }

(14)

TECHNICAL NOTE

TN-006

Kajian Layanan Penerbangan

CNS - ATM

Metode Random dengan Distribusi Laplace

Nilai random untuk mempresentasikan gangguan cuaca atau pilot error dalam simulasi yang mempengaruhi simpangan pesawat, ketinggian pesawat dan kecepatan pesawat menggunakan algoritma distribusi laplace dengan menerapkan fungsi algoritma George Marsaglia MWC yang menggunakan unsigned integer.

Untuk menggunakan metode random ini, diperlukan dua inputan sebagai komponen dalam menghasilkan nilai random yang akan dipakai yaitu melalui nilai Mean dan nilai Scale yang sebelumnya telah ditentukan melalui aplikasi Simulasi Tabrakan Pesawat (STP) yang ditunjukkan pada gambar dibawah :

Gambar Menu input distribusi laplace

Fungsi ini terintegrasi pada aplikasi STP dengan kode pemograman sebagai berikut :

publicstaticvoid SetSeed(uint u, uint v) {

(15)

if (u != 0) _mW = u; if (v != 0) _mZ = v; }

publicstaticvoid SetSeed(uint u) { _mW = u; }

publicstaticvoid SetSeedFromSystemTime() { var dt = DateTime.Now;

var x = dt.ToFileTime();

SetSeed((uint)(x >> 16), (uint)(x % 4294967296)); } publicstaticdouble GetUniform() { uint u = GetUint(); return (u + 1.0) * 2.328306435454494e-10; } privatestaticuint GetUint() { _mZ = 36969 * (_mZ & 65535) + (_mZ >> 16); _mW = 18000 * (_mW & 65535) + (_mW >> 16); return (_mZ << 16) + _mW; } publicstaticdouble GetNormal() { // Use Box-Muller algorithm double u1 = GetUniform();

double u2 = GetUniform();

double r = Math.Sqrt(-2.0 * Math.Log(u1)); double theta = 2.0 * Math.PI * u2;

return r * Math.Sin(theta); }

publicstaticdouble GetLaplace(double mean, double scale) { double u = GetUniform();

return (u < 0.5) ?

mean + scale * Math.Log(2.0 * u) : mean - scale * Math.Log(2 * (1 - u)); }

(16)

F k s p m j K v v f v v v C

TEC

Faktor longi ketika meng seberapa bes penerbangan maupun pil jalurnya seca Kode pemog var rand = n var result = n for (var i = 1 { var randCon var thePoint var pergeser Convert.ToD

CHNICAL

K

F

itudinal untu galami turbu sar pergesera n baik yang lot error. P ara otomatis graman yang ewRandom( newList<Po 1; i < temp.C nstant = rand = newPoint ran = GetLap Double(scale

L NOTE

Kajian Lay

CN

Fungsi ran

uk menentuk ulensi di ud an pesawat a g disebabkan Pesawat yan s. Gambar Vi g digunakan (); int> { temp[ Count - 1; i++ d.Next(-1, 1) t(); place(Conve eLDF.Text))

yanan Pen

NS - ATM

ndom jalur

kan besarny dara, nilai in apabila terja n oleh kead ng mengalam isualisasi Lo yaitu : [0] }; +) ; ert.ToDouble ) * GRADIE

T

nerbangan

M

r pesawat

ya simpangan nputan ini y adi turbulens daan cuaca, mi pergeser ongitudinal e(meanLDF. EN;

N-007

n

n pesawat y yang akan m si atau hamb angin dan ran akan k .Text), yang terjadi menentukan atan dalam sebagainya kembali ke

(17)

thePoint.X = temp[i].X + (pergeseran * (randConstant * -1)); thePoint.Y = temp[i].Y + (pergeseran * randConstant); result.Add(thePoint);

}

(18)

F k s p m j K p v

TEC

Faktor longi ketika meng seberapa bes penerbangan maupun pil jalurnya seca Kode pemog privatevoid B { _flig _flig var rand = n

CHNICAL

K

Fun

itudinal untu galami turbu sar pergesera n baik yang lot error. P ara otomatis graman yang BuatDataFli htLevelsEas htLevelsWe ewRandom(

L NOTE

Kajian Lay

CN

ngsi rando

uk menentuk ulensi di ud an pesawat a g disebabkan Pesawat yan s. Gambar g digunakan ightLevels(in st = newdoub est = newdou ();

yanan Pen

NS - ATM

om ketingg

kan besarny dara, nilai in apabila terja n oleh kead ng mengalam Visualisasi V yaitu : nt size) ble[size]; uble[size];

T

nerbangan

M

gian pesaw

ya simpangan nputan ini y adi turbulens daan cuaca, mi pergeser Vertikal

N-008

n

wat

n pesawat y yang akan m si atau hamb angin dan ran akan k yang terjadi menentukan atan dalam sebagainya kembali ke

(19)

for (int i = 0; i < size; i++) {

//var randConstant = rand.Next(-1, 1);

var delta = GetLaplace(Convert.ToDouble(TxtMeanAfl.Text), Convert.ToDouble((TxtScaleAfl.Text)));

_flightLevelsEast[i] = DEFAULTFLIGHTLEVELEAST + delta;//((delta / DEFAULTGROUNDSPEED) * (double)randConstant);

}

for (int i = 0; i < size; i++) {

//var randConstant = rand.Next(-1, 1);

var delta = GetLaplace(Convert.ToDouble(TxtMeanAfl.Text), Convert.ToDouble((TxtScaleAfl.Text)));

_flightLevelsWest[i] = DEFAULTFLIGHTLEVELWEST + delta;//((delta / DEFAULTGROUNDSPEED) * (double)randConstant);

} }

(20)

s d m k K p v f v v

TEC

Fakto standard yan dari jalur te mempengaru keberangkat Kode pemog privatevoid B { _grou var rand = n for (int i = 0 { var randCon var delta = G

CHNICAL

K

Fun

or lateral un ng dilakukan ersebut dalam uhi kecepa tan hingga ba graman yang BuatDataGr undSpeeds = ewRandom( ; i < size; i+ nstant = rand GetLaplace(C

L NOTE

Kajian Lay

CN

ngsi rando

ntuk menent n pada jalur m hal ini k atan pesaw andara tujua Gambar g digunakan oundSpeeds = newdouble (); ++) d.Next(-1, 1) Convert.ToD

yanan Pen

NS - ATM

om kecepa

tukan sebera tersebut un khususnya ja wat selam an. Visualisasi yaitu : s(int size) e[size]; ; Double(TxtM

T

nerbangan

M

atan pesaw

apa optimal tuk melihat alur A756. N ma penerba Lateral MeanLateral.

N-009

n

wat

penerapan nilai optima Nilai inputa angan dari .Text), separation al okupansi an ini akan i bandara

(21)

Convert.ToDouble((TxtScaleLateral.Text)));

_groundSpeeds[i] = DEFAULTGROUNDSPEED + ((delta / DEFAULTGROUNDSPEED) * randConstant);

} }

(22)

TECHNICAL NOTE

TN-010

Kajian Layanan Penerbangan

CNS - ATM

Menghitung total flight hours

Total jam terbang pesawat dihitung dari jumlah objek pesawat yang melintas pada jalur A576 selama waktu simulasi dikalikan dengan waktu tempuhnya. Dengan perbandingan waktu satu menit di dalam simulasi sama dengan satu jam pada kenyataanya maka waktu tempuh dihitung dalam satuan waktu jam.

Apabila waktu simulasi telah habis dan masih ada pesawat yang berada pada jalur A576 maka jarak yang dihitung adalah jarak yang telah ditempuh pesawat tersebut. Dengan mengurangi waktu tempuh normal dengan waktu tempuh yang didapat saat simulasi berakhir.

Kode pemograman yang digunakan yaitu :

privatevoid btnTotFlighHours_Click(object sender, RoutedEventArgs e) {

var nilai = _airPlaneObjects.Values.Count; constdouble waktuTempuh = 1.75*60; var hitungTfh = (nilai*waktuTempuh)/60;

txtTotFlightHours.Text = hitungTfh + " Jam"; }

(23)

TECHNICAL NOTE

TN-011

Kajian Layanan Penerbangan

CNS - ATM

Mensortir data redundant hasil simulasi

Data mentah hasil simulasi ini akan di saring kembali untuk menghilangkan data yang kembar untuk menghindari kesalahan perhitungan di masa mendatang. Untuk mensortir data redundant dalam mencari waktu Estimated Time Over (eto).

Data yang dicari melalui table “hasil” dan hasil penyaringan akan dimasukkan ke dalam table “step1” dengan kode procedure dalam MySQL yang digunakan yaitu :

BEGIN /*

Deklarasi table */

-- Deklarasi variable untuk dibaca pada setiap record oleh cursor DECLARE waktu DATETIME;

-- Deklarasi loop control untuk cursor DECLARE no_more_rows BOOLEAN; DECLARE loop_cntr INT DEFAULT 0; DECLARE num_rows INT DEFAULT 0; -- Deklarasi kursor

DECLARE cari_waktu_cur CURSOR FOR SELECT

DISTINCT

eto FROM hasil;

-- Deklarasi 'handlers' untuk exceptions

DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_rows = TRUE;

(24)

Programming Logic */

-- 'open' mulai cursor dan ambil total row yang dicari -- 'select' memberikan nilai jika cursor berstatus 'opened') OPEN cari_waktu_cur;

select FOUND_ROWS() into num_rows; the_loop: LOOP

FETCH cari_waktu_cur INTO waktu;

-- break jika

-- 1) tidak ada record

-- 2) semua record telah diproses IF no_more_rows THEN

CLOSE cari_waktu_cur; LEAVE the_loop; END IF;

INSERT INTO simulasi.step1 VALUES (id, waktu); -- tampilkan output

select waktu;

-- hitung total looping

SET loop_cntr = loop_cntr + 1; END LOOP the_loop;

-- 'print' the output so we can see they are the same select num_rows, loop_cntr;

(25)

TECHNICAL NOTE

TN-012

Kajian Layanan Penerbangan

CNS - ATM

Mensortir data waktu eto hasil simulasi

Data hasil penyaringan awal untuk membuang waktu yang redundant dan tidak valid kemudian akan di simpan sebagai data list pesawat untuk mendapatkan list pesawat yang termasuk dalam waktu Estimated Time Over (eto).

Data yang dicari melalui table “step1” dan hasil penyaringan akan dimasukkan ke dalam table “step2” dengan kode procedure dalam MySQL yang digunakan yaitu :

BEGIN

DECLARE no_more_rows boolean default false; DECLARE waktu_eto DATETIME;

DECLARE _callsign VARCHAR(55); DECLARE _lat DOUBLE;

DECLARE _lon DOUBLE;

DECLARE _eto DATETIME; DECLARE habis boolean;

-- kursor ambil waktu eto

DECLARE waktu_cur CURSOR FOR SELECT

datetime FROM step1;

-- kursor cari pesawat sesuai waktu eto

DECLARE cari_pesawat_cur CURSOR FOR

SELECT callsign, lat, lon, eto

FROM hasil

(26)

declare continue handler for not found set habis := true;

open waktu_cur;

LOOP1: LOOP

fetch waktu_cur into waktu_eto;

if habis THEN close waktu_cur; leave LOOP1; end if; open cari_pesawat_cur; LOOP2: LOOP

fetch cari_pesawat_cur into _callsign, _lat, _lon, _eto;

if not habis THEN

INSERT INTO simulasi.step2 VALUES (_callsign, _lat, _lon, _eto);

end if;

if habis THEN set habis := false;

close cari_pesawat_cur;

leave LOOP2;

end if;

end loop LOOP2;

end loop LOOP1; end

(27)

TECHNICAL NOTE

TN-013

Kajian Layanan Penerbangan

CNS - ATM

Mensortir data waktu eto hasil simulasi

Untuk menghitung jarak antar pesawat yang dikehendaki tanpa melakukan perhitungan kembali secara keseluruhan melalui aplikasi Simulasi Tabrakan Pesawat (STP) dalam dilakukan melalui Function dengan kode procedure dalam MySQL yang digunakan yaitu :

BEGIN

DECLARE radius FLOAT; DECLARE distance FLOAT;

IF unit = 'MILES' THEN SET radius = '3959';

ELSEIF (unit = 'NAUTICAL_MILES' OR unit='NM') THEN SET radius = '3440.27694';

ELSEIF (unit = 'YARDS' OR unit='YD') THEN SET radius = '6967840'; ELSEIF (unit = 'FEET' OR unit='FT') THEN SET radius = '20903520'; ELSEIF (unit = 'KILOMETRES' OR unit='KILOMETERS' OR unit='KM') THEN SET radius = '6371.3929';

ELSEIF (unit = 'METRES' OR UNIT='METERS' OR unit='M') THEN SET radius = '6371392.9';

ELSE SET radius = '3959'; /* default to miles */ END IF;

SET distance = (radius * ACOS(COS(RADIANS(fromLatitude)) * COS(RADIANS(toLatitude)) * COS(RADIANS(toLongitude) - RADIANS(fromLongitude)) + SIN(RADIANS(fromLatitude)) * SIN(RADIANS(toLatitude))));

RETURN distance; END

(28)

Dan untuk menggunakan Function diatas dapat memakai query sebagai berikut :

SELECT haversine (posisi_dari_Lat, posisi_tujuan_Lat, posisi_dari_Lon, posisi_tujuan_Lon, “satuan unit pengukuran”);

(29)

TECHNICAL NOTE

TN-014

Kajian Layanan Penerbangan

CNS - ATM

Menyimpan data simulasi ke dalam database

Setiap data yang dihasilkan oleh aplikasi STP akan langsung dimasukkan ke dalam database dalam format TSD (ICAO APANPIRG Conclusion 16/4) untuk memenuhi kebutuhan pemantauan wilayah keamanan udara. Untuk hasil data kemudian dikelompokkan menjadi dua kategori yakni data simulasi dan data TSD, data simulasi merupakan data yang langsung dimasukkan ke database dari hasil simulasi sedangkan data TSD merupakan data simulasi yang telah disaring berdasarkan posisi yang terdekat dengan waypoint

Data properties objek yang akan dimasukkan ke dalam database dipilah-pilah menjadi delapan antara lain :

- CallSign = Nama objek pesawat

- Latitude = Posisi latitude pesawat pada saat itu - Longitude = Posisi lotitude pesawat pada saat itu

- AircraftType = Dikarenakan belum adanya database pesawat maka diisi dengan FA99X

- DateOfFlight = Tanggal simulasi dijalankan

- EstimatedTimeOver = Waktu pesawat melakukan perjalanan selama simulasi

- AssignFlightLevel = Ketinggian pesawaat pada saat itu - GroundSpeed = Kecepatan pesawat pada saat itu

Kode pemograman untuk melakukan fungsi ini adalah : privatevoid SimpanHasilSimulasi()

{

foreach (var airPlane in _airPlaneObjects.Values) {

(30)

if (airPlane.AirplaneName.Contains("East")) direction = PlaneDirection.East; else direction = PlaneDirection.West;

AirPlane item = null;

//pesawat mengarah ke timur (kanan / bawah) if (direction == PlaneDirection.East)

{

AirPlane plane = airPlane;

item = (from p in listView1.ItemsSource.Cast<AirPlane>() where p.AirplaneName == plane.AirplaneName

select p).FirstOrDefault(); }

else

{ var plane = airPlane;

item = (from p in listView2.ItemsSource.Cast<AirPlane>() where p.AirplaneName == plane.AirplaneName

select p).FirstOrDefault(); } var flightdate = DateTime.Now;

foreach (var history in item.PositionHistory) {

var data = newHasil { CallSign = item.AirplaneName, Latitude = history.Latitude, Longitude = history.Longitude, AircraftType = "FA99X", DateOfFlight = flightdate, EstimatedTimeOver = history.EstimatedTimeOver, AssignFlightLevel = history.FlightLevel, GroundSpeed = history.GroundSpeed }; data.Create(); }

(31)

}

_worker.ReportProgress(100); }

(32)

TECHNICAL NOTE

TN-015

Kajian Layanan Penerbangan

CNS - ATM

Penentuan Distribusi Laplace

Nilai yang digunakan dalam distribusi longitudinal, lateral, dan vertical seharusnya berasal dari data real yang diperoleh dari radar, perhitungan ini akan menghasilkan nilai mean dan scale yang terjadi. Mengingat keterbatasan data dan kevalid-an data yang dicatat secara manual dari sistem radar maka penginputan nilai mean dan scale di atas dilakukan dengan melihat histori LHD yang terjadi selama tahun 2009 hingga 2010 dengan asumsi bahwa data real di lapangan akan digantikan dengan data TSD yang diperoleh dari simulasi dengan pemakaian nilai mean dan scale yang sama.

Bagan Kejadian LHD

Dari pengamatan histori LHD tersebut diketahui bahwa terdapat dua faktor utama yang terjadi di ruang udara Indonesia yaitu angka untuk kategori E tertinggi yaitu sebesar enam kejadian tercatat selama durasi 17 menit. Yang kedua yakni terjadi selama durasi 28 menit yang disebabkan oleh kegagalan peralatan yang tergolong dalam kategori M.

Kategori E : Coordination errors in the ATC to ATC transfer or control

6 3 1 4 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28

Kejadian LHD dalam ruang udara 

Indonesia

A B C D E F G H I J K L M

(33)

responsibullity as a result of human factors issues (e.g, late or non-existent coordination, incorrect time estimate/actual, flight level, ATS route etc not in accordance with agreed parameters)

Kategori M : Other- this includes situations of flights operating (including climbing/descending) in airspace where flight crews are unable to establish normal air-ground communications with the responsible ATS units.

Kategori E memiliki nilai tiga dan dikategorikan kedalam distribusi vertikal karena berhubungan dengan flight level, sedangkan Kategori M memiliki nilai dua karena berhubungan dengan flight operating. Nilai mean memiliki nilai nol dengan asumsi pesawat adalah kontinu dengan fungsi bernilai real yang didefinisikan pada interval yang berubah-ubah maka nilai nol menganggap bahwa pesawat selalu konstan, oleh karena itu dalam simulasi ini digunakan angka distribusi sebagai berikut :

Table 1 Nilai Distribusi yang dipakai dalam simulasi Distribusi Mean Scale

Lateral 0 2

Longitudinal 0 1

Gambar

Tabel : final
Tabel : hasil_fixes
Gambar 1 Looping logic
Gambar  Menu input distribusi laplace
+2

Referensi

Dokumen terkait