0% menganggap dokumen ini bermanfaat (0 suara)
0 tayangan13 halaman

TP5- Ragged Array, Inheritance Dan Constructor

Dokumen ini adalah panduan tugas pemrograman yang mencakup penggunaan ragged array, inheritance, dan constructor dalam konteks turnamen futsal BurhanCup. Mahasiswa diharapkan untuk mengerjakan tugas secara bertahap untuk membangun keterampilan pemrograman, dengan fokus pada implementasi metode yang berkaitan dengan pengolahan data tim dan pertandingan. Tugas ini juga mencakup persiapan lingkungan pengembangan dan aturan bisnis yang harus diikuti dalam implementasi.

Diunggah oleh

budf03
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
0 tayangan13 halaman

TP5- Ragged Array, Inheritance Dan Constructor

Dokumen ini adalah panduan tugas pemrograman yang mencakup penggunaan ragged array, inheritance, dan constructor dalam konteks turnamen futsal BurhanCup. Mahasiswa diharapkan untuk mengerjakan tugas secara bertahap untuk membangun keterampilan pemrograman, dengan fokus pada implementasi metode yang berkaitan dengan pengolahan data tim dan pertandingan. Tugas ini juga mencakup persiapan lingkungan pengembangan dan aturan bisnis yang harus diikuti dalam implementasi.

Diunggah oleh

budf03
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Dasar-Dasar Pemrograman 2

TP 5
Ragged Array, Inheritance dan Constructor

⏰Batas Waktu Pengumpulan : 27 Juli 2026 Jam 08.00 WIB


⌛Riwayat Versi
Versi Timestamp Halaman Perubahan
1 20260711-2130 Semua Rilis perdana
2 20260717-1500 2 - 11 tema diganti, materi Generic & Pair<A,B>
dihapus, ditambah Sub-Task File I/O,
aturan disederhanakan agar dokumen
lebih ringkas.

BurhanCup: Turnamen Futsal Antar Fakultas

Generate image
Prompt ChatGPT: Buatkan gambar ilustrasi Burhan diatas yang sedang memegang kertas

Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan mencicil
mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya. Menggunakan jalan-jalan
pintas hanya akan membodohi diri sendiri, ketrampilan tidak terbentuk, dan bisa dipastikan akan kesulitan nanti
saat ujian. Yang paling utama adalah membentuk keterampilannya, bukan nilai TP-nya.

Ingat!!!
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

Nilai TP, Kuis, Praktikum tidak akan masuk komponen nilai (tidak diperhitungkan) bila nilai ujian dibawah
batas kelulusan (<50%). Syarat lulus DDP2 hanyalah nilai ujian!!!
Persiapkan diri anda dengan mengerjakan Tugas Programming ini agar keterampilan dan pengetahuan
terbentuk sehingga bisa mengerjakan ujian nanti.

📖 Deskripsi

Generated by Gemini

Tahun ini, Burhan punya ide baru untuk mengadakan turnamen futsal antar fakultas yang diberi nama
BurhanCup. Ada delapan tim yang ikut berpartisipasi. Sebagian merupakan tim resmi perwakilan
fakultas, sementara sisanya adalah tim undangan dari alumni dan kampus tetangga.

Selama turnamen berlangsung, ternyata tidak semua tim memainkan jumlah pertandingan yang sama.
Karena menggunakan sistem gugur, ada tim yang langsung tersingkir setelah pertandingan pertama, ada
yang berhasil melaju hingga final dan bermain sampai lima kali, bahkan ada satu tim undangan yang baru
menyelesaikan proses pendaftaran ketika jadwal pertandingan sudah berjalan sehingga belum sempat
bermain sama sekali.

Awalnya, Burhan menyimpan data jumlah gol setiap tim menggunakan array dua dimensi biasa
(rectangular array). Namun, cara ini mengharuskan setiap tim memiliki jumlah slot pertandingan yang
sama, padahal kenyataannya tidak demikian. Akibatnya, banyak slot yang kosong karena tidak terpakai,
dan program bisa mengalami error ketika mencoba mengakses data pertandingan yang sebenarnya tidak
dimiliki oleh suatu tim. Setelah mencari solusi, Burhan memutuskan menggunakan ragged array, yaitu
array dua dimensi yang setiap barisnya dapat memiliki panjang berbeda sesuai dengan jumlah
pertandingan yang benar-benar dimainkan oleh masing-masing tim.

| SHE - SZR |
2 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

🎯Tujuan Pembelajaran
Setelah menyelesaikan tugas ini, mahasiswa diharapkan mampu:

• Mendeklarasikan dan menginisialisasi ragged array (array of array dengan panjang


tiap baris yang berbeda-beda) di Java.
• Melakukan iterasi pada ragged array menggunakan nested loop yang
memperhatikan panjang tiap baris secara independen (bukan mengasumsikan array
berbentuk persegi).
• Melakukan agregasi data (total, rata-rata, nilai maksimum) pada struktur yang tidak
beraturan.
• Menangani edge case struktural: baris kosong, index tidak valid, dan potensi
ArrayIndexOutOfBoundsException.
• Membaca data sederhana dari file teks (file I/O) untuk mengisi struktur data pada
program.
• Menerapkan kembali keterampilan debugging (VS Code), modularitas method, dan
unit testing (JUnit) dari TP4 pada konteks struktur data yang baru.

🛠️ Persiapan Environment
Sama seperti TP4. Pastikan hal-hal berikut sudah terpasang:

1. JDK 17 (atau lebih baru); pastikan java -version dan javac -version berjalan.
2. Visual Studio Code.
3. Extension Pack for Java (Microsoft), sudah mencakup Language Support for Java, Debugger
for Java, dan Test Runner for Java.

Struktur proyek yang disarankan:

TP5-Burhanpedia/
├── src/
│ ├── [Link] (abstract)
│ ├── [Link] extends Tim
│ ├── [Link] extends Tim
│ ├── [Link]
│ └── [Link]

| SHE - SZR |
3 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

├── test/
│ └── [Link]
├── data/
│ └── [Link]
├── lib/
└── [Link]

🖥️Penjelasan Tugas
Model Domain (dibutuhkan oleh semua Sub-Task)
Kalian bebas menambahkan atribut/method lain, tetapi signature dan perilaku method di
bawah ini wajib dipenuhi karena akan menjadi target pengujian.

public abstract class Tim {​


protected String namaTim;​

public Tim(String namaTim) {​
[Link] = namaTim;​
}​

public String getNamaTim() {​
return namaTim;​
}​

/** Mengembalikan biaya pendaftaran tim ke turnamen. */​
public abstract int getBiayaPendaftaran();​
}​

public class TimFakultas extends Tim {​
private static final int BIAYA_PENDAFTARAN = 0; // Gratis​

public TimFakultas(String namaTim) {​
super(namaTim);​

| SHE - SZR |
4 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

}​

@Override​
public int getBiayaPendaftaran() {​
return BIAYA_PENDAFTARAN;​
}​
}​

public class TimUndangan extends Tim {​
// Besarnya biaya ditentukan saat tim mendaftar.​
private int biayaPendaftaran;​

public TimUndangan(String namaTim, int biayaPendaftaran) {​
super(namaTim);​
[Link] = biayaPendaftaran;​
}​

@Override​
public int getBiayaPendaftaran() {​
return biayaPendaftaran;​
}​
}​

public class TurnamenManager {​
// Array bertipe Tim yang dapat berisi objek TimFakultas maupun
TimUndangan.​
private Tim[] daftarTim;​

// Ragged array karena setiap tim dapat memiliki jumlah
pertandingan yang berbeda.​
private int[][] golPertandingan;​

// Constructor dan getter sesuai kebutuhan.​

/** Menghitung total gol yang dicetak oleh satu tim. */​
| SHE - SZR |
5 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

public int totalGol(int timIndex) {​


...​
}​

/** Menghitung total gol seluruh tim di turnamen. */​
public int totalGolTurnamen() {​
...​
}​

/** Mengembalikan indeks pertandingan dengan jumlah gol terbanyak
untuk suatu tim. */​
public int pertandinganTerbaik(int timIndex) {​
...​
}​

/** Mengembalikan rata-rata gol per pertandingan suatu tim
(dibulatkan ke bawah). */​
public int rataRataGol(int timIndex) {​
...​
}​

/** Mengembalikan indeks tim dengan total gol terbanyak di
turnamen. */​
public int timGolTerbanyak() {​
...​
}​

/** Menghitung total biaya pendaftaran seluruh tim. */​
public int totalBiayaPendaftaran() {​
...​
}​

/** Membaca data gol dari file teks dan mengisi array
golPertandingan. */​
public void muatDataGol(String namaFile) throws IOException {​
| SHE - SZR |
6 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

...​
}​
}

Aturan Bisnis (definisi resmi, pakai ini untuk implementasi dan pengujian)
●​ Tim (abstract): tidak boleh diinstansiasi langsung; constructor Tim(String namaTim)
hanya dipanggil lewat super(...) dari subclass.
●​ TimFakultas: biaya pendaftaran tetap 0 untuk semua instance.
●​ TimUndangan: biaya pendaftaran ditentukan lewat parameter constructor, boleh
berbeda antar objek.
●​ getBiayaPendaftaran(): wajib di-override kedua subclass; tidak ada implementasi
default di Tim.
●​ Inisialisasi: daftarTim dan golPertandingan wajib punya panjang array luar yang sama,
index saling berkorespondensi. Panjang tiap golPertandingan[i] boleh berbeda-beda,
termasuk 0 (tim belum pernah bertanding).
●​ totalGol(timIndex): menjumlahkan seluruh isi golPertandingan[timIndex]; tim dengan
0 pertandingan mengembalikan 0.
●​ totalGolTurnamen(): menjumlahkan totalGol(i) untuk seluruh tim. Wajib memanggil
totalGol(), bukan menghitung ulang dari nol.
●​ pertandinganTerbaik(timIndex): index pertandingan dengan gol terbanyak; seri →
index pertama ditemukan; tim dengan 0 pertandingan → -1.
●​ rataRataGol(timIndex): totalGol(timIndex) dibagi jumlah pertandingan, dibulatkan ke
bawah; tim dengan 0 pertandingan → 0.
●​ timGolTerbanyak(): index tim dengan totalGol() tertinggi se-turnamen; seri → index
terkecil.

| SHE - SZR |
7 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

●​ totalBiayaPendaftaran(): menjumlahkan getBiayaPendaftaran() milik tiap objek Tim


yang sebenarnya — dilarang hardcode angka atau memakai instanceof/casting.
●​ muatDataGol(namaFile): membaca file teks dan mengisi ulang golPertandingan
(format & ketentuan lengkap di Sub-Task 3).

Sub-Task 1 : Struktur Gol dengan Ragged Array (Wajib, ±3-4 jam)

Babak pertama BurhanCup telah selesai, dan panitia mulai merekap jumlah gol yang
dicetak setiap tim pada setiap pertandingan. Karena menggunakan sistem gugur,
jumlah pertandingan yang dimainkan setiap tim tidak sama. Ada tim yang hanya
bermain satu kali karena langsung tersingkir, sementara ada juga tim yang sudah
memainkan tiga pertandingan karena terus melaju ke babak berikutnya. Tugas kalian
adalah mengimplementasikan method totalGol, totalGolTurnamen,
pertandinganTerbaik, rataRataGol, dan timGolTerbanyak pada
kelas TurnamenManager.

Ketentuan

●​ Ikuti Aturan Bisnis pada Model Domain.


●​ Selalu gunakan golPerbandingan[i].length untuk iterasi perbandingan tim
ke-i. Jangan pernah asumsikan semua tim punya jumlah pertandingan yang sama.
●​ Tulis unit test untuk kelima method di atas pada [Link], minimal
satu happy path + satu edge case per method, termasuk tim dengan 0 pertandingan.

Hint: Sumber ArrayIndexOutOfBoundsException paling umum di raggedArray adalah tertukar


antara [Link] (jumlah tim) dan golPertandingan[i].length (jumlah
pertandingan tim ke-i).

| SHE - SZR |
8 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

Sub - Task 2: Hierarki Warehouse dengan Inheritance & Constructor (Wajib, ±2-2.5 jam)
Seiring berjalannya turnamen, panitia menyadari bahwa biaya pendaftaran setiap tim tidak
selalu sama. Tim resmi perwakilan fakultas dibebaskan dari biaya pendaftaran, sedangkan
tim undangan, seperti tim alumni atau kampus tetangga, dikenakan biaya yang besarnya
ditentukan saat proses pendaftaran. Karena aturan kedua jenis tim berbeda, penggunaan
satu kelas Tim saja akan membuat kode dipenuhi percabangan if-else. Solusi yang lebih baik
adalah membuat dua subclass, yaitu TimFakultas dan TimUndangan, yang sama-sama
merupakan turunan dari Tim. Setelah itu, lengkapi juga method
totalBiayaPendaftaran() pada kelas TurnamenManager.

Ketentuan

●​ Tim abstract; constructor-nya hanya boleh dipanggil lewat super(...) dari


subclass.
●​ getBiayaPendaftaran() di-override berbeda oleh TimFakultas(tetap,
0)dan TimUndangan (lewat parameter constructor).
●​ totalBiayaPendaftaran() wajib memanggil getBiayaPendaftaran()
milik objek tim yang sebenarnya. Dilarang pakai instanceof/casting untuk
membedakan jenis tim.
●​ Field daftarTim di TurnamenManager bertipe Tim[], bukan String[]/
●​ Tulis unit test untuk totalBiayaPendaftaran(): uji dengan campuran
TimFakultas dan beberapa TimUndangan berbiaya berbeda.

Hint: Kalau kamu merasa perlu instanceof di totalBiayaPendaftaran(), itu tanda


desainnya belum benar.

Sub - Task 3 : File I/O untuk Membaca data Gol (Wajib, ±1.5 jam)
Selama ini, panitia memasukkan data jumlah gol secara manual satu per satu di
[Link]. Cara ini cukup merepotkan dan rentan terhadap kesalahan pengetikan.

| SHE - SZR |
9 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

Padahal, panitia sudah memiliki rekap jumlah gol setiap pertandingan dalam sebuah file teks
sederhana, yaitu data/[Link]. Tugas kalian adalah mengimplementasikan method
muatDataGol(String namaFile) agar program dapat membaca data dari file tersebut
dan mengisi array golPertandingan secara otomatis.

Format File

Satu baris mewakili satu tim, urutannya sama dengan urutan tim pada daftarTim. Gol tiap
pertandingan dipisahkan tanda koma. Baris kosong berarti tim tersebut belum pernah
bertanding.

data/[Link]​
-------------​
3,1,2,4,2​
0,2​

1
Contoh di atas berarti: tim ke-0 sudah main 5 kali, tim ke-1 sudah main 2 kali, tim ke-2 belum pernah main (baris kosong), dan
tim ke-3 baru main 1 kali.

Ketentuan

●​ Gunakan try-with-resources (mis. BufferedReader + FileReader, atau Scanner).


●​ Boleh melempar (throw) IOException ke pemanggil; tidak perlu menangani format file
yang rusak — asumsikan file selalu sesuai spesifikasi di atas.
●​ Setelah muatDataGol() dipanggil, seluruh isi golPertandingan sebelumnya
digantikan data baru dari file.
●​ Tulis minimal satu unit test yang membaca file contoh kecil (boleh dibuat khusus
untuk testing) dan memverifikasi isi golPertandingan sesuai isi file tsb.

| SHE - SZR |
10 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

●​ [Link] memanggil muatDataGol() untuk memuat data/[Link], lalu mencetak ke


konsol: total gol tiap tim, nama tim dengan gol terbanyak, dan total biaya pendaftaran
seluruh tim — laporan kecil yang bisa langsung ditunjukkan ke Burhan.

Hint: [Link](",") pada baris kosong tetap menghasilkan array, sehingga perlu di check
dulu apakah baris kosong ([Link]()) sebelum melakukan split, supaya tim yang belum
pernah main dapat array gol berukuran 0, bukan berukuran 1.

Sub - Task 4: Kreasikan Sesuai Kreativitas Kalian! (Bonus, di luar estimasi wajib)
Burhan sudah mulai mikirin musim BurhanCup berikutnya. Kalau kalian masih semangat,
tambahkan satu fitur baru yang sejalan dengan tema ini, lengkap dengan unit test-nya.
Beberapa ide:

● Subclass tim ketiga, TimCadangan, untuk tim pengganti dadakan — dengan


aturan biaya pendaftaran sendiri.

● Method simpanRekap(String namaFile) yang menulis balik total gol tiap tim ke
sebuah file teks (melengkapi Sub-Task 3 dengan file writing).

● Sistem klasemen sederhana: urutkan tim berdasarkan total gol, dari tertinggi ke
terendah.

● Validasi tambahan saat membaca file: tolak / laporkan baris dengan nilai gol
negatif.

Bobot kerja akan dievaluasi asdos dan mendapat poin bila setara dengan salah satu sub-task
wajib, serta wajib disertai unit test untuk fitur tambahannya.

📚Skema Umum Penilaian


| SHE - SZR |
11 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

Bobot Aspek Penilaian Nilai Keterangan

Semua 4 sub-task benar dan lengkap


4 termasuk variasi tambahan kreatif dan
branching coverage lebih dari 90 persen.

Semua 3 sub-task benar dan setidaknya


50 poin Correctness program 3
mengcover uji edge-case pada subtask 3.

Minimal 2 sub-task benar dan


2
terimplementasi .

1 Mengerjakan, tapi hanya 1 sub-task)

Peserta mampu live coding kurang dari 10


Demonstrasi program
menit, tanpa melihat code sebelumnya.
kepada asisten dan
Live coding dilakukan dihadapan asdos
Live Coding
ketika saat demo berlangsung. Selain itu,
4
Peserta dapat menjawab minimal 3
Ketrampilan me-redo pertanyaan asisten terkait algoritma
atau mengembangkan. program yang dibuat (dan jika Correctness
program).
Asdos/dosen dapat
Peserta mampu me-redo kurang dari 20
menghapus
30 poin menit, tanpa melihat code sebelumnya.
fungsi/class, atau
Selain itu, Peserta dapat menjawab
me-revert commit atau 3
minimal 2 pertanyaan asisten terkait
meminta tambahan
algoritma program yang dibuat (dan jika
fungsionalitas. Peserta
Correctness program).
diminta membuatnya
tanpa melihat.
jika Correctness program tapi tidak bisa
menjelaskan dengan baik untuk Live
Dilakukan ketika 2 Coding Peserta perlu melihat code
selesai praktikum hari sebelumnya. Selain itu, Peserta hanya
Senin atau Rabu. dapat menjawab minimal 1 pertanyaan

| SHE - SZR |
12 of 13
Tugas ini tidak dirancang untuk diselesaikan dalam satu malam saja! Mahasiswa diharapkan
mencicil mengerjakannya secara bertahap agar terbentuk keterampilan programmingnya.
Menggunakan jalan-jalan pintas hanya akan membodohi diri sendiri, ketrampilan tidak
terbentuk, dan bisa dipastikan akan kesulitan nanti saat ujian. Yang paling utama adalah
membentuk keterampilannya, bukan nilai TP-nya.

asisten terkait algoritma program yang


dibuat.

Peserta perlu melihat code sebelumnya


dan masih butuh bantuan. Peserta tidak
1
dapat menjawab pertanyaan asisten
terkait algoritma program yang dibuat.

4 Tulisan baik, jelas dan lengkap nilai 4

Tulisan baik, jelas, tapi tidak lengkap (nilai


Dokumentasi 3/kurang)
Kelengkapan 3 Atau
20 poin menuliskan Program lengkap (nilai 4), tapi tulisan
dokumentasi pada seadanya
program
2 Tulisan seadanya dan juga kurang lengkap

1 Tulisan asal-asalan

* Dilakukan ketika Jam Praktikum berlangsung setelah deadline TP, menjelaskan alur, logika program,
termasuk soal tambahan jika ada.
* Standar penulisan kode yang harus dipenuhi yaitu:

1.​ Indentasi yang konsisten (sumber)


2.​ Aturan penamaan harus mengikuti Java Naming Convention (sumber)
3.​ Penamaan Module, Class, Method, dan Variabel yang tidak ambigu
Contoh implementasi Unit Test dan Dokumentasi pada Tugas Pemrograman ini dapat diakses melalui
laman tersebut:

-​ [Link]
-​ [Link]

| SHE - SZR |
13 of 13

Anda mungkin juga menyukai