Puncak Course ini membungkus seluruh materi menjadi aplikasi analisis data yang dapat dipakai orang lain tanpa mengetik satu baris kode. Kita membangun aplikasi yang memuat data CSV, menjalankan analisis statistik ringkas, menampilkan grafik, dan menyajikan ringkasan hasil — dengan antarmuka yang kita bangun secara programatik memakai uifigure, sehingga seluruh aplikasi hidup dalam berkas .m yang bisa dibuat versinya.
Alur tahapannya:
- perancangan antarmuka — alur kerja pengguna, wireframe, dan komponen yang dibutuhkan,
- implementasi komponen — membangun layout, komponen input, dan panel output,
- integrasi analisis — menghubungkan tombol dengan logika analisis dan grafik,
- pengujian aplikasi — menguji alur aplikasi dan validasi input pengguna.
Seluruh kode sumber setiap tahap tersedia pada bagian Berkas Sumber di bawah halaman setiap bagian.
Perilaku yang Diharapkan #
Pengguna akhir aplikasi kita adalah pemilik toko kecil yang punya berkas catatan bulanan tetapi tidak pernah membuka Command Window. Aplikasi harus bisa dijalankan dengan satu kata — aplikasiAnalisis — lalu bekerja sepenuhnya lewat mouse:
- Jendela berukuran 720 x 520 piksel terbuka berisi judul, tombol Muat Data, dropdown Kolom Y, area grafik, dan label ringkasan.
- Klik pertama pada Muat Data membuat
data_contoh.csv(12 bulan data penjualan dan suhu) bila berkas itu belum ada, lalu memuatnya. - Grafik garis tergambar: kolom pertama (bulan) di sumbu-x, kolom terpilih di sumbu-y; ringkasan statistik terisi.
Teks ringkasan yang muncul di label bawah jendela — nilai nyata dari data contoh:
12 baris | kolom Y: penjualan
mean 291.7 | std 58.5 | min 200.0 | maks 380.0
korelasi bulan-penjualan: 0.997Mengganti pilihan dropdown — dari penjualan ke suhu — menggambar ulang grafik dan memperbarui ringkasan tanpa memuat ulang berkas. Galat apa pun (berkas rusak, format salah) ditolak dengan dialog uialert, bukan teks galat mentah di Command Window.
Fitur yang Dibangun #
| Fitur | Perilaku |
|---|---|
| Muat data CSV | Tombol Muat Data membaca data_contoh.csv; klik pertama menuliskannya bila belum ada |
| Statistik per kolom | mean, std, min, maks untuk setiap kolom, dihitung fungsi murni analisisInti() |
| Korelasi | Korelasi kolom pertama (bulan) terhadap setiap kolom lain |
| Grafik interaktif | Dropdown Kolom Y menggambar ulang plot di UIAxes dengan target eksplisit |
| Ringkasan tiga baris | Label diperbarui dengan sprintf multi-baris setiap kolom berganti |
| Tahan galat | Seluruh jalur galat ditangkap try/catch dan dilaporkan lewat uialert |
| Logika teruji otomatis | tests/uji_logika.m: 18 kasus (nilai dan galat) lulus di GNU Octave |
Arsitektur Dua Lapis #
Aplikasi dipisah menjadi dua lapisan dengan kontrak data yang jelas — antarmuka MATLAB-only di atas, logika murni yang teruji di bawah:
Lapisan logika tidak mengenal satu komponen UI pun: muatCSV() mengubah berkas menjadi struct, analisisInti() mengubah struct menjadi struct hasil. Kedua fungsi itulah yang diuji otomatis — lapisan UI yang tipis tinggal menempelkan hasilnya ke komponen.
Tujuan Pembelajaran #
- Merancang antarmuka dari alur pengguna: user flow → wireframe → daftar komponen → state.
- Membangun app programatik dengan
uifigure,uigridlayout,uibutton,uidropdown,uiaxes, danuilabel. - Mengelola state app dengan nested functions dalam satu berkas fungsi.
- Menjaga logika analisis sebagai fungsi murni yang teruji, terpisah dari GUI.
- Menangkap galat di dalam callback dan melaporkannya lewat
uialert. - Menyusun strategi uji dua lapis: otomatis untuk logika, manual terencana untuk antarmuka.
Prasyarat #
Materi berikut perlu dikuasai sebelum memulai proyek ini:
- Cell Array dan Structure Array dari section Struktur Data MATLAB
- Statistik Deskriptif dan Korelasi dari section Statistik dan Analisis Data
- Membaca File CSV dan Menulis File Data dari section Import dan Export Data
- Membuat Function dan Local Functions dari section Fungsi
- Error Handling Dasar dari section Struktur Kontrol
- Format Output dari section Dasar Pemrograman MATLAB
- Konsep GUI MATLAB, Komponen Antarmuka, Callbacks, Menghubungkan UI dengan Data, Menampilkan Plot dalam App, dan Validasi Input Pengguna dari section App Designer dan Antarmuka
- Assertions dan Unit Testing dari section Debugging dan Pengujian
Struktur Proyek #
Kode dipisah menjadi lapisan UI, lapisan logika di src/, dan berkas uji di tests/:
aplikasi-analisis-data/
├── _index.md
├── bagian/
│ ├── perancangan-antarmuka/
│ │ └── index.md
│ ├── implementasi-komponen/
│ │ └── index.md
│ ├── integrasi-analisis/
│ │ └── index.md
│ └── pengujian-aplikasi/
│ └── index.md
├── src/
│ ├── aplikasiAnalisis.m - app uifigure programatik (MATLAB-ONLY)
│ ├── analisisInti.m - statistik + korelasi + laporan (murni)
│ ├── muatCSV.m - baca CSV header+angka menjadi struct (murni)
│ └── buatDataContoh.m - tulis CSV contoh 12 baris (murni)
└── tests/
└── uji_logika.m - 18 kasus uji lapisan logikaCara Menjalankan #
Buka folder src/ di MATLAB, lalu panggil dari Command Window:
>> aplikasiAnalisisJendela aplikasi terbuka. Tekan Muat Data — klik pertama sekaligus menuliskan data_contoh.csv di folder kerja — lalu coba ganti pilihan Kolom Y dan perhatikan grafik serta ringkasan ikut berganti. Seluruh keluarga uifigure hanya berjalan di desktop MATLAB.
Lapisan logika bisa diuji tanpa GUI, bahkan di GNU Octave 10.3.0:
$ octave tests/uji_logika.m
== uji_logika.m ==
LULUS: buatDataContoh mengembalikan nama berkas
LULUS: buatDataContoh menulis berkas di folder uji
LULUS: muatCSV membaca 12 baris 3 kolom
LULUS: muatCSV membaca nama kolom header
LULUS: muatCSV kolom bulan utuh 1..12
LULUS: analisisInti mean/std/min/maks per kolom
LULUS: analisisInti jumlah baris dan kolom
LULUS: analisisInti korelasi sesuai rumus
LULUS: laporan memuat kata kunci
LULUS: analisisInti nama kolom bawaan
LULUS: muatCSV berkas tidak ada
LULUS: muatCSV CSV satu kolom
LULUS: muatCSV token bukan angka
LULUS: muatCSV jumlah kolom berubah
LULUS: muatCSV header tanpa baris data
LULUS: analisisInti data satu kolom
LULUS: analisisInti data kosong
LULUS: analisisInti namaKolom salah panjang
Ringkasan: 18 lulus, 0 gagal (total 18)Tahapan Pengerjaan #
Proyek dikerjakan dalam empat bagian berurutan:
- Bagian 1: Perancangan Antarmuka — alur pengguna, wireframe, keputusan teknologi, arsitektur dua lapis, dan desain state.
- Bagian 2: Implementasi Komponen — jendela
uifigure, grid layout, dan lima komponen inti beserta gayanya. - Bagian 3: Integrasi Analisis —
analisisInti,muatCSV,buatDataContoh, dan callback yang menyambungkannya ke UI. - Bagian 4: Pengujian Aplikasi — uji otomatis logika, rencana uji manual, uji regresi, packaging, dan ide pengembangan.
Mulailah dari Bagian 1 dan ikuti urutannya karena setiap bagian dibangun di atas keputusan bagian sebelumnya.
Rancang alur kerja aplikasi dan susun wireframe komponen antarmukanya.
Buka → # Bagian 2: Implementasi KomponenBangun jendela aplikasi programatik dengan uifigure dan komponen intinya.
Buka → # Bagian 3: Integrasi AnalisisHubungkan tombol dan komponen dengan logika analisis serta grafik output.
Buka → # Bagian 4: Pengujian AplikasiUji seluruh alur aplikasi termasuk validasi input dan penanganan galat.
Buka →