Task Seleksi Lab IRK 2026 created by Staryo40 (Aryo Wisanggeni)
Version: 1.0
Last updated: 15 July 2026
Satu tahun lalu terdapat tugas seleksi yang cukup menarik: IRK Library. Secara singkat, tugasnya meminta kita untuk membuat aplikasi Android Native untuk menjadi alat Swiss Army Knife yang dapat kalian gunakan sebagai asisten IRK. Aplikasinya berisi modul-modul yang membantu memahami dan mensimulasi konsep fundamental mata kuliah IRK, beberapa di antaranya modul Persamaan Linear dan Matriks (Algeo), kriptografi dan huffman coding (Matdis). Detail lebih tugas seleksi ini bisa dilihat di sini bagi yang penasaran.
Berhubung juga dengan obsesi gua juga dengan platform Android Mobile, tugas seleksi ini akan cukup similar dengan itu dengan fokus lebih ke materi Probstat, salah satu mata kuliah IRK yang paling underrated. Meskipun sering dipandang sebelah mata, Probabilita dan Statistika sebenarnya adalah fondasi vital yang menjembatani logika pemrograman deterministik dengan ketidakpastian. Lebih dari sekadar teori, mata kuliah ini menjadi fondasi bagi perkembangan Artificial Intelligence dan Machine Learning, sekaligus menjadi penentu efisiensi dalam Computer Optimization, sistem jaringan, hingga pemrosesan struktur data probabilistik. Dalam ranah teknis, prinsip-prinsipnya digunakan ke berbagai disiplin—mulai dari memecahkan masalah kompleks di Competitive Programming, mendesain grafis seperti Monte Carlo ray tracing, hingga memperkuat keamanan siber dan memperhitungkan dinamika sistem di dunia nyata. Tidak berhenti di situ, Probstat juga menjadi tulang punggung dalam dunia riset ilmiah untuk memvalidasi hipotesis, menganalisis signifikansi eksperimen, serta memodelkan fenomena kompleks yang tidak pasti agar dapat ditarik kesimpulan ilmiah yang sahih.
Karena ini merupakan lanjutan dari IRK Library, dinamakanlah tugas ini IRK Library II dengan variasi khusus Probstat, hence: StatsDroid
Tujuan tugas ini adalah eksplorasi lebih dan penerapan best practice yang unik pada platform Android dan Aplikasi Mobile dengan bumbu review kembali materi Probstat yang bakal berguna atau setidaknya bisa dipakai buat flexing di momen random.
Secara garis besar kalian akan membuat aplikasi Android standar dengan bottom navigation (yang biasanya terdapat minimal 3 page). Untuk konten dari masing-masing page tersebut dibebaskan ke calon berdasarkan spek di bawah.
Ini merupakan sistem bagaimana kalian pindah-pindah antara page di dalam aplikasi
- Bottom Navigation: Navigasi utama aplikasi untuk mengubah page
- Navigation Pattern: Menggunakan Bottom Navigation atau Navigation Drawer
- Fragment/Composable: Setiap halaman dalam fragment/composable terpisah
Note
"Good design is obvious. Great design is transparent." - Joe Sparano
![]() Binomial Probability Sums |
![]() Poisson Probability Sums |
![]() Area Under Normal Curve |
Gunakan dropdown untuk bisa memilih antara
- Binomial Probability Sums
- Poisson Probability Sums
- Area Under Normal Curve (Hanya Standar Z) -> Beri informasi khusus ini standar Z (rerata 0.0 dan std 1.0) di aplikasi
Berdasarkan pilihan dropdown, inputnya
-
Binomial Probability Sums
- Number of trials (
$n$ ):$n \ge 1$ , maksimum 20 - Success Threshold (
$r$ ):$0 \le r \le n$ - Probability of success (
$p$ ): nilai 0.1, 0.2, 0.3, ..., 0.9
- Number of trials (
-
Poisson Probability Sums
- Average rate (
$\mu$ ):$\mu > 0$ (float), maksimum 100 - Success Threshold (
$r$ ):$r \ge 0$ , nilai maksimum bebas (minimal hingga 30)
- Average rate (
-
Area Under Normal Curve
- Slider value: -5.0 hingga 5.0
- Input nilai manual (sinkron dengan slider)
Output
- Binomial Probability Sums: Berupa value (nilai probabilitas kumulatif).
- Poisson Probability Sums: Berupa value (nilai probabilitas kumulatif).
- Area Under Normal Curve:
- Visualisasi bell curve yang terarsir areanya.
- Nilai area yang diarsir.
Pengujian Hipotesis (Hypothesis Testing) adalah metode statistik inferensial yang digunakan untuk menguji apakah suatu klaim atau hipotesis mengenai parameter populasi (seperti rata-rata
Modul ini dirancang untuk memvisualisasikan bagaimana Nilai Statistik Hitung (
Gunakan radio button/toggle untuk memilih jenis uji statistik:
- Z-Test
- t-Test
Input:
-
Z-Test
- Hypothesized Mean (
$\mu_0$ ): Input manual / slider (-100.0 hingga 100.0) - Sample Mean (
$\bar{x}$ ): Input manual / slider (-100.0 hingga 100.0) - Population Std Dev (
$\sigma$ ):$\sigma > 0$ , maksimum 50.0 - Sample Size (
$n$ ):$n \ge 1$ , maksimum 500 - Significance Level (
$\alpha$ ): Pilihan 0.01, 0.05, 0.10 - Tail Type (
$H_a$ ): Two-tailed ($\neq$ ), Right-tailed ($>$ ), Left-tailed ($<$ )
- Hypothesized Mean (
-
t-Test
- Hypothesized Mean (
$\mu_0$ ): Input manual / slider (-100.0 hingga 100.0) - Sample Mean (
$\bar{x}$ ): Input manual / slider (-100.0 hingga 100.0) - Sample Std Dev (
$s$ ):$s > 0$ , maksimum 50.0 - Sample Size (
$n$ ):$n \ge 2$ , maksimum 500 (Degrees of freedom$df = n - 1$ ) - Significance Level (
$\alpha$ ): Pilihan 0.01, 0.05, 0.10 - Tail Type (
$H_a$ ): Two-tailed ($\neq$ ), Right-tailed ($>$ ), Left-tailed ($<$ )
- Hypothesized Mean (
Output:
-
Visualisasi Kurva:
- Visualisasi bell curve distribusi sampel
$H_0$ . - Area penolakan (Rejection Region / Critical Region) terarsir warna merah berdasarkan nilai
$\alpha$ . - Pin posisi sampel (
$\bar{x}$ ) beserta shading area$p$ -value.
- Visualisasi bell curve distribusi sampel
-
Hasil Kalkulasi:
- Nilai
$Z$ -score /$t$ -score hitung. - Nilai
$p$ -value. - Keputusan akhir secara otomatis: Reject
$H_0$ atau Fail to Reject$H_0$ .
- Nilai
- Gunakan Jetpack Compose. Ini merupakan toolkit paling modern dan sering dipakai sekarang dalam Android development yang berbasis Declarative UI. Tolong jangan gunakan cara outdated XML 🙏
- Pengaturan lifecycle UI object agar tidak reset akibat perubahan konfigurasi, seperti perubahan orientasi, theme, light/dark mode (state management).
- Dependency Injection (DI) dengan Hilt / Koin. Memisahkan dependensi antar kelas untuk meningkatkan modularitas, mengurangi coupling, serta mempermudah pembuatan mocking saat pengujian (testing).
- Arsitektur MVVM (Model-View-ViewModel). Menerapkan pemisahan tampilan, logika, dan data:
- View (Jetpack Compose): Hanya mengurus tampilan visual dan mengamati (observe) data dari ViewModel.
- ViewModel: Mengelola state UI, memproses logika tampilan, serta bertahan (survive) dari perubahan konfigurasi.
- Model (Repository & Data Source): Mengelola logika data bisnis dan komunikasi sumber data.
Cantumkan di README bagaimana aplikasi kalian readable (mudah dibaca), modular (terpisah untuk kepentingan berbeda) dan juga extendable (bisa ditambah fitur). Ini adalah tempat kalian berkreativitas secara arsitektur Perangkat Lunak, pastikan saja bagaimana cara terbaik berdasarkan spek di atas bagaimana membagikan modul/kode sedemikian sehingga mudah dibaca, terstruktur, dan mudah untuk ditambah.
Hal yang dinilai adalah
- Readability: Memastikan kode bersih (clean code) dan mudah dipahami oleh pengembang lain, seperti naming convention yang jelas, strict separation antar string parsing dan pemrosesan, dan self documented code (beri comment jika diperlukan)
- Modularity: Pemisahan antar komponen pada struktur file dan direktori, idealnya setiap kompenen independen dan tidak terlalu bergantung satu sama lain kecuali di tempat integrasi (main)
- Extensibility: seandainya mau menambah modul baru (seperti modul Persamaan Linear dan Matriks, kriptografi, dan huffman coding dari IRK Library pertama) seberapa susah mengintegrasinya? semakin mudah semakin baik.
Note
A good developer is a developer that considers the maintainability of their work even after their passing (they switched companies :v)
Important
Implementasi akan dicek apakah sesuai dengan apa yang di-klaim pada deskripsi README
Buatlah README dalam Bahasa Inggris yang seminimalnya berisi
- Deskripsi singkat aplikasi
- Daftar fitur
- Teknologi yang digunakan
- Struktur program (Secara arsitektur dan file structure)
- Cara menjalankan program
- Modularity and Extensibility (Spek wajib ke-5 di atas)
- Deskripsi dan screenshot dari masing-masing fitur
- Creator
Halaman ini adalah visualizer interaktif untuk membuktikan secara visual Central Limit Theorem (CLT): bahwa distribusi dari rata-rata sampel (
Input & Kontrol
Semua input menggunakan slider dan dropdown interaktif untuk kemudahan manipulasi data secara real-time tanpa pengetikan manual:
-
Population Shape (Bentuk Populasi Awal)
- Pilihan Dropdown:
- Uniform (Rata / Semua nilai punya peluang sama)
- Exponential / Skewed (Miring ekstrem ke kanan)
- Bimodal (Memiliki dua puncak)
- Pilihan Dropdown:
-
Sample Size (
$n$ )- Slider value:
$1$ hingga$100$ (Default:$30$ ) - Fungsi: Menentukan berapa banyak elemen yang diambil dalam 1 kali pengambilan sampel.
- Slider value:
-
Number of Samples (
$M$ )- Slider:
$100$ ,$500$ ,$1.000$ ,$5.000$ (Default:$1.000$ ) -
Fungsi: Menentukan berapa kali percobaan pengambilan sampel dilakukan untuk menghitung rata-rata (
$\bar{x}$ ).
- Slider:
-
Action Button
- "Simulate / Draw Samples" (Tombol untuk menjalankan atau mereset ulang simulasi).
Output
Halaman ini menampilkan 2 grafik terpisah secara vertikal untuk memperlihatkan proses transformasi:
-
Grafik 1: Original Population Distribution (Histogram Populasiasli)
- Visualisasi bentuk asli populasi sesuai pilihan dropdown (misal: bentuk kotak rata untuk Uniform, atau miring untuk Exponential).
- Menampilkan nilai Rerata Populasi (
$\mu$ ) dan Standard Deviasi Populasi ($\sigma$ ).
-
Grafik 2: Sampling Distribution of Sample Means (Histogram Rata-Rata Sampel
$\bar{x}$ )- Histogram interaktif dari
$M$ nilai rata-rata sampel ($\bar{x}$ ) yang terkumpul. -
Overlaid Theoretical Normal Curve: Garis kurva Bell Curve teoretis yang di-fit di atas histogram berdasarkan nilai rata-rata
$\mu_{\bar{x}} = \mu$ dan Standard Error$SE = \frac{\sigma}{\sqrt{n}}$ . - As
$n$ bertambah besar, histogram Grafik 2 akan makin menyempit dan makin presisi mengikuti bentuk Bell Curve.
- Histogram interaktif dari
-
Live Summary Metrics Card
- Theoretical Mean (
$\mu$ ) vs Empirical Mean ($\bar{x}_{\text{avg}}$ ) - Standard Error (
$SE = \frac{\sigma}{\sqrt{n}}$ )
- Theoretical Mean (
- Buat pustaka untuk lihat PDF in-app (bukan literally buat library (program) untuk lihat PDF-nya ya, silakan gunakan library yang sudah ada)
- Kontennya berupa materi ppt Probstat
- Boleh ditambah juga dengan materi ppt Pak Rinaldi Munir
- Bonus tambahan: buat automatic scraper web Pak Rinaldi untuk mengambil ppt terbaru (dari tahun ajaran terbaru)
- Pembuat aplikasi: Informasi tentang developer
- Motivasi: Alasan pembuatan aplikasi
- Harapan sebagai asisten IRK: Visi dan misi sebagai asisten
- Contact information: Email atau media sosial
Buatlah LICENSE pada repository dan deskripsikan mengapa menggunakan license tersebut (dari sisi legal dan hal-hal yang diizinkan ke orang lain ke karya kalian).
Gunakan guideline ini sebagai bacaan dalam membuat lisensi. TLDR license bisa di-copas dari https://choosealicense.com/ juga.
Beri tahu di line jika sudah ketika pengumpulan tugas
| Tipe | Aspek | Nilai Maksimum |
|---|---|---|
| Spesifikasi Wajib | ||
| Page X: Probstat Table Lookup | 1200 | |
| Page Y: Visual Hypothesis Tester | 1500 | |
| Modern Android Application Best Practices | 300 | |
| Readibility, Modularity, and Extensibility | 300 | |
| Production-ready README | 500 | |
| Spesifikasi Bonus | Page Z: Central Limit Theorem Interactive Visualizer | 700 |
| Referensi Page: 300 view only, 300 tambahan untuk scraper | 600 | |
| About Me Page | 300 | |
| Licensing | 150 | |
| Follow socials | 50 | |
| Total Maksimum | 5600 | |
- Buatlah repositori private pada github masing-masing dan invite
Staryo40dalam repositori tersebut. - Berkas yang dikumpulkan berupa link rilis tag ke repositori github yang telah dibuat dengan ketentuan sebagai berikut.
- Memberikan tag
vnpada commit terakhir Anda setiap kali ingin melakukan submisi dengannadalah jumlah submisi yang telah dilakukan. (contoh:v1untuk submisi pertama). - Tidak menggunakan url shortener (bit.ly, shortlink, atau yang lain) saat melakukan pengumpulan task.
- Anda dapat melakukan rilis dengan panduan berikut.
- Memberikan tag
- Lakukan submisi pada website seleksi IRK dengan menggunakan akun std.stei.itb.ac.id, lakukan konfirmasi ke LINE
@sstaryodan jadwalkan demo jika ada dengan cara yang sama. - Submisi hanya dapat dilakukan sekali saja, tetapi bisa ditarik kembali submisinya sebelum dikunci asisten atau nilai akhir dirilis. Di lain sisi, calon bisa koordinasi lebih dengan LINE
@sstaryojika perlu menghapuskan submisi untuk menggantikan submisi yang salah atau semacamnya. - Jika terdapat pertanyaan (atau memerlukan hint) dapat menghubungi LINE
@sstaryo.
- The scriptures: https://informatika.stei.itb.ac.id/~rinaldi.munir/
- My Goat (recommended klo mau belajar Android Native): https://www.youtube.com/@PhilippLackner
- Dokumentasi Kotlin: https://kotlinlang.org/docs/home.html
- Arsitektur MVVM: https://medium.com/@jecky999/mvvm-architecture-in-android-using-kotlin-a-practical-guide-73f8de1d9c58
Final Note: Jangan lupa have fun! Developing aplikasi itu supposed to be enjoyable. Di era dominasi AI ini yang sangat tempting untuk vibe-coding suatu tugas end-to-end, sangat buat pressure ke kita untuk punya mindset yang penting cepat kelar/yang penting jadi hingga kita lupa enjoy prosesnya. Pastiin kalian bisa enjoy bagian kreatifnya setidaknya seperti membuat arsitektur dan perancangan.




