Friday, 5 August 2011

Jan 22, 2010

Apa Itu Open SOurce?

APA ITU OPEN SOURCE?

Sebelum berkenalan dengan open source, ada baiknya kita kenali dahulu berbagai jenis software menurut biaya lisensi dan ketersediaan source-codenya. Menurut Robert Charpentier dan Richard Carbone (2004), berbagai jenis lisensi software dapat disusun dalam taksonomi berikut:

Taksonomi Software

Pada gambar di atas, ada dua lisensi utama, yaitu free (gratis) dan propietary yang meminta kompensasi biaya atas pembelian atau penggunaan perangkat lunak. Pengembang pada kedua jenis lisensi utama tersebut dapat menerapkan skema open source (menyediakan source code) maupun closed source (tidak menyediakan source code). Sehingga dapat ditemui adanya perangkat lunak gratis yang tidak open source, maupun perangkat lunak berbayar yang open source. Pada skema open source, ada yang dikembangkan oleh perusahaan (corporate) dan komunitas (collaborative). Software open source kolaboratif ada yang sudah matang (mature) dan sedang dalam pengembangan (in development).
Secara sederhana, ada dua kategori lisensi software yang banyak dipakai, yaitu:
1) FOSS (Free / Open Source Software) adalah dua istilah yang maksudnya hampir sama, yakni program yang tidak perlu biaya izin (free = bebas) digunakan dan kode sumbernya tidak dirahasiakan (open = tersedia), sehingga cara kerjanya dapat dipelajari, lalu dikembangkan, dan disebarluaskan. Contoh: Linux, OpenOffice, GIMP, Inkscape.
2) PCSS (Proprietary / Closed Source Software) adalah program yang hanya dimiliki pembuatnya (terikat). Pengguna hanya dapat menggunakan jika membeli lisensi (mendapatkan izin). Pihak lain tidak dapat mempelajari cara kerjanya (tertutup), tidak pula mengembangkan dan menyebarluaskan. Contoh: Windows, MS Office, Photoshop, CorelDraw.

Open Source tidak hanya bermakna kebebasan akses ke source code saja. Open source juga merupakan:
1) Sebuah komunitas kuat yang terdiri dari individu-individu yang lebih mengutamakan kepentingan dan kesejahteraan umum dibandingkan dirinya sendiri;
2) Seperangkat aturan lisensi software; open source bukan berarti tanpa lisensi, sebab ini berkaitan dengan hukum. Agar open source dapat menjadi legal di mata hukum, diperlukan aturan lisensi open source tersendiri;
3) Sebuah model pengembangan software secara kolaboratif; setiap orang dapat ikut berpartisipasi dalam mengembangkannya;
4) Sebagai katalis yang membangkitkan bisnis dan model bisnis yang belum pernah ada sebelumnya; tidak ada bisnis dalam sistem open source itu sendiri, karena ia hanyalah alat; namun open source dapat digunakan untuk menjalankan bisnis dengan lebih efisien atau mengembangkan model bisnis baru di sekitar pemanfaatan open source;
5) Kekuatan yang mendorong percepatan software menjadi komoditi.

Sebagai seperangkat lisensi software, ada beberapa kriteria yang harus dipenuhi sebelum suatu software dapat disebut sebagai open source. Berikut ini definisi open source menurut lembaga nirlaba Open Source Initiative (OSI):
1. DISTRIBUSI ULANG SECARA BEBAS
Lisensi yang digunakan tidak boleh membatasi siapa pun untuk menjual atau mendistribusikan ulang. Baik distribusi ulang secara terpisah maupun digabungkan dengan program lain. Lisensi tidak boleh mesyaratka royalti atau semacamnya bila program tersebut akan dijual.
Alasan Logis: Dengan mensyaratkan distribusi ulang secara bebas, hilangnya manfaat jangka panjang demi hasil penjualan jangka pendek dapat dieliminasi.

2. KODE PROGRAM (SOURCE CODE)
Distribusi program harus menyertakan source code, dan harus mengizinkan distribusi source code sebagaimana halnya bentuk yang sudah dikompilasi (bentuk binari/executable). Jika program tidak didistribusikan bersama source code, harus ada publikasi atau penjelasan yang memadai bagaimana caranya mendapatkan sorce code-nya. Biaya yang diperlukan untuk mendapatkan source code tidak boleh lebih dari biaya reproduksinya atau tersedia untuk di-download melalui internet. Source code harus menjadi bentuk yang lebih disukai jika programmer ingin memodifikasi programnya. Source code tidak boleh diubah atau dibuat menjadi tidak jelas dengan sengaja. Bentuk intermediate juga tidak diijinkan, misalnya keluaran dari preposesor atau translator .
Alasan Logis: Akses ke source code yang jelas diperlukan untuk mengembangkan dan memodifikasi program. Agar hal tersebut dapat dilakukan dengan mudah, maka akses ke source code juga harus dimudahkan.

3. HASIL MODIFIKASI ATAU TURUNAN
Lisensi harus mengijinkan modifikasi atau pembuatan turunan dari program tersebut, dan harus mengizinkan program yang diturukan untuk dilisensikan dengan lisensi yang sama dengan program aslinya.
Alasan Logis: Ketersediaan akses untuk membaca source code saja tidak cukup untuk mendukung peer review secara independen dan pengembangan evolusioner yang cepat. Agar hal tersebut dapat terjadi, diperlukan eksperimen pada source code dan distribusi ulang hasil modifikasinya.

4. INTEGRITAS PROGRAMMER ASLI
Lisensi dapat melarang source code untuk didistribusikan dalam bentuk yang sudah dimodifikasi bila mengijinkan distribusi patch beserta source code-nya untuk memodifikasi program pada saat build time . Lisensi harus secara eksplisit mengijinkan distribusi program yang dibangun dari source code yang telah dimodifikasi. Lisensi dapat mensyaratkan program turunan agar menggunakan nama atau versi yang berbeda dengan program yang asli.
Alasan Logis: mendorong terjadinya banyak pengembangan dan perbaikan adalah hal yang sangat baik, namun para pengguna berhak untuk mengetahui siapa yang bertanggung jawab terhadap aplikasi yang mereka gunakan. Sebaliknya, sang pembuat program dan pemeliharanya (maintainer) juga berhak untuk mengetahui apa harus mereka dukung dan untuk menjaga reputasi mereka.
Dengan demikian, sebuah lisensi open source harus menjamin agar source code tersedia, namun dapat mensyaratkan agar source code didistribusikan dalam bentuk pristine (masih asli dari sang pembuat, belum ada modifikasi dari pihak lain) ditambah dengan patch. Dengan cara ini, perubahan yang tidak resmi dapat dibuat dan disediakan, namun dapat dibedakan dari source aslinya.

5. TIDAK ADA DISKRIMINASI PADA ORANG ATAU KELOMPOK ORANG
Lisensi tidak boleh membatasai orangatau kelompok orang untuk menggunakan atau terlibat dalam proses pengembangan program open source.
Alasan Logis: Untuk mendapatkan manfaat yang optimal dari proses pengembangan aplikasi open source, maka tingkat perbedaan orang atau kelompok orang yang terlibat dalam prosesnya juga harus maksimal. Setiap orang harus memiliki hak yang sama untuk berkontribusi pada proyek open source apa pun. Dengan kata lain, tidak boleh ada larangan bagi siapapun untuk terlibat dalam proses pengembangan open source.

6. TIDAK ADA DISKRIMINASI DALAM BIDANG PENGGUNAANNYA
Lisensi tidak boleh membatasi seseorang untuk menggunakan program yang dimaksud dalam bidang tertentu. Misalnya, lisensi tidak boleh membatasi penggunaan program dalam bidang penelitian, pendidikan, atau digunakan untuk menjalankan bisnis.
Alasan Logis: Hal ini dimaksudkan agar penggunaan open source meluas dan tidak terjebak pada batasan untuk digunakan sebagai alat bantu dalam dunia bisnis komersial. Pengguna komersial justru diharapkan bergabung dengan komunitas open source dan tidak merasa dikecualikan dalam menggunakan program open source.

7. DISTRIBUSI LISENSI
Hak-hak yang melekat pada program harus dapat diterapkan pada seluruh pengguna; tanpa memerlukan tambahan lisensi.
Alasan Logis: klausa ini dimaksudkan untuk menghindari penutupan software secara tidak langsung.

8. LISENSI TIDAK BOLEH SPESIFIK PADA PRODUK TERTENTU
Hak-hak yang melekat pada program tidak boleh mensyaratkan program tersebut menjadi bagian dari distribusi software tertentu. Jika program tertentu digunakan atau didistribusikan secara terpisah dari distribusi software-nya, namun tetap mengikuti lisensi berlaku pada program tersebut, maka seluruh pihak yang menerima atau menggunakan program tersebut harus menerima hak yang sama dengan mereka yang mendapatkannya bersama distribusi software aslinya.
Alasan Logis: klausa ini mencegah jenis jebakan lisensi yang lain.

9. LISENSI TIDAK BOLEH MEMBATASI SOFTWARE LAIN
Lisensi tidak boleh membatasi software lain yang didistribusikan bersama program yang dilisensikan. Misalnya, lisensi tidak boleh memaksa bahwa program lain yang didistribusikan dalam media yang sama harus merupakan software yang open source.
Alasan Logis: Distributor software open-source memiliki hak untuk menentukan pilihan mengenai software mereka. Lisensi GPL (GNU General Public License) juga mengadaptasi hal ini. Software yang menggunakan pustaka berlisensi GPL hanya diharuskan berlisensi GPL bila membentuk satu software yang sama, bukan pada software apa saja yang didistribusikan bersamanya.

10. LISENSI HARUS NETRAL TERHADAP TEKNOLOGI
Penyediaan lisensi tidak boleh mengharuskan penggunaan teknologi atau tampilan grafis tertentu.
Alasan Logis: Penyediaan lisensi ini ditujukan secara spesifik pada lisensi yang mengharuskan adanya tindakan yang secara ekplisit menunjukkan ekspresi persetujuan dan mengadakan kontrak antara pengguna software yang dilisensikan dengan pembuat lisensinya. Penyediaan lisensi yang mengharuskan “click-wrap” dapat menimbulkan konflik dengan beberapa metode penting dalam distribusi software seperti misalnya: download melalui FTP (File Transfer Protocol), CD-ROM berisi kumpulan aplikasi, atau mirror web ; beberapa di antaranya dapat menghalangi atau mencegah penggunaan kembali kode program. Maka adaptasi penyediaan lisensi harus memungkinkan (a) distribusi software bisa dilakukan di jalur non-web yang tidak mendukung click-wrap pada proses download dan (b) kode program yang tercakup dalam lisensi (atau penggunaan kembali sebagian dari kode program yang tercakup) harus dapat dijalankan dalam lingkungan tanpa tampilan grafis yang tidak dapat mendukung dialog pop-up.