Modul 1: Pengantar


Besut kode adalah kompetisi online pengembangan perangkat lunak bersumber terbuka untuk pelajar SMA berumur 13-17 tahun. Pelajar diminta untuk memecahkan soal yang diberikan, dan apabila dinyatakan berbakat oleh mentor akan mendapatkan sertifikat pengakuan dan diikut sertakan pada kompetisi bergengsi Google Summer of Code.

  1. Saat mengikuti besut kode, peserta akan memiliki profil berisi karya online yang mumpuni. Setiap pengembang perangkat lunak terbuka yang handal, memiliki rekam jejak karya online, mengikuti Besut Kode adalah kesempatan untuk memiliki rekam jejak ini dalam profil Anda. Penting banget!

  2. Anda akan diminta untuk menyiapkan dan menggunakan sistem kendali terdistribusi yang bisa disebarkan (distributed version control system) seperti git, dan menggunakan tempat penyimpanan terdistribusi (online repositories) daring seperti github.com.

  3. Dengan mengikuti besut kode, Anda jadi punya pengalaman untuk menyelesaikan persoalan menggunakan algoritma rumit, sejak SMA! Biasa dengar lulus kuliah tidak punya pengalaman? Tidak harus tunggu hingga kuliah, peserta Besut Kode bisa punya pengalaman SEKARANG!

  4. Pembuktian bahwa Anda jagoan!. Hari gini, ngga laki-laki, ngga perempuan, bisa jadi jagoan. Apabila Anda berhasil menyelesaikan fase I (Modul 1-5) sertifikat keberhasilan sebagai bukti Anda memiliki kemampuan menyelesaikan masalah sudah kami siapkan, dan sebuah video daring berdurasi 5 menit, bagaimana Anda, sebagai peserta memaparkan jalan penyelesaian masalah yang rumit. Bukti untuk semua orang - jempolan.

  5. Dilatih oleh ahlinya bagaimana menjadi bagian pengembang perangkat lunak terbuka. Dalam pelatihan ini termasuk peninjauan sebuah kode dengan kualitas yang baik vs kode dengan kualitas yang buruk, test-test otomatis terintegrasi terus-menerus, bagaimana mempelajari berbagai bahasa pemrograman, dan melihat berbagai masalah yang beragam yang mungkin terjadi dalam perangkat lunak terbuka.
    1. Melihat bagaimana sebuah kode ditinjau, apakah kode memiliki kualitas yang baik vs kode dengan kualitas yang buruk
    2. Mempelajari bagaimana test-test otomatis terintegrasi terus-menerus dilakukan
    3. Mempelajari berbagai bahasa pemrograman, dan melihat berbagai masalah yang beragam yang mungkin terjadi dalam perangkat lunak terbuka pada kehidupan sehari-hari.
    4. Memiliki pengalaman langsung mengerjakan proyek perangkat lunak terbuka yang dapat dimasukkan pada riwayat pengalaman kerja peserta.
    5. Mentor juga akan menyediakan petunjuk-petunjuk praktis yang memasangkan peserta dengan tipe pengembangan perangkat lunak yang cocok dengan kemampuan mereka menyelesaikan persoalan.
    6. Mentor akan memberikan rekomendasi proyek perangkat lunak terbuka yang mana yang sebaiknya peserta memfokuskan diri sehingga peserta mendapatkan pengalaman optimal secara spesifik untuk keahliannya.

  6. Peserta juga mendapatkan kesempatan untuk meraih berbagai hadiah mulai dari pulsa internet, telpon genggam, laptop dengan hadiah utama magang paruh waktu berbayar di Wikimedia Indonesia
Ngga percaya? Denger sendiri dari Tasya

Modul 2: Pembuatan dan penggunaan akun


Tugas anda:

  1. Membuat akun di GitHub
  2. Membuat akun di Project Euler
  3. Membuat situs pribadi menggunakan GitHub lalu mencantumkan nama pengguna Project Euler
  4. Simpan kontribusimu dalam basis data peserta di halaman GitHub milik Besut Kode, termasuk: nama pengguna Project Euler, nama pengguna GitHub, dan halaman situs GitHub pribadi Anda

Tugas 1: Membuat akun di GitHub

  • Jika Anda belum memiliki akun GitHub, Anda dapat membuatnya di sini
  • Jika Anda sudah memiliki akun GitHub, cantumkan akun Anda di formulir berikut ini
  • Anda bebas menggunakan nama akun apa saja pada akun GitHub Anda, namun apabila Anda tidak yakin dengan nama akun GitHub Anda, kami sarankan menggunakan format: besutkode_namadepan, contoh:
    • besutkode_riou
    • besutkode_siska

Tugas 2: Membuat Akun Project Euler

  • Project Euler adalah sebuah situs yang didedikasikan khusus sebagai tempat untuk menaruh masalah-masalah matematika yang digunakan dalam berbagai kompetisi.
  • Jika Anda belum memiliki akun di Project Euler, Anda dapat membuatnya di sini
  • Setelah akun selesai dibuat, ubah pengaturan Negara Anda menjadi Indonesia di sini
  • Hindari membuat nama akun dengan alias. Jika Anda telah membuat alias, harap beritahu tim Wikimedia nama akun dan alias Anda
  • Soal-soal pada Project Euler juga tersedia di bahasa Indonesia pada pranala berikut ini.

Tugas 3: Membuat halaman situs dengan GitHub

Tugas 4: Memperbaharui basis data publik Github untuk BesutKode

  • Tarik cabang dari (Fork ) tempat penyimpanan Wikimedia-ID BesutKode repository github
  • Sunting berkas peserta.md, tambahkan baris baru dengan pranala ke akun GitHub dan situs GitHub pribadi Anda, serta nama pengguna pada Project Euler
  • Masukkan (submit ) Pull Request (PR ) untuk menggabungkan perubahan yang Anda buat ke dalam repositori BesutKode
    • Mentor dari Wikimedia Indonesia akan meninjau pull request pada GitHub
    • Anda mungkin harus men-submit ulang Pull Request Anda apabila terjadi konflik pada saat menambahkan baris pada daftar peserta

Modul 3: Mengerjakan Project Euler untuk pertama kalinya


Tugas 1: Pecahkan permasalahan Project Euler

  • Baca soal-soal Project Euler, baik dalam Bahasa Indonesia maupun Inggris, kemudian temukan soal yang menurut Anda bisa Anda pecahkan
    • Soal-soal Project Euler dalam Bahasa Inggris
    • Soal-soal Project Euler dalam Bahasa Indonesia
    • Tidak masalah bagaimana Anda menyelesaikan soal tersebut atau berapa lama Anda menyelesaikannya, karena solusi untuk soal-soal ini sudah banyak tersedia di internet
  • Pada modul-modul selanjutnya, Anda akan diberikan lima menit untuk mempresentasikan pemecahan soal Project Euler yang Anda selesaikan, untuk membuktikan bahwa Anda sudah paham dalam memecahkan soal tersebut

Tugas 2: Kirim jawaban ke Project Euler

  • Setelah Anda mendapatkan jawaban soal pilihan Anda, kirimkan ke situs Project Euler bahasa Inggris
  • Sebagai contoh, untuk menjawab soal pertama kunjungi soal 1, masukan jawaban lalu masukan kode konfirmasi
  • Jika jawaban Anda benar, nama pengguna Anda akan muncul di halaman akhir statistik negara Indonesia

Tugas 3: Perbaharui basis data Besut Kode

  • Fork repository Github Wikimedia-ID BesutKode
  • Sunting berkas peserta.md, perbaharui baris Anda dengan keterangan bahwa Anda telah menyelesaikan Tugas 2
  • Submit Pull Request untuk menggabungkan hasil suntingan Anda dengan repository KMT
    • Staff Wikimedia Indonesia akan meninjau pull request dan memastikan bahwa nama pengguna Anda benar-benar muncul di Project Euler Indonesia
    • Staff Wikimedia Indonesia lalu akan mengundang peserta yang namanya muncul di Project Euler Indonesia kedalam repositori pribadi untuk melaksanakan modul 4.
    • Anda mungkin harus men-submit Pull Request ulang jika terjadi konflik dengan peserta lain dan halaman situs

Modul 4: Membagikan jawaban Project Euler Anda


Tugas 1: Bersiap untuk membagikan hasil kode

Sebelum membagikan kode Anda, pastikan kode tersebut mudah dimengerti, karena orang lain akan juga akan membaca kode Anda.
Berikut adalah beberapa tips:
  1. Sisipkan komentar (comment ) dalam bahasa Indonesia pada kode Anda
  2. Kelompokan kode Anda menjadi bagian kecil, agar solusinya lebih mudah dimengerti
  3. Pelajari artikel tentang kerumitan di sini dan temukan perangkat yang dapat menilai kompleksitas kode Anda

Tugas 2: Bagikan kode Anda

  • Peserta yang sudah menyelesaikan tugas Project Euler dan mendapatkan akses ke repository pribadi Besut Kode kemudian bisa membagikan kode yang Anda tulis melalui repository pribadi miliki Besut Kode.
  • Semua perubahan pada repository ini akan tercatat, dan historinya tidak dapat ditulis ulang
  • Cara membagikan kode Anda:
    1. Clone Github repository (bukan fork )
    2. Buat sebuah directory untuk solusi soal Anda, jelaskan sedikit pada nama directory:
      • contoh: ‘[nama pengguna GitHub]/soal_[nomor]/[nama berkas]’
    3. Masukan kode Anda ke subdirectory baru
    4. Masukan (push ) berkas kode solusi Anda ke dalam repository solusi Project Euler
      • contoh: github.com/BesutKode/solusi/RioSatria/soal_1/solusi001.java

Tugas 3: Kolaborasi

  • Setelah Anda mengunggah solusi, lihatlah permasalahan yang telah dipecahkan oleh peserta lain, dan solusinya.
  • Sebagai sesama peserta Anda diharapkan untuk saling berkomunikasi agar dapat memperbaiki dan meningkatkan kemampuan. Baik menilai solusi peserta lain, dan solusi Anda. Komunikasi yang sehat adalah sebuah hal yang sangat penting dalam pengembangan perangkat lunak
  • Project Euler mengeluarkan soal baru setiap minggu. Soal baru tersebut biasanya lebih sulit dari soal-soal yang sebelumnya. Setelah Anda mampu memecahkan tugas-tugas yang mudah, dalam tugas ini, Anda diharuskan untuk membuat kelompok sebanyak tiga orang untuk memecahkan permasalahan yang sulit
  • Temukan permasalahan baru yang Anda anggap menarik, atau bergabung dengan diskusi yang sedang berjalan. Cobalah untuk membagi permasalahan menjadi bagian kecil agar banyak peserta dapat memecahkannya bersama-sama

Modul 5: Presentasikan jawaban Anda selama 5 menit


Anda dapat melihat contoh presentasi solusi Project Euler: