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
- 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
],
}
...
-
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.
-
Struktur Folder Khusus untuk kontributor, gunakan struktur folder yang sudah disiapkan seperti dibawah ini:
- Folder
bindigunakan untuk menyimpan kode top-level untuk menjalankan materi yang anda buat. - Folder
libdigunakan untuk menyimpan materi-materi yang disimpan. - Struktur folder yang ada didalam
bindanlibwajib sama. - Folder
testdigunakan untuk melakukan testing kode dari materi dart yang dibuat.
- Folder
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 mergeyang ada di github. - setelah melakukan fork anda dibebaskan untuk mengubah atau menambah kode
- jalankan perintah
dart pub getuntuk 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
featuntuk menambah kode, algoritma atau tambahan lainnyafixuntuk mengubah kode yang sudah ada atau memperbaikidocsuntuk mengubah atau membuat dokumentasiadduntuk 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:
- Bahasa Inggris: www.conventionalcommits.org/en/v1.0.0
- Bahasa Indonesia: www.conventionalcommits.org/id/v1.0.0
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