Python Pengembangan aplikasi DiffServ dengan disiplin antrian hierarchy token bucket dan random early detection sebagai bandwidth limiting

tc qdisc add dev eth0 parent 1:21 handle 210: pfifo limit 10 tc qdisc add dev eth0 parent 1:22 handle 220: pfifo limit 10 tc qdisc add dev eth0 parent 1:31 handle 310: pfifo limit 10 tc qdisc add dev eth0 parent 1:32 handle 320: pfifo limit 10 tc filter add dev eth0 parent 1:0 protocol ip u32 match ip dst 192.168.124 match ip sport 22 0xff flowid 1:21 tc filter add dev eth0 parent 1:0 protocol ip u32 match ip dst 192.168.124 match ip sport 23 0xff flowid 1:22 tc filter add dev eth0 parent 1:0 protocol ip u32 match ip dst 192.168.224 match ip sport 25 0xff flowid 1:31 tc filter add dev eth0 parent 1:0 protocol ip u32 match ip dst 192.168.224 match ip sport 110 0xff flowid 1:32

2.5. Python

Python adalah salah satu bahasa pemrograman script. Karena script sehingga bersifat interpreted tapi python memungkinkan untuk dicompile. Memiliki pendekatan Berorientasi Objek dan yang terpenting adalah terstruktur secara sintaks kodenya. Struktur sintaks akan diatur dengan indentasi tiap baris kodenya. Prinsip dasar dari python adalah kesederhanaan http:docs.python.org.

2.5.1. Hello World

Setiap contoh yang ada dapat dicoba di linux, untuk mencoba di system operasi lain sesuaikan bagian shebang. Buat file hello.py dan masukkan baris kode berikut : usrbinenv python print “Hello World” Jalankan file tadi dengan menambahkan atribut execute dengan perintah : chmod u+x hello.py Jalankan file hello.py dengan perintah berikut : .hello.py Hello World Setelah dieksekusi akan tampil teks Hello World. Karena bersifat interpreted, tidak perlu ada proses kompilasi sebelumnya.

2.5.2. Dasar Python

1. Literal Literal adalah bilangan seperti 5, 5,2, 4e12, string seperti ‘ini adalah string’ atau “ini string juga.”. Literal dapat digunakan dan ditampung pada variable nantinya. 2. Bilangan Terdapat 4 tipe bilangan pada python, diantaranya : 1 Integer, 2, 4, 10, 1000, dll. 2 Long Integer, nilainya lebih besar dari integer. 3 Floating Point, 2,3, 1,0, dll. 4 Complex, -5+4j dan 2.3 - 4.6j. 3. String String pada python dapat ditandai dengan tanda petik satu, dua maupun tiga. ‘string dengan satu petik’ “string dengan dua petik” ‘’’ string dengan tiga petik dapat dibuat multi baris‘’’ 4. Variabel Untuk penamaan variable wajib didahului oleh huruf atau underscore ‘_’. Berikut contoh penamaan yang benar. nama _nama Nama Variabel akan langsung bisa digunakan ketika kita memberikan nilai ke dalamnya. Berikut contohnya : nama = “deni” usia = 22 5. Indentasi Indentasi sangat penting pada python, karena python membaca indentasi dari kode program untuk menentukan alur dan blok dari tiap bagian kode. Kode berikut akan error bila dijalankan : x = 5 y = 3 z = 4 print x di bagian lain akan dipelajari tentang control program dan fungsi. Pada bagian itu indentasi akan sering digunakan.

2.5.3. Operator dan Ekspresi

1. Operator Berikut operator yang ada pada python : + - | ~ = = == = 2. Ekspresi Penggunaan ekspresi pada python cukup sederhana, berikut contohnya : length = 5 breadth = 2 area = length breadth 3. Alur Kendali Terdapat beberapa pernyataan pada python untuk mengatur alur kendali program, diantaranya adalah if, while dan for..in. 1 If Pernyataaan if akan menguji kebenaran dari ekspresi, kemudian akan menjalankan blok yang diinginkan. Berikut contoh penggunaannya : x = 0 if x 1: print x elif x 0: print “x lebih besar dari 0” else: print “error” 2 While Pernyataan ini akan mengulang blok yang sudah ditentukan selama ekspresi dalam while masih bernilai benar. Berikut contohnya: ulang = True while ulang: print “baris yang akan dijalankan selama masih bernilai true” else: print “baris yang dijalankan ketika bernilai false” 3 For .. in Pada pernyataan ini, perulangan akan terjadi sebanyak N sesuai dengan jumlah sequence object yang digunakan. for i in range1,5 print i

2.5.4. Fungsi

Untuk membuat fungsi cukup menggunakan keyword def. Kemudian diikuti nama fungsi dan parameternya. Berikut contohnya : def Tambah: print x + 1 Jika mengikuti konvensi dari python, minimal sebuah fungsi akan memiliki parameter self. Sehingga didapat fungsi berikut : def Tambahself: print x Jika ingin menambah parameter lain, cukup dengan memisahkan dengan tanda koma,. Sebagai contoh : def Tambahself, x, y: print x + y Sebuah fungsi dapat memiliki nilai kembalian return value. Cukup dengan menggunakan keyword return. def Tambahself, x, y: return x + y

2.5.5. Pemrograman Berorientasi Objek

1 Class Penggunaan class pada python hanya menggunakan keyword class. Berikut contohnya : class Manusia: def Bicaraself: print “berbicara” Untuk menginstansiasi objek dari class yang kita buat. Cukup dengan kode berikut : objManusia = Manusia objManusia.Bicara 2 Method Penggunaan dan pembuatan method pada class, sama dengan fungsi biasa. Perbedaan hanya terlihat pada cara memanggil method. Berikut contohnya : class Mobil: def Namaself, nama: self.nama = nama print self.nama objMobil = Mobil objMobil.Nama“Sedan” Contoh di atas akan menghasilkan kata sedan. Terlihat pada definisi fungsi terdapat 2 parameter yaitu: self dan nama. Tapi untuk memanggil fungsi cukup melewatkan untuk variable setelah self. Karena self tidak dianggap sebagai parameter. 3 __init__ method Pada python terdapat constructor method pada class. Disebut dengan __init__ method. Method ini akan dipanggil terlebih dahulu ketika objek dibuat dari kelas tersebut. Berikut contoh penggunaannya: class Mobil: def __init__self: print “mobil dibuat” t = Mobil 4 Inheritance Untuk membuat turunan kelas pada python sangat mudah. Hanya menggunakan tanda kelas induk. Berikut contohnya : class Induk: def __init__self: print “kelas induk” class TurunanInduk: def __init__self: print “kelas turunan”

2.5.6. PyGTK

PyGTK 2.0 adalah sekumpulan modul Python yang menyediakan antarmuka untuk GTK Python 2.x. Seluruh PyGTK dokumen mengacu pada versi 2.x PyGTK dan GTK, GTK merujuk pada versi 2.x GTK. Situs web utama untuk PyGTK adalah www.pygtk.org. Penulis utama PyGTK adalah James Henstridge, jamesdaa.com.au . Python adalah sebuah bahasa pemrograman yang extensible, berorientasi obyek yang disediakan dengan kumpulan modul yang menyediakan akses ke sebagian besar operating system services, internet services seperti HTML, XML, FTP, dll, grafis termasuk OpenGL, TK, dll, fungsi penanganan string, layanan mail IMAP, SMTP, POP3, dll, multimedia audio, JPEG dan layanan kriptografi. Selain itu ada banyak modul lain yang tersedia dari pihak ketiga yang menyediakan banyak layanan lainnya. GTK pada dasarnya adalah sebuah application programmers interface API berorientasi objek. Walaupun sepenuhnya ditulis dalam C, diimplementasikan dengan menggunakan gagasan kelas dan callback functions pointer ke fungsi. Dengan menggunakan pygtk, pengguna python dapat dengan mudah menggunakan GTK sebagai GUI untuk program mereka. Hanya dengan menggunakan python yang memanggil GTK widgets yang diperlukan untuk program mereka.

2.5.7. Matplotlib

Matplotlib adalah pustaka 2D plotting python yang menghasilkan diagram dalam berbagai format hardcopy dan lingkungan interaktif lintas platform. Matplotlib dapat digunakan dalam python scripts, python dan ipython shell ala matlab atau mathematica, web application servers, dan 6 graphical user interface toolkits . Matplotlib mencoba untuk membuat hal yang mudah menjadi mudah dan yang sulit menjadi mungkin. Anda bisa generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots, dan lain-lain, hanya dengan beberapa baris kode. Gambar 2.12 contoh plot dengan matplotlib Sebagai contoh, untuk generate 10.000 gaussian angka acak dan membuat histogram berisi data dalam 100 bins, cukup dengan mengetikkan: from pylab import randn, hist x = randn10000 histx, 100 Untuk power user, anda memiliki kendali penuh atas model garis, font properties, axes properties, dan lainnya, lewat object oriented interface atau sekumpulan fungsi yang mirip bagi pengguna Matlab®. Pylab mode menyediakan semua fungsi pyplot plotting dan juga fungsi non-plotting functions dari numpy dan matplotlib.mlab .

2.6. Extreme Programming