Thursday

19-06-2025 Vol 19

Github Licences Details and Comparisons

Memahami Lisensi GitHub: Panduan Lengkap dan Perbandingan

Lisensi GitHub merupakan aspek krusial dalam pengembangan perangkat lunak open source. Memilih lisensi yang tepat memastikan karya Anda dilindungi sekaligus memungkinkan orang lain untuk berkontribusi dan menggunakan kode Anda sesuai dengan persyaratan yang Anda tetapkan. Artikel ini akan membahas secara mendalam mengenai berbagai jenis lisensi GitHub, perbandingannya, serta bagaimana memilih lisensi yang paling sesuai dengan kebutuhan proyek Anda.

Daftar Isi

  1. Pengantar Lisensi GitHub
  2. Mengapa Lisensi Itu Penting?
  3. Jenis-Jenis Lisensi Open Source yang Umum
    1. Lisensi MIT
    2. Lisensi Apache 2.0
    3. Lisensi GPL (GNU General Public License)
      1. GPLv3
      2. GPLv2
    4. Lisensi LGPL (GNU Lesser General Public License)
    5. Lisensi BSD
      1. Lisensi BSD 2-Clause (“Simplified BSD License” atau “FreeBSD License”)
      2. Lisensi BSD 3-Clause (“New BSD License” atau “Modified BSD License”)
    6. Lisensi MPL (Mozilla Public License) 2.0
    7. Lisensi EPL (Eclipse Public License)
    8. The Unlicense
  4. Perbandingan Lisensi
    1. Lisensi Permisif vs. Copyleft
    2. Kompatibilitas Lisensi
    3. Tabel Perbandingan Lisensi
  5. Bagaimana Memilih Lisensi yang Tepat?
    1. Pertimbangan Utama
    2. Lisensi yang Direkomendasikan untuk Berbagai Kasus
  6. Menambahkan Lisensi ke Repositori GitHub Anda
  7. FAQ (Frequently Asked Questions)
  8. Kesimpulan

Pengantar Lisensi GitHub

GitHub adalah platform hosting kode yang sangat populer untuk kolaborasi pengembangan perangkat lunak dan kontrol versi. Namun, hanya menyimpan kode Anda di GitHub tidak secara otomatis memberikan izin kepada orang lain untuk menggunakan, memodifikasi, atau mendistribusikan kode tersebut. Lisensi adalah dokumen hukum yang menentukan syarat dan ketentuan di mana orang lain dapat menggunakan perangkat lunak Anda. Tanpa lisensi, kode Anda secara default dilindungi oleh hak cipta eksklusif, yang berarti tidak seorang pun dapat menggunakan, menyalin, mendistribusikan, atau membuat karya turunan dari kode Anda tanpa izin eksplisit dari Anda.

Mengapa Lisensi Itu Penting?

Memilih lisensi yang tepat sangat penting karena beberapa alasan:

  • Menentukan Hak Pengguna: Lisensi menjelaskan dengan tepat hak-hak yang dimiliki pengguna atas kode Anda. Ini memberikan kejelasan dan menghindari ambiguitas.
  • Mencegah Pelanggaran Hak Cipta: Tanpa lisensi, orang lain dapat secara tidak sengaja melanggar hak cipta Anda dengan menggunakan kode Anda tanpa izin. Lisensi memberikan kerangka hukum untuk penggunaan yang diizinkan.
  • Mendorong Kontribusi: Lisensi open source sering kali mendorong kontribusi dari pengembang lain karena mereka tahu bahwa mereka dapat menggunakan dan memodifikasi kode tanpa takut akan masalah hukum.
  • Membangun Komunitas: Dengan memberikan lisensi open source pada proyek Anda, Anda dapat membangun komunitas di sekitar proyek tersebut, meningkatkan adopsi, dan mempercepat pengembangan.
  • Kejelasan Hukum: Lisensi memberikan kejelasan hukum bagi semua pihak yang terlibat dalam proyek ini, termasuk pengembang, pengguna, dan kontributor.

Jenis-Jenis Lisensi Open Source yang Umum

Berikut adalah beberapa jenis lisensi open source yang paling umum digunakan, beserta penjelasan detailnya:

Lisensi MIT

Lisensi MIT adalah salah satu lisensi yang paling permisif. Ini berarti memberikan kebebasan maksimal kepada pengguna untuk menggunakan, memodifikasi, dan mendistribusikan kode Anda, bahkan untuk tujuan komersial. Persyaratan utamanya adalah bahwa salinan lisensi MIT dan pemberitahuan hak cipta disertakan dalam semua salinan atau sebagian besar perangkat lunak.

Fitur Utama Lisensi MIT:

  • Permisif: Pengguna bebas menggunakan, memodifikasi, dan mendistribusikan kode untuk tujuan apa pun.
  • Singkat dan Sederhana: Lisensi MIT sangat pendek dan mudah dipahami.
  • Komersial: Penggunaan komersial diizinkan.
  • Persyaratan Atribusi: Memerlukan penyertaan pemberitahuan hak cipta dan lisensi MIT dalam semua salinan atau sebagian besar perangkat lunak.
  • Disclaimers: Lisensi MIT menyediakan disclaimer bahwa penulis atau pemegang hak cipta tidak bertanggung jawab atas kerusakan apa pun yang timbul dari penggunaan perangkat lunak.

Teks Lisensi MIT:

    
Copyright (c) [tahun] [nama pemegang hak cipta]

Dengan ini diberikan izin, tanpa pungutan biaya, kepada setiap orang yang memperoleh salinan
perangkat lunak ini dan file dokumentasi terkait ("Perangkat Lunak"), untuk melakukan transaksi
pada Perangkat Lunak tanpa batasan, termasuk tanpa batasan hak untuk menggunakan, menyalin,
memodifikasi, menggabungkan, menerbitkan, mendistribusikan, mensublisensikan, dan/atau menjual
salinan Perangkat Lunak, dan untuk mengizinkan orang yang Perangkat Lunak disediakan
untuk melakukan demikian, tunduk pada ketentuan berikut:

Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus disertakan dalam semua
salinan atau sebagian besar Perangkat Lunak.

PERANGKAT LUNAK DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN APA PUN, TERSURAT MAUPUN TERSIRAT,
TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN
PELANGGARAN. DALAM KEADAAN APA PUN PEMEGANG HAK CIPTA ATAU PENULIS TIDAK BERTANGGUNG JAWAB
UNTUK KLAIM, KERUSAKAN ATAU KEWAJIBAN LAINNYA, BAIK DALAM TINDAKAN KONTRAK, TORT ATAU HAL LAIN, YANG TIMBUL DARI,
DI LUAR ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU TRANSAKSI LAIN DALAM PERANGKAT LUNAK.
    
  

Lisensi Apache 2.0

Lisensi Apache 2.0 adalah lisensi permisif lainnya yang populer yang memberikan hak yang luas kepada pengguna untuk menggunakan, memodifikasi, dan mendistribusikan kode Anda, termasuk untuk tujuan komersial. Lisensi Apache 2.0 juga memberikan perlindungan paten, yang merupakan fitur penting bagi banyak proyek. Pemberitahuan yang perlu disertakan meliputi pemberitahuan hak cipta, serta pemberitahuan yang menyatakan bahwa kode yang diturunkan telah dimodifikasi.

Fitur Utama Lisensi Apache 2.0:

  • Permisif: Pengguna bebas menggunakan, memodifikasi, dan mendistribusikan kode untuk tujuan apa pun.
  • Komersial: Penggunaan komersial diizinkan.
  • Perlindungan Paten: Memberikan perlindungan paten kepada pengguna.
  • Persyaratan Atribusi: Memerlukan penyertaan pemberitahuan hak cipta dan pemberitahuan tentang modifikasi apa pun yang dilakukan.
  • Kontribusi: Menjelaskan bagaimana kontribusi ke proyek harus ditangani.

Teks Lisensi Apache 2.0 (Sebagian):

    
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
    
  

Lisensi GPL (GNU General Public License)

Lisensi GPL adalah lisensi copyleft yang dirancang untuk memastikan bahwa semua karya turunan dari perangkat lunak berlisensi GPL juga berlisensi GPL. Ini berarti jika Anda menggunakan kode berlisensi GPL dalam proyek Anda, Anda harus melisensikan seluruh proyek Anda di bawah GPL. Tujuan utama GPL adalah untuk menjaga perangkat lunak bebas.

GPLv3

GPLv3 adalah versi terbaru dari GPL. Ini mengatasi beberapa masalah yang ada di GPLv2, termasuk masalah paten dan kompatibilitas dengan lisensi lain.

Fitur Utama GPLv3:

  • Copyleft Kuat: Memastikan bahwa semua karya turunan juga berlisensi GPLv3.
  • Perlindungan Paten: Lebih kuat dalam menangani masalah paten dibandingkan GPLv2.
  • Kompatibilitas: Kompatibel dengan beberapa lisensi lain, tetapi tidak semuanya.
  • Kebebasan: Menekankan kebebasan pengguna untuk menjalankan, mempelajari, mendistribusikan, dan memodifikasi perangkat lunak.

GPLv2

GPLv2 adalah versi sebelumnya dari GPL dan masih banyak digunakan. Namun, GPLv3 umumnya direkomendasikan untuk proyek baru karena perlindungan paten yang lebih baik dan beberapa perbaikan lainnya.

Fitur Utama GPLv2:

  • Copyleft Kuat: Memastikan bahwa semua karya turunan juga berlisensi GPLv2.
  • Kurang Perlindungan Paten: Kurang kuat dalam menangani masalah paten dibandingkan GPLv3.
  • Banyak Digunakan: Digunakan oleh banyak proyek open source yang mapan.

Lisensi LGPL (GNU Lesser General Public License)

LGPL adalah varian dari GPL yang lebih permisif. Ini memungkinkan Anda untuk menautkan ke perpustakaan berlisensi LGPL dari perangkat lunak berpemilik tanpa harus melisensikan seluruh perangkat lunak Anda di bawah GPL. Namun, jika Anda memodifikasi perpustakaan berlisensi LGPL, Anda harus melepaskan modifikasi Anda di bawah LGPL.

Fitur Utama LGPL:

  • Copyleft Lemah: Hanya memengaruhi modifikasi pada perpustakaan yang berlisensi.
  • Tautan dengan Perangkat Lunak Berpemilik: Memungkinkan tautan dengan perangkat lunak berpemilik tanpa memerlukan lisensi GPL penuh.
  • Modifikasi Harus Dirilis: Jika Anda memodifikasi perpustakaan, modifikasi Anda harus dirilis di bawah LGPL.

Lisensi BSD

Lisensi BSD adalah keluarga lisensi permisif yang mirip dengan lisensi MIT. Ada beberapa varian lisensi BSD, yang paling umum adalah lisensi BSD 2-Clause dan lisensi BSD 3-Clause.

Lisensi BSD 2-Clause (“Simplified BSD License” atau “FreeBSD License”)

Lisensi ini adalah salah satu lisensi paling sederhana dan permisif yang tersedia. Ini hanya mensyaratkan bahwa pemberitahuan hak cipta dan klausul disclaimer disertakan dalam semua salinan atau sebagian besar perangkat lunak.

Lisensi BSD 3-Clause (“New BSD License” atau “Modified BSD License”)

Ini sedikit lebih ketat daripada lisensi BSD 2-Clause karena menambahkan klausul yang melarang penggunaan nama pemberi lisensi untuk mendukung atau mempromosikan produk yang berasal dari perangkat lunak tanpa izin tertulis khusus sebelumnya.

Fitur Utama Lisensi BSD:

  • Permisif: Pengguna bebas menggunakan, memodifikasi, dan mendistribusikan kode untuk tujuan apa pun.
  • Singkat dan Sederhana: Lisensi BSD sangat pendek dan mudah dipahami.
  • Komersial: Penggunaan komersial diizinkan.
  • Persyaratan Atribusi: Memerlukan penyertaan pemberitahuan hak cipta dan lisensi BSD dalam semua salinan atau sebagian besar perangkat lunak.

Lisensi MPL (Mozilla Public License) 2.0

MPL 2.0 adalah lisensi copyleft lemah yang dirancang untuk menyeimbangkan kebebasan open source dengan kemampuan untuk menggunakan kode dalam perangkat lunak berpemilik. Ini memungkinkan Anda untuk menggabungkan kode berlisensi MPL dengan kode berpemilik, tetapi setiap modifikasi pada kode berlisensi MPL harus dirilis di bawah MPL.

Fitur Utama MPL 2.0:

  • Copyleft Lemah: Hanya memengaruhi modifikasi pada file yang berlisensi MPL.
  • Kombinasi dengan Kode Berpemilik: Memungkinkan kombinasi dengan kode berpemilik.
  • Modifikasi Harus Dirilis: Modifikasi pada file berlisensi MPL harus dirilis di bawah MPL.

Lisensi EPL (Eclipse Public License)

EPL adalah lisensi copyleft lemah yang digunakan oleh Eclipse Foundation. Mirip dengan MPL, EPL memungkinkan Anda untuk menggabungkan kode berlisensi EPL dengan kode berpemilik, tetapi setiap modifikasi pada kode berlisensi EPL harus dirilis di bawah EPL. EPL juga memiliki klausa paten yang memberikan perlindungan paten kepada kontributor.

Fitur Utama EPL:

  • Copyleft Lemah: Hanya memengaruhi modifikasi pada file yang berlisensi EPL.
  • Kombinasi dengan Kode Berpemilik: Memungkinkan kombinasi dengan kode berpemilik.
  • Modifikasi Harus Dirilis: Modifikasi pada file berlisensi EPL harus dirilis di bawah EPL.
  • Klausa Paten: Memberikan perlindungan paten kepada kontributor.

The Unlicense

The Unlicense adalah pernyataan domain publik yang ditulis dengan cermat yang menawarkan kepada siapa pun hak untuk menggunakan, memodifikasi, dan mendistribusikan perangkat lunak untuk tujuan apa pun, komersial atau non-komersial, tanpa atribusi. Ini pada dasarnya menempatkan kode di domain publik.

Fitur Utama The Unlicense:

  • Domain Publik: Memperlakukan kode seolah-olah berada di domain publik.
  • Tidak Ada Persyaratan: Tidak ada persyaratan atribusi atau persyaratan lainnya.
  • Sangat Permisif: Memberikan kebebasan maksimal kepada pengguna.

Perbandingan Lisensi

Memilih lisensi yang tepat memerlukan pemahaman tentang perbedaan antara berbagai jenis lisensi. Bagian ini akan membahas perbandingan utama antara lisensi open source yang umum.

Lisensi Permisif vs. Copyleft

Perbedaan utama antara lisensi adalah apakah mereka permisif atau copyleft.

  • Lisensi Permisif: Memberikan kebebasan maksimal kepada pengguna untuk menggunakan, memodifikasi, dan mendistribusikan kode Anda, bahkan untuk tujuan komersial. Contohnya termasuk lisensi MIT, Apache 2.0, dan BSD.
  • Lisensi Copyleft: Memastikan bahwa semua karya turunan dari perangkat lunak berlisensi copyleft juga berlisensi copyleft. Ini bertujuan untuk menjaga perangkat lunak bebas. Contohnya termasuk lisensi GPL dan LGPL.

Kompatibilitas Lisensi

Kompatibilitas lisensi adalah kemampuan untuk menggabungkan kode berlisensi di bawah lisensi yang berbeda. Beberapa lisensi tidak kompatibel satu sama lain, yang berarti Anda tidak dapat menggabungkan kode berlisensi di bawah lisensi tersebut dalam proyek yang sama.

Misalnya, GPLv2 dan Apache 2.0 tidak kompatibel. Anda tidak dapat menggabungkan kode berlisensi GPLv2 dengan kode berlisensi Apache 2.0 dalam proyek yang sama.

Tabel Perbandingan Lisensi

Berikut adalah tabel yang membandingkan fitur utama dari berbagai lisensi open source yang umum:

Lisensi Jenis Komersial Persyaratan Atribusi Perlindungan Paten Copyleft Kompatibilitas
MIT Permisif Ya Ya Tidak Jelas Tidak Sebagian Besar
Apache 2.0 Permisif Ya Ya Ya Tidak Sebagian Besar
GPLv3 Copyleft Kuat Ya Ya Ya Ya Dengan Persyaratan
LGPL Copyleft Lemah Ya Ya Tidak Jelas Ya (Untuk Modifikasi) Lebih Kompatibel
BSD Permisif Ya Ya Tidak Jelas Tidak Sebagian Besar
MPL 2.0 Copyleft Lemah Ya Ya Tidak Jelas Ya (Untuk Modifikasi) Lebih Kompatibel
EPL Copyleft Lemah Ya Ya Ya Ya (Untuk Modifikasi) Lebih Kompatibel
The Unlicense Domain Publik Ya Tidak Tidak Relevan Tidak Paling Kompatibel

Bagaimana Memilih Lisensi yang Tepat?

Memilih lisensi yang tepat untuk proyek Anda adalah keputusan penting. Berikut adalah beberapa pertimbangan utama yang perlu diingat:

Pertimbangan Utama

  • Tujuan Proyek: Apa yang ingin Anda capai dengan proyek Anda? Apakah Anda ingin mendorong adopsi luas dan penggunaan komersial, atau apakah Anda ingin memastikan bahwa semua karya turunan juga bebas?
  • Jenis Kode: Apakah Anda menulis perpustakaan yang akan digunakan oleh orang lain, atau apakah Anda menulis aplikasi yang berdiri sendiri?
  • Kompatibilitas: Apakah Anda perlu kompatibel dengan lisensi lain?
  • Perlindungan Paten: Apakah Anda memerlukan perlindungan paten?
  • Preferensi Pribadi: Lisensi apa yang paling Anda sukai dan yakini selaras dengan nilai-nilai Anda?

Lisensi yang Direkomendasikan untuk Berbagai Kasus

  • Untuk perpustakaan: Lisensi MIT atau Apache 2.0 sering kali menjadi pilihan yang baik karena mereka permisif dan mendorong penggunaan yang luas. LGPL juga merupakan pilihan yang baik jika Anda ingin mengizinkan tautan dengan perangkat lunak berpemilik.
  • Untuk aplikasi: Lisensi GPL sering kali menjadi pilihan yang baik jika Anda ingin memastikan bahwa semua karya turunan juga bebas. Lisensi MIT atau Apache 2.0 juga merupakan pilihan yang baik jika Anda ingin mendorong adopsi yang luas dan penggunaan komersial.
  • Untuk proyek kecil: Lisensi MIT atau BSD seringkali merupakan pilihan yang baik karena mereka sederhana dan mudah dipahami.

Menambahkan Lisensi ke Repositori GitHub Anda

GitHub memudahkan untuk menambahkan lisensi ke repositori Anda. Saat Anda membuat repositori baru, GitHub akan meminta Anda untuk memilih lisensi dari daftar lisensi yang umum.

Anda juga dapat menambahkan lisensi ke repositori yang ada dengan membuat file bernama LICENSE atau LICENSE.txt di root repositori Anda. File ini harus berisi teks lengkap lisensi yang Anda pilih.

Setelah Anda menambahkan lisensi ke repositori Anda, GitHub akan secara otomatis menampilkan lisensi di halaman repositori Anda dan di daftar file repositori.

FAQ (Frequently Asked Questions)

  • Apa yang terjadi jika saya tidak memilih lisensi? Jika Anda tidak memilih lisensi, kode Anda secara default dilindungi oleh hak cipta eksklusif, yang berarti tidak seorang pun dapat menggunakan, menyalin, mendistribusikan, atau membuat karya turunan dari kode Anda tanpa izin eksplisit dari Anda.
  • Bisakah saya mengubah lisensi saya nanti? Ya, Anda dapat mengubah lisensi Anda nanti, tetapi penting untuk mempertimbangkan implikasi dari perubahan tersebut. Anda mungkin perlu mendapatkan izin dari semua kontributor proyek sebelum mengubah lisensi.
  • Di mana saya bisa mendapatkan bantuan lebih lanjut tentang memilih lisensi? Ada banyak sumber daya online yang tersedia untuk membantu Anda memilih lisensi yang tepat untuk proyek Anda. Beberapa sumber daya yang bermanfaat meliputi:
  • Apa itu “dual-licensing”? Dual-licensing adalah praktik menyediakan perangkat lunak di bawah dua lisensi yang berbeda. Ini sering dilakukan untuk memungkinkan pengguna memilih lisensi yang paling sesuai dengan kebutuhan mereka. Misalnya, sebuah proyek mungkin dilisensikan di bawah GPL (untuk penggunaan open source) dan lisensi komersial (untuk penggunaan berpemilik).

Kesimpulan

Memahami lisensi GitHub adalah kunci untuk berkontribusi secara efektif dan legal dalam ekosistem open source. Dengan memilih lisensi yang sesuai, Anda melindungi karya Anda sekaligus membuka pintu bagi kolaborasi dan inovasi. Pertimbangkan dengan cermat tujuan proyek Anda dan hak yang ingin Anda berikan kepada orang lain saat memilih lisensi. Dengan panduan ini, Anda seharusnya memiliki pemahaman yang lebih baik tentang berbagai opsi lisensi dan cara memilih yang paling sesuai untuk proyek Anda.

“`

omcoding

Leave a Reply

Your email address will not be published. Required fields are marked *