Mental model MATLAB

Cara pandang laboratorium matriks: segala sesuatu adalah array dan alur kerja berjalan interpretatif.

Daftar isi

Mental model adalah gambaran cara kerja sebuah sistem yang digunakan untuk memperkirakan perilakunya. Mental model MATLAB dapat diringkas menjadi dua kalimat: setiap nilai yang tersimpan di memori adalah array, dan setiap pernyataan dievaluasi seketika oleh penerjemah interaktif. Topik ini membuktikan klaim pertama dengan fungsi size, class, dan ndims. Alur kerja interpretatif Command Window kemudian dijelaskan beserta dua mekanisme pendukungnya, yaitu penekanan gema oleh titik koma dan variabel penampung ans. Seluruh contoh pada topik ini dijalankan nyata sehingga setiap keluaran yang tampak adalah keluaran sebenarnya.

Segala sesuatu adalah array#

MATLAB menyimpan setiap nilai sebagai array, yakni susunan elemen yang memiliki dimensi baris dan kolom. Tidak ada tipe skalar yang berdiri terpisah dari matriks. Angka tunggal yang tampak sederhana sebenarnya adalah array berukuran 1×1. Klaim ini dapat diverifikasi langsung dengan tiga fungsi pemeriksa, yaitu size untuk ukuran, class untuk tipe, dan ndims untuk jumlah dimensi. Contoh berikut menyimpan satu nilai pengukuran suhu ke variabel suhu, lalu memeriksa bentuk datanya.

matlab Contoh: memeriksa bentuk sebuah skalar
suhu = 24.5
size(suhu)
class(suhu)
ndims(suhu)
text Keluaran
suhu = 24.500
ans =

   1   1

ans = double
ans = 2

Fungsi size melaporkan suhu berukuran satu baris kali satu kolom sehingga skalar memang array 1×1. Fungsi class melaporkan tipe double, yaitu bilangan pecahan presisi ganda yang menjadi tipe bawaan MATLAB untuk angka. Fungsi ndims melaporkan dua dimensi karena MATLAB selalu memandang array minimal memiliki baris dan kolom, sekalipun keduanya berukuran satu. Ketiga hasil itu bukan keanehan, melainkan konsekuensi langsung dari model array.

Bentuk yang lebih besar mengikuti aturan yang sama. Tanda kurung siku membangun array, spasi memisahkan elemen pada satu baris, dan titik koma memisahkan antarbaris. Contoh berikut membandingkan vektor baris dengan matriks dua kali dua.

matlab Contoh: vektor baris dan matriks dua kali dua
v = [10 20 30]
A = [1 2; 3 4]
size(v)
size(A)
text Keluaran
v =

   10   20   30

A =

   1   2
   3   4

ans =

   1   3

ans =

   2   2

Vektor v berukuran 1×3 sehingga hanyalah matriks dengan satu baris. Matriks A berukuran 2×2. Tidak ada tipe data khusus untuk vektor maupun skalar karena semuanya adalah array dengan ukuran yang berbeda. Model tunggal ini menyederhanakan aturan bahasa karena operasi, pengindeksan, dan pemeriksaan bentuk menggunakan mekanisme yang sama untuk semua data.

Command Window sebagai penerjemah interaktif#

Command Window menjalankan peran penerjemah (interpreter) yang bekerja satu pernyataan tiap kali. Alurnya membentuk siklus: penerjemah menampilkan prompt, membaca satu baris masukan, mengevaluasi pernyataan pada baris itu, menampilkan hasil bila perlu, lalu kembali menunggu. Prompt MATLAB berupa tanda >> di awal baris yang siap diisi. Siklus lengkapnya tergambar pada diagram berikut.

menunggumasukanmembacasatu barismengevaluasipernyataanmenggaungkanhasilmenunggu baris berikutnya
Siklus kerja Command Window sebagai penerjemah interaktif

Tidak ada tahap kompilasi terpisah sebelum pernyataan berjalan. Kesalahan sintaks maupun kesalahan runtime dilaporkan seketika setelah baris tersebut diketik. Konsekuensinya, alur kerja MATLAB mirip kerja laboratorium: hipotesis diuji dengan data kecil, hasilnya diperiksa langsung, dan langkah berikutnya disesuaikan. Variabel yang dibuat tetap hidup selama sesi berlangsung sehingga nilai sebelumnya dapat diperiksa ulang tanpa menjalankan ulang keseluruhan perhitungan.

Titik koma menekan gema, bukan perhitungan#

Titik koma yang diletakkan di akhir sebuah pernyataan menekan gema hasilnya ke layar. Perhitungannya tetap dijalankan penuh dan nilainya tetap tersimpan di workspace. Hanya penampilan hasilnya yang ditahan.

matlab Contoh: penugasan dengan dan tanpa titik koma
B = [1 2; 3 4];
C = B * 2
text Keluaran
C =

   2   4
   6   8

Baris pertama membuat matriks B tanpa menampilkan apa pun karena diakhiri titik koma. Baris kedua menghitung C sebagai B dikali dua lalu menggaungkannya karena tidak diakhiri titik koma. Isi B tetap tersimpan penuh dan dapat diverifikasi kapan pun, cukup dengan mengetik namanya tanpa titik koma.

Titik koma memegang peran kedua yang tidak berkaitan dengan gema, yaitu sebagai pemisah baris di dalam tanda kurung siku pembentuk matriks. Baris pertama contoh di atas memuat kedua peran itu sekaligus: titik koma di antara angka 2 dan 3 memisahkan baris matriks B, sedangkan titik koma di akhir baris menahan gema penugasan. Posisi menentukan makna titik koma, sehingga satu karakter yang sama membawa dua tugas berbeda. Membedakan kedua posisi itu sejak awal mencegah salah baca pada kode yang memuat banyak matriks.

Variabel ans sebagai penampung hasil#

Setiap ekspresi yang dievaluasi tanpa penugasan menyimpan hasilnya ke variabel bawaan bernama ans, singkatan dari answer. Variabel ini memudahkan inspeksi cepat karena hasil dapat digunakan pada perhitungan berikutnya tanpa mengetik ulang ekspresinya. Perilaku variabel ini paling mudah dipahami lewat urutan tiga baris berikut.

matlab Contoh: hasil tanpa penugasan masuk ke ans
7 + 3
ans * 2
hasil = ans
text Keluaran
ans = 10
ans = 20
hasil = 20

Ekspresi 7 + 3 menetapkan ans bernilai 10. Ekspresi ans * 2 kemudian dihitung menjadi 20 dan karena tidak ditugaskan, hasilnya menimpa isi ans. Baris ketiga menyalin isi ans ke variabel bernama hasil sehingga nilainya aman dari penimpaan berikutnya.

Variabel ans adalah variabel biasa, bukan mekanisme khusus. Variabel ini terlihat di workspace bersama variabel lain, ikut terhapus oleh clear, dan dapat ditimpa secara sengaja lewat penugasan biasa. Penimpaan otomatis hanya terjadi ketika sebuah ekspresi menghasilkan nilai tanpa target penugasan. Karena itu ans paling tepat diperlakukan sebagai penampung sementara, bukan tempat penyimpanan hasil yang berarti.

Kesalahan umum#

  • Mengira titik koma menghentikan atau menunda perhitungan. Penyebabnya adalah hilangnya keluaran dari layar sehingga perhitungan terasa tidak berjalan. Kenyataannya nilai tetap dihitung dan tersimpan di workspace. Perbaikannya adalah memperlakukan titik koma murni sebagai pengatur tampilan, bukan pengatur eksekusi.
  • Menyimpan nilai penting di ans. Penyebabnya adalah kebiasaan inspeksi cepat di Command Window yang memang nyaman. Kenyataannya ans tertimpa oleh ekspresi tanpa penugasan berikutnya, kapan pun itu terjadi. Perbaikannya adalah menugaskan hasil ke variabel bernama segera setelah nilainya dianggap penting.
  • Menganggap keluaran ndims bernilai 2 pada skalar sebagai error. Penyebabnya adalah kebiasaan pada bahasa lain yang memperlakukan skalar sebagai nilai tanpa dimensi. Kenyataannya MATLAB menuntut minimal dua dimensi sehingga skalar pun berdimensi dua dengan ukuran masing-masing satu. Perbaikannya adalah membaca ukuran sebenarnya lewat size dan menerima model array yang seragam.

Ringkasan#

  • Setiap nilai di MATLAB adalah array. Skalar adalah array 1×1 dan vektor baris adalah matriks satu baris, keduanya terbukti dari size, class, dan ndims.
  • Command Window bekerja sebagai penerjemah interaktif yang mengevaluasi satu pernyataan tiap kali tanpa tahap kompilasi terpisah.
  • Titik koma di akhir pernyataan menekan gema hasil, sedangkan perhitungan tetap berjalan dan nilainya tersimpan.
  • Ekspresi tanpa penugasan menetapkan ans, yang tertimpa oleh ekspresi tanpa penugasan berikutnya.

Referensi#