BAB V IMPLEMENTASI PERANGKAT LUNAK ARTISt Pada bab ini akan dijelaskan tentang implementasi dari perancangan perangkat lunak ARTISt.
5.1. Batasan Implementasi Tahap implementasi perangkat lunak ARTISt merupakan kelanjutan dari tahap perancangan, sehingga implementasi ini harus didasarkan pada perancangan yang telah dilaksanakan sebelumnya. Batasan implementasi ini dapat ditinjau dari 2 aspek, yaitu aspek perangkat lunak dan aspek perangkat keras.
5.1.1. Aspek Perangkat Lunak Agar perangkat lunak yang dibuat dapat diimplementasikan dengan baik, maka dibutuhkan perangkat lunak pendukung : • Operating Sistem DOS minimum ver. 4.00 yang dapat digunakan oleh perangkat lunak lain yang diperlunakan (BorlandC ver3.1). • Perangkat lunak (Software) : BorlandC ver.3.1 yang bekerja dilingkungan sistem operasi DOS
BAB V Implementasi Perangkat Lunak ARTISt
V-1
BAB V Implementasi Perangkat Lunak ARTISt
V-2
5.1.2. Aspek Perangkat Keras Perangkat keras yang dibutuhkan untuk mengimplementasikan perangkat lunak ARTISt secara optimum adalah : a) Processor minimal 486 dengan memory minimal 16 Mb dilengkapi. b) 1 buah kartu ARTISt c)
1 buah monitor minimum dengan resolusi EGA/VGA
d) 1 buah printer LQ series e)
1 buah harddisk dengan kapasitas minimum 540 Mb
5.2. Implementasi Perangkat Lunak Pada bab IV telah dijelaskan bahwa ARTISt mempunyai 8 buah komponen perangkat lunak (CSC), dimana yang dibahas pada tesis ini adalah CSC_Calculator(yang berhubungan dengan pemrosesan data) dan CSC_OutputDevice(yang
berhubungan
dengan
penyajian
data).
CSC_Calculator diturunkan menjadi 3 unit, yaitu CSU_Calculator, CSU_EngineeringCalculator,
dan
CSU_ARINCConverter.
Sedang
CSC_OutputDevice tidak diturunkan lagi, sehingga CSC_OutputDevice juga sebagai CSU_OutputDevice. Dalam implementasi ini digunakan suatu struktur direktori yang memudahkan dalam mengorganisasi setiap berkas yang digunakan dengan “ARTISt” sebagai direktori induk. Direktori induk ini terdiri dari 4 sub-direktori, yaitu: sub-direktori “Project”, sub-direktori “Include”, sub-direktori “Source”, dan sub-direktori “Execute”.
BAB V Implementasi Perangkat Lunak ARTISt
V-3
Dalam implementasi ini setiap objek CSU, akan terdiri dari berkas spesifikasi (*.h) dan berkas badan (*.c), dimana penamaan dari masingmasing berkas yang digunakan dapat dilihat pada Tabel 5.1. No.
Objek
Nama Berkas calcultr.c calcultr.h
1.
CSU_Calculator
2.
CSU_EngineeringC alculator
enginctr.c enginctr.h
3.
CSU_ARINCConve rter CSU_OutputDevice
arinccvt.c arinccvt.h outputdv.c outputdv.h
4
Layanan CalculateToEngineering Data CalculateLinear CalculatePolynom CalculateBitMask CalculateExtended ConvertLinearARINC ConvertPolynomARINC DisplayTable DisplayGraphic DisplayMixed DisplayXPlot
Tabel 5.1. Daftar Nama Berkas Implementasi Implementasi yang dilakukan didasarkan pada algoritma yang akan dijelaskan pada bab-bab selanjutnya.sedangkan implementasi dalam bahasa C yang digunakan, secara lebih detil dapat dilihat pada acuan teknis perangkat lunak ARTISt.[8] Pengendali utama dari perangkat lunak ARTISt dilakukan oleh prosedur/fungsi
MMIMS_Main yang terdapat pada objek MMIMS
dengan algoritma yang diperlihatkan pada tabel 5.2 berikut:
BAB V Implementasi Perangkat Lunak ARTISt
ALGORITMA PROSEDUR/FUNGSI MMIMS_Main () Status CheckACARD() If status > 0 then CSCI will continue in simulation mode Else if status < 0 then Error 1 Else InitiateSystemConfiguration() Provide ARTISt Main_Menu choose MainMenu switch(choose) case 1 : Provide Setting Menu case 2 : Provide RunMonitoringMenu pilih RunMenu switch(pilih) case 1 : DisplayTable case 2 : DisplayGraphic case 3 : DisplayMixed case 4 : DisplayXPlot case 3 : Run Editor DOS case 4 : Exit from program Tabel 5.2: “Algoritma Prosedur/Fungsi MMIMS_Main”
V-4
BAB V Implementasi Perangkat Lunak ARTISt
V-5
5.2.1. Implementasi CSU_Calculator CSU_calculator terdiri dari satu fungsi layanan yang digunakan untuk mengintegrasikan perhitungan data elektrik menjadi data enjiniring. Layanan ini tidak mempunyai atribut dan mengembalikan status dari proses perhitungannya. ALGORITMA PROSEDUR/FUNGSI TStatusEng CalculateToEngineeringData () FOR
(i=0; i
BAB V Implementasi Perangkat Lunak ARTISt
V-6
5.2.2. Implementasi CSU_EngineeringCalculator CSU_EngineeringCalculator terdiri dari 4 fungsi layanan yang digunakan untuk menghitung data elektrik menjadi data enjiniring berdasarkan jenis parameternya. ALGORITMA PROSEDUR/FUNGSI float CalculateLinear (TParam *param, TStatusEng *status_eng); IF
parword = 3 ConvertLinearARINC(param) slope (calibval_3–calibval_1)/(calibval_2 – calibval) offset calibval_1 - (slope * calibval) phy elect * slope + offset RETURN (phy) float CalculatePolynom (TParam *param, TStatusEng *status_eng); IF ADT_Param.GetParWord() = 1 bufdat GetCalibValue(calib_data,rptr+0) raw1 GetElect(param) bufdat bufdat + (raw1 * GetCalibValue(calib_data,rptr + 1)) IF nc = 1 go to hasilnya {polynom orde 1} raw2 raw1 ^ 2 bufdat bufdat + (raw2 * GetCalibValue(calib_data,rptr + 2)) IF nc = 2 go to hasilnya {polynom orde 2} raw3 raw2 * raw1 bufdat bufdat + (raw3 * GetCalibValue(calib_data,rptr + 3)) IF nc = 3 go to hasilnya {polynom orde 3} raw4 raw3 * raw1 bufdat bufdat + (raw4 * GetCalibValue(calib_data,rptr + 4)) IF nc = 4 go to hasilnya {polynom orde 4} raw5 raw4 * raw1 bufdat bufdat + (raw5 * GetCalibValue(calib_data,rptr + 5)) IF nc = 5 go to hasilnya {polynom orde 5} raw6 raw5 * raw1 bufdat bufdat + (raw6 *
BAB V Implementasi Perangkat Lunak ARTISt GetCalibValue(calib_data,rptr + IF nc = 6 go to hasilnya {polynom orde raw7 raw6 * raw1 bufdat bufdat + (raw7 * GetCalibValue(calib_data,rptr + ELSE {nc > 6} bufdat bufdat + (raw7 * GetCalibValue(calib_data,rptr + status Not_OK hasilnya : PutEng(bufdat,param) ELSE {par_word != 1} ConvertPolynomARINC(param) phy (GetCalibValue(calib_data,rptr+1) GetElect(param)) + GetCalibValue(calib_data,rptr); PutEng(phy, param); RETURN(status)
V-7 6)) 6}
7)) 7))
*
float CalculateBitMask (TParam *param, TStatusEng *status_eng); BitMask GetCalibValue(calib_data,rptr) BMF GetCalibValue(calib_data,rptr +1) raw GetElect(param) AND BitMask IF raw ≠ 0 IF (BMF) eng 0 ELSE eng 1 ELSE {raw = 0} IF (BMF) eng 1 ELSE eng 0 RETURN (eng) float CalculateExtended (TExtFormula ext_formula, TParamSet paramset1, TStatusEng *status_eng); status OK phy_ext Calculate parameter extended based on ExtFormula. (if there is error in calculate extended parameter, status Not_Ok) PutEng(phy_ext,param) RETURN (status) Tabel 5.4: “Algoritma Prosedur/Fungsi Layanan CSU_EngineeringCalculator”
BAB V Implementasi Perangkat Lunak ARTISt
V-8
5.2.2. Implementasi CSU_ARINCConverter CSU_ARINCConverter terdiri dari 2 fungsi layanan yang digunakan untuk
mengkonversi
data
ARINC-429
berdasarkan
jenis
dari
parameternya. ALGORITMA PROSEDUR/FUNGSI TStatusConvertARINC ConvertLinearARINC (TParam *param); ARtemp 0 elect ADT_Param.GetElect(param) Convert the elect for linear ARtemp elect converted ADT_Param.PutElect (param, ARtemp) RETURN (status) TStatusConvertARINC ConvertPolynomARINC (TParam *param); ARtemp 0 elect ADT_Param.GetElect(param) Convert the elect for Polynom ARtemp elect converted ADT_Param.PutElect (param, ARtemp) RETURN (status) Tabel 5.5: “Algoritma Prosedur/Fungsi Layanan CSU_ARINCConverter”
5.2.3. Implementasi CSU_OutputDevice CSU_OutputDevice digunakan untuk menampilkan data ke layar, menyimpan data di disk, dan mencetak data ke printer. CSU ini terdiri dari 4 fungsi layanan yang digunakan untuk menampilkan data parameter, sedangkan fungsi pencetakan dan penyimpanan merupakan fungsi internal dari CSU.
BAB V Implementasi Perangkat Lunak ARTISt
V-9
ALGORITMA PROSEDUR/FUNGSI void DisplayTable (); WHILE (not finish) irigtime SetupIRIGTIME IF incoming data is real PCM chkdat CheckPCMData IF (chkdat = 0) CollectElectricalData ELSE It use electrical data which has been collected before, and the data is given different color ELSE {simulation data} GetSimData(simdata) TranslateToEngineeringData( ) FOR (i = 0; i < tab_loc_selected; i++) IF (display_mode = elect) Display the electrical data in table mode ELSE Display the engineering data in table mode DoOnLineAction(&kb) {recording,printing,etc} void DisplayGraphic (); WHILE (not finish) irigtime SetupIRIGTIME IF incoming data is real PCM chkdat CheckPCMData IF (chkdat = 0) CollectElectricalData ELSE It use electrical data which has been collected before, and the data is given different color ELSE {simulation data} GetSimData(simdata) TranslateToEngineeringData( ) FOR (i = 0; i < graph_loc_selected; i++) IF (display_mode = elect) Display electrical data in graphic mode ELSE Display engineering data in graphic mode DoOnLineAction(&kb) {recording,printing,etc}
BAB V Implementasi Perangkat Lunak ARTISt
V-10
void DisplayMixDis (); WHILE (not finish) irigtime SetupIRIGTIME IF incoming data is real PCM chkdat CheckPCMData IF (chkdat = 0) CollectElectricalData ELSE It use electrical data which has been collected before and given different color ELSE {simulation data} GetSimData(simdata) TranslateToEngineeringData( ) FOR (i = 0; i < mix_loc_selected; i++) IF (display_mode = elect) Display electrical data in MixDis mode ELSE Display engineering data in MixDis mode DoOnLineAction(&kb) {recording,printing,etc} void DisplayXPlot (); WHILE (not finish) irigtime SetupIRIGTIME IF incoming data is real PCM chkdat CheckPCMData IF (chkdat = 0) CollectElectricalData ELSE It use electrical data which has been collected before and given different color ELSE {simulation data} GetSimData(simdata) TranslateToEngineeringData( ) FOR (i = 0; i < xplot_loc_selected; i++) IF (display_mode = elect) Display electrical data in XPlot mode ELSE Display engineering data in XPlot mode DoOnLineAction(&kb) {recording,printing,etc} Tabel 5.6: “Algoritma Prosedur/Fungsi Layanan CSU_OutputDevice” Hasil dari implementasi ini harus di uji untuk menjamin bahwa perangkat lunak yang dikembangkan sesuai dengan keinginan. Pengujian dari perangkat lunak ARTISt akan dijelaskan pada bab VI.