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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful