Apa Itu Lisensi Software?
Lisensi software adalah aturan yang menjelaskan bagaimana sebuah aplikasi atau source code boleh digunakan oleh orang lain.
Melalui lisensi, pembuat aplikasi dapat menentukan apakah orang lain boleh:
- Menggunakan aplikasinya secara gratis.
- Mengubah source code.
- Menjual kembali aplikasi.
- Menggunakan kode untuk proyek komersial.
- Membuat aplikasi turunan.
- Menutup kembali source code yang sudah dimodifikasi.
- Wajib membagikan source code hasil modifikasi.
Jadi, walaupun sebuah source code tersedia secara publik di GitHub, bukan berarti kode tersebut bebas digunakan sesuka hati.
Tanpa lisensi, aturan hak cipta otomatis tetap berlaku. Artinya, pemilik kode tetap memegang seluruh hak dan orang lain pada dasarnya tidak mendapatkan izin untuk menyalin, memodifikasi, atau mendistribusikan kode tersebut.
Open Source Bukan Berarti Bebas Tanpa Aturan
Banyak orang mengira bahwa open source berarti source code bebas digunakan untuk apa saja tanpa syarat. Padahal, setiap lisensi open source memiliki aturan yang berbeda.
Secara umum, lisensi open source memungkinkan software untuk digunakan, dipelajari, dimodifikasi, dan dibagikan. Namun, beberapa lisensi memberikan kebebasan yang sangat luas, sedangkan lisensi lain mewajibkan aplikasi turunannya tetap menjadi open source.
Lisensi software biasanya dibagi menjadi beberapa kelompok utama:
- Permissive license
- Copyleft license
- Weak copyleft license
- Proprietary license
- Public domain license
Tabel Perbedaan Lisensi Software
| Lisensi | Jenis | Boleh untuk Komersial | Boleh Dimodifikasi | Boleh Dijadikan Closed Source | Wajib Membuka Source Code | Perlindungan Paten | Cocok untuk |
|---|---|---|---|---|---|---|---|
| MIT | Permissive | Ya | Ya | Ya | Tidak | Tidak dijelaskan secara khusus | Library, aplikasi, proyek pribadi |
| Apache 2.0 | Permissive | Ya | Ya | Ya | Tidak | Ya | Proyek perusahaan dan teknologi |
| BSD 2-Clause | Permissive | Ya | Ya | Ya | Tidak | Tidak dijelaskan secara khusus | Sistem, library, dan aplikasi |
| BSD 3-Clause | Permissive | Ya | Ya | Ya | Tidak | Tidak dijelaskan secara khusus | Proyek yang membutuhkan perlindungan nama pembuat |
| ISC | Permissive | Ya | Ya | Ya | Tidak | Tidak dijelaskan secara khusus | Proyek kecil dan library JavaScript |
| GNU GPL | Strong copyleft | Ya | Ya | Tidak untuk aplikasi turunannya | Ya, ketika didistribusikan | Tergantung versi | Aplikasi open source penuh |
| GNU LGPL | Weak copyleft | Ya | Ya | Ya, dengan ketentuan tertentu | Hanya bagian library tertentu | Tergantung versi | Library open source |
| GNU AGPL | Strong network copyleft | Ya | Ya | Umumnya tidak | Ya, termasuk layanan melalui jaringan | Ya pada AGPLv3 | Server, SaaS, dan aplikasi web |
| MPL 2.0 | File-level copyleft | Ya | Ya | Ya, untuk file terpisah | Hanya file berlisensi MPL yang diubah | Ya | Proyek campuran open source dan proprietary |
| Unlicense | Public domain-style | Ya | Ya | Ya | Tidak | Tidak | Kode sederhana yang ingin dibebaskan |
| Proprietary | Closed source | Sesuai izin pemilik | Biasanya tidak | Ya | Tidak | Sesuai perjanjian | Aplikasi internal dan produk berbayar |
1. MIT License
MIT License merupakan salah satu lisensi open source yang paling sederhana dan fleksibel.
Lisensi ini memperbolehkan orang lain untuk:
- Menggunakan software.
- Menyalin source code.
- Mengubah source code.
- Menjual software.
- Memasukkan kode ke dalam aplikasi berbayar.
- Mengubah aplikasi menjadi closed source.
Syarat utamanya adalah pemberitahuan hak cipta dan teks lisensi MIT harus tetap disertakan pada salinan software atau bagian penting dari software tersebut.
Kelebihan MIT License
- Teks lisensinya singkat.
- Mudah dipahami.
- Ramah untuk penggunaan komersial.
- Bisa digunakan dalam aplikasi closed source.
- Banyak digunakan pada library dan framework.
Kekurangan MIT License
- Orang lain dapat mengambil kode, memodifikasinya, kemudian menjualnya sebagai aplikasi closed source.
- Tidak memiliki penjelasan perlindungan paten sejelas Apache 2.0.
- Pemilik kode tidak dapat mewajibkan hasil modifikasi tetap open source.
Cocok digunakan ketika
MIT cocok untuk developer yang ingin source code-nya digunakan seluas mungkin tanpa memberikan banyak batasan.
2. Apache License 2.0
Apache License 2.0 memiliki sifat yang hampir sama dengan MIT. Software boleh digunakan, dimodifikasi, didistribusikan, dan dimasukkan ke dalam aplikasi komersial.
Perbedaan pentingnya adalah Apache 2.0 memiliki ketentuan mengenai pemberian lisensi paten. Lisensi ini juga mengatur pemberitahuan atribusi melalui file seperti LICENSE dan, apabila tersedia, NOTICE.
Kelebihan Apache 2.0
- Boleh digunakan untuk proyek komersial.
- Boleh dimasukkan ke dalam aplikasi closed source.
- Memiliki perlindungan dan ketentuan paten yang lebih jelas.
- Cocok untuk proyek perusahaan.
- Pengguna diwajibkan mencantumkan perubahan penting yang dilakukan.
Kekurangan Apache 2.0
- Teks lisensinya lebih panjang dibandingkan MIT.
- Pengelolaan atribusi dan file
NOTICEbisa lebih rumit. - Tidak mewajibkan aplikasi turunan menjadi open source.
Cocok digunakan ketika
Apache 2.0 cocok untuk proyek profesional atau perusahaan yang menginginkan lisensi fleksibel dengan perlindungan paten yang lebih jelas.
3. BSD License
BSD License adalah lisensi permissive yang mirip dengan MIT. Lisensi ini memiliki beberapa versi, tetapi yang paling umum adalah BSD 2-Clause dan BSD 3-Clause.
Keduanya mengizinkan penggunaan, modifikasi, dan distribusi dalam bentuk source code maupun binary.
BSD 2-Clause
BSD 2-Clause disebut juga Simplified BSD License.
Syarat utamanya:
- Pemberitahuan hak cipta harus tetap dicantumkan.
- Teks lisensi dan penolakan tanggung jawab harus tetap disertakan.
BSD 3-Clause
BSD 3-Clause memiliki satu aturan tambahan, yaitu nama pembuat atau kontributor tidak boleh digunakan untuk mempromosikan produk turunan tanpa izin.
Kelebihan BSD License
- Sederhana dan fleksibel.
- Bisa digunakan secara komersial.
- Bisa dimasukkan ke aplikasi closed source.
- Cocok untuk library dan software sistem.
Kekurangan BSD License
- Perubahan kode tidak wajib dibagikan kembali.
- Tidak memiliki ketentuan paten sejelas Apache 2.0.
- Orang lain dapat membuat produk proprietary menggunakan kode tersebut.
4. ISC License
ISC License adalah lisensi permissive yang sangat ringkas. Secara fungsi, lisensi ini hampir sama dengan MIT dan BSD 2-Clause.
Pengguna boleh memakai, menyalin, mengubah, dan mendistribusikan software selama pemberitahuan hak cipta dan teks izin tetap disertakan.
Kelebihan ISC License
- Teks sangat pendek.
- Mudah diterapkan.
- Boleh digunakan untuk kebutuhan komersial.
- Boleh digunakan pada aplikasi closed source.
Kekurangan ISC License
- Tidak mewajibkan hasil modifikasi menjadi open source.
- Ketentuan patennya tidak sejelas Apache 2.0.
- Kurang cocok ketika pembuat ingin menjaga keterbukaan kode turunan.
ISC cukup sering ditemukan pada package dan library di ekosistem JavaScript.
5. GNU General Public License atau GPL
GNU bukan nama satu lisensi saja. GNU memiliki beberapa jenis lisensi, seperti:
- GNU GPL
- GNU LGPL
- GNU AGPL
GNU General Public License atau GPL merupakan lisensi strong copyleft. Artinya, ketika software GPL dimodifikasi dan didistribusikan sebagai aplikasi turunan, source code aplikasi tersebut juga harus tersedia di bawah lisensi GPL yang sesuai.
GPL tidak melarang penggunaan komersial. Developer tetap boleh menjual software GPL. Namun, penerima software harus mendapatkan hak yang diberikan oleh GPL, termasuk akses terhadap source code dalam kondisi yang diwajibkan lisensi.
Kelebihan GNU GPL
- Menjaga agar software dan turunannya tetap terbuka.
- Perbaikan dan pengembangan dapat kembali ke komunitas.
- Mencegah pihak lain mengambil kode lalu menutup source code turunannya.
- Cocok untuk proyek berbasis komunitas.
Kekurangan GNU GPL
- Sulit digunakan dalam produk proprietary.
- Harus berhati-hati ketika menggabungkannya dengan kode berlisensi lain.
- Kurang cocok untuk perusahaan yang ingin menjaga source code produknya tetap tertutup.
Apakah kode internal wajib dibuka?
Tidak selalu.
Apabila aplikasi GPL hanya digunakan secara internal dan tidak didistribusikan kepada pihak lain, secara umum source code tidak otomatis harus diumumkan kepada publik.
Kewajiban utama GPL biasanya muncul ketika software atau aplikasi turunannya didistribusikan.
6. GNU Lesser General Public License atau LGPL
LGPL merupakan versi copyleft yang lebih fleksibel dibandingkan GPL.
Lisensi ini biasanya digunakan untuk library. Aplikasi proprietary dapat menggunakan atau terhubung dengan library LGPL selama mematuhi persyaratan lisensinya. GNU menjelaskan bahwa library LGPL dapat dihubungkan dengan aplikasi proprietary, berbeda dengan GPL yang memiliki efek copyleft lebih kuat terhadap karya turunannya.
Kelebihan GNU LGPL
- Cocok untuk library open source.
- Bisa digunakan oleh aplikasi closed source.
- Perubahan terhadap library LGPL tetap harus mengikuti aturan LGPL.
- Memperluas penggunaan library tanpa melepaskan seluruh perlindungan copyleft.
Kekurangan GNU LGPL
- Aturan integrasinya lebih rumit dibandingkan MIT.
- Cara linking dan pendistribusian perlu diperhatikan.
- Modifikasi langsung pada library dapat menimbulkan kewajiban membagikan source code library tersebut.
Cocok digunakan ketika
LGPL cocok ketika Anda membuat library yang ingin digunakan oleh aplikasi open source maupun proprietary.
7. GNU Affero General Public License atau AGPL
AGPL merupakan lisensi copyleft yang dibuat khusus untuk software yang digunakan melalui jaringan, seperti:
- Aplikasi web.
- Software as a Service atau SaaS.
- API.
- Server.
- Platform online.
Pada GPL biasa, perusahaan dapat memodifikasi software dan menjalankannya pada server tanpa mendistribusikan aplikasinya. Dalam situasi tersebut, kewajiban distribusi source code GPL mungkin tidak muncul.
AGPL menambahkan kewajiban terkait penggunaan software melalui jaringan. Pengguna yang berinteraksi dengan versi software yang telah dimodifikasi melalui jaringan harus mendapatkan kesempatan untuk mengakses source code yang sesuai.
Kelebihan GNU AGPL
- Cocok untuk menjaga aplikasi SaaS tetap open source.
- Mencegah pihak lain memodifikasi aplikasi server lalu menutup kodenya.
- Memberikan perlindungan copyleft yang lebih kuat.
Kekurangan GNU AGPL
- Sulit digunakan dalam aplikasi proprietary.
- Sering dihindari oleh perusahaan yang tidak ingin membuka source code server.
- Integrasinya perlu diperiksa dengan hati-hati.
8. Mozilla Public License 2.0
Mozilla Public License atau MPL 2.0 merupakan lisensi file-level copyleft.
Artinya, file yang sudah menggunakan MPL dan kemudian dimodifikasi harus tetap tersedia di bawah MPL. Namun, file tersebut masih dapat digabungkan dengan file lain yang bersifat proprietary dalam satu aplikasi.
Karena itu, MPL berada di tengah-tengah antara lisensi permissive seperti MIT dan lisensi strong copyleft seperti GPL. MPL 2.0 juga termasuk lisensi open source yang diakui oleh Open Source Initiative.
Kelebihan MPL 2.0
- Lebih fleksibel dibandingkan GPL.
- File open source yang dimodifikasi tetap terbuka.
- Bisa digabungkan dengan kode closed source.
- Cocok untuk proyek yang memiliki modul terbuka dan modul proprietary.
Kekurangan MPL 2.0
- Lebih rumit daripada MIT atau BSD.
- Developer harus mengetahui file mana yang menggunakan MPL.
- Kurang cocok jika ingin seluruh aplikasi turunan tetap open source.
9. Unlicense
Unlicense digunakan ketika pembuat ingin melepaskan kode ke public domain sejauh yang diperbolehkan oleh hukum.
Secara umum, pengguna boleh:
- Menyalin kode.
- Mengubah kode.
- Menjual kode.
- Mendistribusikan kode.
- Menggunakan kode tanpa atribusi.
Unlicense tidak memberikan banyak syarat kepada pengguna.
Kelebihan Unlicense
- Sangat bebas.
- Hampir tidak memiliki kewajiban atribusi.
- Cocok untuk potongan kode kecil atau contoh kode.
Kekurangan Unlicense
- Konsep public domain dapat diperlakukan berbeda di setiap negara.
- Kurang ideal untuk proyek perusahaan.
- Tidak memberikan perlindungan paten yang jelas.
- Kontributor perusahaan mungkin lebih nyaman menggunakan MIT atau Apache 2.0.
10. Proprietary License
Proprietary license adalah lisensi untuk aplikasi closed source. Hak penggunaan software ditentukan sepenuhnya oleh pemilik aplikasi.
Pengguna biasanya hanya mendapatkan izin untuk menggunakan aplikasi, bukan memiliki atau mengubah source code-nya.
Contohnya:
- Aplikasi berlangganan.
- Software internal perusahaan.
- Aplikasi kasir berbayar.
- Sistem manajemen hotel.
- Aplikasi yang dibuat khusus untuk klien.
- Software desktop berbayar.
Aturan yang biasa digunakan
- Tidak boleh menyalin aplikasi.
- Tidak boleh membagikan akun.
- Tidak boleh melihat atau mengubah source code.
- Tidak boleh menjual kembali aplikasi.
- Penggunaan dibatasi berdasarkan perangkat, pengguna, perusahaan, atau waktu.
- Hak penggunaan berakhir ketika langganan berhenti.
Cocok digunakan ketika
Proprietary license cocok apabila aplikasi merupakan produk bisnis dan source code harus dijaga tetap tertutup.
11. Dual Licensing
Dual licensing adalah metode memberikan dua pilihan lisensi pada software yang sama.
Contohnya:
- Gratis dengan GPL untuk proyek open source.
- Berbayar dengan lisensi komersial untuk perusahaan yang ingin menggunakan software tanpa mengikuti GPL.
Model ini memungkinkan pembuat software mendapatkan manfaat dari komunitas open source sekaligus menjual lisensi komersial.
Namun, dual licensing lebih mudah diterapkan apabila hak cipta source code sepenuhnya dimiliki oleh satu perusahaan atau satu pihak. Jika terdapat banyak kontributor, pengelolaan hak atas kontribusi harus dibuat dengan jelas.
Apakah Creative Commons Bisa Digunakan untuk Source Code?
Creative Commons atau CC lebih cocok digunakan untuk:
- Artikel.
- Gambar.
- Video.
- Musik.
- Dokumentasi.
- Materi pembelajaran.
- Desain dan konten kreatif.
Creative Commons tidak merekomendasikan penggunaan lisensi CC untuk software dan hardware karena tersedia lisensi khusus software yang mengatur hal-hal seperti source code, distribusi, dan modifikasi dengan lebih tepat.
Dalam satu proyek aplikasi, Anda dapat menggunakan:
- MIT, Apache, atau GPL untuk source code.
- Creative Commons untuk dokumentasi, gambar, atau materi lainnya.
Pastikan setiap bagian dijelaskan secara terpisah agar tidak membingungkan pengguna.
Perbedaan Permissive dan Copyleft
| Aspek | Permissive License | Copyleft License |
|---|---|---|
| Contoh | MIT, Apache 2.0, BSD, ISC | GPL, AGPL |
| Penggunaan komersial | Boleh | Boleh |
| Modifikasi kode | Boleh | Boleh |
| Bisa menjadi closed source | Umumnya boleh | Umumnya tidak untuk aplikasi turunan |
| Wajib membagikan perubahan | Tidak | Ya dalam kondisi tertentu |
| Tingkat aturan | Lebih sederhana | Lebih ketat |
| Cocok untuk perusahaan | Sangat cocok | Tergantung model bisnis |
| Cocok untuk komunitas open source | Cocok | Sangat cocok |
| Perlindungan keterbukaan kode | Rendah | Tinggi |
Lisensi Mana yang Sebaiknya Dipilih?
Gunakan MIT apabila
- Ingin lisensi sederhana.
- Ingin kode digunakan seluas mungkin.
- Tidak masalah jika kode digunakan pada aplikasi closed source.
- Membuat library atau proyek pribadi.
Gunakan Apache 2.0 apabila
- Ingin kebebasan seperti MIT.
- Membutuhkan ketentuan paten yang lebih jelas.
- Membuat proyek perusahaan.
- Berencana menerima banyak kontribusi.
Gunakan BSD apabila
- Menginginkan lisensi permissive sederhana.
- Membuat software sistem atau library.
- Tidak ingin nama pembuat digunakan untuk promosi produk turunan.
Gunakan GPL apabila
- Ingin aplikasi turunan tetap open source.
- Tidak ingin perusahaan mengambil kode lalu menutup source code-nya.
- Membuat proyek komunitas.
Gunakan LGPL apabila
- Membuat library.
- Ingin library dapat digunakan oleh aplikasi proprietary.
- Ingin perubahan pada library tetap terbuka.
Gunakan AGPL apabila
- Membuat aplikasi SaaS atau aplikasi server.
- Ingin perubahan yang digunakan melalui jaringan tetap dibagikan.
- Tidak ingin perusahaan menjalankan versi modifikasi secara tertutup di server.
Gunakan MPL 2.0 apabila
- Ingin sebagian kode tetap terbuka.
- Tetap ingin menggabungkan kode dengan modul proprietary.
- Membutuhkan jalan tengah antara MIT dan GPL.
Gunakan proprietary license apabila
- Source code tidak boleh dibuka.
- Aplikasi dibuat untuk kepentingan bisnis.
- Penggunaan software ingin dibatasi.
- Aplikasi dijual melalui lisensi atau sistem berlangganan.
Contoh Penerapan Lisensi pada GitHub
Biasanya teks lisensi disimpan dalam file berikut:
LICENSE
atau:
LICENSE.md
File tersebut diletakkan pada folder utama atau root repository. GitHub juga menyarankan agar file lisensi dimasukkan langsung ke dalam repository supaya ikut tersedia ketika proyek di-clone, diunduh, atau didistribusikan.
Contoh struktur proyek:
nama-aplikasi/
โโโ app/
โโโ public/
โโโ src/
โโโ README.md
โโโ LICENSE
โโโ package.json
Informasi singkat juga dapat ditambahkan pada README.md:
## License
This project is licensed under the MIT License.
See the LICENSE file for more information.
Hal yang Harus Diperiksa Sebelum Memilih Lisensi
Sebelum menentukan lisensi, pertimbangkan beberapa hal berikut:
- Apakah aplikasi boleh digunakan secara komersial?
- Apakah orang lain boleh mengubah source code?
- Apakah hasil modifikasi harus dibagikan?
- Apakah aplikasi turunan boleh menjadi closed source?
- Apakah aplikasi akan digunakan sebagai SaaS?
- Apakah proyek menggunakan library pihak ketiga?
- Apakah lisensi setiap dependency kompatibel?
- Apakah terdapat kode dari contributor lain?
- Apakah diperlukan perlindungan paten?
- Apakah aplikasi akan dijual kepada klien?
Jangan hanya memilih lisensi karena lisensi tersebut populer. Pilih lisensi berdasarkan tujuan proyek dan cara aplikasi akan digunakan.
Kesimpulan
Setiap lisensi software memberikan hak dan kewajiban yang berbeda.
MIT, BSD, dan ISC cocok untuk proyek yang ingin memberikan kebebasan luas kepada pengguna. Apache 2.0 menawarkan kebebasan serupa dengan ketentuan paten yang lebih jelas.
GPL cocok untuk menjaga agar aplikasi turunannya tetap open source. LGPL lebih sesuai untuk library, sedangkan AGPL memberikan perlindungan tambahan untuk aplikasi web, server, dan SaaS.
MPL 2.0 dapat menjadi jalan tengah karena hanya mewajibkan file tertentu tetap terbuka. Sementara itu, proprietary license lebih sesuai untuk aplikasi bisnis yang source code-nya harus tetap tertutup.
Pemilihan lisensi sebaiknya dilakukan sejak awal pengembangan. Selain melindungi pembuat aplikasi, lisensi yang jelas juga membantu pengguna dan contributor memahami apa yang boleh dan tidak boleh dilakukan.
Catatan: Artikel ini memberikan penjelasan umum dan bukan nasihat hukum. Untuk aplikasi komersial berskala besar, penggunaan banyak dependency, atau proyek dengan banyak contributor, konsultasikan pemilihan lisensi dengan pihak yang memahami hukum kekayaan intelektual.
Ditulis oleh
Wilan
Kontributor tetap Bali Island Tekno yang aktif berbagi pengetahuan seputar teknologi, pemrograman, dan dunia rekayasa perangkat lunak.