Jenis License Open Source

Sun. Nov 1st, 2026 08:20 PM10 mins read
Jenis License Open Source
Source: Raphael - license

Akhir-akhir ini lagi rame nih drama lisensi di open source masalah timpa-menimpa🩹. Walaupun yang dipermasalahin author originalnya terkait hal lain sih. Lumayan banyak pro-kontranya. Mungkin karena yang bermasalah adalah salah satu influencer. Gw ga ikut-ikutan ah😁. Gw mau bahas lisensi-lisensi di open source aja yang mungkin masih banyak yang belum ngerti aturan main dan konsekuensi dari lisensi yang digunakan.

Open source artinya adalah sumber codenya terbuka, bebas dibaca, didownload, dikembangkan, bahkan disebarluaskan. Semua orang bebas membuat, berkontribusi, menduplikasi, mengembangkannya secara terpisah, atau hanya sekedar menggunakannya. Dengan kebebasan itu banyak orang saling bahu-membahu berkontribusi pada open source dari berbagai kalangan seperti pekerja korporat besar, anak startup, freelancer, senior level yang skillnya dewa, hingga orang yang bahkan baru mulai belajar ngoding👨‍💻. Itu yang membuat dunia programming bisa berkembang pesat seperti sekarang. Namun, bebas di sini maknanya bukan berarti jadi seenaknya. Masing-masing open source itu ada aturan mainnya berdasarkan lisensi. Ini yang harus kita patuhi saat berhubungan dengan open source. Ada beberapa hal yang diatur pada masing-masing lisensi.

Attribution

Attribution artinya adalah kita wajib menghormati original authornya dengan cara tidak mengubah atau menghapus Copyright, Notice, License, Disclaimer, atau nama author di dalam code maupun di docs lainnya🫡. Notice adalah file khusus yang berisi pemberitahuan hukum, nama pencipta asli, tahun pembuatan, daftar modifikasi, hak cipta dari library yang dipakai, hingga credit untuk para kontributor projek tersebut. License adalah file khusus yang berisi detail aturan dari lisensi yang digunakan di projek tersebut. Jika ada open source yang memiliki aturan ini di dalamnya artinya kita boleh menggunakan atau mengembangkannya untuk projek sendiri, tapi atribut dari projek original ga boleh dihapus. Misalkan kita membuat perubahan pada React, maka kita ga boleh menghapus atribut yang ditulis oleh orang-orang yang pernah berkontribusi ke projek React sebelumnya di komen source code, Notice, atau docs lainnya.

State Changes

State Changes artinya kita boleh melakukan modifikasi, tapi dengan syarat tertentu tergantung lisensi. Ada lisensi yang membolehkan modifikasi sebebas-bebasnya, ada yang mewajibkan kita meinggalkan nama pada daftar kontributor setelah melakukan perubahan, dan ada juga yang mewajibkan kita bikin dokumentasi atas perubahan yang dilakukan. Jika kita mengembangkan projek dari open source yang ada aturan ini berarti kita harus mendokumentasikan perubahan yang kita lakukan pada projek tersebut📃. Misalkan kita membuat perubahan pada Spring, maka perubahan yang kita lakukan harus didokumentasikan di sana. Makanya kalau kalian pernah baca-baca source code dari Spring pasti bakal banyak ditemukan Javadoc di dalam class atau methodnya berisi penjelasan perubahan dari code tersebut.

Copyleft

Copyleft adalah lisensi berbalas🤝. Artinya jika kita mengembangkan projek dari projek lain yang memiliki aturan Copyleft maka projek kita harus open source juga. Ada lisensi yang mewajibkan open source seluruh projek, ada yang mewajibkan open source pada bagian modul yang diubah doang, ada juga yang mewajibkan open source pada file yang diubah aja. Misalkan kita mengembangkan projek OS Linux baru, maka OS kita harus open source juga.

Distribution

Ini masih terkait Copyleft di atas. Open source yang berlisensi Copyleft yang kuat memiliki aturan tambahan ini. Distribution artinya bagaimana aturan Copyleft di atas mengikat saat projek tersebut didistribusikan ke orang lain, meliputi saat code projek ini diduplikat, di-compile jadi binary, atau didistribusikan lewat jaringan🛜. Jadi meskipun kita ga melakukan perubahan terhadap sebuah open source, tapi projek kita memiliki library dari open source berlisensi ini dan output dari projek kita adalah aplikasi binary yang udah di-compile, maka projek kita jadi wajib open source. Misalkan kita menggunakan library iText untuk bikin PDF pada projek e-commerce, maka e-commerce tersebut juga wajib open source. Biasanya library berlisensi ini memiliki lisensi berbayar secara terpisah untuk projek yang ga mau open source.

Patent Grant

Patent Grant adalah hibah paten yang mengijinkan semua orang memanfaatkan projek tersebut tanpa ditagih royalti dan dijamin ga akan dituntut di masa depan. Tanpa aturan ini bisa aja suatu saat ada sengketa yang dituntut oleh author original👨‍⚖️. Misalnya kita menduplikat projek Kubernetes untuk dikembangkan sendiri. Kemudian ternyata projek kita tersebut jadi jauh lebih baik dan sukses daripada Kubernetes. Berkat aturan ini founder Kubernetes ga bisa menuntut kita atas royalti atau alasan apa pun terkait penggunaan projek miliknya.

Trademark Clause

Trademark Clause adalah aturan yang melarang kita mencatut projek untuk kepentingan promosi tanpa izin tertulis. Cakupannya berupa nama projek, logo projek, atau nama author™️. Misalkan kita menduplikasi Apache Kafka untuk dikembangkan sendiri. Projek tersebut ga boleh dibuat dengan Trademark dari Kafka. Misalkan kita namakan projeknya “Kafka Slank”, logonya dimiripin dengan Kafka, atau dipromosikan dengan kalimat kayak “Founder Kafka pernah nyobain aplikasi ini” tanpa izin tertulis dari pemilik projek original⛔.

Jenis Lisensi Open Source yang Umum

Sekarang kita lanjut bahas macam-macam lisensi open source. Sebenarnya lisensinya banyak banget, tapi yang akan gw bahas di sini hanya yang cukup umum digunakan.

No License

Ini artinya ga ada satu pun lisensi tertera pada projek tersebut. Bukan berarti ga ada License kita jadi bebas sebebasnya. Justru sebaliknya, artinya projek tersebut hanya boleh dilihat. Ga boleh dipake, diubah, diduplikasi, atau dikembangkan. Kalau nemu projek kayak gini mending lupakan aja daripada suatu saat kena masalah🏃‍♂️‍➡️.

The Unlicense

Sesuai namanya, lisensi ini ga ada aturan yang ketat. Attribution bebas diubah. State Changes ga wajib didokumentasikan. Ga perlu Copyleft. Distribution bebas. Trademark Clause juga ga ada, jadi boleh-boleh aja kita jadikan sebagai bahan promosi projek kita. Namun, Patent Grant juga ga ada, artinya jika suatu saat author originalnya dengki maka bisa aja suatu saat kita disomasi🤭. Projek berlisensi ini bebas kita duplikasi, kembangkan, atau sekedar digunakan sebagai library untuk projek kita.

CC0 v1.0

Lisensi Creative Commons Zero v1.0 biasanya sering ditemukan pada industri kreatif seperti template foto, logo, icon, video, musik, dan sejenisnya. Ini juga ga ketat aturannya. Attribution bebas diubah. State Changes ga wajib didokumentasikan. Ga perlu Copyleft. Distribution bebas. Ada Trademark Clause, sehingga ga bisa dijadiin bahan promosi pada projek kita🛑. Ini juga ga ada Patent Grant seperti The Unlicense. Kita bisa menggunakannya secara bebas untuk diduplikasi, dikembangkan, atau digunakan pada projek kita.

MIT

Lisensi ini dibuat oleh kampus Massachusetts Institute of Technology (MIT)🏫. Contoh projeknya React, SLF4J, Mockito, dan masih banyak lagi. Lisensi ini melarang kita mengubah atau menghapus Attribution pada file Notice dan License. State Changes ga wajib didokumentasikan. Ga perlu Copyleft. Distribution bebas. Ga ada Patent Grant secara eksplisit, tapi beberapa orang menafsirkan “without restriction” pada isi lisensinya menyiratkan itu sebagai Patent Grant. Ini juga ga ada Trademark Clause. Banyak projek menggunakan open source ini karena dinilai cukup fair dan ga terlalu ketat. Kita bebas menggunakannya pada projek kita asalkan ga mengubah Attribution yang ada.

BSD 3-Clause

Lisensi ini dicetuskan oleh Berkeley Software Distribution🏢. Contoh projeknya Go, Django, Chromium, dan lainnya. Lisensi ini mewajibkan kita untuk ga mengubah atau menghapus Attribution pada file Notice, License, dan di dokumentasi binary. Jadi ga hanya di source code doang atributnya yang ga boleh diubah. State Changes dan Copyleft ga perlu. Distribution masih bebas. Ga ada Patent Grant. Trademark Clause hanya dilarang untuk endorsement atau promosi menggunakan nama author atau penerbit. Sedangkan untuk penggunaan nama projek atau logo diperbolehkan. Misalnya kita bikin bahasa baru yang diduplikasi dari Go. Kita boleh menamainya kayak “Go Kowi”, tapi ga boleh mencatut nama authornya untuk promosi.

Apache 2.0

Ini adalah lisensi dari Apache Software Foundation. Contohnya Spring, Kafka, Jackson, Kubernetes, dan masih banyak lagi. Kita ga boleh mengubah atau menghapus Attribution pada file Notice dan License. State Changes harus didokumentasikan di setiap file yang diubah📄. Copyleft ga perlu. Distribution juga bebas. Ada Patent Grant, sehingga kita aman dari somasi. Namun, klausul ini batal jika kita yang melakukan somasi duluan ke projek tersebut. Misalkan kita menggunakan Jackson pada projek kita. Lalu kita merasa Jackson mencuri ide kita. Lalu kita melakukan somasi duluan terhadap Jackson. Dengan begini klausul anti-somasi itu batal sehingga Jackson jadi bisa melakukan somasi balik terhadap projek kita yang menggunakan Jackson atau meminta royalti pada kita. Trademark Clause berlaku di sini dan ga boleh dimanfaatkan untuk promosi dalam bentuk apa pun tanpa izin tertulis. Ini cukup populer karena ga terlalu ketat, ada Patent Grant secara eksplisit, dan dokumentasinya up to date karena State Changes diwajibkan.

MPL 2.0

Mozilla Public License 2.0 adalah lisensi buatan Mozilla dan agak ketat. Contoh yang paling terkenal adalah Firefox🌐. Attribution pada file Notice ga boleh diubah atau dihapus. License untuk file yang dibuat author original ga boleh diubah atau dihapus, tapi License untuk file yang kita buat sendiri boleh kita lisensikan berbeda. State Changes ga wajib. Ada aturan Copyleft, tapi hanya pada file yang diubah. Misalkan kita menduplikasi projek Firefox, maka semua file yang kita ubah harus open source. Sedangkan semua file yang kita buat sendiri boleh ga open source. Distribution di sini masih bebas. Ada Patent Grant juga dan bisa batal kalau kita somasi projek ini duluan kayak Apache. Ada Trademark Clause juga melarang penggunaan promosi dalam bentuk apa pun. Ini kurang populer karena agak ketat dan cukup ribet. Makanya banyak orang lebih memilih ngembangin browser Chromium yang berlisensi BSD 3-clause daripada Firefox.

EPL 2.0

Eclipse Public License 2.0 diprakarsai oleh Eclipse dan juga agak ketat mirip MPL. Contohnya adalah IDE Eclipse, JUnit 5, dan beberapa lainnya. Attribution pada file Notice ga boleh diubah atau dihapus. License untuk file original ga boleh diubah atau dihapus, tapi License untuk file yang kita buat sendiri boleh kita lisensikan berbeda. State Changes ga wajib didokumentasikan apa yang diubah, tapi nama kita wajib ditinggalkan sebagai kontributor pada dokumentasi. Ada aturan Copyleft juga, tapi per modul yang diubah aja. Misalkan kita menduplikasi JUnit 5🧪. Yang kita ubah hanya file di salah satu modulnya aja, misalnya modul JUnit Jupiter Params. Maka hanya modul itu doang yang wajib kita open source, modul lainnya ga wajib. Distribution juga masih bebas. Juga ada Patent Grant di sini dan bisa batal kalau kita somasi projek ini duluan. Ga ada Trademark Clause di sini. Ini juga ga terlalu populer karena agak ketat dibanding lisensi lainnya.

GPL v2.0

General Public License v2.0 dicetuskan sejak tahun 90an untuk melindungi projek open source beserta turunannya agar tetap open source🛡️. Contohnya adalah Linux, Git, MySql, dan lainnya. Kita ga boleh mengubah atau menghapus Attribution pada file Notice dan License. State Changes wajib didokumentasikan, bisa pada source code atau lewat file docs terpisah dan wajib mencatat tanggal perubahan dilakukan. Ada aturan Copyleft yang ketat, jika projek kita duplikat dari projek berlisensi ini maka projek kita juga harus open source. Ada aturan Distribution yang juga ketat di sini. Kita ga boleh mendistribusikan aplikasi binary dari projek berlisensi ini. Projek yang di-compile dan berisi projek ini di dalamnya wajib open source juga. Meskipun kita hanya menggunakannya sebagai dependensi library tanpa mengubahnya, selama itu ikut di-compile ke dalam file binary aplikasi kita, maka artinya kita ikut mendistribusikannya sehingga projek aplikasi kita pun harus ikut open source. Di sini ga ada aturan Patent Grant dan Trademark Clause secara eksplisit. Ini biasanya digunakan pada projek yang komunitasnya besar. Jadi setiap orang yang mengembangkannya wajib berbagi ide yang diimplementasikan. Tujuannya untuk menjaga komunitas tetap besar. Linux, Git, dan MySql masih tetap bertahan hingga sekarang karena projek turunannya diwajibkan open source.

LGPL v2.1

Karena GPL v2.0 dinilai terlalu ketat, maka dibuatlah alternatifnya, yaitu LGPL v2.1 (Lesser General Public License) yang sedikit lebih longgar⛓️‍💥. Contohnya glibc, Logback, OpenPDF, dan lainnya. Kita ga boleh mengubah atau menghapus Attribution pada file Notice, License, dan kita wajib mendokumentasikan library yang kita pakai pada projek ini di file Notice. Untuk aturan State Changes, Patent Grant, dan Trademark Clause ga ada perbedaan. Untuk aturan Copyleft & Distribution di sini hanya wajib open source jika kita melakukan perubahan. Kalau hanya menggunakannya saja seperti sebagai library tanpa perubahan, maka projek kita ga perlu open source. Ini yang paling membedakannya dengan lisensi GPL lainnya. Misalkan kita menggunakan library Logback untuk logging pada projek kita, maka projek kita ga perlu dijadiin open source. Kecuali kalau kita bikin projek logging baru yang diduplikasi dari Logback, maka projek kita jadi wajib open source juga.

GPL v3.0

Walau ketat, GPL v2.0 memiliki kelemahan, yaitu hanya mewajibkan projek yang memanfaatkannya open source. Lisensinya ga melarang penguncian hardware. Misalkan ada orang yang memanfaatkan projek berlisensi GPL v2.0, mereka bisa aja menguncinya agar projek tersebut ga bisa diinstall sembarangan dan butuh chip khusus untuk membuka kuncinya🔒. Secara lisensi ini ga menyalahi aturan GPL v2.0 karena projeknya open source. Namun, secara etika ini ga sesuai dengan tujuan awal lisensi GPL. Oleh karena itu muncullah GPL v3.0 untuk mencegah hal ini. Contoh projeknya adalah GIMP, Bash, Ansible, dan lainnya. Aturan Attribution, State Changes, dan Copyleft masih sama dengan GPL v2.0 isinya. Aturan Distribution juga masih mirip dengan GPL v2.0, tapi sekarang kalau ada kunci maka cara membuka kunci dan menginstalnya juga harus didokumentasikan. Berbeda dengan GPL v2.0, di sini ada Patent Grant dan bisa batal kalau kita somasi projek ini duluan. Aturan Trademark Clause by default ga ada, tapi author originalnya diberi kebebasan secara terpisah mau menambahkan Trademark Clause atau tidak. Ini lisensi yang kurang disukai perusahaan komersial karena lebih ketat.

AGPL v3.0

Affero General Public License v3.0 lahir untuk menambal celah pada GPL v3.0 yang memiliki kelemahan di era SaaS seperti sekarang. Di GPL v3.0 projek kita hanya diwajibkan open source jika projek dengan library ini ikut didistribusikan pada file binary aplikasi projek kita. Misalkan ada DB yang menggunakan GPL v3.0 pada lisensinya. Perusahaan cloud seperti AWS bisa menjalankannya di environmentnya lalu didistribusikan ke customer dengan cara disewakan lewat internet sebagai Database-as-a-Service. Secara aturan ini ga menyalahi GPL v3.0 karena yang dilarang hanya distribusi binary aja. Sedangkan di sini distribusinya lewat internet. Makanya lahirlah AGPL v3.0🐣. Contoh projek yang menggunakan AGPL v3.0 adalah Redis, iText, Mastodon, dan beberapa projek lainnya. Aturan Attribution, State Changes, Copyleft, Patent Grant, dan Trademark Clause masih sama persis dengan GPL v3.0, perbedaannya hanya pada aturan Distribution. Sekarang aturannya jika didistribusikan ke orang lain lewat binary ataupun lewat internet maka projek kita harus open source. Jadi kita boleh menggunakannya tanpa perlu open source projek kita asal ga di-compile ke projek aplikasi kita dan ga didistribusikan lewat internet ke orang lain. Misalkan projek kita menggunakan iText untuk generate PDF, maka projek kita juga harus open source. Agar projek kita ga open source seluruhnya, kita harus pisahkan API service khusus generate PDF ini dan jadikan itu open source. Lalu service itu bisa kita panggil oleh projek utama kita lewat HTTP Call. Jadi library itu ga ikut di-compile di projek utama aplikasi kita sehingga projek aplikasi kita ga harus open source seluruhnya, hanya service itu doang yang open source. Atau kalau ga mau ribet ganti ke library lain yang lisensinya ga ketat. Lisensi ini juga kurang disukai perusahaan komersial karena aturannya lebih ketat lagi. Makanya sejak Redis ganti lisensi ke AGPL v3.0 sekarang udah ga bisa disewakan lewat cloud lagi. Untuk menggunakan Redis sekarang kita harus menyewa VM sendiri lalu menjalankan Redis di sana. Ini diperbolehkan karena kita menggunakan Redis langsung pada VM sendiri tanpa lewat distribusi. Atau kalau mau ganti aja ke Valkey yang masih bisa disewa lewat cloud provider. Biasanya projek yang memilih lisensi ini adalah projek milik suatu perusahaan yang punya kontribusi besar di open source. Mereka ga memungut biaya pada komunitas open source, tapi pada projek komersial yang ga bisa open source mereka menjual lisensi berbayar secara terpisah untuk membiayai proses pengembangannya.

Verdict

Setelah mengetahui lisensi-lisensi di atas kita jadi mengerti risikonya terhadap projek yang kita gunakan. Patuhi aturan main dari lisensi projek tersebut🫡. Jangan sampai kita melanggar aturan lisensi tersebut. Kalau mau aman gunakan projek yang aturan lisensinya ga ketat. Begitu juga saat kita memulai projek. Pastikan dulu tujuannya apa sebelum memilih lisensi. Pahami risikonya. Kalau lisensi yang kita pilih terlalu ketat orang-orang juga malas berkontribusi. Orang-orang banyak menyukai lisensi yang ga terlalu ketat biar ga ribet dan ga mau kena masalah di masa depan.

© 2026 · Ferry Suhandri