BAB 3 ANALISIS DAN PERANCANGAN
3.1
Analisis Sistem Yang Sedang Berjalan PT. Tridaya Setiamanunggal adalah perusahaan tempat penulis melakukan penelitian, yang beralamat di jalan Bulevar Kelapa Gading, Blok QA3/18, Kelapa Gading – Jakarta Utara, dan merupakan agen tunggal dari alat ukur spectrum analyzer merek Advantest untuk wilayah Indonesia. Alat ukur spectrum analyzer merek advantest ini adalah alat ukur buatan negara Jepang. Kebutuhan akan penggunaan alat ukur spectrum analyzer di Indonesia masih cukup tinggi, terutama pada perusahaan-perusahaan yang bergerak dibidang jasa telekomunikasi seperti, operator selular, operator satelit, lembaga penelitian, laboratorium
elektronika
dan
telekomunikasi,
balai
pengujian
perangkat
telekomunikasi serta lembaga pemerintah yang mempunyai wewenang untuk memonitor penggunaan frekuensi seperti Postel dan DisHub. Saat ini
PT. Tridaya Setiamanunggal menjual spectrum analyzer merek
Advantest, sesuai dengan spesifikasi yang dibuat oleh pabriknya di Jepang. Spesifikasi dari alat ukur spectrum analyzer yang ada seringkali melebihi dari spesifikasi kebutuhan pengukuran untuk beberapa pemakai. Dengan kata lain pengukuran yang paling sering digunakan oleh pemakai adalah pengukuran yang menggunakan setting parameter spectrum analyzer seperti: Center Frequency, Frequency Span, Resolution Bandwidth, Video Bandwidth, Sweep Time, Attenuasi, Reference Level dan dB per Division, sedangkan fitur-fitur yang lainnya memang 48
49
diperlukan juga tetapi jarang pemakaiannya. Sebagi contoh pemakai memerlukan spectrum analyzer yang hanya digunakan untuk memonitor Carrier to Noise ratio (C/N ratio), sedangkan spectrum analyzer yang ada spesifikasinya atau fiturnya jauh lebih banyak dan lebih canggih dari yang diperlukan, sehingga banyak fiturfitur yang disediakan oleh spectrum analyzer tidak terpakai. Disamping itu harga spectrum analyzer masih cukup mahal terutama yang memiliki fitur yang banyak, dan ini merupakan salah satu pertimbangan bagi perusahaan/pemakai yang akan membeli alat ukur spectrum analyzer Kebutuhan pengukuran di beberapa pemakai ada juga yang tidak didukung oleh spesifikasi dari alat ukur spectrum analyzer yang ada, sebagai contoh ada kebutuhan untuk memonitor beberapa frekuensi secara bersamaan dengan hanya menggunakan satu spectrum analyzer, dan bisa diremote oleh beberapa pemakai pada waktu yang bersamaan, sehingga spectrum analyzer yang berlokasi jauh bisa dimanfaatkan oleh beberapa pemakai. Pemakai umumnya menginginkan harga spectrum analyzer yang cukup murah tetapi sudah memenuhi kebutuhan pengukuran mereka. Saat ini ada beberapa merek dan tipe alat ukur spectrum analyzer yang beredar di Indonesia, seperti merek-merek yang sudah terkenal HP/Egilent, Anritsu, RS (Rohde & Schwarz), dan Tektronix. Merek-merek alat ukur spectrum analyzer ini masing-masing sudah mulai mengembangkan fitur-fitur yang diperlukan oleh pemakai. Untuk dapat bersaing dengan alat ukur spectrum analyzer merek lain, maka PT. Tridaya Setiamanunggal mencoba mengembangkan perangkat lunak untuk dapat memberikan nilai tambah (added value) terhadap spectrum analyzer Advantest tersebut, dan sekaligus dapat memenuhi kebutuhan pengukuran bagi para pemakai dengan harga yang lebih murah.
50
3.2 Analisis Masalah Berdasarkan analisis terhadap sistem yang sedang berjalan, penulis dapat merangkum masalah yang dihadapi oleh PT. Tridaya Setiamanunggal antara lain: a.
Spesifikasi alat ukur spectrum analyzer Advantest sering kurang sesuai dengan spesifikasi kebutuhan pemakai, sebagai contoh spesifikasi spectrum analyzer yang melebihi spesifikasi dari kebutuhan pemakai, sehingga banyak fitur-fitur yang disediakan oleh spectrum analyzer tidak terpakai, dan harga spectrum analyzer jenis ini relatif lebih tinggi.
b.
Kebanyakan alat ukur spectrum analyzer digunakan untuk monitoring frekuensi dengan menggunakan penyetelan (setting) parameter seperti : Center Frequency, Frequency Span, Resolution Bandwidth, Video Bandwidth, Reference Level, Sweep Time, Attenuation dan dB per Division.
c.
Ada juga beberapa tipe spectrum analyzer Advantest yang lebih murah tetapi spesifikasinya tidak memenuhi kebutuhan pemakai, seperti tidak didukung oleh jenis-jenis printer yang ada di pasaran, tidak ada memori (flash disk), tampilan tidak berwarna sehingga sulit melihat marker.
d.
Pemakai menginginkan harga spectrum analyzer Advantest yang cukup murah, tetapi memenuhi kebutuhan pengukuran mereka.
e.
Saat ini sudah banyak saingan dimana beberapa merek dan tipe alat ukur spectrum analyzer sudah beredar di Indonesia, seperti merek-merek yang sudah terkenal HP/Egilent, Anritsu, RS (Rohde&Schwarz), dan
51
Tektronix, dimana mereka sudah menambah fitur-fitur baru dan dengan harga yang hampir sama dengan generasi sebelumnya. Tabel 3.1 spesifikasi spectrum analyzer Advantest untuk beberapa tipe Fitur Frequency range Frequency Span Accuracy RBW range VBW range
Sweep Time Input Attenuator Display
Tipe R3267 Tipe R3273 Tipe U3771 Tipe U3741 100 Hz s/d 8 100 Hz s/d 9 kHz s/d 9 kHz to 3 GHz 26.5 GHz 31.8 GHz GHz +/- 1% +/- 1% +/- 1% +/- 1% 10Hz - 10 10Hz - 10MHz MHz 1 Hz to 10 1 Hz to 10 MHz (1, 3, 10) MHz (1, 3, 10)
100 Hz - 3 100 Hz – 1 MHz Mhz 10 Hz - 3 10Hz to 3 MHz MHz (1-3 step) 20 msec s/d 20 ms to 1000 20ms to 20ms to 1000 sec Sec 1000s 1000s 0 s/d 75 dB (5 0 to 70 dB (10 0 to 70 dB 0 to 70 dB dB step) dB steps) (10 dB steps) (10 dB steps) Color TFT Color TFT Color TFT Color TFT
Tipe U3741
Tipe U3771
Tipe R3273
Tipe R3267
Gambar 3.1 Contoh beberapa tipe spectrum analyzer Advantest.
52
3.3 Alternatif Pemecahan Masalah Untuk mengatasi sebagian masalah diatas, penulis mengusulkan dua alternatif pemecahan masalah yaitu : 1.
Dengan membuat perangkat lunak untuk memudahkan pemakaian spectrum analyzer dengan cara mengganti pengoperasian yang banyak menekan tombol-tombol di spectrum analyzer dengan satu tombol di komputer. Perangkat lunak ini bisa seolah-olah menduplikasi jumlah spectrum analyzer seperti gambar 3.2, karena dilayar monitor komputer bisa ditampilkan banyak window dengan setting parameter dan spektrum frekuensi sendiri-sendiri. spectrum analyzer langsung dihubungkan ke komputer atau di-remote dari komputer, dengan menggunakan kabel RS232, GPIB Bus atau UTP. Sistem perangkat lunak seperti ini memiliki kekurangan dimana spectrum analyzer hanya bisa digunakan oleh satu orang setiap saat.
Gambar 3.2 Topologi Alternatif pemecahan masalah-1
53
2. Dengan membuat perangkat lunak Client Server Spectrum Analyzer, agar spectrum analyzer bisa digunakan oleh banyak orang dan dari lokasi yang jauh asalkan terhubung dalam suatu jaringan komputer. Dibandingkan dengan alternatif pertama sistem ini lebih komplek dalam pengembangan perangkat lunaknya dan memerlukan komputer tambahan untuk server, seperti gambar 3.3.
Gambar 3.3 Topologi Client-Server (Alternatif pemecahan masalah-2)
3.4
Usulan Pemecahan Masalah Dari dua alternatif pemecahan masalah tersebut diatas penulis mengusulkan untuk mengimplementasikan alternatif yang ke dua dengan pertimbangan sebagai berikut : 9 Jika dilihat dari sisi client, Spectrum analyzer seolah-olah bisa digunakan oleh banyak user (pemakai) pada saat yang bersamaan
54
dengan setting parameter yang berbeda-beda juga, walaupun pada kenyataannnya, Spectrum Analyzer digunakan secara bergantian. 9 Spectrum analyzer bisa di-remote dari jarak jauh asalkan masih dapat diakses oleh jaringan computer(LAN, MAN, WAN, VPN, dll). 9 Umumnya pada kantor atau diperusahaan-perusahaan sudah terpasang jaringan komputer (LAN) dan sudah tentu ada server-nya juga, sehingga biaya disisi perangkat kerasnya tidak ada bedanya dengan alternatif pertama
Dengan program client dan server (CSSA/Client Server Spectrum Analyzer) ini diharapkan dapat menggunakan spectrum analyzer yang harganya cukup murah tetapi sudah memenuhi kebutuhan pemakai. Program client ini selanjutnya penulis sebut dengan nama CSSA Client (Client Server Spectrum Analyzer – Client) dan program server ini selanjutnya penulis sebut dengan nama CSSA Server (Client Server Spectrum Analyzer – Server). Program CSSA Server berhubungan langsung dengan spectrum analyzer dan memberikan instruksi atau mengambil data dari spectrum analyzer sesuai dengan permintaan dari masing-masing CSSA Client. Program CSSA Server dapat melayani beberapa CSSA Client dalam waktu yang bersamaan, dan meneruskan perintah dari CSSA Client ke spectrum analyzer secara bergantian, sehingga setiap saat hanya satu CSSA Client yang bisa memberikan perintah dan mengambil data dari spectrum analyzer. Pada program CSSA Server ini terdiri dari dua modul program seperti gambar 3.14 dibawah yaitu:
55
a.
Modul program yang berhubungan langsung dengan spectrum analyzer untuk mengirim perintah dan mengambil data dari spectrum analyzer, dan modul program ini sangat tergantung dari jenis koneksi antara spectrum analyzer dengan komputer server sebagai berikut : o Modul ini penulis sebut dengan modul program client jika koneksi ke spectrum analyzer menggunakan Ethernet dengan protokol TCP/IP, karena disisi spectrum analyzer berfungsi sebagai program server. o Modul ini penulis sebut dengan modul program GPIB untuk mengirim instruksi dan menerima data dari spectrum analyzer dengan menggunakan command GPIB, jika komputer dan spectrum analyzer menggunakan GPIB bus. o Modul ini penulis sebut dengan Modul program RS232 untuk mengirim instruksi dan menerima data dari Spectrum Analyzer jika antara spectrum analyzer dengan komputer menggunakan menggunakan kabel Serial komunikasi RS232 .
b.
Modul program server yang melayani banyak client dari pemakai, dengan menggunakan protokol TCP/IP.
Server ini dirancang
menggunakan protokol TCP/IP disesuaikan dengan protokol yang digunakan oleh spectrum analyzer. Program CSSA Client (disisi pemakai) berhubungan dengan pemakai untuk menerima perintah dari pemakai dan mengirimkan perintah ke CSSA Server, serta menampilkan data yang diterima dari CSSA Server.
Komputer yang berfungsi
56
sebagai server terhubung dengan spectrum analyzer bisa dengan kabel serial RS232, GPIB dan Ethernet dengan protokol TCP/IP.
Gambar 3.4 Topologi CSSA jika spectrum analyzer menggunakan Ethernet
Gambar 3.5 Topologi CSSA jika spectrum analyzer menggunakan GPIB bus atau RS232
57
3.5
Batasan Karena banyaknya pengetahuan yang penulis harus kuasai untuk mengimplementasikan sistem perangkat lunak ini yang selanjutnya penulis beri nama perangkat lunak CSSA (Client Server Spectrum Analyzer), maka perlu kiranya penulis batasi sebagai berikut : 9 Penulis lebih fokus ke masalah pengembangan perangkat lunak dan tidak membahas atau mempelajari lebih jauh tentang alat ukur spectrum analyzer. 9 Pada spectrum analyzer penulis hanya mempelajari hal-hal yang berhubungan dengan perangkat lunak CSSA saja, seperti cara membaca data dari spectrum analyzer, command untuk men-setting parameter di spectrum analyzer. Parameter-parameter tersebut meliputi Center Frequency, Frequency Span, Reference Level, Resolution Bandwidth, Video Bandwidth, Sweep Time, Attenuation dan dB per Division. 9 Spectrum analyzer Advantest ada beberapa tipe dan setiap tipe kadangkadang menyediakan interface ke komputer dengan menggunakan Ethernet, GPIB dan Serial RS232. Pada penelitian ini penulis menggunakan tipe U37xx series (U3771) dengan menggunakan Ethernet dengan protokol TCP/IP, dalam hal ini spectrum analyzer berfungsi sebagai server. Penulis tidak mengembangkan perangkat lunak untuk RS232 dan GPIB bus.
58
3.6
Use Case Diagram Berikut merupakan use case diagram dari aplikasi CSSA.
Gambar 3.6
Use case aplikasi CSSA secara keseluruhan
Untuk menjelaskan tahapan dalam aplikasi CSSA, berikut merupakan use case diagram yang lebih detail.
59
3.6.1
Use Case Sistem Setting Parameter
Gambar 3.7
Use case Sistem Setting Parameter
Berikut merupakan table penjelasan use case diagram Sistem Setting Parameter
Tabel 3.2
Deskripsi Sistem Setting Parameter
Pre Condition
User ingin mengatur parameter Spectrum analyzer
Flow of Events
Basic Path : 1. Masuk Menu Setup 2. User memasukkan IP Address dan Port dari Server 3. User melakukan connect 4. User melakukan setting parameter dari Control Panel
Post Condition
User dapat melihat dan mengatur parameter Spectrum Frequency
60
3.6.2
Use Case Sistem View Spectrum Frequency
Gambar 3.8
Use Case Sistem View Spectrum Frequency
Berikut merupakan table penjelasan use case diagram Sistem Setting Parameter
Tabel 3.3 Deskripsi Sistem View Spectrum Frequency Pre Condition
User ingin melihat Spectrum Frequency
Flow of Events
Basic Path : 1. Masuk Menu Setup 2. User memasukkan IP Address dan Port dari Server 3. User melakukan connect 4. User menekan tombol Start
Post Condition
User dapat melihat Spectrum Frequency
61
3.6.3
Use Case Sistem Print
Gambar 3.9
Use Case Sistem Print
Tabel 3.4 Deskripsi Sistem Print Pre Condition
User ingin mencetak Spectrum Frequency
Flow of Events
Basic Path : 1. User memilih Print Setup untuk memilih ukuran kertas yang akan digunakan. Setelah selesai, tombol “OK” ditekan. 2. User memilih Print Preview untuk melihat hasil sebelum Spectrum Frequency dicetak. Setelah selesai, tombol “OK” ditekan. 3. User memilih Print untuk mencetak dan memilih Printer yang akan digunakan
untuk mencetak.
Setelah selesai, tombol “OK” ditekan. Post Condition
User dapat mencetak Spectrum Frequency
62
3.6.4
Use Case Sistem Marker
Gambar 3.10
Use Case Sistem Marker
Tabel 3.5 Deskripsi Sistem Marker Pre Condition
User ingin mengukur frekuensi dengan kekuatan frekuensinya
Flow of Events
Basic Path : 1. User menekan tombol “Start” 2. User memilih normal marker untuk mengukur satu frekuensi. 3. User memilih delta marker untuk mengukur dan membandingkan antara 2 frekuensi. 4. User memilih multimarker untuk mengukur dan membandingkan lebih dari 2 frekuensi
Post Condition
User dapat melihat dan mengukur frekuensi dengan kekuatan frekuensinya
63
3.6.5
Use Case Sistem Display Line
Gambar 3.11 Use Case Sistem Display Line
Berikut merupakan tabel penjelasan use case diagram Sistem Display Line
Tabel 3.6 Deskripsi Sistem Display Line Pre Condition
User ingin melihat dan mengukur rata-rata kekuatan frekuensi yang diukur
Flow of Events
Basic Path : 1. User menekan tombol “Start” 2. User memilih menu Display Line 3. User menentukan rata-rata pada picture box
Post Condition
User dapat melihat dan mengukur rata-rata kekuatan frekuensi yang diukur
64
3.6.6
Use Case Sistem Customer
Gambar 3.12 Use Case Sistem Customer
Tabel 3.7 Deskripsi Sistem Customer Pre Condition
User ingin menambah,mengedit dan menghapus data
Flow of Events
Basic Path : 1. User menekan menu Customer 2. User menekan tombol Add untuk menambah data Customer, setelah selesai tekan OK. 3. User menekan tombol Edit untuk mengedit data Customer, setelah selesai tekan OK. 4. User menekan tombol Delete untuk menghapus data Customer, setelah selesai tekan OK.
Post Condition
User dapat menambah, mengedit dan menghapus data
65
3.7
Class Diagram
Gambar 3.13
3.8
Class Diagram CSSA Client
Perancangan Program CSSA (Client Server Spectrum Analyzer) Spectrum analyzer berfungsi sebagai server, yang sudah disediakan oleh pabrik pembuatnya dengan protokol TCP/IP dengan default nomor IP 192.168.0.1 dan port 5025. Program server yang dirancang seperti gambar 3.14 dibawah selanjutnya disebut dengan nama CSSA Server, yang memiliki dua fungsi yaitu sebagai client dari spectrum analyzer, dan sebagai server bagi program CSSA Client. Program CSSA Client adalah program yang langsung berinteraksi dengan pemakai untuk melihat spektrum frekuensi. Sedangkan perancangan program CSSA (Client Server Spectrum analyzer) meliputi perancangan program CSSA Server dan perancangan program CSSA Client. Beberapa tipe spectrum analyzer Advantest tidak selalu menyediakan interface TCP/IP untuk bisa dioperasikan secara remote oleh komputer, dan ada juga yang menyediakan interface-nya
66
berupa GPIB bus dan Serial RS232. Pada penelitian / skripsi ini digunakan spectrum analyzer yang menggunakan interface Ethernet dengan protokol TCP/IP. Perancangan program server ini dibuat modular, agar nantinya lebih mudah mengembangkan atau menambah modul baru seperti modul program yang menangani GPIB bus atau serial RS232 seperti gambar 3.14 dibawah.
Program CSSA‐ Server
Spectrum Analyzer
Modul Client
Program CSSAClient
Modul Server
GPIB
Program CSSAClient
Serial
• TCP/IP • GPIB • Serial
Program CSSAClient LAN
Gambar 3.14 Konfigurasi program CSSA
3.9
Perancangan Program CSSA Server Program CSSA Server dirancang untuk dijalankan pada komputer dengan sistem operasi Linux ataupun Windows karena kedua sistem operasi ini merupakan sistem operasi yang umum digunakan saat ini. Untuk merancang program server yang dapat melayani banyak client secara teori ada beberapa cara / teknik antara lain:
67
a. Dengan multi proses : server dengan multi proses akan bisa melayani banyak client pada saat yang bersamaan, dimana setiap proses akan melayani satu client. b. Dengan multithread: server dengan multithread akan bisa melayani banyak client pada saat yang bersamaan, dimana satu thread melayani satu client. c. Dengan I/O Multiplex: server dengan I/O multiplex akan bisa melayani banyak client pada saat yang bersamaan, dimana semua client akan dilayani oleh satu proses secara bergantian. d. Dengan satu proses: hanya satu client yang bisa connect ke server setiap saat, dan client yang sudah selesai dilayani oleh server harus segera disconnect dengan server sehingga server bisa melayani client lain yang masih mengantri untuk connect dengan server. Dari beberapa cara diatas, penulis menggunakan cara yang terakhir (d), karena : •
Program CSSA Server yang dirancang ini harus dilengkapi dengan semaphore untuk mencegah dua atau lebih CSSA Client pada waktu yang bersamaan mengakses spectrum analyzer, dan karena hanya satu client yang bisa connect dengan server berarti sudah dijamin hanya satu client yang bisa mengakses spectrum analyzer. Jadi dengan teknik connect dan close ini sama fungsinya dengan sebuah semaphore yang ada pada teori sistem operasi, sehingga tidak perlu lagi membuat semaphore.
•
Implementasi CSSA Server lebih sederhana karena tidak memerlukan IPC (Interprocess Communication) antara modul client dengan modul server seperti gambar 3.14, karena server hanya satu proses atau 1 thread.
68
•
Bisa diimplementasikan di sistem operasi linux/unix maupun di windows karena sistem operasi windows tidak mendukung multi proses seperti pada linux. . Perancangan program CSSA Server dimulai dari perancangan sequence
diagram antara CSSA Server dengan SPA (spectrum analyzer) dan dengan CSSA Client-nya, untuk melihat interaksi antar program seperti pada gambar 3.15. Untuk melihat lebih rinci proses yang ada pada setiap program dibuat rancangannya dengan menggunakan flowchart seperti gambar 3.16.
69
CSSA Server SPA
SubClient
Global Variabel
SubServer
CSSA Client
connect mengirimkan IDSPA command INIT SPA request ParamSPA mengirimkan ParamSPA menyimpan ParamSPA
connect membaca ParamSPA mengirimkan ParamSPA close connect mengirimkan ACK mengirimkan ParamSPA menyimpan ParamSPA
Membaca ParamSPA mengirimkan ParamSPA command sweep mengirimkan trace menyimpan trace membaca ParamSPA mengirimkan ParamSPA mengirimkan ACK membaca Trace mengirimkan trace close
Gambar 3.15 Sequence Diagram CSSAServer, SPA dan CSSAClient
70 Start
Create socket, Listen, Bind
SubClient Create Socket, Connect untuk
SubClient Send Command REN, TPS, SI untuk SPA
SubClient Read ParamSPA dari SPA
Accept dan Recv Parameter dari CSSA Client
Close Socket
No
If Parameter = ReadDataSPA
No
If Parameter = ConnectSPA
Yes
Yes
Send Acknowledg e ke CSSA Client
Send ParamSPA ke CSSA Client
Recv, Konversi, dan simpan ParamSPA dari CSSA Client
Close Socket
If Current ParamSPA = ParamSPA
Yes
No SubClient send ParamSPA ke SPA
Current ParamSPA = ParamSPA
SubClient Commad Sweep dan Read Trace dari SPA
1
Gambar 3.16a Flow Chart CSSA Server
71
Gambar 3.16b Flow Chart CSSA Server
Dilihat dari gambar 3.15, ketika CSSA Server dijalankan ia akan melakukan koneksi dengan spectrum analyzer. Kemudian CSSA Server akan mengirimkan perintah (command) kepada spectrum analyzer untuk melakukan penyetelan (setting) dan membaca parameter spectrum analyzer (selanjutnya penulis sebut dengan nama parameter SPA) untuk pertama kali nya, dan parameter ini akan di simpan di sebuah variabel global. Setelah itu CSSA Server akan menerima parameter baru dari CSSA Client, dan jika parameter tersebut adalah Connect SPA, artinya CSSA Client hanya akan meminta parameter SPA yang telah disimpan di variabel global
72
sebelumnya. Ini menandakan bahwa CSSA Client untuk pertama kalinya melakukan koneksi dengan CSSA Server. Bila parameter yang dikirimkan oleh CSSA Client adalah ReadData SPA, ini artinya CSSA Client mengirimkan parameter SPA yang baru, kemudian CSSA Server akan melakukan perbandingan antara parameter SPA yang lama dengan parameter SPA yang baru yang dikirim oleh CSSA Client. Apabila parameter SPA yang baru dikirimkan berbeda dengan parameter SPA yang disimpan di global variabel, maka CSSA Server akan mengirimkan parameter SPA yang telah dikirim oleh CSSA Client kepada spectrum analyzer (SPA), kemudian akan dilakukan penyetelan berdasarkan parameter SPA yang telah dikirim oleh CSSA Client. Setelah itu CSSA Server akan mengirimkan perintah kepada spectrum analyzer untuk melakukan sweep trace, untuk meminta data trace berdasarkan setting parameter SPA yang dikirimkan oleh CSSA Client. Kemudian CSSA Server akan mengirim parameter SPA dan data trace ke CSSA Client. Yang dimaksud dengan parameter SPA disini adalah data-data yang digunakan untuk men-setting spectrum analyzer seperti: Attenuation, Center Frequency, dB per Division, Resolution Bandwidth, Reference Level, Frequency Span, SweepTime dan Video Bandwidth.
3.10 Cara Kerja Pada CSSA Server Pada dasarnya Server berfungsi untuk menciptakan mutual exclusion. Mutual exclusion adalah suatu mekanisme untuk menghindari lebih dari satu proses mengakses resource yang sama. Dalam hal ini yang disebut resource adalah spectrum analyzer, karena spectrum analyzer tidak bisa di akses atau di-remote
73
oleh banyak CSSA Client pada waktu yang bersamaan. Bagian program yang berhubungan dengan resource ini di dalam teori sistem operasi disebut dengan nama daerah kritis (critical region).
Gambar 3.17 Teknik untuk mendapatkan Mutual Exclusion pada CSSA Server
74
Untuk mendapatkan mutual exclusion ini dalam teori sistem operasi bisa menggunakan
semaphore.
Penulis
merancang
mutual
exclusion
dengan
menggunakan atau memanfaatkan server satu proses yang tidak bisa melayani banyak client pada saat yang bersamaan. Jika ada banyak client yang connect ke server pada waktu yang hampir bersamaan maka client tersebut harus antri dalam sebuah antrian (queue) menunggu giliran untuk dilayani oleh server seperti pada gambar 3.17. Setelah komunikasi antara CSSA Server dengan CSSA Client selesai maka kedua program akan melakukan memutuskan hubungan (close connection) dan kemudian CSSA Client antri lagi, sedangkan CSSA Server melayani client yang sudah mengatri sebelumnya. Jadi dengan teknik connect -close ini fungsi nya sama dengan semaphore dalam teori sistem operasi, dan dengan teknik connectclose ini dijamin hanya ada satu CSSA Client yang bisa menggunakan spectrum analyzer setiap saat. Jadi teknik ini lebih mudah dibandingkan dengan multiprocess atau multithread dengan menggunakan semaphore.
3.11 Perancangan Format Pengiriman Data a.
Format pengiriman data antara SPA dengan CSSA Server Format instruksi antara spectrum analyzer (SPA) dengan CSSA Server mengikuti format standard yang sudah disediakan oleh spectrum analyzer yang menggunakan standard format GPIB, seperti contoh pada table 3.8 dibawah. Sedangkan format data yang digunakan oleh program CSSA Server dengan SPA mengikuti format standard GPIB seperti pada tabel 3.9 berikut :
75
Tabel 3.8 Instruksi (command/query GPIB) yang digunakan oleh program CSSA Function
Command (EXE, SET)
Query (GET)
Code
Argument Format
Code
Output Format
Center Frequency
CF*
Frequency
CF?
Frequency
Frequency Span
SP*
Frequency
SP?
Frequency
Reference Level
RL*
Level
RL?
Level
Attenuation
AT*
DB (Integer)
AT?
DB (Integer)
XdB/Div
DD*
10, 5,
DD?
0 = 10 dB
2, 1, 0.5 dB
1 = 5 dB 2 = 2 dB 3 = 1 dB 4 = 0.5 dB
RBW
RB*
Frequency
RB?
Frequency
VBW
VB*
Frequency
VB?
Frequency
Sweep Time
SW|ST*
Time
SW?|ST? Time
Take Sweep
TS
-
-
-
Sweep Mode Single
SI|SNGLS
-
-
-
Number of Trace Points
TPS|TP*
501
TP?
0=501
TPL|TP*
1001
Trace A I/O Binary
TBA
2 byte * TRP
TBA?
2 byte * TRP
Status Byte Clear
*CLS
-
-
-
1=1001
76
Register Read
OPR*
integer
OPR?
Integer
STB Read
-
-
*STB?
Integer
TRP: Number of trace points
Contoh beberapa instruksi GPIB yang dieksekusi dengan bahasa C sbb: a. Center Frequency
send(socket,"CF?\n",4,0) artinya mengirim query ke spectrum analyzer untuk membaca Center Frequency, kemudian data tersebut diambil dengan instruksi dibawah.
recv(socket,str,22,0) Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +4.0000000000E+09CRLF dan data ini akan
dikonversi
ke
double
floating
point
dengan
menggunakan fungsi atof() nilainya menjadi 4 GHz.
send(socket,"CF 100KZ\n",8,0) artinya command diberikan ke spectrum analyzer untuk mensetting nilai parameter Center Frequency sama dengan 100 KHz.
77
b. Attenuation
send(socket,"AT?\n",4,0) artinya mengirim query ke spectrum analyzer untuk membaca Attenuation, kemudian data tersebut diambil dengan instruksi dibawah.
recv(socket,str,22,0) Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +1.0000000000E+01CRLF dan data ini akan dikonversi ke floating point dengan menggunakan fungsi atof() nilainya menjadi 10 dB.
send(socket,"AT 10dDB\n",8,0) artinya command diberikan ke spectrum analyzer untuk mensetting nilai parameter Attenuation sama dengan 10 dB.
c. dB per Division
send(socket,"DD?\n",4,0) artinya mengirim query ke spectrum analyzer untuk membaca dB per Division, kemudian data tersebut diambil dengan instruksi dibawah.
recv(socket,str,22,0) Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: 1.00000000000E+00CRLF dan data ini akan di validasikan. Jika str[0] bernilai ‘1’, maka dBperDiv
78
bernilai 5 dB. Untuk daftar nilai dB per Division dapat dilihat pada table 3.8
send(socket,"DD 5dDB\n",8,0) artinya command diberikan ke spectrum analyzer untuk mensetting nilai parameter dB per Division sama dengan 5 dB.
d. Video Bandwith
send(socket,"VB?\n",4,0) artinya mengirim query ke spectrum analyzer untuk membaca Video Bandwith, kemudian data tersebut diambil dengan instruksi dibawah.
recv(socket,str,22,0) Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +1.0000000000E+09CRLF dan data ini akan
dikonversi
ke
double
floating
point
dengan
menggunakan fungsi atof() nilainya menjadi 1 GHz.
send(socket,"CF 1GZ\n",8,0) artinya command diberikan ke spectrum analyzer untuk mensetting nilai parameter Video Bandwith sama dengan 1 GHz.
e. Resolution Bandwith
send(socket,"RB?\n",4,0) artinya mengirim query ke spectrum analyzer untuk membaca Resolution Bandwith, kemudian data tersebut diambil dengan instruksi dibawah.
79
recv(socket,str,22,0) Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +1.0000000000E+09CRLF dan data ini akan
dikonversi
ke
double
floating
point
dengan
menggunakan fungsi atof() nilainya menjadi 1 GHz.
send(socket,"CF 100KZ\n",8,0) artinya command diberikan ke spectrum analyzer untuk mensetting nilai parameter Resolution Bandwith sama dengan 100 KHz.
f. Reference Level
send(socket,"RL?\n",4,0) artinya mengirim query ke spectrum analyzer untuk membaca Reference Level, kemudian data tersebut diambil dengan instruksi dibawah.
recv(socket,str,22,0) Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +2.0000000000E+01CRLF dan data ini akan dikonversi ke integer dengan menggunakan fungsi atoi() nilainya menjadi 20 dB.
send(socket,"RL 10dDB\n",8,0) artinya command diberikan ke spectrum analyzer untuk mensetting nilai parameter Reference Level sama dengan 10 dB.
80
g. Sweep Time
send(socket,"SW?\n",4,0) artinya mengirim query ke spectrum analyzer untuk membaca Sweep Time, kemudian data tersebut diambil dengan instruksi dibawah.
recv(socket,str,22,0) Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: 4.0000000000E+02CRLF dan data ini akan
dikonversi
ke
double
floating
point
dengan
menggunakan fungsi atof() nilainya menjadi 400 milisecond.
send(socket,"SW 500MS\n",8,0) artinya command diberikan ke spectrum analyzer untuk mensetting nilai parameter y sama dengan 100 milisecond.
h. Span
send(socket,"SP?\n",4,0) artinya mengirim query ke spectrum analyzer untuk membaca Span, kemudian data tersebut diambil dengan instruksi dibawah.
recv(socket,str,22,0) Data disimpan di variavel string str ( char str[22] ), contoh isi data string sbb: +7.0000000000E+03CRLF dan data ini akan
dikonversi
ke
double
floating
point
menggunakan fungsi atof() nilainya menjadi 7 KHz.
dengan
81
send(socket,"SP 100KZ\n",8,0) artinya command diberikan ke spectrum analyzer untuk mensetting nilai parameter span sama dengan 100 KHz.
Tabel 3.9 Format data pada command GPIB yang digunakan program CSSA
b. Format pengiriman data antara CSSA Server dengan CSSA Client Rancangan format data untuk parameter SPA yang dikirim antara CSSA Server dengan CSSA Client adalah sbb: Attenuasi;CenterFrequency;dBperDivision;ResolutionBandWidth; ReferenceLevel;FrequencySpan;SweepTime;VideoBandWidth; Data dikirim dalam format ASCII (string) dan setiap data dipisahkan oleh titik koma. Satuan dari data tidak dikirim hanya besarannya saja, tetapi sudah ditentukan / disepakati untuk data Attenuasi, dBperDivision adalah dB (decibel),
untuk
data
CenterFrequency,
ResolutionBandWidth,
82
VideoBandWidth dan FrequencySpan adalah Hz (Hertz), ReferenceLevel satuannya dBm (decibel milliwatt), SweepTime satuannya millisecond. Sedangkan untuk data trace format datanya sesuai dengan format yang dikirim oleh spectrum analyzer yaitu format biner. Setiap titik direpresentasikan dengan 2 byte integer yang besarnya berkisar antara 1792 s/d 14592 seperti gambar 3.18 dibawah. Jumlah data ada dua yaitu 501 dan 1001 yang ditentukan pada saat setting awal di spectrum analyzer. Penulis menggunakan jumlah data sebanyak 501 titik, agar pada saat membuat gambar spektrum frekuensi di program CSSA Client bisa lebih cepat. Jadi jumlah data yang dikirim dari CSSA Server ke CSSA Client sebanyak 2 x 501 byte, dengan aturan byte pertama yang dikirim merupakan high order byte dan byte berikutnya low order byte. Jadi format data yang dikirim oleh CSSA Server ke CSSA Client adalah sebagai berikut:
…..…… Data data trace inilah yang akan membentuk gambar spektrum frekuensi di sisi CSSA Client. Contoh data trace yang belum diolah/diproses yang dikirim oleh Spectrum Analyzer dan diterima oleh CSSA Server dan diteruskan ke CSSA Client seperti dibawah ini. Setiap data besarnya satu byte dan byte pertama adalah high order byte dan byte yang ke dua low order byte, dan dalam program data ini akan ditampung dalam sebuah Array.
83 22 175 21 173 20 167 21 94 24 95 19 185 19 236 22 247 20 218 23 16 24 56 21 137 20 174 21 186 23 127 22 105 --- dst s/d 2x501 byte data
Setelah data diatas diproses akan menjadi data Trace yang jumlahnya 501 seperti contoh dibawah ini. 5807 5549 5287 5470 6239 5049 5100 5879 5338 5904 6200 5513 5294 5562 6015 5737 ---- dst s/d 501 data trace
Contoh : Data 5807 didapat dari 22 * 256 + 175 Data 5549 didapat dari 21 * 256 + 173 dst.. Atau kalau dibuat bilangan biner nya sbb:
Dibawah ini diberikan contoh data parameter SPA yang dikirim oleh CSSA Client dan CSSA Server sbb: 10;90000000;10;100000;-10;20000000;200;100000; Setelah parameter SPA ini diproses di CSSA Server atau di CSSA Client maka akan di dapat nilai : Attenuasi = 10; Center Frekuensi = 90 MHz dBperDiv = 10 Res. BW = 100 KHz Video BW = 100 KHz Reference Level = -10 dBm
84
Frekuensi Span = 20 MHz Sweep Time = 200 msec
Gambar 3.18 Data trace dari Spectrum Analyzer
3.12
Perancangan Program CSSA Client Program CSSA Client dirancang untuk dijalankan pada komputer dengan sistem operasi windows, karena pada sistem operasi windows tersedia banyak pilihan bahasa pemrograman untuk menampilkan GUI (Graphical User Interface) dibandingkan dengan sistem operasi linux. Pada program CSSA Client ini terdapat dua thread yang penulis beri nama MainThread dan WorkerThread : •
MainThread, adalah thread yang berfungsi melayani event-event yang diberikan oleh user melalui mouse atau keyboard. Dimana event tersebut
85
akan menjalankan fungsi-fungsi tertentu dalam Program CSSA Client seperti, MouseClick, ButtonClick, dll. •
WorkerThread, adalah thread yang berfungsi untuk melakukan koneksi ke CSSA Server, meminta data dan mengirim parameter yang diset ke SPA melalui CSSA Server. Program CSSA Client pertama kali akan meminta data kepada CSSA Server, dan setelah data dikirimkan ke CSSA Client koneksi akan dimatikan. Selain itu WorkerThread juga berfungsi untuk menampilkan Spectrum Frequency sesuai dengan range frekuensi tertentu secara real time.
Perancangan program CSSA Client dimulai dari perancangan sequence diagram antara thread didalam CSSA Client
dan dengan CSSA Server-nya, untuk
melihat interaksi antar program seperti pada gambar 3.20. Untuk melihat lebih rinci proses yang ada pada setiap thread dibuat rancangannya dengan menggunakan flowchart seperti gambar 3.21.
Gambar 3.19 Program CSSA Client terdiri dari 2 thread
86
Gambar 3.20 Sequence Diagram antar Thread di CSSA Client dan CSSA Server
3.12.1 Perancangan Program Worker Thread Worker thread berfungsi untuk mengirim parameter SPA baru ke CSSA Server dan kemudian membaca kembali parameter tersebut dari CSSA Server. Setelah data didapat dari CSSA Server baru kemudian Worker Thread menggambar grafik (spektrum frekuensi) di form picture
87
box pada form tampilan CSSA Client, dan selain itu worker thread juga meng-update data-data yang ada di textbox pada form tampilan CSSA Client.
Start
IF Me <> Cancel
No
Close Thread
Yes
Mengirimkan Parameter ke CSSA-Server
Membaca Parameter dari CSSA Server
Menggambar Spectrum dan update data
Gambar 3.21 Flow Chart pada Worker Thread
88 Start
Membaca ParamSPA dari Variabel Global
Create, Connect Socket
Mengirimkan Parameter READDATASPA ke CSSA Server
Membaca ACK dari CSSA Server
Mengirimkan ParamSPA ke CSSA Server
Stop
Start
Start
Membaca ParamSPA dari CSSA Server
Menampilkan ParamSPA pada Form CSSA Client
Mengirimkan ACK ke CSSA Server
Menggambar Grid
Membaca Trace dari CSSA Server
Menggambar Spectrum
Close Socket()
Menggambar Marker
Konversi ParamSPA
Menampilkan ParamSPA pada PictureBox
Simpan ParamSPA ke Variabel Global
Stop
Stop
(a)
(b) (c)
Gambar 3.22 Flow Chart pada Worker Thread (a) Pengiriman parameter ke CSSA Server (b) Membaca parameter dari CSSA Server (c) Menggambar Spektrum frekuensi dan update data
Pada saat worker thread dibuat (create) oleh sistem operasi, maka worker thread langsung mengambil parameter SPA dari global variabel dan kemudian melakukan koneksi ke CSSA Server, mengirim parameter SPA ke CSSA Server, membaca data trace dari CSSA server dan
89
menutup koneksi (close connection) dengan CSSA Server. Setelah data trace didapat dari CSSA Server kemudian worker thread menggambar spektrum frekuensi dan mengupdate data-data yang ada di form utama pada tampilan CSSA Client. Worker thread akan melakukan pemrosesan terhadap parameter SPA, supaya menjadi data yang mudah dilihat oleh pemakai dan kemudian data tersebut ditampilkan pada tampilan form utama. Worker Thread juga akan menggambarkan marker berdasarkan event yang diberikan oleh pemakai. Proses ini akan berulang secara terusmenerus selama pemakai tidak menekan button stop pada form utama. Komunikasi antar thread pada CSSA Client menggunakan global variabel dalam sebuah modul.
3.12.2 Perancangan Fungsi Pemetaan Data Spectrum Frequency ke Bitmap Data trace yang didapat dari CSSA Server sama format nya dengan data trace yang didapat langsung dari spectrum analyzer. Data trace berkisar antara 1792 s/d 14592 dengan jumlah data 501, seperti gambar 3.24. Data-data ini akan digambar kembali di picture box pada layar utama di CSSA Client. Picture box yang dibuat berukuran tinggi 433 pixel dan lebar 549 pixel. Data trace yang diterima dari CSSA Server disimpan pada array Trace[0] s/d Trace[500]. Untuk memetakkan (mapping) dari Trace(i),i Î Yi,Xi digunakan formula sbb:
90
JMLTITIK = 501 LEVELATAS = 14592 LEVELBAWAH = 1792 DELTA = LEVELATAS – LEVELBAWAH DivBawah = (BatasAtas – BatasBawah) / 10 DivKanan = (BatasKanan – BatasKiri) / 10 Yx = (Trace[i] - LEVELBAWAH) / DELTA) * (DivBawah * 10) Yi = (DivBawah * 10 + BatasAtas) – Yx Xi = i / (JMLTITIK - 1) * (DivKanan * 10) + BatasKiri ……... (1)
Yi dan Xi yang didapat dari rumus diatas adalah menunjukkan lokasi pixel untuk sumbu Y dan sumbu X pada data yang ke-i, dan pada lokasi inilah akan di plot sebuah garis. Sebuah garis akan ditentukan oleh dua buah titik (pixel), jadi untuk membuat garis digunakan lokasi sebelumnya (Yi-1,Xi-1, Yi,Xi). Untuk mengetahui power atau level signal dari suatu spektrum frekuensi dalam satuan dBm pada suatu titik tertentu digunakan formula berikut : tmp = Trace[i] - LEVELATAS dBmx = (tmp / DELTA) * 100 dBm[i] = dBmx / (10 / DBperDiv) + RefLevel …………….. (2)
Dengan menggunakan rumus diatas, maka perhitungan marker, multimarker, deltamarker dan display line dapat dilakukan di komputer
91
dan tidak perlu membaca dari spectrum analyzer, sehingga dapat mengurangi beban dari spectrum analyzer. Dibawah ini diberikan contoh data trace yang jumlahnya 501, yang sudah diproses menjadi 2 byte data integer dan data Trace ini di gambar dengan menggunakan Microsoft Excel hasilnya seperti gambar 3.23. Hasil yang didapat seperti gambar 3.23 tidak bisa menentukan level signal pada frekuensi tertentu, dan untuk mengetahi level signal harus diketahui parameter spectrum analyzer dBperDiv dan RefLevel pada saat pengukuran dilakukan sehingga rumus (2) bisa digunakan.
Tabel 3.10 Contoh Data Trace[0] s/d Trace[500] 5807 5294 5743 5374 5827 6890 4975 5477 7958 6594 4682 4683 5557 5896 6842 5252 5037 5175 5092 5677 6854 7405 5509 4863 5199 5634 6145 6704 5233 6264
5549 5562 5014 5366 4848 6979 4735 3943 7934 6758 5031 5253 5585 6051 6995 5976 5391 6248 5051 5501 5790 7841 5799 5685 3971 5344 5314 6089 5590 6720
5287 6015 4004 5177 4582 6302 5477 5599 8332 4742 5564 5239 5079 5131 6452 5639 5665 6349 5328 4577 4607 8096 5461 5685 4423 5948 3755 5457 4800 6227
5470 5737 5957 5751 5179 6112 5615 5172 8751 5607 4509 5032 4808 5257 5725 4159 4583 6225 5135 5541 5706 8730 5082 4240 4867 5093 5232 6456 5760 6750
6239 4616 5052 4251 4567 6261 4528 5099 8469 6924 4742 4795 4324 5896 5953 4495 5649 5711 5895 5954 5187 8323 5323 4006 5275 6204 5886 4848 5559 5782
5049 5112 5178 5327 5340 5670 5351 6170 8569 5719 4927 4851 5029 5438 5987 4807 6199 4867 4762 4953 5771 8477 5157 5102 4718 5309 4504 5998 5738 5544
5100 5409 4070 4798 6010 5915 5501 5275 8337 6501 3693 4347 4903 5189 5530 4847 5545 4664 4464 6672 4823 8478 4572 5164 4718 6260 6139 5873 5877 5739
5879 4599 4772 5224 5856 5304 4575 5715 8123 3747 5352 6082 5958 6692 6519 5226 5202 5869 4706 6327 5470 8278 4571 5269 5668 5821 5063 4908 5969 6267
5338 4570 5543 4312 5671 5167 5825 6515 7806 5651 4635 4848 4988 6655 6687 5259 5003 4959 3911 7250 5523 7599 4781 5425 5509 5742 5974 5971 6242 6308
5904 4556 3779 5328 6181 5212 5013 6443 6807 5940 5406 5246 5439 7228 5518 5643 5380 5187 5545 6535 6210 7432 4744 5554 6496 5694 6239 5040 5999 6533
6200 4778 5667 5134 7189 5267 4054 7048 6917 5307 4722 4914 6261 7114 6479 5459 5869 5196 6780 6189 6579 6314 4930 4836 4420 5994 5500 4801 6989 7653
5513 4480 5093 5738 7488 4454 4434 7949 6355 4846 5691 6193 5985 7350 4993 5641 5105 4799 5326 6184 6832 6092 5036 5125 5993 5775 6150 5350 5865 7890
92 8713 7103 6328 6185 5754 6969 6283 6101 6047 7389 6016 7730
9250 6594 5734 5912 6667 6673 6667 6480 7208 6960 6985 8567
9276 6148 6690 6677 5755 7255 6765 6300 4740 7144 6860 7701
9547 6299 5915 5438 6030 6448 6439 6169 6019 6332 7462 7408
9410 6026 6497 7368 4841 6841 6938 5858 6895 7278 6798 6815
9204 6783 6035 6939 6202 6811 6231 6011 6914 6693 6754 7691
9528 6020 6226 6358 5709 6627 5767 5797 7485 6843 7018 6074
9245 5765 5264 6247 7241 6880 5776 6543 6312 6207 6371 5570
8846 5652 5527 6389 7750 7215 5794 6241 7576 6519 7120 6848
8578 6618 6037 6291 7736 6595 5402 6502 6746 6442 7134
8767 6291 6059 6603 6927 6112 6271 5159 7827 6269 7533
7823 5973 5810 5042 6875 6320 6140 6427 5979 6564 8127
Gambar 3.23 Spektrum Frekuensi dari data Trace tabel 3.10 yang digambar dengan menggunakan program Excel
93
Gambar 3.24 Spektrum Frekuensi dari data Trace tabel 3.10 dengan menggunakan Program CSSA Client
3.12.3 Perancangan Fungsi Pemetaan Lokasi BitMap ke Data Trace Untuk mengetahui power dari suatu frekuensi, maka pada CSSA Client disediakan fasilitas marker, delta marker dan multi marker. Marker setelah diaktifkan kemudian lokasi marker-nya ditentukan oleh mouse pada saat di klik. Pada Visual Studio 2008, sudah disediakan event untuk menangkap posisi mouse di saat di klik tersebut, dan posisi ini dalam satuan pixel (Yi,Xi). Untuk menghitung power-nya maka harus dicari data Trace yang ke-i tersebut dengan menggunakan rumus sbb:
94
Index=((e.X - BatasKiri) / (DivKanan * 10)) * JMLTITIK …... (3) e.X : adalah lokasi pixel pada sumbu X saat mouse di klik. Index: adalah data Trace yang ke-i atau Trace[i]
Dengan mengetahui data Trace[i] maka untuk menghitung power dari suatu frekuensi menjadi lebih mudah dengan menggunakan rumus (2) diatas.
3.12.4 Perancangan Fungsi Untuk Menghitung Level Pada Display Line Display line umumnya digunakan untuk mengukur dan melihat noise floor dari suatu frekuensi yang diukur seperti gambar 3.25. Display line berupa garis lurus sepanjang sumbu X, dan display line hanya bisa dirubah posisinya ke sumbu Y saja, dengan menggunakan mouse. Untuk menghitung nilai level dari posisi display line ini digunakan rumus sbb: ratio = (BatasAtas – e.Y) / (DivBawah * 10) dBmx = ratio * 100 dBm = ((dBmx / (10 / DBperDiv)) + RefLevel dimana: e.Y =
lokasi pixel pada sumbu Y yang di klik oleh mouse, dan untuk mendapatkan nilai pixel ini visual studio 2008 sudah menyediakan fungsinya.
95
Gambar 3.25 Pemetaan data frekuensi ke bitmap
3.12.5 Perancangan Algoritma Untuk Membuat Marker di CSSA Client Pada saat marker diaktifkan baik normal marker, delta marker ataupun multimarker maka pada spektrum frekuensi yang muncul di layar monitor harus diberi tanda untuk menentukan titik ukur yang sedang diamati. Tanda ini untuk beberapa merk spectrum analyzer berbeda-beda bentuknya ada yang bentuknya bulat, oval dan ada juga yang
96
menggunakan tanda tambah (+) seperti gambar 3.25. Pada perangkat lunak CSSA penulis menggunakan tanda tambah (+). Untuk membuat tanda marker ini algoritmanya adalah sbb: 9 Pada saat mouse di klik disuatu tempat maka dengan menggunakan rumus (3) diatas, akan diperoleh index data Trace, misalkan pada index ke-i atau Trace[i] 9 Setelah diketahui index dari data Trace tersebut kemudian digunakan rumus (1) untuk melakukan pemetaan dari data Trace[i],i ke Yi,Xi. 9 Setelah ketemu titik Yi,Xi kemudian dibuat garis mulai dari Yi5,Xi ke Yi+5,Xi dan garis Yi,Xi-5 ke Yi,Xi+5 maka pada layar monitor akan muncul gambar marker seperti gambar 3.25
97
3.13
Perancangan Menu
98
3.14
Perancangan layar CSSA Client a. Rancangan Layar Utama
Gambar 3.27 Rancangan Layar Utama b. Rancangan Layar EntryNote
Gambar 3.28 Rancangan Layar Entry Notes
99
c. Rancangan Layar Add/EditDBase
Gambar 3.29 Rancangan Layar AddEditDBase
d. Rancangan Layar DBaseListView
Gambar 3.30 Rancangan Layar DBaseListView
100
e. Rancangan Layar IP Address
Gambar 3.31 Rancangan Layar IP Address
f. Rancangan Layar StartStop
Gambar 3.32 Rancangan Layar StartStop
g. Rancangan Layar IP Address Database
Gambar 3.33 Rancangan Layar IP Address Database
101
3.15
STD Diagram Untuk merancang perubahan dari satu layar ke layar yang lainnya penulis menggunakan STD (State Transition Diagram) untuk menggambarkannya perubahan-perubahan tersebut. Nama layar Print Preview, Print dan Print Setup tidak ada dalam rancangan layar karena layar tersebut penulis gunakan yang sudah disediakan oleh windows (Visual Studio 2008).
Gambar 3.34 STD Menu Utama
102
Gambar 3.35 STD DbaseListView
3.16
Perancangan Database Program Client Server Spectrum Analyzer ini dilengkapi juga dengan database
untuk menyimpan data-data pelanggan atau pengguna frekuensi untuk memudahkan pemakai melakukan pengukuran. Dengan adanya database ini pemakai (user) cukup dengan mengingat nama pelanggan (customer) saja tidak perlu lagi harus mengingat atau melihat catatan tentang frekuensi yang digunakan oleh pelanggan tersebut. Disamping itu pemakai tidak perlu lagi mengetik atau memasukkan data setting parameter SPA di CSSA Client, karena data-data yang ada pada database ini akan langsung mengisi parameter SPA dan Text Box pada tampilan layar utama. Database yang digunakan
103
adalah MySQL yang lokasinya bisa di komputer CSSA Server atau di komputer CSSA Client. Pengguna (user) diberikan pilihan untuk menyimpan database-nya bisa pada server atau pada komputer lokal / client. Untuk menentukan database yang mana digunakan oleh pemakai apakah yang ada di kompute CSSA Server atau yang ada di komputer CSSA Client penulis merancang cara men-set nya melalui sebuah menu untuk memasukkan nomor IP dari komputer yang database-nya akan diakses oleh program CSSA Client. Database-nya cukup satu tabel dengan nama tblCustomer sbb: Tabel 3.11 tblCustomer tblCustomer Key Field PK ID NAMA STARTFREQ STOPFREQ REFLEVEL VBW RBW SWEEPTIME ATTEN DBDIV ALAMAT
Type CHAR(10) VARCHAR(30) BIGINT(20) BIGINT(20) INT(11) BIGINT(20) BIGINT(20) INT(11) INT(11) INT(11) VARCHAR(40)
Null NO NO NO NO NO NO NO NO NO NO YES
Default
0 100000 100000 100 10 10