DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Apa itu open source? Apa manfaatnya? Bagaimana cara berkontribusi ke open source? Apa saja yang perlu dipelajari? Apa saja yang perlu diperhatikan?
Daftar Isi:
Kamu pernah mendegar istilah proyek open source? Tahu tidak, open source artinya bukan sekedar gratis. Tapi ada banyak hal yang bisa kamu pelajari dari proyek open source. Apa saja itu? Yuk kita bahas.
Open Source adalah istilah yang merujuk pada perangkat lunak yang dibuat dengan sumber kode yang bisa diakses dan diubah oleh siapa saja. Filsafat open source mendorong transparansi, kolaborasi, dan berbagi, memungkinkan orang-orang untuk membuat dan meningkatkan perangkat lunak bersama.
Namanya “open source” karena kode sumbernya tersedia secara bebas untuk publik, dan siapa saja bisa melihat, memperbaiki, dan menambahkan fungsionalitas sesuai kebutuhan mereka.
Ini menjamin perangkat lunak selalu mengikuti evolusi kebutuhan pengguna dan cepat menyesuaikan diri dengan perubahan. Ini juga mendorong inovasi, karena banyak kepala memikirkan dan memperbaiki kode bisa menciptakan solusi lebih baik dan lebih cepat dari pada satu orang atau tim kecil.
Open source bisa berupa perangkat lunak desktop yang umum, seperti sistem operasi Linux, atau bisa juga berupa teknologi perangkat lunak yang sangat spesifik untuk suatu industri, misalnya perangkat lunak untuk pemodelan data genetik atau aplikasi web.
Untuk membuat open source kamu butuh skill coding. Berikut tips belajar coding untuk pemula
Dengan membuat perangkat lunak open source, pengembang dapat memanfaatkan keahlian dan input dari komunitas seluruh dunia, bukan hanya pikirannya sendiri. Ini dapat menghasilkan perangkat lunak yang lebih baik dan lebih cepat, karena banyak pikiran yang berkontribusi.
Perangkat lunak open source memberikan transparansi penuh tentang apa yang dilakukan oleh kode. Ini penting bagi banyak pengguna dan organisasi yang tidak ingin bergantung pada perangkat lunak yang perilakunya mungkin tidak sepenuhnya diketahui. Mereka juga dapat mengubah dan menyesuaikan perangkat lunak tersebut sesuai kebutuhan mereka.
Perangkat lunak open source juga dapat menjadi alat yang hebat untuk belajar dan mengajar tentang pemrograman dan sistem. Kode sumber yang tersedia untuk umum memungkinkan orang lain untuk belajar dari kode tersebut, dan memberi mereka kesempatan untuk berkontribusi dan belajar dalam prosesnya.
Perangkat lunak open source menawarkan kebebasan untuk digunakan, dipelajari, didistribusikan ulang, dan dimodifikasi. Ini berarti bahwa pengguna tidak dibatasi oleh lisensi yang mungkin mencegah mereka menggunakan perangkat lunak dengan cara tertentu.
Membuat perangkat lunak open source bisa jadi cara yang efektif untuk mengurangi biaya, karena tidak perlu mengeluarkan uang untuk lisensi. Selain itu, perangkat lunak tersebut bisa diadopsi dan diadaptasi oleh siapa saja, sehingga dapat menyebar dengan cepat dan efisien.
Perangkat lunak open source seringkali mendukung dan mendorong standar terbuka, yang memungkinkan interoperabilitas dan fleksibilitas lebih besar dibandingkan dengan perangkat lunak proprietary. Ini bisa jadi alasan penting untuk membuat perangkat lunak open source.
Karena perangkat lunak open source dapat diadopsi dan dikelola oleh komunitas, ini bisa memastikan keberlanjutan jangka panjang, bahkan jika pengembang aslinya berhenti mengembangkan. Ini berbeda dengan perangkat lunak closed source, yang bisa menjadi usang atau berhenti didukung jika perusahaan pengembangnya tutup.
Membuat perangkat lunak open source bisa menjadi cara yang efektif untuk menunjukkan kemampuan dan keterampilan pemrograman kepada calon pemberi kerja. Ini bisa menjadi bagian penting dari portofolio digital seseorang, yang menunjukkan bukti nyata dari apa yang telah mereka kerjakan dan capai. Dengan berkontribusi pada proyek open source, individu juga dapat membangun reputasi dalam komunitas teknologi, yang bisa membuka lebih banyak peluang kerja dan kolaborasi di masa depan.
Walaupun banyak proyek open source dibuat dan dikelola secara sukarela, ada juga peluang untuk menghasilkan pendapatan. Beberapa cara yang bisa digunakan antara lain:
Open source memberikan akses kepada kode sumber, yang berarti pengguna dapat melihat dan memahami secara detail bagaimana sistem bekerja. Ini menciptakan tingkat transparansi yang tinggi dan memungkinkan pengguna untuk melakukan audit sendiri atas kualitas dan keamanan kode.
Dengan perangkat lunak open source, pengguna dapat menyesuaikan dan memodifikasi kode sesuai dengan kebutuhan mereka, yang seringkali tidak dapat dilakukan dengan perangkat lunak closed source.
Perangkat lunak open source seringkali gratis untuk digunakan dan didistribusikan, yang berarti biaya awal dan biaya pemeliharaan bisa lebih rendah dibandingkan dengan perangkat lunak closed source.
Perangkat lunak open source seringkali dikembangkan oleh komunitas yang berarti berbagai pihak dapat berkontribusi, membantu mengidentifikasi bug dan menambahkan fitur baru, yang berpotensi mempercepat inovasi.
Komunitas pengguna dan pengembang yang aktif dan besar sering kali ada di belakang proyek-proyek open source, yang berarti dukungan dan bantuan dapat dengan mudah ditemukan melalui forum, grup, dan platform online lainnya.
Tidak semua proyek open source memiliki dukungan resmi dari organisasi atau perusahaan. Dalam banyak kasus, pengguna harus bergantung pada komunitas untuk mendapatkan bantuan dan dukungan.
Beberapa perangkat lunak open source bisa lebih sulit digunakan daripada alternatif closed source mereka, terutama bagi pengguna yang tidak teknis.
Perangkat lunak open source bisa lebih sering memerlukan pembaharuan, dan tugas ini biasanya jatuh pada pengguna atau administrator sistem. Dalam beberapa kasus, proyek bisa berhenti dikembangkan, yang berarti tidak ada lagi pembaruan keamanan dan fitur.
Meskipun transparansi dari open source bisa membantu mengidentifikasi dan memperbaiki kelemahan keamanan, juga bisa menjadi pedang bermata dua, karena aktor jahat bisa mencari dan mengeksploitasi kelemahan tersebut.
Beberapa perangkat lunak open source mungkin tidak memiliki fitur-fitur tertentu yang ditawarkan oleh alternatif closed source mereka, atau fitur tersebut mungkin tidak sepolished atau seintuitif perangkat lunak closed source.
Closed source atau sumber tertutup adalah jenis perangkat lunak yang kode sumbernya tidak tersedia untuk publik. Dalam arti lain, pengguna tidak dapat melihat, memodifikasi, atau mendistribusikan kode sumber dari perangkat lunak tersebut.
Meskipun perangkat lunak closed source bisa didapat secara gratis, biasanya pengguna harus membayar untuk memperoleh lisensi dan fitur lengkapnya. Tidak seperti perangkat lunak open source, perusahaan atau individu yang menciptakan perangkat lunak closed source mempertahankan kontrol penuh atas produknya.
Hal ini dapat membantu menjaga kestabilan dan keamanan software, tetapi juga membatasi fleksibilitas pengguna, karena merekalah yang menentukan bagaimana software tersebut harus digunakan dan tidak memberikan ruang bagi pengguna untuk memodifikasi sesuai keinginan mereka. Secara keseluruhan, closed source adalah jenis perangkat lunak yang memprioritaskan hak cipta dan kontrol pengembang pada produknya.
Berikut ini adalah beberapa perbedaan utama antara perangkat lunak open source dan closed source:
Ini adalah perbedaan utama antara kedua jenis perangkat lunak ini. Open source berarti bahwa kode sumbernya tersedia secara bebas untuk umum, sedangkan closed source berarti bahwa kode sumbernya tidak tersedia untuk umum.
Dalam perangkat lunak open source, pengguna memiliki kebebasan untuk memodifikasi dan menyesuaikan kode sumber sesuai dengan kebutuhan mereka. Sementara itu, dalam perangkat lunak closed source, pengguna tidak dapat memodifikasi kode sumber.
Biasanya, perangkat lunak open source tersedia secara gratis, sedangkan perangkat lunak closed source biasanya memerlukan pembelian lisensi untuk digunakan.
Perangkat lunak closed source biasanya memiliki dukungan teknis profesional dari perusahaan yang memproduksinya. Sebaliknya, dukungan untuk perangkat lunak open source biasanya berasal dari komunitas pengguna dan pengembang perangkat lunak tersebut.
Dalam perangkat lunak closed source, keamanan tergantung pada tim pengembang perusahaan. Dalam perangkat lunak open source, karena banyak orang memiliki akses ke kode sumber, keamanannya tergantung pada komunitas pengguna dan pengembang perangkat lunak.
Dalam perangkat lunak closed source, update dan pemeliharaan dilakukan oleh perusahaan yang memproduksinya. Dalam perangkat lunak open source, update dan pemeliharaan dapat dilakukan oleh siapa saja yang memiliki pengetahuan dan kemampuan untuk melakukannya.
Dalam perangkat lunak open source, berbagai pihak dapat berkontribusi dalam pengembangannya, sehingga proses pengembangan bisa lebih cepat. Sebaliknya, dalam perangkat lunak closed source, hanya tim pengembang perusahaan yang dapat mengembangkan perangkat lunak tersebut.
Dalam perangkat lunak closed source, perusahaan atau individu biasanya memiliki hak eksklusif atas kode sumber. Dalam perangkat lunak open source, tidak ada individu atau entitas yang memiliki hak eksklusif atas kode sumber.
Proyek open source bekerja dengan cara yang berbeda dari proyek perangkat lunak tradisional. Berikut ini adalah langkah-langkah umum yang digunakan dalam proyek open source:
Pengembang atau kelompok pengembang memiliki ide untuk suatu proyek dan mulai menulis kode. Mereka memutuskan untuk membuatnya open source, jadi mereka memilih lisensi open source yang sesuai dan membuat kode mereka tersedia secara publik, biasanya di platform seperti GitHub atau GitLab.
Pengembangan pada proyek open source seringkali bersifat kolaboratif. Selain pengembang asli, siapa saja dari komunitas dapat berkontribusi pada proyek tersebut. Kontributor bisa menambahkan fitur baru, memperbaiki bug, menulis dokumentasi, dan lainnya. Kontribusi ini biasanya dikirimkan melalui “pull request” dan ditinjau oleh pengelola proyek sebelum digabungkan ke dalam kode utama.
Dukungan untuk pengguna perangkat lunak biasanya disediakan melalui forum komunitas, daftar email, atau platform lainnya. Pengelola proyek dan kontributor lainnya bisa membantu menjawab pertanyaan dan memandu pengguna. Pemeliharaan kode, termasuk pembaruan dan perbaikan bug, dilakukan oleh pengelola proyek dan kontributor.
Versi baru perangkat lunak biasanya dirilis secara berkala, termasuk penambahan fitur dan perbaikan bug. Proses ini biasanya dikelola oleh pengelola proyek atau tim inti.
Seiring berjalannya waktu, proyek dapat diterima dan digunakan oleh lebih banyak pengguna. Feedback dari pengguna dapat membantu mengarahkan pengembangan dan peningkatan proyek. Siklus ini - adopsi, feedback, iterasi - dapat berlanjut sepanjang umur proyek.
Perlu diingat bahwa setiap proyek open source mungkin berbeda dalam hal cara kerja, struktur organisasi, dan tata kelola. Proses di atas adalah gambaran umum dan dapat berubah tergantung pada kebutuhan dan tujuan spesifik proyek.
Berikut link dari opensource.org. Daftar OSI Approved Licenses
Berikut ini beberapa jenis lisensi perangkat lunak open source yang umum digunakan:
Lisensi ini sangat sederhana dan fleksibel. Dengan lisensi ini, Anda dapat menggunakan, menyalin, memodifikasi, dan mendistribusikan ulang perangkat lunak. Anda juga bisa menggunakan perangkat lunak tersebut dalam proyek komersial. Anda hanya perlu menyertakan salinan lisensi dan hak cipta asli dalam salinan Anda.
GPL adalah lisensi perangkat lunak gratis yang sangat populer. Dengan lisensi ini, pengguna memiliki kebebasan untuk menggunakan, menyalin, dan memodifikasi perangkat lunak. Namun, jika Anda mendistribusikan ulang perangkat lunak atau modifikasi Anda, Anda harus melakukannya di bawah lisensi yang sama.
Lisensi ini memungkinkan penggunaan, distribusi, dan modifikasi perangkat lunak, baik untuk kepentingan komersial maupun non-komersial. Lisensi ini juga memberikan perlindungan hukum kepada kontributor jika terjadi sengketa tentang hak cipta.
BSD (Berkeley Software Distribution) licenses ada dalam beberapa variasi, termasuk BSD 2-Clause, BSD 3-Clause, dan BSD 4-Clause. Semuanya memberikan kebebasan yang luas untuk menggunakan dan mendistribusikan perangkat lunak, tetapi berbeda dalam beberapa persyaratan, seperti pengakuan dan larangan penggunaan nama kontributor untuk promosi.
Meski lebih sering digunakan untuk karya seperti tulisan dan fotografi, Creative Commons licenses juga bisa digunakan untuk perangkat lunak. Ada beberapa variasi lisensi, beberapa memungkinkan penggunaan komersial dan beberapa memerlukan karya turunan untuk dibagikan dengan lisensi yang sama.
dan masih banyak lagi!
Berikut ini adalah beberapa contoh dari proyek open source yang populer dan berpengaruh, mulai dari OS (operating system), software hingga bahasa pemrograman:
Linux adalah sistem operasi open source yang sangat populer. Dirilis pertama kali oleh Linus Torvalds pada tahun 1991, Linux sekarang digunakan di berbagai platform, mulai dari server, sistem embedded, hingga smartphone melalui Android, yang juga open source.
Git adalah sistem kontrol versi terdistribusi yang diciptakan oleh Linus Torvalds. Git digunakan oleh jutaan pengembang di seluruh dunia dan menjadi dasar dari layanan seperti GitHub dan GitLab.
Apache HTTP Server adalah server web open source yang sangat populer. Ini adalah bagian penting dari banyak infrastruktur web dan memiliki peran penting dalam pertumbuhan awal World Wide Web.
MySQL adalah sistem manajemen basis data relasional (RDBMS) yang open source. Ini digunakan oleh banyak aplikasi web, termasuk platform seperti WordPress dan Drupal.
Python adalah bahasa pemrograman tingkat tinggi yang open source. Python digunakan dalam berbagai bidang, termasuk pengembangan web, data science, AI, dan banyak lagi.
TensorFlow adalah perpustakaan open source untuk machine learning dan neural networks. TensorFlow dikembangkan oleh Google dan digunakan dalam banyak aplikasi AI.
Visual Studio Code (VS Code) adalah editor kode sumber terbuka yang dikembangkan oleh Microsoft. VS Code mendukung berbagai bahasa pemrograman dan fitur, seperti debugging, kontrol versi Git, dan penyelesaian kode otomatis.
Kubernetes adalah sistem open source untuk manajemen kontainer, yang memungkinkan penyebaran, skalabilitas, dan manajemen aplikasi kontainer. Kubernetes awalnya dikembangkan oleh Google dan sekarang menjadi bagian dari Cloud Native Computing Foundation.
Docker adalah platform open source yang memudahkan pengembangan, pengiriman, dan menjalankan aplikasi di dalam kontainer. Kontainerisasi memungkinkan pengembang untuk membungkus aplikasi dan dependensinya dalam satu paket yang dapat berjalan di mana saja.
Node.js adalah runtime JavaScript open source yang memungkinkan pengembangan aplikasi server-side menggunakan JavaScript. Hal ini telah mempengaruhi popularitas JavaScript sebagai bahasa pemrograman untuk pengembangan full-stack.
Berikut adalah beberapa tool yang sering digunakan dalam pengembangan proyek open source:
Git adalah sistem kontrol versi terdistribusi yang paling banyak digunakan dalam proyek open source. Git memungkinkan beberapa orang untuk bekerja pada proyek yang sama tanpa mengganggu pekerjaan masing-masing.
GitHub, GitLab, dan Bitbucket adalah platform hosting kode sumber yang populer. Mereka menyediakan repositori Git berbasis cloud, serta fitur lain seperti pelacakan masalah, manajemen proyek, dan alat kolaborasi.
Tool seperti Visual Studio Code, Atom, dan Sublime Text dapat membantu pengembang menulis dan memeriksa kode. Mereka menawarkan fitur seperti penyorotan sintaks, penyelesaian kode otomatis, dan integrasi Git.
Tool seperti npm (Node.js), pip (Python), dan Maven (Java) digunakan untuk mengelola dependensi proyek, yang berarti mereka menjaga kontrol atas versi pustaka dan alat yang digunakan oleh proyek.
Travis CI, Jenkins, dan CircleCI adalah alat yang dapat digunakan untuk otomatisasi pengujian dan build, yang membantu memastikan bahwa perubahan kode tidak merusak apa pun dan mempermudah penyebaran perangkat lunak.
Dalam proyek berskala besar, alat seperti Jira, Trello, atau fitur Issues dan Projects di GitHub dapat digunakan untuk mengatur tugas, pelacakan bug, dan manajemen proyek.
Komunikasi adalah kunci dalam proyek open source. Tool seperti Slack, Discord, atau Zulip digunakan untuk diskusi langsung, sementara Google Groups atau forum lainnya mungkin digunakan untuk diskusi yang lebih terstruktur. Layanan seperti Mailchimp juga bisa digunakan untuk mengirimkan update proyek melalui email.
Semua alat ini berfungsi untuk memfasilitasi berbagai aspek dari proyek open source, dari penulisan kode hingga manajemen proyek dan komunikasi. Pilihan alat akan bergantung pada preferensi tim, skala proyek, dan teknologi yang digunakan.
Berikut adalah beberapa langkah umum untuk berkontribusi ke proyek open source:
Langkah pertama dalam berkontribusi adalah memilih proyek yang menarik bagi Anda. Ini bisa menjadi proyek yang Anda gunakan secara pribadi atau proyek yang Anda temukan menarik.
Setelah memilih proyek, luangkan waktu untuk memahami struktur proyek, seperti bagaimana kode disusun dan bagaimana proses kontribusi bekerja. Ini sering dijelaskan dalam file README atau CONTRIBUTING dalam repositori proyek.
Ada banyak cara untuk berkontribusi pada proyek open source. Anda bisa menulis kode, memperbaiki bug, menambahkan fitur, memperbaiki dokumentasi, melaporkan bug, menguji perubahan, dan sebagainya. Pilih sesuatu yang sesuai dengan keterampilan dan minat Anda.
Anda mungkin perlu mengatur lingkungan pengembangan di komputer Anda untuk dapat bekerja pada proyek. Ini mungkin termasuk cloning repositori proyek, menginstal dependensi, dan mengatur alat pengembangan.
Setelah Anda tahu apa yang ingin Anda lakukan, lakukan perubahan yang diperlukan. Pastikan untuk mengikuti standar kode dan praktek terbaik proyek.
Setelah Anda membuat perubahan, Anda dapat mengirimkannya ke proyek. Ini biasanya melibatkan “commit” perubahan Anda ke repositori Git Anda, lalu “push” perubahan ke GitHub atau platform lainnya, dan akhirnya membuat “pull request” agar perubahan Anda diulas dan digabungkan ke dalam proyek.
Setelah Anda mengajukan pull request, pemelihara proyek atau kontributor lainnya akan meninjau kontribusi Anda. Mereka mungkin memiliki umpan balik atau perubahan yang mereka ingin Anda buat sebelum kontribusi Anda dapat diterima.
Setelah review, mungkin perlu beberapa perubahan lebih lanjut pada bagian Anda. Ini bisa termasuk memperbaiki masalah, menjawab pertanyaan, atau melakukan perubahan berdasarkan umpan balik.
Setelah kontribusi Anda diterima, akan digabungkan ke dalam kode utama proyek. Selamat, Anda baru saja berkontribusi pada proyek open source!
Ingatlah bahwa setiap proyek memiliki cara sendiri dalam hal kontribusi, jadi selalu baca dokumentasi proyek dan ikuti panduan mereka.
Open source sebagai konsep telah ada dalam beberapa bentuk sejak awal sejarah komputasi, tetapi istilah dan gerakan modern “open source” tidak benar-benar terbentuk sampai akhir 1990-an. Berikut ini adalah tinjauan singkat tentang sejarah open source:
Pada awalnya, perangkat lunak sering kali diberikan secara gratis bersama dengan perangkat keras komputer. Kode sumber terbuka dan dimodifikasi oleh pengguna adalah praktik yang umum. Namun, seiring dengan berkembangnya industri perangkat lunak komersial pada 1970-an, perusahaan mulai membatasi akses ke kode sumber mereka.
Pada tahun 1983, Richard Stallman, seorang programmer di MIT, memulai proyek GNU dan Free Software Foundation (FSF). Tujuannya adalah untuk menciptakan sistem operasi yang sepenuhnya bebas dan terbuka, di mana pengguna memiliki kebebasan untuk menjalankan, mempelajari, membagikan, dan memodifikasi perangkat lunak. Ini melahirkan konsep “perangkat lunak bebas” dan GNU General Public License (GPL), salah satu lisensi open source pertama.
Meskipun gerakan perangkat lunak bebas telah mengembangkan banyak perangkat lunak terbuka, istilah “open source” sendiri baru diperkenalkan pada tahun 1998 oleh kelompok yang termasuk Eric Raymond dan Bruce Perens. Tujuan mereka adalah untuk mempromosikan ide-ide perangkat lunak bebas ke bisnis dan industri lebih luas, dengan penekanan pada manfaat praktis seperti kolaborasi dan inovasi cepat. Open Source Initiative (OSI) dibentuk dan mendefinisikan “Open Source Definition”.
Sejak itu, open source telah menjadi bagian penting dari industri teknologi. Banyak perusahaan teknologi besar, termasuk Google, Microsoft, dan IBM, sekarang menggunakan, berkontribusi pada, dan bahkan menghasilkan proyek open source. Platform kolaborasi seperti GitHub telah mempermudah bagi pengembang untuk berkolaborasi pada proyek open source. Dan proyek open source seperti Linux, Apache Web Server, dan sistem manajemen basis data MySQL telah menjadi fondasi bagi sebagian besar infrastruktur internet modern.
Lebih detail: History of free and open source software