UTAMA

Pengembangan Aplikasi di Linux

Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial

Noprianto

Linux adalah surga bagi para programmer. Tersedia banyak bahasa pemrograman, pustaka dan tool-tool berkualitas yang siap digunakan.

alam penggunaan komputer, sistem operasi saja tidak cukup untuk membantu memenuhi kebutuhan kita. Berbagai aplikasi umum diperlukan. Sebagai contoh, kita membutuhkan paket office untuk membantu pekerjaan kantoran seperti mengetik, membuat laporan, mengisi data, membuat presentasi dan lain sebagainya. Kita membutuhkan web browser agar kita dapat berselancar di internet. Berbagai paket manajemen email juga dibutuhkan agar kita bisa mengirim dan menerima email. Aplikasi multimedia dibutuhkan agar kita bisa menikmati multimedia dengan bantuan komputer. Banyak sekali aplikasi yang tersedia dan dapat digunakan. Beberapa diantaranya benar-benar gratis, beberapa diantaranya membuat kita harus merogoh kocek. Terkadang, aplikasi-aplikasi umum belumlah cukup. Sebuah pabrik misalnya. Pabrik tersebut tidak hanya membutuhkan aplikasi office atau web browser semata. Mereka membutuhkan aplikasi khusus yang mengerti kebutuhan mereka dan dapat membantu mereka agar dapat lebih produktif. Kita mengenal ERP yang membantu perusahaan dari ujung sampai ujung lainnya. Dengan menggunakan ERP

D

tersebut, sebuah pabrik dapat bekerja lebih efektif dan efisien. Walaupun, terkadang harga sebuah ERP bisa membuat kita pusing. Terdapat banyak aplikasi umum di Linux. Namun, software-software dengan kualitas lebih baik selalu dibutuhkan. Oleh karena itu, mungkin sekali terdapat puluhan software untuk fungsi yang sama. Sementara, aplikasi khusus tidak pernah menjadi terlalu banyak. Banyak perusahaan yang menginginkan solusi teknologi informasi yang lebih personal dan tidak hanya mengandalkan software-software umum. Umumnya, hal ini disebabkan karena kebutuhan. Apabila Anda tertarik untuk mengembangkan aplikasi di Linux, baik aplikasi umum ataupun aplikasi khusus, berbagai hal perlu dipertimbangkan agar dapat mengembangkan aplikasi secara lebih cepat, lebih baik, dan pada akhirnya, dapat membantu memenuhi kebutuhan. Ulasan utama kali ini mencoba untuk mengangkat hal-hal seputar pembuatan aplikasi di Linux. Pembahasan difokuskan pada beberapa hal penting yang menjadi kunci pembuatan aplikasi. Pertama-tama, kita akan melihat soal pemilihan bahasa

pemrograman. Di dunia free software, tersedia begitu banyak bahasa pemrograman. Setelah itu, kita juga membahas detil tentang pembangunan user interface. Pembahasan meliputi CLI, TUI, GUI dan aplikasi web. Pembahasan mengenai database juga tidak terlupakan. Berbagai database termasuk RDBMS dan OODB juga dibahas. Tak lupa, database embedded dimasukkan sebagai salah satu topik spesial dalam penggunaan database. Hal-hal seperti lisensi juga merupakan masalah penting. Sama seperti halnya bagaimana membuat aplikasi yang dapat memiliki pasar yang luas. Penggunaan teknologi standar, i18n, dan kemungkinan cross-platform adalah hal-hal yang penting agar aplikasi kita dapat digunakan oleh berbagai pihak. Untuk pembangunan aplikasi yang lebih cepat, ada baiknya kita menggunakan berbagai tool yang memang telah tersedia. Sebagai contoh, debugger, document generator, IDE, diagram modeller dan version control. Pada akhirnya, tak lupa isu distribusi juga akan kita bahas. Bagaimana cara kita men-deliver aplikasi kita adalah hal yang tak kalah penting. Selamat membaca!

34

INFOLINUX APRIL 2004

www.infolinux.web.id

Python mungkin agak susah untuk melakukan hal yang sama. Tidak ada bahasa yang paling baik diantara semua bahasa pemrogaman. Java adalah bahasa yang sangat bagus.id INFOLINUX APRIL 2004 35 . hal tersebut bukanlah masalah. dan pilih satu. Pengguna Python mungkin akan cukup cocok dengan TCL.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux Pemilihan Bahasa Pemrograman U ntuk melakukan pemrograman. Dengan kata lain. dynamic loading pustaka sistem didukung oleh berbagai bahasa pemrogaman. pustaka QT juga bisa diakses oleh Python misalnya. Di dunia free software. Kalaupun datang dengan GUI toolkit sendiri. banyak pustaka yang didedikasikan khusus untuk itu. Memilih Delphi berarti akan menggunakan gaya dan segala hal yang berhubungan dengan Delphi. Anda bisa menggunakan Perl. Sediakan waktu lebih untuk belajar. Begitu juga dengan penggunaan visual Basic.infolinux. Semuanya bagus. Pascal yang diimplementasikan oleh Free Pascal juga sama. Sebagai contoh. Apabila memang ingin membangun aplikasi berbasis GUI. Tak jarang. Pengguna Java atau Python misalnya. Agak sedikit berbeda di Linux dan free software. walaupun dalam distribusi resminya Python tidak menyertakan dukungan untuk suatu database misalnya. sebaiknya Anda memiliki konsep Object Oriented Programming yang kuat. mudah dipelajari dan kode program yang bersih. Beberapa contoh bahasa pemrograman yang populer diantaranya C/C++. mudah sekali untuk melakukan konektifitas database. TCL. Perl sangatlah fleksibel. pemilihan bahasa pemrogaman adalah hal yang penting. tipe data yang kaya. Oleh karena itu. banyak implementasi dari pihak lain yang mengembangkannya untuk banyak bahasa pemrogaman. Terutama di pemrogaman berbasis GUI. Pelajari dan selesaikan kebutuhan Anda. Jarang sekali terdapat implementasi suatu bahasa pemrogaman yang datang satu paket dengan GUI toolkit sendiri. dan lain sebagainya. Perl juga identik dengan administrator sistem. dan umumnya. Java apalagi. Contoh lain adalah Tk. Lihatlah area kebutuhan Anda. Namun. Sementara. Cukup gunakan saja header-header yang diperlukan untuk mencapai hasil yang diinginkan. Memilih sesuai kebutuhan Pemilihan bahasa pemrogaman di Linux lebih disesuaikan kepada kebutuhan. pemilihan bahasa pemrogaman bukanlah masalah penting. PHP juga sama. TCL dan Pascal terkenal karena mudahnya. Hanya. pemilihan bahasa pemrogaman menjadi masalah yang cukup besar. yang satu lebih bagus di satu sisi. Pengguna Delphi akan cocok dengan Pascal. Python. Perl mungkin juga agak susah untuk melakukan hal yang sama. yakinkan mana yang paling cocok dengan gaya Anda. pustaka tersebut dapat digunakan oleh Python misalnya. Dengan demikian. Bagi Anda. juga cocok digunakan untuk aplikasi skala besar ataupun kecil. untuk pemrogaman berbasis GUI. karena komponen pembangun GUI merupakan bagian integral dari bahasa tersebut. Sangat susah untuk menggunakan komponen native Visual Basic di Delphi. Sebagai contoh. di PHP. binding untuk berbagai bahasa juga telah tersedia. kita mendengar seteru antara pemakaian Delphi atau Visual Basic. Tapi. Pustaka-pustaka lain yang tidak datang bersama suatu bahasa pemrogaman umumnya diimplementasikan oleh pihak ketiga dan dapat digunakan secara bebas. Bukan masalah besar Di dunia Windows. Kita melihat bahwa implementasi C/ C++ oleh GCC sama sekali tidak datang bersama pustaka untuk membangun GUI. Sehingga. Alasan lain seperti ketersediaan pustaka yang banyak juga bukan alasan yang terlalu penting.web. umumnya. toolkit tersebut juga bisa diakses oleh bahasa pemrogaman lain. C++ yang diimplementasikan oleh QT adalah sebuah pustaka sekaligus bahasa lengkap. Python juga cocok untuk digunakan pada aplikasi skala besar. Asalkan benar-benar didalami. Dan umumnya. Keunggulan memilih bahasa ini sangatlah banyak. jika fleksibilitas. Atau sebaliknya. Anda tidak perlu berpusing-pusing untuk memikirkan dukungan pustaka tertentu. Bacabaca referensi. maka C/ C++ adalah pilihan yang baik. kita akan memiliki bahasa pemrograman terlebih dahulu. mungkin akan kebingungan apabila tidak terdapatnya binding untuk suatu pustaka tertentu. kemudahan serta tersedia banyak cara untuk melakukan sesuatu. Pascal. kedekatan dengan sistem dan rela untuk sedikit bersusah payah. Hampir setiap database besar dan terkenal didukung oleh PHP. Sementara. Berbagai pustaka sistem dapat Anda gunakan. Namun. Apabila Anda membutuhkan kecepatan tinggi. di dunia Windows. sementara yang lain lebih bagus di sisi lain. termasuk untuk membangun aplikasi berbasis GUI. Untuk mencari yang paling baik. kita bisa mendapatkannya dari pihak ketiga. Selain itu. PHP. apabila hanya masalah GUI. sampaisampai tidak ada pustaka dari pihak ketiga pun. kita masih bisa melakukan dynamic loading suatu pustaka sistem untuk mendapatkan suatu fungsi. relatif mudah digunakan serta dapat melakukan suatu tugas dengan berbagai cara. Perl. bisa-bisa pemrogaman tidak pernah dilakukan karena pencarian tersebut seperti pencarian yang tak kunjung selesai. Python dapat Anda pilih karena ketersediaan banyak pustaka dan binding. Python menggunakan pustaka Tk. www. PHP mungkin boleh dikatakan sebagai bahasa pemrograman web paling populer (di dunia free software). Anda bisa memilih yang paling sesuai dengan kebutuhan. terdapat banyak sekali bahasa pemrogaman. Java. Java adalah teknologi yang maju dan matang. namun bukan dikembangkan secara khusus untuk Python. walaupun diasosiasikan dengan TCL. Dalam kasus yang parah. Perl juga sama.

kita mengenal beberapa kategori. pengguna berbagai bahasa pemrograman dapat membangun GUI dengan berbagai GUI toolkit. Di dunia DOS atau Windows. Graphical User Interface Ini adalah permasahan yang cukup sering ditemui di dalam dunia Linux. Sebut saja ncurses dan newt. pertimbangkan juga untuk menggunakan berbagai tool-tool untuk mendesain user interface sehingga Anda tidak perlu membuat semuanya sendiri. kita dapat mengetikkan kode HTML sendiri. menggunakan toolkit wxWindows. secara default. Contoh yang paling baik adalah Midnight Commander. Namun. Untuk user interface. Bagi Anda yang melakukan pemrograman dengan shell script sekalipun. cukup bagus dan kalau mau. Untuk QT. pembuatan GUI benar-benar bukan masalah. Yang menggunakan umumnya adalah pihak lain.UTAMA Pengembangan Aplikasi di Linux Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Pembangunan user interface P rogram yang dihasilkan tentu tidak hanya selalu digunakan oleh pembuatnya. Jangan pernah membuat program berbasis command line namun tidak menyertakan help ataupun manual. Tidak perlu membaca parameter yang dimasukkan kemudian melakukan pemisahan dan pemeriksaan secara manual. Jadi. paling tidak. Tentunya. wxWindows (yang akan berubah namanya menjadi wxWidgets). Contoh penggunaan GTK+ yang baik adalah desktop dan aplikasi-aplikasi GNOME. implementasinya cenderung lengkap dan memiliki GUI toolkit sendiri. bahkan terkadang tidak perlu coding sama sekali. Namun. Dengan menggunakan pustaka tersebut. mulai dari command line interface sampai Graphical user interface. Kondisi ini sedikit berbeda di dunia free software. tentunya. WxWindows sendiri adalah pustaka populer untuk aplikasi GUI cross platform yang menawarkan tampilan native. Terkadang. Anda hanya perlu mendefinisikan berbagai opsi yang valid dan aksi yang berhubungan dengannya.infolinux. tersedia banyak pustaka untuk membangun TUI ini. Anda tidak melakukan parsing command line secara manual. terdapat berbagai ekstensi Tk yang menambah kelengkapan widgetnya. kita tetap perlu memperhatikan pengguna program kita. bukan masalah sama sekali. QT. Web application Untuk membuat aplikasi web.org. hal ini lebih disebabkan separasi antara bahasa pemrograman dan GUI toolkit. Hal ini disebabkan karena terdapat program getopt dan getopts yang berguna untuk melakukan parsing argumen dan opsi program. Semua itu artinya. Berbagai utilitas sistem boleh dikatakan datang dengan interface ini. Anda perlu menyediakan manual atau paling tidak fasilitas help yang cukup memadai. QT sendiri juga datang dengan versi enterprise yang mampu melakukan apa yang dilakukan oleh Delphi atau Visual Basic. Keduanya akan membantu Anda untuk membangun TUI dengan mudah. banyak sekali bahasa pemrograman yang mendukung toolkit-toolkit tersebut. Anda masih bisa menikmati fasilitas ini. dapat membaca fasilitas help program. untuk kalangan tertentu. Namun. Tk. Umumnya. maka command line interface adalah pilihan yang paling cocok. Commad Line Interface Banyak sekali program di dunia free software yang dibangun dengan commad line interface. Di dunia Linux.id . Ringan. user interface yang masuk akal perlu kita kembangkan agar program kita dapat digunakan oleh berbagai pihak. Pendekatan RAD seperti Delphi dan Visual Basic yang paling bagus barangkali adalah QT Designer. contoh terbaik adalah KDE dan aplikasi-aplikasinya. TUI lebih disukai.web. apa yang ditampilkan adalah interface yang cukup menarik. Di dunia Windows. satu program memiliki lebih dari satu opsi dan dijalankan dengan cara seperti ini: ls -al ls —all ls –help Apabila aplikasi yang Anda bangun memang tidak membutuhkan kemudahan pemakaian atau keindahan. aplikasi dengan text user interface juga memiliki fasilitas untuk pemberian opsi. Selain itu. Dengan adanya separasi ini. Desain user interface 36 INFOLINUX APRIL 2004 www. Contoh lain barangkali Boa constructor untuk Python. Umumnya. Tidak semuanya harus GUI. Implementasi untuk berbagai bahasa pemrograman juga tersedia. walaupun membuat aplikasi berbasis command line. Sebagai seorang programmer. Anda hanya mengisikan fungsi yang diperlukan saja. Dan. Target pengguna program Anda adalah pengguna yang bisa membaca manual program. apa yang mampu dilakukan oleh Delphi atau Visual Basic jelas masih jauh untuk dicapai. Berbagai GUI toolkit populer yang pantas dipertimbangkan adalah GTK+. Aplikasi yang dibangun dengan Tk juga cukup banyak. dengan Delphi atau Visual Basic misalnya. Khusus untuk Java. Text User Interface Berbeda dengan command line interface yang membiarkan penggunanya menggunakan opsi-opsi program untuk melakukan tugas tertentu. mouse bisa digunakan. command line interface dikembangkan dengan pustaka getopt. Untuk itu. Atau. Berbagai aplikasi yang dapat merancang user interface dengan cukup bagus adalah Mozilla Composer dan OpenOffice. TK juga terkenal sebagai toolkit yang lengkap dan mudah digunakan. kita mengenal berbagai ungkapan bahwa pembuatan aplikasi dengan text user interface sudah tidak zaman lagi karena semuanya akan berbasiskan GUI. Binding untuk pustaka getopt tersedia untuk hampir semua bahasa pemrograman di dunia free software. maka text user interface akan menampilkan berbagai window dan menu menarik (dalam modus text) untuk penggunanya. Umumnya. Pemeriksaan dan parsing akan dilakukan sendiri.

Cukup aplikasi itu sendiri saja yang diinstall. Bahkan. selama suatu bahasa dapat melakukan dynamic loading. Proses dumping ke file text misalnya. perlu dilakukan. walaupun cukup banyak fungsi yang tidak didukung seperti referential integrity. Penggunaan oleh bahasabahasa lain seharusnya juga bisa dilakukan dengan tidak rumit. relational database management system. yang digunakan oleh Zope. Mereka sangat seru untuk digunakan.web. namun proses deployment tetap saja lebih rumit. Jadi. Tinggal pilih yang mana. Namun. Anda bisa membuat aplikasi dengan database serupa konsep foxpro. SQLite. Anda juga ingin agar aplikasi dapat dipindahkan ke mesin lain dengan mudah. Coba saja membuat aplikasi dengan kedua database server tersebut. Java. sebuah application server berbasiskan Python. Apabila aplikasi ingin dipindahkan. Contoh database embedded yang sangat terkenal adalah SQLite dan BSDDB. Pembuatan memang terasa mudah. Hampir semua bahasa mampu berbicara dengan database ini. TCL mampu melakukannya. Bukannya ingin mengatakan bahwa MySQL dan PostgreSQL tidak seru untuk digunakan. maka MySQL dan PostgreSQL bukanlah masalah. Ketiganya cocok untuk digunakan dan mampu melayani data jumlah besar. walaupun implementasinya telah dilakukan beberapa waktu yang lalu. dan jalankan tanpa masalah dimesin lain. Contoh OODB yang bagus adalah ZODB. clipper dan lain sebagainya. Implementasinya banyak. jika aplikasi Anda benar-benar membutuhkan kemampuan database server tersebut. OODB Yang satu ini baru-baru terkenal.infolinux. Tentunya. Kita tidak dapat begitu saja mengopikan file-file database kita ke mesin lain begitu saja. MySQL menyediakan sebuah pustaka client yang dapat digunakan untuk berbicara dengan MySQL Server. Untuk menggunakan text file. Python. tetapi mampu bekerja dengan database seukuran 2 TB. OODB bukan dibuat untuk menggantikan RDBMS. Untuk bahasa yang tidak mendukung secara langsung. C/C++. Tapi deployment dan backup akan terasa cukup susah. Special: Embedded database engine Masih ingatkah Anda akan Foxpro. penggunaan embedded database sangat dianjurkan. atau repot lebih tepatnya. dukungan untuk kedua database canggih ini telah kita dapatkan. Filenya pun hanya satu file untuk satu database. Sejak awal-awal PHP mulai berkibar. Beberapa diantara mereka memang memiliki tool backup sendiri. walaupun kecil. Perintah SQL pun didukung. Berbagai database siap pakai tersedia di dunia free software. object oriented database saat ini semakin populer. www. bahasa pemrograman telah mendukungnya sehingga tidak diperlukan layer tambahan. Apabila Anda menggunakan PHP. Dengan demikian. Bayangkan dengan MySQL dan PostgreSQL. maka copy saja semua file termasuk databasenya. jelas tidak dianjurkan sama sekali. clipper dan bahasa sejenis yang menawarkan kemudahan dan kesederhanaan? Satu aplikasi bisa memiliki beberapa tabel dimana setiap tabel disimpan di dalam setiap file. Untuk kasus tersebut. adalah database yang cukup umum dan tergolong cukup senior. Kecepatannya sekitar 2 kali lebih cepat dari MySQL dan PostgreSQL untuk berbagai operasi.id INFOLINUX APRIL 2004 37 . PostgreSQL dan Oracle adalah contoh terbaik. standalone. Zope Object Database. MySQL. karena kebanyakan bahasa pemrograman tahu cara untuk berkomunikasi. harusnya tidak akan ada masalah. Untuk mengakses file tersebut. MaxDB. Tidak perlu melakukan koneksi pada server database. Bagaimana jika apa yang Anda butuhkan hanyalah buku alamat atau organizer sederhana? Jelas kemampuan MySQL dan PostgreSQL belum diperlukan. Dan yang penting. SQLite misalnya. RDBMS Jenis yang satu ini. Ya. Perl. Banyak sekali kelebihan RDBMS yang tidak dimiliki atau susah diimplementasikan di OODB.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux Penggunaan Database D atabase selalu diperlukan apabila Anda membangun aplikasi bisnis atau aplikasi yang melibatkan penggunaan dan pengolahan data. pengguna Python dapat dengan mudah menggunakan database yang satu ini. PHP sempat identik dengan MySQL.

Beberapa lisensi Membuat software proprietary Umumnya. dan menyebarkan program yang Anda tulis. bukan pada harga nol. BSD juga cukup ramah seperti halnya LGPL.fsf. Anda perlu mengerti hal di luar pemrograman. Apabila Anda membuat software proprietary. Lisensi yang terkenal sangat mengikat dalam free software adalah GPL. translasi ke Bahasa Indonesia dapat Anda baca di http://vlsm. Lisensi tersebut bisa Anda kembangkan sesuai kebutuhan. Bagus untuk promosi dan dominasi produk memang. Beberapa solusi dapat diterapkan. pembuat software proprietary memiliki aturan sendiri dalam penggunaan dan pendistribusian. Memilih lisensi Kita mengenal bermacam-macam lisensi. Sebagai contoh.web. Dan semuanya selesai. Sementara.id . Anda tidak perlu terikat erat seperti halnya GPL. Apabila hanya dapat digunakan saja. tentunya harus juga untuk diperhatikan. Dengan BSD. jangan sampai Anda pusing-pusing membayar suatu pihak untuk mengurus masalah lisensi super ketat sementara software Anda tersebar di mana-mana. dan program Anda dapat didistribusikan oleh berbagai pihak . Jangan lupa untuk mengatur masalah redistribusi di mana seorang penerima software mendistribusikan kembali software Anda. Di Windows dan program-program proprietary yang berjalan di atasnya. memperbaiki dan mendistribusikan program yang Anda buat. seharusnya lisensi Anda tidak akan terlalu rumit. Anda dapat menyesuaikan dengan berbagai lisensi yang tersedia. bagaimana kalau Anda adalah seorang programmer yang bekerja pada suatu proyek yang Anda kerjakan sendiri dan ingin melepas proyek tersebut sebagai software yang source codenya tertutup namun binarynya dapat digunakan secara meluas? Dalam kasus ini. Arti kebebasan itu sendiri memiliki arti yang luas. Terkadang. beberapa proyeksi ke depan juga diperlukan agar lisensinya cukup luwes. Cara kedua lebih sederhana. maka umumnya. Untuk membuat lisensi. Bagi programmer free software yang tidak mementingkan lisensi.infolinux. Membuat free software Free software memfokuskan kata free pada kebebasan. Bahwa pengguna software Anda tersebut menjualnya atau hanya mengopikannya kepada rekannya yang lain. Dengan demikian. beberapa program yang berjalan di Linux juga merupakan software proprietary. segala source code dikontrol oleh Anda. mempelajari. Lisensi tidak harus panjang dan rumit serta penuh dengan istilah hukum. Apabila software yang ditulis dapat digunakan oleh berbagai kalangan. Seseorang bisa menggunakan. dan turunkanlah sesuai dengan keadaan Anda. Pastikan saja bahwa segala usaha dekompilasi adalah ilegal. Hal ini sangat berguna terutama ketika Anda membuat pustaka program. Karena masalah lisensi selalu berhubungan dengan hukum. pembuat software menerapkan semacam end user license agreement. pembuat software harus cerdik. atau software dimana penggunaan dan pendistribusian memiliki aturan tertentu. kita dapat menemukan berbagai end user license agreement. BSD. Anda ingin agar aplikasi boleh disebarluaskan beserta source codenya. Ada pula yang menitikberatkan pada nilai per pengguna. Pelajari lisensi program lain. semuanya harus bebas. mengembangkan. atau membuat lisensi sendiri. LGPL lebih sedikit longgar. Cukup lisensikan saja di bawah lisensi GPL versi 2.html. Dan pengguna yang bersangkutan dapat melakukan instalasi pada beberapa mesin. 38 INFOLINUX APRIL 2004 www. LGPL. Translasi ke beberapa bahasa bahkan telah tersedia. dapat dibaca secara online di http://www. source code diberikan hanya untuk dipelajari. Perhatikan juga lisensi dengan target pasarnya. Tentunya. perlu tidak dilisensikan di bawah GPL. Sebagai contoh. Masalah muncul ketika Anda membuat software proprietary.UTAMA Pengembangan Aplikasi di Linux Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Lisensi isensi tentu bukan permasalahan yang penting apabila Anda ingin membuat free software dan tidak ingin repot-repot soal legal. dan Artistic. Mulai dari lisensi proprietary sampai lisensi free software. namun. GPL mengharuskan sebuah software dapat digunakan oleh siapa saja. Pokoknya.html. Anda bisa mempelajari lisensinya. Selain itu.org/etc/gplunofficial. hanya modifikasi dan pendistribusian hasil modifikasi tidak diijinkan. atau lebih baik menggunakan jasa pihak lain yang khusus di bidang ini). untuk berbagai alasan misalnya. Ada lisensi yang benar-benar mengharuskan nilai per mesin. Pada contoh di sini. bisa dimodifikasi oleh siapa saja sesuai keperluan. Dengan penggunaan lisensi GPL. Yang penting adalah terjaminnya semua pihak untuk dapat menggunakan. hal tersebut jelas tidak memenuhi kebutuhan Anda. maka pastikanlah agar lisensi tersebut tidak menjadi senjata makan tuan. Yang pertama adalah membuat lisensi sendiri (hal ini bukan langkah trivial. memberikan lisensi yang lebih longgar akan berakibat lebih baik. L berikut ini dianggap sebagai lisensi free software: GPL. lisensi Anda menjadi kurang penting. Berbagai lisensi di kenal. Anda bisa mempercayakan saja kepada lisensi GPL. beberapa model dapat Anda contek. semua sah-sah saja.org/licenses/ gpl. Memilih lisensi GPL jelas tidak mungkin. Atau. Bagi Anda yang ingin membuat program-program yang benar-benar mengharuskan pengguna untuk membayar. dipelajari oleh siapa saja. Beberapa pustaka yang dikembangkan lebih lanjut. Sekarang. Bermacam-macam lisensi proprietary diterapkan. Lisensi GPL misalnya. seseorang sebaiknya mengerti benar masalah hak kekayaan intelektual. Pemilihan lisensi menjadi penting apabila Anda ingin mengatur atau membatasi beberapa hal seperti penggunaan dan pendistribusian. Namun. maka lisensi dibuat lebih luas dan mengikat setiap kalangan penggunanya.id.

Error dan warning akan diwarnai dengan warna khusus. Di Linux berbeda cukup jauh. Colorgcc. Proses kompilasi bisa berlangsung selama berjam-jam. sebuah produk studio pemrograman umumnya datang dengan segala tool yang dibutuhkan untuk mempermudah pembuatan program. Dengan demikian.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux Tools pendukung pabila Anda adalah seorang programmer. Valgrind dapat memeriksa semua operasi memori. Debugger Proses debugging adalah proses yang terkadang menyebalkan. Tool distcc dapat Anda gunakan untuk itu. version control dan lain sebagainya. Struktur data bisa direpresentasikan dalam grafik dan ditampilkan secara interaktif.web. Memory profiler dengan interface GNOME. Fortran. Insight.infolinux. dokumentasi dan lainnya. Program dapat didebug dalam C. menggenerasi dokumen dengan document generator lain. GUI untuk gdb dan dbx. Icmake. implementasi bahasa pemrograman hanya akan memfokuskan dirinya pada bahasa pemrogaman dan berbagai fitur kompiler pada umumnya.id INFOLINUX APRIL 2004 39 . memeriksa variabel dan menjalankan bagian kode-kode Anda. Dapat Anda gunakan untuk memeriksa memory leak. Di dunia pemrograman Windows. editor. distcc. akan lebih baik memfokuskan diri kepada fungsi utama program. apabila Anda adalah programmer tunggal yang harus mengurus logika program. write. Tapi. Ada dan assembly. hebatnya. Versi lain Make dengan gaya C. A berguna untuk mengkonfigurasi source code dan menggenerasi Makefile. selain datang dengan implementasi bahasa pemrogaman. Anda dapat meminta komputer lain untuk membantu Anda. Data display debugger. Sementara. Berikut ini. masing-masing Anjuta. Sebagai contoh read. Debugger GNU. ddd. Memory management debugger. IDE. kita akan membahas beberapa tool yang bisa Anda gunakan untuk mempercepat pembuatan dan meningkatkan kualitas program yang Anda buat. new. GUI untuk gdb. output dari proses kompilasi akan lebih mudah terbaca. Bahkan. namun dibantu oleh beberapa komputer di jaringan. Valgrind. Pascal. Program ini berguna untuk mewarnai ouput dari gcc. GNU Make. Terutama. kompilasi tidak lagi dilakukan oleh komputer Anda sendiri. Bahkan. Kelengkapan produk akan menentukan seberapa banyak yang akan membeli produk tersebut. Sebagai contoh. bisa saja menjadi harian untuk proyek yang sangat besar. dan mendesain graphical user interface dengan program lain. ElectricFence. dan delete. Kdbg. banyak user yang menggunakan suatu bahasa pemrogaman.in bergaya GNU. malloc. Modula-2. dan menggunakan CVS sebagai version control. Menyediakan user interface intuitif untuk pengaturan breakpoint. pengguna mengetikkan kode programnya dengan editor lain. datang pula debugger. Valgrind dapat menemukan penggunaan memori tak Building Berbagai tools untuk pembangunan executable dapat Anda gunakan untuk memudahkan proses ini. Gdb. Memprof. membuat diagram dengan umbrello. Tool standar yang harus Anda miliki untuk debugging. Selebihnya. Dengan demikian. Tool-tool standar yang diperlukan. Sangat matang dan dekat dengan gdb. document generator. www. Umumnya. Sebagai contoh adalah Python dan Boa-constructor. proses debugging akan terasa lebih mudah dan seru. Make. diagram modeller dan lain sebagainya. Tool standar yang perlu Anda miliki untuk bekerja dengan Makefile. Sebuah komputer tentunya tidak cukup. tentu saja Anda bisa membuat sendiri debugger. gunakan berbagai tool yang tersedia luas untuk mendukung program kita. Apabila terhubung ke jaringan dengan beberapa komputer. mendebugnya dengan GDB. autoconf dan automake. Tool pemeriksa memory yang telah sangat terkenal. Dengan berbagai tool berikut. GUI untuk gdb. free. Malloc debugger untuk program C Anda. C++.

banyak diantara mereka yang mengerjakan aplikasi web kompleks dengan Vim. dalam penulisan program. Doxygen dapat menggenerasi class browser online (HTML) dan offline (LaTex) dari source yang lengkap dengan dokumentasi. Namun. C++. editor yang lengkap dan khusus digunakan sebagai alat bantu pemrograman akan membuat proses penulisan source code menjadi lebih menyenangkan. Eric. yang ditulis dengan bantuan pustaka pyQT. Vim. Walaupun program yang ditulis tidak terlalu besar.infolinux. Program ini dapat menggenerasi dokumentasi online (HTML) dan offline (LaTex) dari header C++. sebagai editor. Help2man. kekhususannya untuk programmer Python menjadikan editor ini dapat mengerti kebutuhan dan gaya pemrograman python. Java dan IDL. Apalagi jika Anda menggunakan bahasa C. Vim mungkin hanyalah editor. IDE yang dimotori oleh programmer India ini memang luar biasa. Doxygen adalah sistem dokumentasi untuk C. overflow. Berikut ini adalah contohcontohnya: doxygen.Sebagai IDE untuk Python. Bahasa lain yang didukung juga cukup banyak. sebaliknya. Berikut ini adalah beberapa contoh editor/IDE: Anjuta. fleksibilitas Vim tak tergantikan. Document generator Dokumentasi adalah komponen penting dalam pemaketan suatu program. Datang juga dengan cachegrind. IDE. C++ atau GTK+/GNOME. Eclipse adalah IDE yang dapat dikembangkan dengan bantuan plugin. Hampir semua hal dapat diatur sesuai keinginan. 40 INFOLINUX APRIL 2004 www.UTAMA Pengembangan Aplikasi di Linux Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Help2man. Dokumentasi akan diekstrak langsung dari source code.web. Program ini dapat mengubah isi dari opsi –help menjadi manual. dokumentasi tetaplah hal penting. profiler yang dibangun di atas engine valgrind. Selain editor. Namun. apalagi yang dibuat khusus untuk bahasa yang Anda gunakan benar-benar akan membuat proses penulisan source code menjadi lebih cepat. akses ke memori yang telah dibebaskan. Eclipse. Eric sebenarnya tidak terlalu menyenangkan. dan berbagai new/ malloc/free/delete ilegal. Tak tanggungtanggung. Kdoc. Eric adalah IDE untuk bahasa Python. Anjuta sangat memperhatikan preferensi programmer.id . Programmer Java sangat cocok bekerja dengan IDE ini. Bisa Anda bayangkan IDE/Editor Editor adalah tool yang selalu dibutuhkan Valgrind. jika aplikasi yang Anda tulis ternyata mengekspor API. memory leak. Beberapa fitur yang sangat berguna adalah code folding dan auto complete. akan lebih baik apabila tersedia pula IDE. Banyak programmer yang mengandalkan Vim untuk menulis source code mereka. Editor yang jelek akan mempersulit pembuatan program. terpakai. Apalagi. Untuk membuat dokumentasi. operasi stack ilegal. Dokumentasi menjadi hal yang wajib di sini. Anjuta juga termasuk IDE yang sangat configurable. berbagai tool bisa kita gunakan.

Emacs. Bentuk baru dapat dikembangkan dengan bantuan XML dan subset SVG untuk menggambar. maka program ini pantas Anda coba. Apa yang akan terjadi kalau file yang dibuat oleh A dapat dimodifikasi oleh B tanpa menyisakan aslinya? Untuk mencegah berbagai hal yang tak diinginkan dan menjadikan kerja tim lebih baik.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux betapa banyaknya hal yang harus dilakukan. Berikut ini adalah contohnya: CVS. Umbrello termasuk salah satu aplikasi UML terbaik untuk Linux. hanya subversion datang dengan berbagai kelebihan. Di era yang canggih ini. Kdevelop. pengubahan sesuatu bukan menjadi masalah yang sederhana. Namun. Hasil dari analyst tersebut dapat digunakan sebagai panduan oleh programmer. tipe diagram. entity relationship. syntax highlighting dan lain-lain. Diagram dapat dieskpor ke berbagai format grafik. Kdevelop adalah IDE untuk Anda yang bekerja dengan lingkungan pemrograman X11. diagram modeller belum secanggih aplikasi Visio ataupun aplikasi-aplikasi dari Rational Software.web. QT dan KDE. www. dan dapat dicetak. flowchart. Umbrello. Mulai dari program utama. Saat ini dia dapat digunakan untuk menggambar berbagai Boa-constructor. berbagai diagram modeller canggih kita kenal. Di Linux. Di Windows. dokumentasi sampai pernak-pernik lainnya.infolinux. Setiap perubahan juga dikerjakan oleh sang programmer tersebut. dan paper. Subversion melakukan apa yang dilakukan oleh CVS. Memprof. Version control Seorang programmer yang bekerja sendirian mungkin tidak terlalu menganggap perlu version control. Mungkin user interfacenya konvensional. Diagram modeller Seorang system analyst akan membutuhkan diagram modeller untuk mempermudah pemodelan sistem. dokumentasi. modul. grafik. UML. Fasilitas yang datang bersamanya termasuk documentation browser. Bagi Anda yang sering bekerja dengan UML. sudah bukan zamannya lagi untuk menggunakan kertas. Emacs ataupun Xemacs adalah editor komplit yang luar biasa. SADT. Subversion. network diagram. Butuh kerja tim untuk mengerjakan proyek tersebut. emacs sejak dahulu telah dikenal sebagai editor untuk developer dan administrator sistem. dan sirkuit sederhana. Dia sebenarnya dirancang untuk secanggih Visio. Yang satu ini merupakan tool standar dan termasuk di dalam distribusi-distribusi Linux. Namun. maka revisid an versioning adalah hal yang wajib. Umbrello UML Modeller adalah alat bantu penggambaran UML untuk KDE. Saat ini. Terutama untuk menangani program. kita memiliki beberapa diagram modeller yang cukup layak untuk diandalkan: dia. Sebagai contoh. Namun. tidak semua proyek dapat dikerjakan sendiri.id INFOLINUX APRIL 2004 41 . Semuanya dikerjakan oleh programmer tersebut. Dan ketika bekerja dalam tim.

Istilah use the battery sangat umum ditemukan di dunia Python. Tentunya. Bagaimana tidak? Pustaka dan contoh tersebar di mana-mana. developer bahasa pemrograman tentu akan selalu memikirkan pustaka yang lebih baik lagi. sebenarnya. Secara kasar dapat diartikan agar kita menggunakan apa yang telah tersedia daripada membuatnya sendiri. Tidak perlu membuang waktu untuk mendapatkan bahasa terbaik dari sisi kelengkapan pustaka. selama apa yang tersedia tersebut masih memenuhi kebutuhan kita. Perl datang berbagai pustaka siap pakai yang siap memanjakan penggunanya. maka waktu yang diperlukan sangatlah banyak. Java. maka kita membalasnya dengan mengirimkan ‘yyy’. Sebagai contoh. Anda dapat memfokuskan diri untuk menghasilkan program dengan tingkat usability tinggi.UTAMA Pengembangan Aplikasi di Linux Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Use the Battery! B oleh dikatakan. Developer Perl juga bertindak serupa. Menghemat cost. Membuat suatu pustaka atau fungsi bukanlah perkara mudah. Apabila Anda ingin membuat semuanya sendiri dari nol. PHP berusaha untuk memenuhi kebutuhan penggunanya. Namun. XML-RPC juga sangat bagus untuk digunakan.web. Module-module python. maka pertimbangkan untuk menggunakan Corba. Menghemat cost! Kenapa disarankan demikian? Jawabannya singkat. kita bisa saja membuka soket dan melakukan semuanya sendiri. Dalam skala kecil. Module-module perl. Waktu. Developer sistem yang bergerak di level bawah mungkin akan peduli untuk mengembangkan pustakapustaka baru. cari bajakannya. Atau. Lihat saja modul-modul yang datang bersama Python. PHP dan Perl adalah contoh bahasa-bahasa pemrograman yang menawarkan berbagai pustaka siap pakai. Beda jauh dengan di Windows. Kalau begitu. apabila client mengirim ‘xxx’.id . Anda ingin mengembangkan aplikasi MP3/OGG player. belum tentu apa yang kita buat sendiri bisa lebih baik daripada yang telah tersedia. modifikasi kalau perlu. Atau. hal ini boleh-boleh saja. Lebih bijak jika Anda mengembangkan player tersebut menggunakan pustaka yang telah disediakan. Tinggal comot. Dan. Dengan demikian. uang. Baterai dan bahasa pemrograman Python. Himpunan perintah yang valid mungkin hanya 5 atau 10. sangat disarankan agar Anda menggunakan yang telah tersedia tersebut daripada membuatnya sendiri. Hal ini tentunya tidak berlaku umum untuk semua developer. Apabila Anda bekerja secara distributed. Sebagai contoh. Berbagai fungsi telah disediakan. Linux dan free software adalah surga bagi devel oper. Anda bahkan bisa menggunakan protokol HTTP atau FTP apabila kebutuhan Anda bisa dipenuhi dengan menggunakan protokol-protokol tersebut.infolinux. akan lebih bijak apabila kita mempergunakan protokol atau teknologi jaringan yang sudah matang daripada mengembangkan aturan sendiri. Berlaku juga untuk protokol Ketika membuat aplikasi client server. Pustaka yang umum digunakan atau yang datang bersama bahasa pemrogaman mungkin telah dikembangkan oleh berbagai pihak secara hati-hati. Untuk mengerti format OGG yang terbuka saja butuh waktu yang sangat lama. atau beli. tenaga dan sebagainya. Sementara. Hampir semua bahasa mencoba untuk datang selengkap mungkin. Dalam konteks bahasa pemrogaman. Kembangkan sendiri. tidak ada satu pun bahasa yang datang dengan semua pustaka penting. Berbagai pihak ketiga bahkan menawarkan tambahan modul untuk Python. beberapa bahasa pemrograman bahkan datang dengan banyak pustaka atau modul. dan kembangkan aplikasi dengan bantuan pustaka tersebut. Java datang dengan berbagai pustaka dan GUI toolkit sendiri. 42 INFOLINUX APRIL 2004 www. Namun. Mengulangi apa yang telah dikerjakan tersebut bukanlah hal yang bijak. Banyak sekali pustaka yang disertakan bersamanya. Developer di Windows umumnya perlu sedikit bekerja keras.

Tapi. tapi ada aplikasi sejenis yang tidak berjalan di Linux. Mengambil contoh StarOffice atau OpenOffice. yang jelas. Distribusi aplikasi Distribusi adalah hal yang penting dan jangan dilupakan oleh software developer.org. seberapa yakin Anda akan perusahaan pembuat aplikasi office tersebut? Bagaimana kalau format filenya berubah terus (Anda harus membayar terus) atau perusahaannya bangkrut. Tentunya. gunakanlah bahasa yang www. Perbanyak bahasa yang didukung. Banyak konsumen menyukai dokumentasi yang lengkap. XML kini digunakan diantaranya sebagai standar format file.web. Suatu hari. gunakanlah teknologi standar. gunakan teknologi standar dan perlengkap dokumentasi! mendukung multi platform. Bagi perusahaan atau konsumen. Anda dapat memaketkannya dalam format paket-paket distribusi Linux seperti RPM. Namun. Anda tidak perlu melakukannya sendiri. Perusahaan yang menggunakan software yang mereka buat harus menggunakan Windows. dan mintalah bantuan komunitas untuk membantu. Terakhir. Namun. Hal ini memang sepertinya tidak masuk akal. tapi tetap saja mungkin. Apabila target pengguna adalah perusahaan dan harga produk telah termasuk support. Anda adalah perusahaan pembuat aplikasi office. jangan batasi pengguna Anda. Anda juga bisa mengembangkan sistem installer sendiri. Kian hari. walaupun proyek yang dikembangkan tidaklah berskala besar.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux Pasar yang lebih besar S iapa target pengguna aplikasi Anda? Apabila Anda membuat program. Apabila aplikasi yang Anda buat hanya datang dengan dukungan bahasa Inggris. Anda membuat pula format filenya sendiri. waktu yang dibutuhkan untuk pengembangan akan lebih banyak. bicara hal yang lebih ringan.infolinux. Mereka membuat aplikasi bisnis tanpa berpikir panjang. efeknya akan terasa sangat besar. Memang makin banyak perusahaan yang menggunakan Linux. Apabila target pengguna Anda adalah pengguna rumah atau pengguna mandiri. Emulasi juga bukan solusi. atau suatu hari Microsoft Office sudah tidak dikembangkan dan didukung lagi. dan kemudian menutup format file tersebut. Tentunya. Anda telah menyimpan data selama tahunan dengan salah satu versi Officenya. maka membuat aplikasi yang hanya berjalan di Linux adalah tindakan konyol luar biasa. Percayalah. Ingin pindah. Sediakan saja frameworknya. Karena IT hanyalah sistem pendukung. OpenOffice. Bagi developer. client Anda kian bertambah. Internationalization dan localization Pembuatan program yang mendukung berbagai bahasa bukanlah pekerjaan yang harus dilakukan secara manual. seberapa yakin Anda dapat menjamin untuk tetap berjalan pada usaha yang sama? Sebagai konsumen. Hal ini barangkali tidak dimengerti oleh beberapa programmer Visual Basic yang mengganggap sistem operasi hanya ada satu di dunia ini. Demikianlah pembahasan mengenai pengembangan aplikasi di Linux. maka pastikan produk Anda dapat diinstall dengan mudah. Bagi perusahaan atau konsumen. tulisan ini tidak mungkin mencakup semua bahasa atau tool. Dalam membuat aplikasi office tersebut. Pasar akan lebih besar. seberapa mampu Anda menjamin kelangsungan format file atau perusahaan Anda? Atau. Client-client Anda harus melakukan upgrade untuk dapat membaca format file baru tersebut. Mintalah produk dengan teknologi standar agar ketika perusahaannya tidak lagi mendukung. DEB dan lain sebagainya. Aplikasi skala besar tentu tidak hanya terdiri dari satu atau dua file. Anda dengan mudah dapat meminta dukungan kepada pihak lain. Penggunaan teknologi standar Sebagai contoh. Bicara worst case.id INFOLINUX APRIL 2004 43 . maka pasar Anda batasi untuk pengguna yang mengerti bahasa Inggris. Masalah seperti ini perlu senantiasa dicermati baik-baik. apabila Anda adalah seorang software developer untuk aplikasi bisnis. jangan pernah memiliki produk dari perusahaan yang hanya menawarkan dukungan untuk satu platform tertentu. Dan terkadang. Siapa yang akan menjamin datadata Anda? Format file adalah salah satu contoh penggunaan teknologi standar. Sebagai software developer. Dukungan i18n dan l10n adalah hal yang penting. atau pengguna yang mau berusaha untuk mengerti bahasa Inggris. Aplikasi office Anda pun diupgrade. Perusahaan menjadi serba salah ketika ingin berpindah ke Linux. Berbagai aplikasi office populer seperti StarOffice. maka kemudahan instalasi tidak terlalu penting. Porting jelas tidak mungkin. Tidak ada maksud untuk mengunggulkan pihak tertentu atau menjatuhkan pihak lainnya. Yang mengerti hanyalah Anda.org dan Koffice menggunakan XML untuk format filenya. tanyakan seberapa standar teknologi yang digunakan oleh suatu produk sebelum membeli. sang developer. file pun tidak dapat dikopikan begitu saja. sebagai pengguna. hal-hal yang bisa diotomatisasi jangan sampai dikerjakan secara manual. Sementara. Anda merasa bahwa format file yang Anda gunakan rupanya memiliki kekurangan. pertimbangkan selalu untuk datang dengan dokumentasi yang baik. Selamat berkreasi dan sukses! Multi platform Linux adalah sistem operasi yang sudah tidak diragukan lagi kemampuannya. buatlah agar berjalan di platform lain. pengguna sistem operasi lain seperti Windows masih dominan. Andaikata Microsoft mengubah orientasi bisnisnya. terutama utility atau tools. jangan pernah memulai ketergantungan akan suatu teknologi. Bagi software developer.