Aplikasi Slackware Package Manager Menggunakan QT Java Binding

advertisement
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
Download