11 October 2009 by Wirasto S. Karim
Untuk melakukan perubahan kecil memang telah membutuhkan beberapa bulan lamanya. Berlebihan memang. Tapi tidak apalah. Saya memang harus meluangkan waktu dan tenaga termasuk akses ke internet untuk bisa mengupdate project super sederhana saya ini. Perubahan yang terjadi pada versi 0.2 ini bisa dibaca lebih detail di sini http://v2mp3.sourceforge.net.
Enjoy!!!
Posted in General, Programming | Leave a Comment »
10 October 2009 by Wirasto S. Karim
Silahkan gunakan editor atau IDE favorit Anda untuk mengetik source code ini.
1. Buat directory kerja.
$ mkdir qnmap
$ cd qnamp
2. Tulis kode program.
$ vim jendela.h
[Download]
$ vim jendela.cpp
[Download]
$ vim main.cpp
[Download]
3. Compile dan jalankan
$ qmake -project
$ qmake
$ make
$ ./qnmap
Silahkan kembangkan program ini untuk meningkatkan kemampuannya. Atau silahkan tulis kembali dengan bahasa dan library favorit Anda.
Selamat mencoba…
Posted in Programming | Leave a Comment »
10 October 2009 by Wirasto S. Karim
Untuk mengolah hasil keluaran dan menampilkannya pada jendela, tentu kita harus tau dulu bagaimana bentuk dari hasil keluaran. Seperti dalam contoh yang telah diberikan (nmap), perhatikan bentuk keluaran yang didapat. Atau cobalah menjalankan perintah nmap secara langsung di terminal.

Dari hasil keluaran ini yang akan kita ambil dan tampilkan di jendela adalah port-port yang terdeteksi, status, dan jenis layanannya. Jadi secara logika yang akan diambil adalah baris-baris yang menampilkan angka pada bagian depannya, selain itu abaikan.
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Setelah kita menentukan spesifikasi baris yang akan diambil, lalu kita tinggal “memotong-motong” baris tersebut dan menampilkannya dijendela. Baik dimasukkan dalam tabel atau dalam widget apa saja, tergantung selera Anda.
Sebagai contoh lengkapnya, saya akan mencoba membuat program sederhana yang akan menampilkan hasil keluaran ini kedalam tabel. Karena saya sedikit tau menggunakan bahasa C++, maka program akan saya bangun dengan menggunakan C++ dibantu dengan library Qt.
Kurang lebih tampilannya akan seperti ini:

Bersambung…
Posted in Programming | Leave a Comment »
10 October 2009 by Wirasto S. Karim
Kadang keberadaan GUI bagi berbagai tools yang dijalankan lewat terminal sangat dibutuhkan. Bukan cuma untuk memudahkan para pendatang baru di dunia *nix, tapi juga para senior yang mulai jenuh dengan menjalankan baris perintah. Yah, hitung-hitung sebagai selingan sehingga akan menjadi lebih semangat lagi bila menggunakan terminal
Setiap front-end GUI yang dibuat untuk berbagai tools yang berjalan dalam modus CLI (seperti gwget untuk wget, v2mp3, …), rata-rata menjalankan baris perintah didalam program. Biasanya dengan fungsi system, commands, popen, QProcess (Qt) atau dengan g_spawn_* (glib) dan masih banyak lagi. Tergantung library yang digunakan oleh masing-masing programmer. Setelah itu nilai yang dikembalikan akan diperiksa apa mengetahui kalau proses berhasil atau tidak. Atau bahkan hasil keluaran dari program akan diambil dan ditampilkan di jendela (GUI) yang dibuat. Tentu setelah melalui proses pengolahan sehingga hanya bagian-bagian tertentu saja yang akan ditampilkan. Lagi-lagi tergantung kebutuhan.
Mudah tidaknya proses mengolah hasil keluaran (output) dari baris perintah yang dijalankan dalam program, tentu akan tergantung dari library dan bahasa pemrogramman yang digunakan. Sudah jelas keluaran yang dihasilkan dan yang akan diproses adalah data text/string. Dan sesuai dengan pengalaman saya, bahasa seperti python dan perl adalah rajanya hal-hal beginian
Tentu ini hanyalah pendapat saya saja, Anda berhak berbeda pendapat.
Ini beberapa contoh sederhana pengambilan hasil keluaran. INGAT!! hanya mengambil hasil keluaran. Proses pengolahan hasil keluaran dan menampilkan “bagian-bagian tertentu” ke dalam jendela, belum diterapkan:
1. Python
import commands as cmd
hasil=cmd.getstatusoutput("nmap localhost")
print "Output : ", hasil[1]
2. C++ (Qt)
QProcess *proses = new QProcess(this);
QStringList arg;
arg<<"localhost";
proses->start("nmap", arg);
proses->waitForFinished();
QByteArray hasil=proses->readAllStandardOutput();
qDebug() << "Output:\n" << hasil;
3. C (glib)
g_spawn_command_line_sync("nmap localhost", &hasil, NULL, &error_code, NULL);
g_printf("Output : %s", hasil);
4. Java
Process proses=Runtime.getRuntime().exec("nmap localhost");
BufferedReader std=new BufferedReader(new InputStreamReader(proses.getInputStream()));
String baris=null;
while((baris = std.readLine()) != null)
{
System.out.println(baris);
}
Saya menggunakan nmap sebagai contoh, dan tentu Anda bisa menggunakan yang lain.
Bersambung…
Posted in Programming | Leave a Comment »
3 October 2009 by Wirasto S. Karim
Setelah berkali-kali mengalami kegagalan upload karena keterbatasan bandwidth yang dimiliki, akhirnya tool sederhana buatanku bisa juga terpublish di www.qt-apps.org. Tool buatanku ini bernama “kunciku”. Kunciku berguna untuk mengubah password dari para pemakai aplikasi yang proses authentikasinya diarahkan ke openldap.

Program yang saya tulis dengan Python ini menggunakan PyQt4 sebagai interface grafisnya dan juga menggunakan python-ldap untuk bisa berbicara dengan server ldap.
Posted in General, Programming | Leave a Comment »