Catatan Kecil Dari Hacktoberfest

Muhammad Syukur Abadi
8 min readNov 10, 2021

--

Photo by airfocus on Unsplash

Pendahuluan

Bulan Oktober menjadi “lebaran” para pemrogram (programmer). “Lebaran” ini dikenal sebagai Hacktoberfest. Hacktoberfest merupakan gelaran tahunan yang diselenggarakan oleh DigitalOcean. DigitalOcean menjadi penyelenggara resmi, membagikan t-shirt sebanyak 50.000 buah kepada developer yang berhasil membuat pull request sebanyak 4 kali pada repositori berlabel “Hacktoberfest” selama bulan Oktober. Tahun ini, bagi developer yang tidak kebagian jatah t-shirt, mereka bisa claim hadiah lain berupa penanaman satu buah pohon.

Setidaknya selama kurang lebih dua tahun saya belajar pemrograman secara resmi di institusi pendidikan, ini merupakan kali pertama saya mengikuti Hacktoberfest. Pada kali pertama ini, banyak pelajaran yang saya dapatkan, mulai dari bagaimana menulis kode sesuai paradigma bahasa pemrograman yang digunakan hingga bagaimana mengomunikasikan ide kepada orang lain. Lewat tulisan ini, saya ingin berbagi pengalaman seputar kontribusi saya pada Hacktoberfest tahun ini.

Dari First Line of Code Menjadi First Pull Request

First Line of Code

Saya pertama kali menyentuh bahasa pemrograman Python kira-kira pertengahan tahun 2019, ketika libur semester genap yang waktu itu cukup lama— 3 bulan lamanya. Motivasi saya belajar bahasa pemrograman tersebut adalah saya ingin belajar tentang data, mulai dari statistika, machine learning, hingga neural network. Sejak saya menyentuh Python hanya untuk iseng-iseng belajar, sampai saat ini saya menggunakan Python sebagai bahasa pemrograman utama yang saya gunakan untuk keperluan sehari-hari, terutama kuliah.

Seiring berjalannya waktu, saya tidak hanya menggunakan Python untuk belajar seputar data, tetapi juga mengimplementasikan apa yang sudah saya pelajari di semester-semester sebelumnya ke dalam Python. Tentu saya kaget dan bingung selama proses peralihan bahasa pemrograman utama dari C++ menjadi Python. Saya menemukan banyak kelebihan dan kekurangan yang dimiliki Python dengan C++, dan nantinya ini yang akan saya bagikan jika suatu saat nanti saya diberi kesempatan untuk membagikan pelajaran-pelajaran yang saya dapatkan lewat Hacktoberfest ini.

First Pull Request

Singkat cerita, Hacktoberfest tahun ini dibuka, dan Bellshade memberikan kesempatan bagi developer yang ingin mencoba teknologi open source untuk berkontribusi di repositori mereka. Repositori tersebut bisa diakses di github dan berisi bahasa pemrograman populer yang sering dibahas oleh komunitas Web Programming Unpas (WPU), seperti HTML, CSS, JavaScript, sampai Python.

Bellshade adalah organisasi yang bergerak di bidang edukasi dan bersifat sumber terbuka (open source). Bellshade dikelola dan berada di bawah naungan komunitas Web Programming UNPAS (WPU).

Nama Bellshade sendiri diambil dari bahasa Inggris yang berarti “penutup lampu belajar” yang mengarahkan cahaya dari lampu agar fokus pada tujuan dan tepat sasaran. Dengan nama ini, Bellshade diharapkan dapat menjadi wadah untuk menerangi dan mengarahkan serta memberikan ilmu kepada orang yang membutuhkan, terutama di bidang teknologi.

bellshade.org — 2021

Saya tidak ingat persis kapan dan ketika sedang apa saya mendapatkan informasi tentang Bellshade, yang jelas ketika saya membuka repositori tersebut, saya tertarik dan langsung mengakses repositori Python milik mereka. Ternyata, ada beberapa topik yang belum dibahas, terutama topik-topik pemrograman dasar dan topik pemrograman yang ada dalam scope Python, seperti comprehension, closure, dan decorator.

8 Oktober 2021 menjadi kali pertama saya melakukan pull request pada repositori publik.

Pull request pertama pada repositori publik

Tantangan

Tentu saya menghadapi berbagai tantangan ketika berkontribusi pada repositori ini. Tantangan tersebut mulai dari rasa tidak percaya diri hingga melakukan pull request. Lantas, bagaimana cara saya mengatasi tantangan tersebut?

Tidak Percaya Diri

Menurut saya, perasaan ini menghinggapi hampir semua orang yang ingin tampil di publik, entah itu membagikan project mereka atau ingin berkontribusi pada project open source. Saya sendiri mengalami perasaan ini : takut apa yang saya bagikan tidak sesuai ekspektasi dan saya diledek karena yang saya bagikan tidak sebagus karya orang lain di komunitas.

Menurut saya (lagi), kita biasanya cenderung menunggu siap untuk melakukan sesuatu. Padahal menunggu diri untuk siap melakukan sesuatu merupakan hambatan untuk berkembang, dan kita tidak pernah siap untuk melakukan sesuatu (we’re never be ready to do something). Kita tidak bisa menjalani hidup tanpa rasa sakit. Rasa sakit di sini tentu perasaan takut issue yang dibuat terlalu basic atau perasaan takut dan kecewa ketika pull request yang di-submit terlalu basic juga.

Lantas, bagaimana cara saya mengatasi hambatan ini? Saya tanpa pikir panjang mengeluarkan issue dan melakukan pull request sesuai issue yang saya buat. Soal diterima atau tidak, itu urusan belakang. Semua orang tidak memiliki kesempatan untuk berhasil, tapi semua orang punya kesempatan untuk mencoba.

Bingung Ketika Melakukan Pull Request

Pull request adalah permintaan yang kita ajukan sebagai kontributor supaya kode yang sudah kita ubah digabung pada repositori yang sudah kita fork.

Setahu saya, setiap repositori memiliki aturan untuk berkontribusi, jadi ada kemungkinan repositori Bellshade berbeda dengan repositori open source lain dalam aturan kontribusi.

Sepengetahuan saya, project open source memiliki alur kontribusi yang umum : fork -> mengubah kode pada local machine -> pull request. Pada tahap pull request, tidak sedikit kontributor yang pertama kali ingin melakukan pull request kebingungan untuk melakukan ini (termasuk saya!). Setidaknya saya akan mencoba menjelaskan bagaimana cara melakukan pull request pada GitHub dan GitHub Desktop.

  1. Buat issue sesuai yang teman-teman inginkan. Jika teman-teman sudah di-assign, kemudian lakukan fork pada repositori tersebut;
Membuat Issue Pada Github

2. Lakukan fork pada repositori dengan mengklik tombol repositori seperti gambar di bawah;

Fork repositori menggunakan tombol fork

3. Buat branch baru dengan mengakses dropdown branch seperti yang ditunjukkan oleh gambar;

Membuat branch baru dengan menakses dropdown branch

4. Buka repositori menggunakan Github Desktop dengan mengakses dropdown code seperti yang ditunjukkan oleh gambar;

Membuka repositori menggunakan Github Desktop

5. Buka repositori menggunakan external editor seperti yang ditunjukkan pada gambar, dan lakukan perubahan sesuai kebutuhan;

Tampilan pada Github Desktop

6. Save, dan jangan lupa untuk menambahkan commit message seperti yang ditunjukkan oleh gambar. Commit message sudah sesuai, lakukan push ke repositori;

7. Pada tahap ini, semua perubahan yang telah dilakukan masih disimpan pada repositori lokal, yaitu repositori yang telah kita fork. Untuk menggabungkan perubahan kode yang telah kita lakukan, kita melakukan pull request pada repositori yang kita fork;

8. Untuk melakukan pull request, teman-teman bisa langsung menuju GitHub dan pergi ke repositori yang teman-teman fork, lalu akses tab pull request. Kemudian pilih branch yang berisi commit yang sudah teman-teman buat. Tulis pesan pull request sesuai dengan pedoman kontribusi repositori;

Membuat pull request pada repositori yang di-fork
Pull request yang sudah jadi dan siap diulas oleh maintainer

9. Tunggu feedback dari maintainer. Jika tidak ada yang harus direvisi, pull request yang teman-teman akan di-merge oleh maintainer.

Yang Saya Pelajari Selama Hacktoberfest

Selama mengerjakan project, tentunya saya belajar hal lain, entah itu keterampilan menulis kode atau pelajaran hidup. Pelajaran apa saja yang saya dapatkan?

Orang Yang Harus Anda Perhatikan Adalah Diri Anda Sendiri

Ketika saya membaca pull request dan issue dari orang lain, tidak jarang saya merasa insercure dengan kemampuan yang saya miliki. Saya selalu kepikiran : apakah dengan ilmu dan keterampilan yang saya miliki, saya dapat berkontribusi ?— walau kontribusi saya tidak sebagus orang lain.

The second you start to expect yourself to be perfect everyday, the second you start to expect yourself than you’re capable of is the second you doom yourself to failure. And so acknowledge who you are and do the best what you can do today and set low expectations from yourself.

dr. Alok Kanojia

Ketika berhadapan dengan permasalahan ini, yang saya lakukan adalah berharap lebih sedikit dari saya, dan membiarkan diri saya berhasil dengan membuat pull request yang membahas materi-materi dasar. Tidak ada salahnya jika kita menambahkan penjelasan hal-hal dasar, sebagai contoh pembahasan tentang “apa itu keyword return” pada fungsi, justru kita sendiri berpikir bahwa seharusnya kita malu jika berkontribusi pada hal-hal dasar.

Jangan Lupa Menambah Docstring Dan Exception Handling

Ketika kita menulis kode untuk diri kita sendiri, biasanya kita mengabaikan docstring atau komentar pada kode yang kita tulis. Hal ini berbeda ketika kita menulis kode untuk open source, di mana kita tidak hanya menulis kode untuk diri sendiri, tetapi juga untuk orang lain. Orang lain mungkin tidak menangkap alasan kita menulis kode pada file yang kita submit, untuk itu docstring atau komentar berguna untuk membantu orang lain dalam memahami kode yang kita tulis. Dari sini saya belajar bagaimana menyampaikan pendapat dan berkomunikasi dengan orang lain dalam bentuk tulisan, apalagi untuk pembaca kode yang baru menyentuh pembahasan yang ada di kode.

Kemudian, ketika kita menulis fungsi, bisa saja orang lain yang menggunakan fungsi kita tidak memahami parameter input dari fungsi kita. Oleh sebab itu, kita menulis exception handling guna menangani dan memberi tahu orang lain bahwa parameter yang mereka masukan salah. Dari sini, saya juga belajar bagaimana menulis pesan exception serta jenis exception apa yang digunakan ketika input tersebut tidak sesuai dengan apa yang bisa dilakukan oleh fungsi.

Penutup

Sebelum masuk bagian penutup, saya ingin mengucapkan terima kasih sebesar-besarnya kepada teman-teman komunitas Web Programming Unpas yang sudah memberikan saya kesempatan untuk belajar dan berkontribusi di repositori Bellshade.

Hacktoberfest menjadi “lebaran” para developer untuk saling berinteraksi tanpa mengenal batas budaya dan kemampuan dengan satu tujuan : berkolaborasi untuk menciptakan hidup yang lebih baik melalui pengembangan perangkat lunak.

Hacktoberfest tahun ini menjadi tahun pertama saya dalam berkontribusi pada project open source. Bellshade adalah tempat utama saya dalam berkontribusi selama “lebaran” ini. Sampai 31 Oktober 2021, saya berhasil menyelesaikan 7 pull request dari minimal 4 pull request yang ditetapkan oleh DigitalOcean sebagai penyelenggara “lebaran” ini supaya saya bisa mengklaim hadiah.

Saya juga belajar banyak hal dari “lebaran” ini, seperti bagaimana menulis issue dan menulis kode dengan baik, bagaimana berkomunikasi dengan orang lain, terutama menyampaikan maksud dan tujuan dari kode yang kita tulis untuk developer pemula yang ingin belajar pemrograman, serta menulis kode sesuai dengan gaya dan aturan yang berlaku dari bahasa pemrograman yang saya gunakan.

Selesainya Hacktoberfest bukan berarti saya berhenti berkontribusi pada project open source. Hacktoberfest merupakan langkah pertama saya dalam berkontribusi pada project open source. Masih banyak hal bisa ditelusuri dan masih banyak permasalahan yang bisa diselesaikan tanpa mengunggu Hacktoberfest dimulai;

Referensi

  1. Failing Repeatedly at Life? Avoid this Cognitive Trap oleh healthygamergg (https://www.youtube.com/watch?v=0JqH1_l0b9M)
  2. Should I Make What I Like Doing My Job? Passion + Purpose oleh healthygamergg (https://www.youtube.com/watch?v=y3gW3abT1hI&t=538s)

--

--

Muhammad Syukur Abadi
Muhammad Syukur Abadi

Written by Muhammad Syukur Abadi

Ordinary computer science student and a gundam geek. Also hugging psychology, math, and physics stuffs. I can be reached on my instagram @sykrabadi

No responses yet