Open source sering dipahami sebagai software yang bisa digunakan dan dikembangkan siapa saja. Namun, bukan berarti semua kode open source bebas digunakan tanpa aturan.
Setiap proyek open source memiliki lisensi yang menentukan apa saja yang boleh dan tidak boleh dilakukan terhadap kode tersebut. Karena itu, memahami lisensi menjadi hal penting bagi developer, terutama ketika menggunakan library atau kode dari proyek lain.
Apa Itu Lisensi Open Source?
Lisensi open source adalah aturan hukum yang diberikan oleh pemilik atau pembuat software kepada orang lain untuk menggunakan, mempelajari, memodifikasi, dan dalam kondisi tertentu mendistribusikan software tersebut.
Jenis lisensinya berbeda-beda. Ada yang memberikan kebebasan sangat luas, sementara lainnya memiliki persyaratan tertentu ketika kode dimodifikasi atau didistribusikan kembali.
Jadi, label “open source” bukan berarti “bebas tanpa aturan”.
Mengapa Developer Perlu Memahaminya?
Dalam pengembangan software modern, developer jarang membuat semuanya dari awal.
Library, framework, plugin, font, dan berbagai komponen lain sering digunakan untuk mempercepat proses pengembangan. Komponen tersebut bisa memiliki lisensi yang berbeda.
Jika lisensinya diabaikan, developer atau perusahaan bisa menghadapi masalah ketika software didistribusikan, terutama dalam proyek komersial.
Memahami lisensi membantu developer mengetahui hak dan kewajiban sebelum menggunakan suatu proyek.
Lisensi Permissive Memberikan Kebebasan Lebih Luas
Beberapa lisensi open source dikenal sebagai permissive license. Contohnya MIT, BSD, dan Apache License 2.0.
Lisensi seperti ini umumnya memberikan kebebasan untuk menggunakan, memodifikasi, dan mendistribusikan kode, termasuk dalam proyek komersial, dengan tetap memenuhi persyaratan yang ditentukan lisensi.
Misalnya, lisensi tertentu mengharuskan pemberitahuan hak cipta dan teks lisensi tetap disertakan ketika software didistribusikan.
Meski terlihat sederhana, persyaratan tersebut tetap perlu diperhatikan.
Ada Juga Lisensi dengan Kewajiban Lebih Ketat
Lisensi seperti GNU General Public License atau GPL memiliki pendekatan yang berbeda.
GPL memberikan kebebasan kepada pengguna untuk menggunakan dan memodifikasi software, tetapi memiliki ketentuan tertentu mengenai distribusi karya turunan.
Hal ini membuat developer perlu memahami bagaimana sebuah library digunakan dan bagaimana software akhirnya akan didistribusikan.
Bukan berarti satu jenis lisensi selalu lebih baik daripada yang lain. Setiap lisensi memiliki tujuan dan konsekuensi yang berbeda.
Jangan Hanya Melihat Nama Lisensinya
Mengetahui bahwa sebuah proyek menggunakan MIT, Apache, GPL, atau lisensi lainnya memang langkah awal.
Namun, developer tetap perlu membaca ketentuan lisensi yang sebenarnya.
Versi lisensi, komponen yang digunakan, serta cara software didistribusikan dapat memengaruhi kewajiban yang harus dipenuhi.
Dalam proyek perusahaan, persoalan ini bahkan bisa melibatkan tim legal atau compliance agar penggunaan komponen open source sesuai dengan kebijakan perusahaan.
Perhatikan Lisensi Setiap Dependensi
Salah satu masalah yang sering terjadi adalah developer hanya memeriksa lisensi proyek utama, tetapi melupakan dependensinya.
Sebuah library mungkin menggunakan library lain yang memiliki lisensi berbeda. Dependensi tersebut kemudian bisa membawa persyaratan tambahan ke dalam proyek.
Karena itu, pemeriksaan lisensi sebaiknya menjadi bagian dari proses pengembangan, terutama untuk proyek yang akan didistribusikan kepada publik atau digunakan secara komersial.
Tools untuk Software Composition Analysis juga dapat membantu mengidentifikasi komponen open source dan lisensinya secara otomatis.
Copyright Tetap Berlaku
Open source bukan berarti copyright hilang.
Kode tetap memiliki pemilik hak cipta. Lisensi hanya memberikan izin tertentu kepada pihak lain untuk menggunakan atau memodifikasi karya tersebut.
Karena itu, menghapus informasi copyright atau mengabaikan persyaratan lisensi bukan sesuatu yang seharusnya dilakukan hanya karena kode tersedia secara publik.
Developer perlu memahami perbedaan antara “bisa melihat kode” dan “memiliki izin melakukan apa saja terhadap kode tersebut”.
Kesalahan Kecil Bisa Menjadi Masalah
Dalam proyek pribadi, kesalahan memahami lisensi mungkin terlihat sepele.
Namun, situasinya berbeda ketika software digunakan oleh perusahaan atau didistribusikan kepada banyak pengguna.
Penggunaan komponen dengan lisensi yang tidak sesuai dapat menimbulkan kebutuhan untuk melakukan perubahan pada software, memenuhi kewajiban tertentu, atau bahkan mendapatkan bantuan hukum.
Karena itu, memeriksa lisensi sejak awal jauh lebih mudah daripada memperbaikinya setelah produk selesai dikembangkan.
Memahami Lisensi Adalah Bagian dari Profesionalisme Developer
Developer tidak harus menjadi ahli hukum untuk memahami lisensi open source.
Namun, mereka perlu mengetahui dasar-dasarnya: siapa yang membuat software, lisensi apa yang digunakan, apa saja izin yang diberikan, dan kewajiban apa yang harus dipenuhi.
Kebiasaan sederhana seperti membaca file LICENSE, memeriksa dokumentasi proyek, dan mengetahui lisensi setiap dependensi dapat membantu mencegah banyak masalah.
Pada akhirnya, open source memberikan banyak kebebasan kepada developer, tetapi kebebasan tersebut tetap berjalan bersama aturan lisensi.
Memahami lisensi bukan sekadar urusan legal. Bagi developer, ini merupakan bagian dari cara menggunakan teknologi open source secara bertanggung jawab dan aman.
