BAB III
METODOLOGI PENELITIAN
3.1. Alat dan Bahan
Bahan yang digunakan adalah paket data yang diterima. Untuk kemudian dialirkan ke jaringan yang dibangun untuk tujuan penelitian ini.
Adapun peralatan yang digunakan dibagi dua, yaitu : 1.
Perangkat Keras •
• •
• PC server1 unit dengan spesifikasi :
1. Operating System : Fedora Core 10.
2. 2 kartu interface .
• •
• • PC client3 unit dengan spesifikasi :
1. Operating System : Windows XP.
2. 1 kartu interface.
• •
•
• Switch
2. Perangkat Lunak
• •
• • IPTABLES.
• •
• • TC.
• •
•
• Linux Kernel 2.6.x.
• •
• • GTK.
• •
• • Python.
3.2. Metode Penelitian
3.2.1. Metode Pengumpulan Data 1.
Studi Pustaka Studi pustaka dilakukan untuk mendapatkan bahan dan data yang diperlukan
dalam melakukan penelitian ini. Sumber yang diambil berupa buku, jurnal, paper, tesis dan disertasi yang banyak terdapat di internet. Pencarian penelitian sebelumnya
juga dilakukan untuk membandingkan dan mempelajari sehingga dapat diterapkan pula pada penelitian ini.
3.2.2. Metode Pengembangan Perangkat Lunak 1.
Extreme Programming Extreme ProgrammingPressman, 2005 adalah suatu pendekatan baru terhadap
model pengembangan perangkat lunak yang kontroversial berdasar pada model iterative dan incremental. Langkah awal adalah tim pengembang menetapkan
beberapa fiturstories yang diinginkan klien untuk diimplementasikan pada produk. Untuk tiap fitur tim memberitahukan kepada klien tentang lama pengerjaan dan
biayanya. Langkah ini berada pada bagian planning untuk analisis kebutuhan perangkat lunak tersebut.
Gambar 3.1 Extreme Programming processPressman, 2005
XP mencakup beberapa aturan dan praktek yang terdiri atas planning, design, coding dan testPressman, 2005. Berikut penjelasan dari masing-masing tahapan
yang akan dilakukan pada pembuatan aplikasi ini,
1. Planning.
Pada tahap ini perencanaan terhadap software yang diinginkan mengacu pada user stories
. User stories menggambarkan fitur dan fungsi yang dibutuhkan terhadap software tersebut. Ketika semua user stories telah ditentukan, developer
akan menentukan lama pengerjaan untuk tiap-tiap user stories. Adapun beberapa fungsi dan kebutuhan dari aplikasi adalah sebagai berikut:
1. Aplikasi mampu generate parameter TC dan iptables yang dibutuhkan.
2. Aplikasi mampu generate parameter untuk TC dan iptables yang akan
dibutuhkan oleh aplikasi. 3.
Aplikasi membuat laporan realtime untuk mengukur pemakaian bandwidth.
planning design
coding
testing release
2. Desain.
Proses desain pada XP mengikuti prinsip KISKeep It Simple. Desain akan berisikan semua implementasi dari stories tanpa ada pengurangan maupun
penambahan. Desain yang memiliki fungsi tambahan tidak disarankan. XP menggunakan CRCClass-Responsibility-Collaborator cards untuk
mengidentifikasi dan mengorganisasikan kelas berorientasi objek yang berkaitan dengan proses pengembangan software.
Jika terdapat kesulitan untuk melakukan desain terhadap stories, XP menyarankan untuk membuat prototype dari desain tersebut. Hal tersebut disebut
sebagai spike solution, prototype nantinya akan diimplementasikan dan dievaluasi.
XP menyarankan refactoring, sebuah teknik pengembangan yang juga teknik desain. Fowler mendeskripsikan refactoring sebagai berikut:
“Refactoring adalah proses perubahan sebuah system software dengan satu cara yang tidak merubah behaviour eksternal dari kode yang meningkatkan
struktur internal. Hal ini adalah cara untuk membersihkan kode dan memodifikasi ataupun menyederhanakan desain internal yang meminimalisasi
peluang munculnya bug. Pada dasarnya, ketika melakukan refactor kita meningkatkan desain dari kode setelah tertulis.”
Perubahan desain dapat terjadi walaupun sudah memasuki tahap codingimplementasi. Hal tersebut dilakukan untuk mendapat desain yang baik
dan kode yang bersih.
Pada desain, perancangan aplikasi akan terdiri dari beberapa bagian diantaranya sebagai berikut :
1. Perancangan desain GUI dengan pembuatan prototype dengan
menggunakan GTK. 2.
Desain input yang diperlukan. 3.
Desain ouput yang diperlukan. 4.
Perancangan class yang dibutuhkan dengan CRC. 5.
Perancangan tampilan laporan penggunaan bandwidth.
3. Coding.
Pada tahap ini, proses pengembangan tidak langsung melakukan implementasi terhadap desain yang telah dibuat. Pembuatan unit test untuk tiap-tiap stories yang
nantinya akan diimplementasikan. Saat unit test selesai dibuat, pengembang lebih baik fokus terhadap apa yang akan diimplementasikan untuk melewati unit test.
Tahap ini akan mengacu pada desain sebelumnya. Karena pembuatan unit test dilakukan terlebih dahulu. Maka implementasi desain sebaiknya dibuat untuk
melewati unit test yang dibuat. Aplikasi akan dibuat menggunakan python dan GTK sebagai GUI.
4. Testing.
Tahap ini akan menggunakan unit test yang sebelumnya telah dibuat. Karena pembuatan dari unit test adalah pendekatan utama dari XP. Unit test yang dibuat
sebaiknya diimplementasikan dengan penggunaan framework untuk otomatisasi.
Testing akan dilakukan dengan unit test yang sebelumnya telah dibuat. PyUnit akan digunakan sebagai framework untuk melakukan testing terhadap aplikasi.
5. Release.
Tahap ini setelah semua test dilakukan dan dinyatakan bebas bug dan siap diimplementasikandigunakan oleh pengguna.
METODE EXTREME PROGRAMMING
Analisis Kebutuhan Perumusan Masalah
Pemilihan judul penelitian
Studi Pustaka
Planning
Desain
Testing Aplikasi mampu generate parameter TC dan
iptables yang dibutuhkan. Aplikasi mampu generate parameter untuk TC
dan iptables.
Perancangan desain GUI dengan pembuatan prototype dengan menggunakan GTK.
Desain Input Desain Output
Coding Perancangan class yang dibutuhkan dengan CRC.
Pembuatan Unit Test.
Release Penarikan Kesimpulan dari sistem
Perancangan tampilan laporan penggunaan bandwidth.
Aplikasi membuat laporan realtime untuk
mengukur pemakaian bandwidth.
Pengujian Tahap Pemograman
BlackBox Testing Unit Testing
Pengujian QoS
Gambar 3.2 Ilustrasi Metodologi Penelitian Perancangan Aplikasi
Bandwidth Management dengan TC.
BAB IV
PEMBAHASAN
4.1. Planning
Tahap ini penulis melakukan analisis terhadap user storieskebutuhan terhadap aplikasi yang akan dibuat. Karena framework yang dapat berkomunikasi dengan traffic
control di modul kernel linux adalah tc. Maka penulis akan menggunakan tc sebagai
jembatan penghubung antar aplikasi bantu yang penulis buat dengan queueing discipline yang digunakan.
TC bukan sebuah API yang dapat diakses langsung dengan memanggil dari kode program. Untuk itu diperlukan pemanggilan langsung terhadap tool tersebut dan
melakukan parsing terhadap outputnya. TC dapat langsung digunakan sebagai tools untuk mengatur lalu lintas jaringan. Pengaturan untuk tiap-tiap queueing discipline memiliki
syntax yang berbeda.
4.1.1. Analisis penggunaan bandwidth.
Protokol ip yang digunakan router menggunakan disiplin antrian First In First Out FIFO yang bersifat best effort service. Router akan melewatkan paket data dengan
waktu yang bervariasi sesuai dengan beban trafik yang ada. Hal tersebut dapat memberikan kongesti pada jaringan dan tidak adanya pembedaan tiap paket data yang
lewat. Sehingga tiap node tidak mendapatkan QoS yang sesuai. Berikut hasil pengujian menggunakan disiplin antrian FIFO,
Tabel 4.1 Pengukuran kecepatan tanpa bandwidth management Percobaan ke-
Node 1 Node 2
Upload Download
Upload Download
1 85 kbps
255 kbps 34 kbps
127 kbps 2
80 kbps 244 kbps
39 kbps 185 kbps
Koneksi internet pada tiap isp memiliki jalur masing-masing, sehingga langsung menuju jaringan global. Hal ini berdampak pada kecepatan yang sama ketika kita
mengakses konten lokal, karena untuk mengaksesnya kita harus berputar ke jaringan luar negeri dulu. APJII membentuk IIX untuk mengatasi masalah tersebut. IIX adalah jaringan
interkoneksi nasional dengan menggabungkan semua ISP yang ada di Indonesia. Dengan begitu jumlah hop antar router akan berkurang dan memberikan throughput yang lebih
baik. Berikut pengujian dengan server yang berada pada jaringan IIX, Tabel 4.2 Pengukuran kecepatan untuk jaringan IIX
Percobaan ke- Node 1
Node 2 Upload
Download Upload
Download 1
88 kbps 768 kbps
66 kbps 721 kbps
2 87 kbps
754 kbps 64 kbps
701 kbps
Dari hasil pengujian di atas terlihat belum adanya klasifikasi tiap paket, sehingga terdapat ketimpangan throughput antar node. Terlihat satu node mengkonsumsi
bandwidth jaringan lebih banyak dari node yang lain. Untuk itu diperlukan klasifikasi