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:

text
=== 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 #

FiturPerilaku
Menu berulangProgram menampilkan menu, membaca pilihan, dan mengulanginya sampai pengguna memilih 0
Lima operasiTambah, kurang, dan kali untuk dua matriks; transpose dan determinant untuk satu matriks
Input format teksMatriks diketik sebagai satu baris seperti 1 2; 3 4, lalu diterjemahkan parser aman tanpa eval
Validasi dimensiUkuran tidak kompatibel ditolak dengan pesan seperti Ukuran tidak kompatibel: 2x3 vs 2x2
Validasi formatTeks kosong, token bukan angka, jumlah kolom berbeda, baris kosong, ukuran di atas 10x10, dan nilai meluap semuanya ditolak
Program tahan galatSemua galat operasi dan parsing ditangkap try/catch; program selalu kembali ke menu
Mode demokalkulator('demo') menjalankan seluruh alur dengan delapan skenario data tetap sehingga bisa diuji otomatis
Test terstrukturTiga 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 input mode teks dan mengubahnya menjadi angka secara aman.
  • Membangun parser matriks dari teks tanpa eval maupun str2num.
  • Melempar error dengan pesan informatif dan menangkapnya agar program tidak berhenti.
  • Memformat keluaran matriks rata kanan dengan fprintf dan lebar kolom dinamis.
  • Menulis test berbasis assert yang 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/:

text
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 demo

Cara Menjalankan #

Buka folder src/ lalu panggil kalkulator dari Command Window. Program berjalan interaktif dan membaca ketikanmu langsung:

text
>> 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:

text
=== 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:

  1. Bagian 1: Perancangan Kalkulator — kebutuhan, keputusan desain, kerangka menu, dan mode demo.
  2. Bagian 2: Operasi Matriks — lima operasi beserta validasi dimensi dan tampilan hasil yang rapi.
  3. Bagian 3: Validasi Input — parser teks menjadi matriks, batasan ukuran, dan pesan galat yang ramah.
  4. 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.