Kita telah mengenal array, matriks, struktur kontrol, fungsi, dan pengujian. Sekarang saatnya merangkainya menjadi satu program yang benar-benar dipakai: kalkulator matriks berbasis terminal. Program ini membaca dua matriks dari pengguna, menawarkan menu operasi (penjumlahan, pengurangan, perkalian, transpose, determinant), memvalidasi setiap input, dan menguji seluruh operasi dengan test terstruktur.
Operasi inti yang kita bangun:
- tambah/kurang — menjumlahkan dan mengurangkan dua matriks berukuran sama,
- kali — perkalian matriks dengan pemeriksaan kesesuaian dimensi,
- transpose — menukar baris menjadi kolom,
- determinant — menghitung determinan matriks persegi.
Seluruh kode sumber setiap tahap tersedia pada bagian Berkas Sumber di bawah halaman setiap bagian.
Perilaku yang Diharapkan #
Sebelum menulis kode, mari kita tetapkan perilaku akhir program. Sesi berikut menambahkan dua matriks, menghitung determinant (dengan satu salah ketik yang ditolak lalu diulang), mencoba perkalian dengan ukuran yang tidak kompatibel, lalu keluar:
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 1
Matriks A (contoh: 1 2; 3 4): 1 2; 3 4
Matriks B (contoh: 1 2; 3 4): 5 6; 7 8
Hasil:
6 8
10 12
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 5
Matriks A (contoh: 1 2; 3 4): 4 7; 2 6;
Ada baris kosong. Hapus titik koma yang berlebih.
Matriks A (contoh: 1 2; 3 4): 4 7; 2 6
Determinan = 10
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 3
Matriks A (contoh: 1 2; 3 4): 1 2; 3 4
Matriks B (contoh: 1 2; 3 4): 1 2; 3 4; 5 6
Ukuran tidak kompatibel: 2x2 vs 3x2. Perkalian memerlukan jumlah kolom A sama dengan jumlah baris B.
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 0
Terima kasih. Program selesai.Fitur yang Dibangun #
| Fitur | Perilaku |
|---|---|
| Menu berulang | Program menampilkan menu, membaca pilihan, dan mengulanginya sampai pengguna memilih 0 |
| Lima operasi | Tambah, kurang, dan kali untuk dua matriks; transpose dan determinant untuk satu matriks |
| Input format teks | Matriks diketik sebagai satu baris seperti 1 2; 3 4, lalu diterjemahkan parser aman tanpa eval |
| Validasi dimensi | Ukuran tidak kompatibel ditolak dengan pesan seperti Ukuran tidak kompatibel: 2x3 vs 2x2 |
| Validasi format | Teks kosong, token bukan angka, jumlah kolom berbeda, baris kosong, ukuran di atas 10x10, dan nilai meluap semuanya ditolak |
| Program tahan galat | Semua galat operasi dan parsing ditangkap try/catch; program selalu kembali ke menu |
| Mode demo | kalkulator('demo') menjalankan seluruh alur dengan delapan skenario data tetap sehingga bisa diuji otomatis |
| Test terstruktur | Tiga berkas uji: unit operasi, unit validasi, dan uji end-to-end berbasis assert |
Tujuan Pembelajaran #
- Merancang program interaktif dengan pola loop menu + dispatch
switch. - Membaca input pengguna melalui
inputmode teks dan mengubahnya menjadi angka secara aman. - Membangun parser matriks dari teks tanpa
evalmaupunstr2num. - Melempar
errordengan pesan informatif dan menangkapnya agar program tidak berhenti. - Memformat keluaran matriks rata kanan dengan
fprintfdan lebar kolom dinamis. - Menulis test berbasis
assertyang dapat dijalankan otomatis dan melaporkan hitungan lulus/gagal.
Prasyarat #
Materi berikut perlu dikuasai sebelum memulai proyek ini:
- Membuat Matriks, Operasi Matriks, dan Operasi Elemen Array dari section Array dan Matriks
- while Loop dan switch-case dari section Struktur Kontrol
- Membuat Function dan Local Functions dari section Fungsi
- Error Handling Dasar dari section Struktur Kontrol
- Format Output dan Konversi Tipe Data dari section Dasar Pemrograman MATLAB
- Assertions dan Unit Testing dari section Debugging dan Pengujian
Struktur Proyek #
Kode dipisahkan menjadi tiga lapisan: program utama, fungsi-fungsi di src/, dan berkas uji di tests/:
kalkulator-matriks/
├── _index.md
├── bagian/
│ ├── perancangan-kalkulator/
│ │ └── index.md
│ ├── operasi-matriks/
│ │ └── index.md
│ ├── validasi-input/
│ │ └── index.md
│ └── pengujian-kalkulator/
│ └── index.md
├── src/
│ ├── kalkulator.m - program utama: menu, dispatch, mode demo
│ ├── bacaMatriks.m - membaca satu matriks dari keyboard/demo
│ ├── parserMatriks.m - menerjemahkan teks menjadi matriks
│ ├── validasiDimensi.m - memeriksa kompatibilitas ukuran operasi
│ ├── validasiPersegi.m - memeriksa matriks berbentuk persegi
│ ├── tambahMatriks.m - penjumlahan dua matriks
│ ├── kurangMatriks.m - pengurangan dua matriks
│ ├── kaliMatriks.m - perkalian dua matriks
│ ├── transposeMatriks.m - transpose matriks
│ ├── determinanMatriks.m - determinan matriks persegi
│ └── tampilkanMatriks.m - mencetak matriks rata kanan
└── tests/
├── uji_operasi.m - uji unit fungsi operasi
├── uji_validasi.m - uji unit parser dan validasi
└── uji_end_to_end.m - uji menyeluruh mode demoCara Menjalankan #
Buka folder src/ lalu panggil kalkulator dari Command Window. Program berjalan interaktif dan membaca ketikanmu langsung:
>> kalkulator
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan:Untuk melihat seluruh kemampuan program tanpa mengetik satu per satu, jalankan mode demo: kalkulator('demo') menjalankan delapan skenario tetap — lima operasi, satu perkalian dengan ukuran yang sengaja tidak kompatibel, satu pilihan tak dikenal, dan keluar. Transkrip berikut adalah hasil nyata mode demo:
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 1
Matriks A (contoh: 1 2; 3 4): 1 2; 3 4
Matriks B (contoh: 1 2; 3 4): 5 6; 7 8
Hasil:
6 8
10 12
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 2
Matriks A (contoh: 1 2; 3 4): 1 2; 3 4
Matriks B (contoh: 1 2; 3 4): 5 6; 7 8
Hasil:
-4 -4
-4 -4
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 3
Matriks A (contoh: 1 2; 3 4): 1 2; 3 4
Matriks B (contoh: 1 2; 3 4): 5 6; 7 8
Hasil:
19 22
43 50
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 4
Matriks A (contoh: 1 2; 3 4): 1 2; 3 4
Hasil:
1 3
2 4
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 5
Matriks A (contoh: 1 2; 3 4): 4 7; 2 6
Determinan = 10
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 3
Matriks A (contoh: 1 2; 3 4): 1 2; 3 4
Matriks B (contoh: 1 2; 3 4): 1 2; 3 4; 5 6
Ukuran tidak kompatibel: 2x2 vs 3x2. Perkalian memerlukan jumlah kolom A sama dengan jumlah baris B.
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 9
Pilihan tidak dikenal. Masukkan angka 0 sampai 5.
=== Kalkulator Matriks ===
1. Tambah matriks
2. Kurang matriks
3. Kali matriks
4. Transpose
5. Determinan
0. Keluar
Pilihan: 0
Terima kasih. Program selesai.Tahapan Pengerjaan #
Proyek dikerjakan dalam empat bagian berurutan. Setiap bagian menghasilkan program yang dapat dijalankan penuh pada tahapnya:
- Bagian 1: Perancangan Kalkulator — kebutuhan, keputusan desain, kerangka menu, dan mode demo.
- Bagian 2: Operasi Matriks — lima operasi beserta validasi dimensi dan tampilan hasil yang rapi.
- Bagian 3: Validasi Input — parser teks menjadi matriks, batasan ukuran, dan pesan galat yang ramah.
- Bagian 4: Pengujian Kalkulator — test unit, test kasus galat, uji end-to-end, dan checklist kualitas.
Mulailah dari Bagian 1 dan ikuti urutannya karena setiap bagian dibangun di atas kode bagian sebelumnya.
Rancang arsitektur kalkulator: menu loop, bentuk data matriks, dan pembacaan input dari pengguna.
Buka → # Bagian 2: Operasi MatriksImplementasikan operasi inti: tambah, kurang, kali, transpose, dan determinant beserta unit operasinya.
Buka → # Bagian 3: Validasi InputKetatkan validasi input: format angka, dimensi matriks, dan pesan galat yang informatif.
Buka → # Bagian 4: Pengujian KalkulatorUji seluruh komponen dengan test script terstruktur dan pastikan setiap cabang menu teruji.
Buka →