Aplikasi Slackware Package Manager Menggunakan QT Java Binding Tjatur Kandaga, Margaretha Irene Jurusan S1 Teknik Informatika Fakultas Teknologi Informasi, Universitas Kristen Maranatha Jl. Prof. Drg. Surya Sumantri no. 65, Bandung 40164 email: [email protected], [email protected] Abstract Slackware package manager is a graphical package manager for managing linux applications. Its main functions are installing, removing, and upgrading package(s) automatically. Basically, Slackware Linux has a package manager based on console called pkgtool but this application can only do installing, removing, and upgrading package manually. Slackware package manager is developed to overcome frustration of pkgtool because it has many functions besides the three main functions. These functions are creating snapshot, viewing general information, viewing content, searching and filtering package. Keywords: Slackware, Linux, Package Manager, Pkgtool, Package. 1. Pendahuluan Sampai saat ini Slackware GNU/Linux belum memiliki package manager yang berbasis Graphical User Interface (GUI). Package dalam istilah Linux adalah aplikasi seperti pada platform sistem operasi Microsoft Windows. Package manager default yang terdapat pada sistem Slackware GNU/Linux adalah pkgtool yang hanya bisa melakukan instalasi, penghapusan, dan upgrade package. Aplikasi ini hanya berbasis console. Oleh karena itu, dibuatlah aplikasi serupa berbasis GUI dengan menggunakan framework QTJambi. Framework QTJambi merupakan framework yang menyediakan akses ke dalam library QT melalui JNI library sehingga memungkinkan aplikasi berbasis QT dibuat menggunakan bahasa pemrograman Java. Aplikasi ini menyediakan kemudahan bagi end user untuk melakukan operasi-operasi pada package serta berbagai kelebihan yang tidak dimiliki oleh pkgtool. 2. Deskripsi Keseluruhan Berikut ini adalah deskripsi umum dari aplikasi Slackware package manager : • Aplikasi ini akan melakukan interaksi dengan perintah-perintah internal Slackware seperti /sbin/installpkg, /sbin/removepkg, /sbin/upgradepkg, /sbin/upgradepkg –reinstall, /sbin/upgradepkg --installnew. • Aplikasi ini memudahkan user untuk melakukan maintain terhadap package-package. 177 Jurnal Informatika, Vol.7, No.2, Desember 2011: 177 - 190 • • Aplikasi ini dibangun menggunakan framework QTJambi dengan QT minimal versi 4.4.0 dan Java SDK versi 1.6.0. Untuk menjalankan aplikasi ini, user harus meng-install JRE minimal versi 1.6.0. Aplikasi ini hanya dapat berjalan pada Slackware GNU/Linux minimal versi 12.0 dengan sistem 32 bit. Berikut ini adalah fungsi utama dari aplikasi ini : • Install package Proses untuk instalasi package. Aplikasi dapat meng-install satu atau beberapa package sekaligus. • Remove package Proses untuk menghapus package. Aplikasi dapat menghapus satu atau beberapa package sekaligus. • Upgrade package Proses untuk melakukan upgrade package. Proses ini hanya membaca versi dari package. • Snapshot List package yang telah ter-install pada sistem di dump berupa file text dengan nama file installed-packages(date-time).txt. • Searching Fungsi ini bisa mencari pattern dari archive package. • Filtering Fungsi ini digunakan untuk memudahkan user mencari package dari daftar package yang telah ter-install pada sistem. • View Content Aplikasi dapat menampilkan struktur package. • View Information Aplikasi ini dapat menampilkan deskripsi dari package baik package tersebut sudah ter-install maupun belum ter-install. 3. Desain Aplikasi Desain aplikasi ini akan direpresentasikan menggunakan diagram UML dengan UML versi 2.0. Tipe-tipe diagram UML yang digunakan adalah use case berfungsi untuk mendeskripsikan konsep eksekusi dari aplikasi, activity diagram digunakan untuk merepresentasikan workflow dari tiap activity dan action dari use case, dan diagram kelas untuk menggambarkan struktur proses secara lebih detail. • Konsep eksekusi 178 Aplikasi Slackware Package Manager Menggunakan QT Java Binding (Tjatur Kandaga, Margaretha Irene) User dapat berinteraksi dengan aplikasi menggunakan aksi-aksi berikut ini seperti : install package, remove package, upgrade package, snapshot, search package, filter package, view content, dan view information. Gambar 1: Use Case • Siklus hidup objek Diagram dibawah ini akan digunakan untuk mendeskripsikan siklus hidup objek untuk setiap aksi yang terdapat pada use case. Activity diagram berikut dikelompokkan menjadi dua bagian yaitu console mode dan graphical mode. • Console mode Pada diagram dibawah ini terlihat aktivitas yang terjadi pada console mode. Fungsi-fungsi yang terdapat pada console mode ini adalah sebagai berikut : • install package, perintah pada aplikasi adalah --i. • remove package, perintah pada aplikasi adalah --r. • upgrade package, perintah pada aplikasi adalah --u. • reinstall, perintah pada aplikasi adalah --e. • install new, perintah pada aplikasi adalah --n. • snapshot, perintah pada aplikasi adalah --s. 179 Jurnal Informatika, Vol.7, No.2, Desember 2011: 177 - 190 • view information, perintah pada aplikasi adalah --v. Gambar 2: Activity pada console mode • Graphical mode Berikut ini adalah activity diagram untuk GUI mode. Fitur-fiturnya sama dengan pada console mode tetapi pada GUI mode ini terdapat fitur searching yang digunakan untuk mencari package Slackware GNU Linux yang valid. Untuk searching ini menggunakan algoritma Boyer Moore Horspool Raita. 180 Aplikasi Slackware Package Manager Menggunakan QT Java Binding (Tjatur Kandaga, Margaretha Irene) Gambar 3: Activity pada graphical mode • Implementasi kelas dan package Aplikasi ini akan diimplementasikan dalam bentuk packages untuk mempermudah development dan maintain aplikasi, juga agar aplikasi ini bersifat modular. Packages yang diimplementasikan adalah sebagai berikut : • jpkg.app Package ini berisi kelas-kelas yang akan digunakan ketika launch aplikasi. Kelas ini pula yang akan menentukan apakah aplikasi akan dijalankan pada console mode dengan parameter-parameter console atau GUI mode. Kelas-kelas dalam package ini adalah : Application, Argument, JpkgApp, User. • jpkg.core Package ini berisi kelas-kelas dasar yang akan digunakan untuk membangun aplikasi salah satunya adalah commands internal Slackware Linux yang akan di wrap menjadi kode Java. Kelas-kelas dalam package ini adalah : CmdFactory, CmdUtil, Command, SlackCmd. • jpkg.core.pkg Package ini berisi kelas-kelas yang akan mendefinisikan atribut-atribut dari sebuah package Slackware Linux. Termasuk dalam package ini adalah arsitektur yang digunakan ketika membangun sebuah package Slackware 181 Jurnal Informatika, Vol.7, No.2, Desember 2011: 177 - 190 Linux seperti fw, arm, i386, i486, i686, dan x86_64. Arsitektur disini adalah arsitektur prosesor yang digunakan oleh para developer package Slackware Linux. Kelas-kelas yang terdapat pada package ini adalah : CommonArch, InstalledPkg, InstalledPkgList, Package, Status, User. • jpkg.res This package contains the core implementation of web crawler which will retrieve files from a web site. Classes inside this package: Downloader, RobotsProtocol, Spider. • jpkg.ui Package ini berisi user interface dari aplikasi JpkgTool ini. • Relasi antar kelas dan objek Kelas diagram dibawah ini merepresentasikan kelas-kelas yang dipakai pada aplikasi JpkgTool ini. 182 Aplikasi Slackware Package Manager Menggunakan QT Java Binding (Tjatur Kandaga, Margaretha Irene) Gambar 4: Class Diagram 1 183 Jurnal Informatika, Vol.7, No.2, Desember 2011: 177 - 190 Gambar 5: Class Diagram 2 Setelah diimplementasikan aplikasi Slackware Package Manager ini, yang memiliki antarmuka console dan yang memiliki antarmuka grafis telah dapat berjalan dengan baik. Berikut ini beberapa contoh tampilan program. 184 Aplikasi Slackware Package Manager Menggunakan QT Java Binding (Tjatur Kandaga, Margaretha Irene) Gambar 6: Help pada mode console Gambar 7: Install sebuah package (arj) 185 Jurnal Informatika, Vol.7, No.2, Desember 2011: 177 - 190 Gambar 8: Remove sebuah package (arj) Gambar 9: Upgrade package gagal karena package belum terinstall 186 Aplikasi Slackware Package Manager Menggunakan QT Java Binding (Tjatur Kandaga, Margaretha Irene) Gambar 10: Upgrade package berhasil Gambar 11: Contoh isi file hasil snapshot 187 Jurnal Informatika, Vol.7, No.2, Desember 2011: 177 - 190 Gambar 12: File searching dengan exact match Gambar 13: Remove package pada mode grafis 188 Aplikasi Slackware Package Manager Menggunakan QT Java Binding (Tjatur Kandaga, Margaretha Irene) Gambar 14: Browse isi sebuah package tanpa didekompresi 4. Kesimpulan Aplikasi Slackware Package Manager ini mempermudah user untuk melakukan tindakan-tindakan pada package secara cepat termasuk untuk mencari package Slackware valid. Aplikasi ini juga memudahkan user untuk melakukan searching package secara cepat. 5. Referensi [Bar08] Barak, Doron ; Easier execution of external Processes in Java ; http://www.codeproject.com/KB/java/ProcessHelper.aspx? , 2008 [Wik] Boyer Moore Horspool Algorithm : http://en.wikipedia.org/wiki/Boyer_Moore_Horspool_ algorithm ; Wikipedia [Cho03] Chonoles, Michael Jesse ; UML 2 for Dummies ; Hungry Minds, 2003. [Dac00] Daconta, Michael. C; http://www.javaworld.com/javaworld/jw-12-2000/jw1229-traps.html ; Javaworld , 2000 189 Jurnal Informatika, Vol.7, No.2, Desember 2011: 177 - 190 [Lin07] Linglom; How To Run Command Line Or Execute External Application From Java; http://www.linglom.com/2007/06/06/how-to-run-command-line-orexecute-external-application-from-java/, 2007 [Tro] QTJambi References; http://doc.trolltech.com/qtjambi4.4/html/com/trolltech/qt/qtjambi-index.html; Trolltech. [xli07] xlinux; Java: Runtime.exec() as root; http://ubuntuforums.org/showthread.php?t=616638, November 17th 2007 190