20 poin oleh GN⁺ 2025-12-01 | 2 komentar | Bagikan ke WhatsApp
  • Advent of Code adalah kalender Advent teka-teki pemrograman untuk programmer dari berbagai tingkat kemampuan, dan bisa diselesaikan dengan bahasa apa pun
  • Peserta dapat memanfaatkannya untuk berbagai tujuan seperti persiapan wawancara, pelatihan perusahaan, tugas kuliah, soal latihan, dan kompetisi kecepatan
  • Bisa diikuti tanpa latar belakang ilmu komputer, dan terdiri dari soal yang dapat dijalankan dalam waktu kurang dari 15 detik bahkan di komputer berusia 10 tahun
  • Situs ini mendukung autentikasi OAuth, mode kontras tinggi, leaderboard pribadi, dan fitur pemilihan blok kode
  • Leaderboard global dihentikan karena masalah stres dan kecurangan, dan penekanannya beralih ke pengalaman memecahkan soal yang menyenangkan dan berpusat pada peserta

Gambaran Umum Advent of Code

  • Advent of Code adalah acara teka-teki pemrograman tahunan yang dibuat oleh Eric Wastl, menyediakan teka-teki dalam format kalender Advent online yang dimulai setiap 1 Desember
    • Peserta menyelesaikan soal baru setiap hari, dan bebas menggunakan bahasa apa pun tanpa batasan
    • Soalnya digunakan untuk berbagai keperluan seperti persiapan wawancara, pendidikan, latihan, kompetisi, dan saling menantang
  • Untuk berpartisipasi tidak diperlukan pengetahuan jurusan ilmu komputer, cukup kemampuan dasar pemrograman dan pemecahan masalah
    • Semua soal dapat selesai dijalankan dalam waktu kurang dari 15 detik bahkan di perangkat keras berusia 10 tahun

Cara Berpartisipasi dan Mendukung

  • Untuk mendukung Advent of Code, pengguna bisa membagikannya di Bluesky, Twitter, Mastodon, atau memberikan dukungan langsung melalui AoC++
  • Jika mengalami kebuntuan saat memecahkan soal, disarankan untuk memeriksa input contoh, membuat test case, meminta bantuan teman, atau meminta petunjuk di subreddit

Tips Umum (General Tips)

  • Jika input dan output contoh tidak cocok, baca kembali deskripsi soal dan periksa perilaku kode
  • Jika contoh lolos tetapi jawaban tetap salah, buat test case yang bisa diverifikasi secara manual untuk memastikannya
  • Jika masih sulit diselesaikan, Anda bisa beristirahat sejenak lalu mencoba lagi atau bertanya ke komunitas

Pertanyaan yang Sering Diajukan (FAQ)

  • Pemilihan blok kode: saat JavaScript aktif, seluruh blok dapat dipilih dengan triple click
  • Metode autentikasi: menggunakan OAuth untuk login melalui layanan eksternal seperti Reddit dan GitHub, dan kredensial hanya dikirim ke layanan tersebut
    • Advent of Code hanya menyimpan ID, nama, URL, dan gambar pengguna
  • Perubahan tingkat kesulitan: tingkat kesulitan meningkat secara bertahap selama acara, dan kesulitan yang dirasakan dapat berbeda tergantung tingkat kemampuan masing-masing
  • Waktu rilis teka-teki: dirilis pada tengah malam Waktu Standar Timur AS (UTC-5), karena itu adalah zona waktu yang bisa dikelola operator
    • Jika ingin berkompetisi, pengguna dapat bersaing per wilayah melalui leaderboard pribadi
  • Masalah keterbacaan: tersedia dukungan mode kontras tinggi, dan dapat diaktifkan secara default di Firefox
  • Larangan usulan teka-teki: tidak menerima ide teka-teki dari luar karena masalah hak cipta
  • Pelaporan bug: jika sudah lewat lebih dari 1 jam sejak teka-teki dirilis, kemungkinan adanya bug rendah karena sudah banyak pengguna yang menyelesaikannya
    • Jika ada masalah, disarankan untuk memeriksanya terlebih dahulu di subreddit
  • Apakah ini kompetisi kecepatan: jika ingin menyelesaikan dengan cepat, dibutuhkan latihan dan keterampilan tambahan, tetapi yang terpenting adalah berpartisipasi dengan cara yang sesuai tujuan Anda sendiri
  • Perubahan jumlah hari acara: setelah jadwal dipertahankan selama 10 tahun, acara diubah untuk berakhir di pertengahan bulan guna mengurangi beban waktu operator
  • Penghapusan leaderboard global: dihapus setelah 10 tahun karena masalah kompetisi berlebihan serta serangan DDoS dan stres pengguna
    • Sebagai gantinya, disediakan fitur berbagi leaderboard pribadi dalam mode hanya-baca
  • Penggunaan AI: karena teka-teki ini bertujuan meningkatkan kemampuan berpikir manusia, penggunaan AI tidak dianjurkan
    • Dijelaskan dengan analogi, “meskipun Anda menyuruh orang lain berolahraga, itu tidak membuat Anda sendiri menjadi lebih kuat”
  • Larangan menyalin konten: Advent of Code gratis untuk digunakan, tetapi teks teka-teki dan data input tidak boleh disalin
    • Meniru desain situs web atau namanya juga dilarang

Kredit (Credits)

  • Teka-teki, kode, desain: Eric Wastl
  • Beta testing: Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
  • Manajer komunitas: Danielle Lucek, Aneurysm9
  • Peserta: semua pengguna

Pemberitahuan Hukum (Legal)

  • Advent of Code adalah merek dagang terdaftar di Amerika Serikat, dan desain, bahasa, gaya, serta konsepnya semuanya merupakan aset eksklusif
    • Tidak boleh disalin atau digunakan tanpa persetujuan tertulis yang jelas
  • Tautan atau kutipan ke teka-teki boleh dilakukan secara bebas, termasuk dalam konteks komersial
  • Advent of Code tidak mengklaim hak cipta atas kode solusi milik peserta

2 komentar

 
roxie 2025-12-01

Tahun lalu saya juga sempat ikut sedikit... satu tahun benar-benar berlalu begitu cepat T_T

 
GN⁺ 2025-12-01
Opini Hacker News
  • Setiap kali mendengar bahwa orang bisa ikut meski tidak punya latar belakang ilmu komputer, rasanya itu justru bisa mengecewakan programmer hobi
    Kalau yang dimaksud dengan “bisa melangkah lumayan jauh” hanya menyelesaikan 1–2 soal mudah, mungkin benar, tapi lebih dari itu tidak gampang

    • Ada yang bilang soalnya “terlalu mudah”, dan aku jadi bertanya-tanya sebenarnya mereka hidup di dunia yang seperti apa
    • Aku juga setuju. Aku kaget melihat teman-temanku yang bekerja sebagai developer ternyata kemajuannya tidak banyak
  • Advent of Code adalah sorotan utama setiap bulan Desember
    Sayang papan peringkat global dihapus, tapi bisa dimengerti. Tahun ini juga cuma berlangsung 12 hari, dan itu bagus karena mengurangi beban
    Jangan mencoba untuk “menang”; lebih baik nikmati saja serunya memecahkan masalah

    • Memang 12 hari, tapi sebenarnya ada 24 challenge, jadi aku akan menikmatinya pelan-pelan selama 24 hari
    • Agak disayangkan dikurangi jadi 12 hari, tapi papan peringkat global memang sejak awal sulit jadi kompetisi nyata karena perbedaan zona waktu. Papan peringkat pribadi jauh lebih baik
    • Tahun ini aku kepikiran bikin papan peringkat lokal dengan teman-teman. Toh aku juga tidak akan masuk yang global
    • Melihat bahwa aku sama sekali tidak tertarik pada acara seperti ini, sepertinya jelas aku memang bukan developer
  • Aku benar-benar suka sekali Advent of Code
    Fakta bahwa tahun ini hanya 12 hari justru kusambut baik. Menjelang akhir tahun banyak urusan dunia nyata, jadi tahun lalu aku cuma sempat menyelesaikan kira-kira setengahnya
    Terima kasih sebesar-besarnya kepada semua yang berpartisipasi

    • Tahun lalu aku cuma sampai hari ke-7, jadi kali ini rasanya lebih ringan
    • Mungkin kali ini aku akhirnya bisa menamatkannya
    • Aku sangat menantikan tahun ini
  • Tahun ini aku pertama kali mencoba Advent of Code, dan ternyata sangat menyenangkan
    Mirip Project Euler, tapi lebih berfokus pada pemrograman daripada matematika
    Bagian 1 sederhana, tapi Bagian 2 menuntut pendekatan yang dioptimalkan, dan itu yang membuatnya menarik

  • Menghapus papan peringkat publik adalah keputusan yang masuk akal
    Terlepas dari masalah LLM, di luar zona waktu Amerika tertentu memang mustahil untuk bersaing
    Sebagai gantinya, akan menarik kalau ada statistik seperti tingkat penyelesaian per zona waktu di seluruh dunia

    • LLM memang merusaknya, tapi dulu seru melihat solusi papan atas yang asli
      Menonton video live coding di YouTube juga menyenangkan
  • Aku menunggu Advent of Code setiap tahun
    Tanpa stres soal papan peringkat, ini jadi kesempatan untuk belajar bahasa baru atau mengasah keterampilan
    Dalam keseharian aku tidak sering bootstrap proyek sendiri atau mengimplementasikan DFS, jadi acara seperti ini adalah latihan yang bagus

    • Aku juga ingin mencoba pekerjaan yang isinya hanya menyelesaikan soal seperti ini, tapi mungkin aku akan burnout
      Jadi biasanya aku menyeimbangkannya dengan pekerjaan seperti menulis test atau dokumentasi
      Setiap tahun aku melatih efisiensi dan keterbacaan dengan sedikit demi sedikit memperbaiki soal-soal tahun sebelumnya
  • Senang Advent of Code diadakan lagi tahun ini
    Saat membaca FAQ, aku agak tidak paham aturan yang melarang membagikan data input
    Kalau teks puzzle sih bisa dimengerti, tapi sayang juga kalau input harus tetap privat. Meski begitu, karena ini bisa dinikmati gratis, aku tetap menghormatinya

    • Katanya kalau input dibuka, seseorang bisa menyalin logika pembangkitan puzzle
    • Cukup commit contoh input saja, lalu jalankan test dengan itu. Kalau distrukturkan seperti doctest di Python atau Rust, hasilnya juga rapi
    • Aku mempublikasikan kodenya, tapi input kusimpan sebagai private submodule
    • Aku mengenkripsi file input dengan git-crypt lalu mengunggahnya ke repositori publik
  • Survei bahasa: Python dan C++ memang paling umum dipakai, tapi bahkan di antara bahasa yang tidak mainstream pun ada yang cocok untuk AoC
    Ini ajakan untuk berbagi bahasa mana yang bagus dipakai

    • Aku suka bahasa array seperti K atau Uiua. Kelihatannya aneh, tapi pas sekali untuk soal-soal awal
      Ini memang bercanda, tapi kadang aku juga mencoba menyelesaikannya dengan ASM untuk Game Boy. Aslinya sih aku memakai Clojure atau Python
    • Aku memakai bahasa buatan sendiri yang dibuat dengan gaya Haskell+Bash. Ada juga demo YouTube
      Tahun ini aku sedang membuat compiler bytecode. Untuk papan peringkat aku memakai Go, dan berkat kecepatan kompilasi, aku jadi juara 1 di Day19 tahun 2022
    • Dengan Haskell, pemrosesan input jadi mudah berkat parser combinator. Selain itu, evaluasi malas dan rekursi memungkinkan penulisan kode yang ringkas
      Misalnya, aku membuat list tak terbatas lalu menelusurinya sampai memenuhi kondisi
    • Ruby itu ideal. Ia punya sintaks yang ekspresif, pustaka standar yang kaya, dan banyak alat pemrosesan string
      Method seperti each_cons, permutation, prime sangat berguna untuk AoC
    • Go bagus karena cepat dan sederhana, sedangkan OCaml unggul dalam sistem tipe dan kecepatan eksekusi
      Kalau menyiapkan grid 2D atau utilitas parser dari awal, hasilnya jadi jauh lebih efisien
  • Tahun ini aku ingin mencoba dengan assembly (fasm)
    Mungkin menyenangkan, mungkin juga menyiksa, tapi bagaimanapun ini bagian dari proses belajar

  • Sepertinya papan peringkat hilang setelah booming otomatisasi AI tahun lalu
    Disayangkan, tapi tampaknya itu keputusan yang tak terelakkan

    • Karena waktu rilis puzzle mengikuti waktu Amerika, aku selalu sedang tidur
      Toh memang sulit bersaing, jadi papan peringkat global sebenarnya tidak terlalu berarti