Kontribusi

October 5, 2021 · View on GitHub

Kontributor

Kami sangat senang anda telah ikut berkontribusi dalam implementasi algoritma, struktur data atau memperbaiki error serta merilis implementasi materi belajar bahasa pemrograman Dart.

Semua orang boleh ikut berkontribusi pada repository ini, dengan ketentuan sebagai berikut:

  • Hasil pekerjaan anda adalah buatan anda sendiri dan tidak ada hak cipta dari orang lain, jika kami menemukan kesamaan maka tidak kami merge.
  • Hasil kerja anda akan berlisensi MIT ketika permintaan pull anda sudah di merged
  • Hasil kerja anda wajib mengikuti standar dan style koding dari kami (lihat bagian Standar penulisan)
  • Sebelum melakukan kontribusi, usahakan membuat issue terlebih dahulu agar tidak bentrok pengerjaan antar kontributor.
  • Hindari penggunaan library/package pada koding (jika dibutuhkan, silahkan diskusi di issue)

Kategori yang ada

1. Basic Learning

Basic learning adalah kumpulan implementasi kode materi mendasar dan fundamental untuk pemrograman Dart. Dikemas dengan keterangan kode yang mudah di mengerti sehingga bisa dijadikan referensi untuk kalian yang belajar pemrograman Dart.

Semua implementasi kode untuk Basic Learning bisa ditemukan di /basic

2. Lanjutan

Kumpulan implementasi kode lanjutan dan fitur unik yang ada pada bahasa pemrograman Dart. Jika belum menuntaskan materi basic, kami sarankan untuk mempelajari materi basic terlebih dahulu.

Semua implementasi kode untuk Basic Learning bisa ditemukan di /lanjutan

3. Struktur Data

Struktur data adalah cara penyimpanan, penyusunan, dan pengaturan data yang kompleks yang dibuat agar program dapat menggunakan data tersebut dengan efisien.

Semua implementasi kode untuk Basic Learning bisa ditemukan di /struktur_data

4. Algoritma

Algoritma adalah langkah-langkah untuk menyelesaikan suatu pekerjaan dimana terdiri dari 3 bagian utama, yaitu:

  • Input/masukan, sebelum menjalankan sebuah algoritma maka hal yang pertama harus dilakukan adalah menerima masukan. Input dapat berasal dari pengguna ataupun dari langkah sebelumnya.
  • Proses, bagian utama dari algoritma yang melakukan pengolahan input yang akan menghasilkan output.
  • Output/keluaran, output adalah hasil dari bagian proses. Output ini juga bisa digunakan untuk langkah selanjutnya (jika masih ada).

Algoritma harus dikemas sedemikian rupa sehingga memudahkan pembaca untuk memasukkannya ke dalam program yang lebih besar.

Algoritma harus memiliki:

  • memiliki nama class dan fungsi intuitif yang memperjelas tujuannya bagi pembaca
  • fleksibel untuk mengambil nilai input yang berbeda
  • memiliki dokumentasi penjelasan yang jelas dan/atau URL ke materi sumber
  • gunakan hasil kembalian / return daripada langsung mencetak ke layar

Semua implementasi kode untuk Algoritma bisa ditemukan di /algoritma

Standar Penulisan

  1. Standar Penulisan Pada IDE atau Editor Gunakan standar penulisan yang sudah ditentukan oleh Dart, lalu ubah recommended settings untuk Dart untuk menambah dan mengubah beberapa baris agar menjadi seperti ini:
"dart.lineLength": 150, // <- tambahkan baris ini
   "[dart]": {
      "editor.formatOnSave": true,
      "editor.formatOnType": true,
      "editor.rulers": [
         150 // <- ubah menjadi 150
      ],
   }
   ...
  1. Memberikan komentar

    • // digunakan untuk menjelaskan alur kode atau algoritma.
    • /// digunakan untuk membuat docs didalam kode untuk menjelaskan kegunaan dari fungsi, class, atau variabel agar bisa memunculkan pop-up docsnya didalam IDE atau Editor secara dinamis.
  2. Struktur Folder Khusus untuk kontributor, gunakan struktur folder yang sudah disiapkan seperti dibawah ini:

    • Folder bin digunakan untuk menyimpan kode top-level untuk menjalankan materi yang anda buat.
    • Folder lib digunakan untuk menyimpan materi-materi yang disimpan.
    • Struktur folder yang ada didalam bin dan lib wajib sama.
    • Folder test digunakan untuk melakukan testing kode dari materi dart yang dibuat.

Untuk dokumentasi lengkap mengenai standar penulisan bisa dilihat di link berikut : 1. Overview Bahasa Dart 2. Gaya Penulisan Dart 3. Pembuatan Dokumentasi Kode Dart 4. Penggunaan Bahasa Dart 5. Penulisan Konsisten Pada Bahasa Dart

Berkontribusi

Pull request yang baik

  • lakukan fork pada repository ini
  • usahakan fork anda sudah update sesuai dengan repository asli bellshade/Dart. Jika belum update, silahkan gunakan fitur fetch and merge yang ada di github.
  • setelah melakukan fork anda dibebaskan untuk mengubah atau menambah kode
  • jalankan perintah dart pub get untuk get paket-paket yang dibutuhkan oleh project.
  • untuk pull request "mengubah" diusahakan anda menerapkan kode yang lebih baik, mudah dan efisien dari segi performa, ukuran kode, dan sebagainya.
  • setelah mengubah, menambah, atau perbaikan dokumentasi, usahakan anda membuat branch baru
git checkout -b <branch_name>
git add .
git commit -m "add: menambahkan algoritma baru"
  • lakukan push ke branch anda dan kemudian silahkan open pull request

Saran pesan commit

  • feat untuk menambah kode, algoritma atau tambahan lainnya
  • fix untuk mengubah kode yang sudah ada atau memperbaiki
  • docs untuk mengubah atau membuat dokumentasi
  • add untuk menambah kode, algoritma atau tambahan lainnya (opsional)

Catatan: pesan commit harus menjelaskan perubahan secara singkat.

Contoh:

  • feat: test_x.py
  • feat: tambah unittest untuk algoritma x

Lebih lengkapnya bisa dilihat di:

pull request akan merged jika:

  • mengikuti standar dan arahan dari CONTRIBUTING.md
  • lulus test dan cek dari beberapa test yang sudah kami siapkan

Saran pesan Pull Request

Gunakan template pesan pull request yang sudah disediakan untuk repository Dart di sini.

Tambahan

  • jika ada kendala atau masalah dalam pull request, anda bisa laporkan masalah pada issue
  • jika ada test yang tidak lewat atau gagal, kami akan mengecek kembali perubahan.

untuk pull request kami sarankan untuk menjelaskan secara detail yang anda ubah atau tambahkan, dan bersikap sopan, serta selalu berterima kasih, itu salah satu bentuk tata krama yang baik terhadap sesama contributor dan programmer lainnya. Terima kasih sudah berkontribusi di Bellshade/Dart