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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful