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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful