Sepanjang Course ini kita telah menulis ratusan baris kode MATLAB — dari operator aritmetika pertama hingga classdef dan error handling. Saat mengerjakan proyek nyata, kita tidak lagi butuh penjelasan panjang: kita butuh tabel yang bisa dipindai dalam hitungan detik untuk mengingat kembali satu bentuk sintaks. Chapter ini memadatkan seluruh sintaks inti Course ke dalam satu halaman rujukan, dikelompokkan per kategori dengan satu contoh baris tunggal per item. Pola URL halaman dokumentasi lengkapnya tersedia di Chapter Dokumentasi Resmi.
Operator #
Tiga tabel berikut merangkum seluruh operator yang kita pakai. Aturan kuncinya satu kalimat: operator dot (.*, ./, .^) bekerja elemen-per-elemen, sedangkan operator tanpa dot (*, /, \, ^) mengikuti aturan aljabar linear matriks — kesalahan mencampur keduanya adalah sumber galat Inner matrix dimensions must agree. yang kita bedah di Chapter Panduan Debugging.
| Operator | Operasi | Contoh | Hasil |
|---|---|---|---|
+ - | tambah, kurang / negasi | 7 + 3, -7 | 10, -7 |
* | perkalian matriks | [1 2; 3 4] * [5; 6] | [17; 39] |
.* | perkalian elemen-per-elemen | [1 2] .* [3 4] | [3 8] |
/ | pembagian kanan | 7 / 3 | 2.3333 |
./ | pembagian elemen-per-elemen | [6 9] ./ [2 3] | [3 3] |
\ | pembagian kiri, A\b = inv(A)*b | 3 \ 7 | 2.3333 |
.^ | pangkat elemen-per-elemen | [1 2] .^ 3 | [1 8] |
^ | pangkat matriks (perkalian berulang) | [0 1; 1 0] ^ 2 | eye(2) |
' | transpose kompleks konjugat | [1 2]' | kolom 2×1 |
.' | transpose biasa (non-konjugat) | complex(1,2).' | tanpa konjugat |
Operator perbandingan selalu menghasilkan logical, dan operator logika menggabungkan mask tersebut — fondasi logical indexing di tabel array:
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
== | sama dengan | 5 == 5 | true |
~= | tidak sama dengan | 5 ~= 3 | true |
< > <= >= | pembanding nilai | 3 < 2 | false |
& | AND elemen (array) | true & false | false |
| | OR elemen (array) | true | false | true |
&& | AND short-circuit (skalar) | n > 0 && n < 10 | true |
|| | OR short-circuit (skalar) | x == 0 || 1/x < 2 | aman saat x == 0 |
~ | NOT | ~true | false |
Struktur Kontrol #
Empat konstruksi kendali alur Course — if, switch, for, while, plus try — berbagi satu aturan sintaks: semuanya ditutup end. Tabel berikut merangkum bentuk terpendek tiap konstruksi:
| Konstruksi | Bentuk ringkas | Catatan kunci |
|---|---|---|
if / elseif / else | if suhu > 37.5; status = 'demam'; end | kondisi skalar; elseif boleh berulang |
switch / case / otherwise | case 'mie' … otherwise | uji kesetaraan (==/strcmp), satu case bisa memuat cell {6, 7} |
for | for i = 1:2:10 ... end | iterasi kolom array apa pun, bukan hanya rentang |
while | while tol > 1e-6 ... end | kondisi dicek tiap iterasi — pastikan ada jalan keluar |
try / catch | try ... catch err ... end | err adalah objek MException (.message, .stack) |
break / continue | if x < 0; break; end | break keluar loop, continue lompat ke iterasi berikut |
Contoh gabungan keempat konstruksi dalam satu potongan yang dapat diuji:
data = [4 -1 9 0];
total = 0;
for i = 1:numel(data)
if data(i) < 0
continue
end
total = total + data(i);
end
fprintf('total nilai non-negatif: %d\n', total);Output yang Dihasilkan:
total nilai non-negatif: 13Fungsi #
Fungsi adalah unit organisasi terbesar Course: satu fungsi per berkas, nama berkas = nama fungsi, variabel lokal per workspace. Tabel berikut merangkum seluruh wujud fungsi yang kita tulis:
| Wujud | Bentuk | Kapan dipakai |
|---|---|---|
| function file | function y = kuadrat(x) … end | kode dipakai ulang, ada help H1 |
| keluaran ganda | function [mi, ma] = rentang(v) | beberapa hasil sekaligus; pemanggil boleh ambil satu |
| masukan opsional | if nargin < 2; tol = 1e-6; end | default argumen tanpa arguments |
| jumlah variabel | function total = jumlah(varargin) | masukan tak tertentu; varargin = cell array |
| anonymous | kuadrat = @(x) x.^2; | satu ekspresi, tanpa berkas — favorit ode45, fzero |
| handle | f = @sin; f(pi/2) | fungsi sebagai nilai; feval, cellfun, arrayfun |
| local/subfunction | fungsi kedua di akhir berkas | helper privat satu modul |
Anonymous function dan handle adalah jembatan menuju pemrograman fungsional: cellfun(@abs, {-3, 4}) mengembalikan array [3 4] (output seragam), dan fzero(@(x) x - cos(x), 1) menyelesaikan akar tanpa berkas terpisah.
Array dan Indexing #
Array adalah struktur data bawaan MATLAB — dan indexing adalah bahasa operasinya. Semua pola dari section Array dan Matriks dipadatkan di sini:
| Pola | Makna | Contoh | Hasil |
|---|---|---|---|
A(r, c) | elemen baris r kolom c | [150 250; 400 500] → (2,1) | 400 |
A(k) | linear index (column-major) | matriks sama → (3) | 250 |
A(:, c) | seluruh kolom c | M(:, 1) | vektor kolom |
A(r, :) | seluruh baris r | M(2, :) | vektor baris |
A(end, end) | baris/kolom terakhir | M(end, end) | 500 |
A(1:2:end, :) | slicing baris ganjil | — | sub-matriks |
A(A > 5) | logical indexing | [3 7 1 9] → mask > 5 | [7 9] |
A([1 3]) | indeks vektor (bisa berulang) | [3 7 1 9] → [1 3] | [3 1] |
sub2ind / ind2sub | konversi dua arah subscript ↔ linear | sub2ind([2 3], 1, 2) | 3 |
A(idx) = [] | hapus elemen | x(2) = [] | panjang berkurang |
reshape(A, r, c) | ubah bentuk, urutan column-major tetap | reshape(1:6, 2, 3) | matriks 2×3 |
classdef dalam Sebelas Baris #
Sintaks classdef minimum yang kita bangun di section Pemrograman Berorientasi Objek — value class; tambahkan < handle pada baris classdef untuk handle class (assignment berbagi objek, bukan menyalin):
classdef Titik
properties
x = 0
y = 0
end
methods
function obj = Titik(x, y)
if nargin > 0; obj.x = x; obj.y = y; end
end
function d = jarakOrigin(obj)
d = hypot(obj.x, obj.y);
end
end
endBlok properties boleh memuat atribut (Constant, Dependent), blok methods memuat Static dan Access — daftar lengkapnya di Chapter Properties dan Methods.
Format Specifier fprintf #
Tabel penutup yang paling sering dibuka: format specifier fprintf/sprintf:
| Specifier | Menampilkan | Contoh | Hasil |
|---|---|---|---|
%d | nilai bulat | fprintf('%d', 42) | 42 |
%f | desimal tetap (6 digit) | fprintf('%f', pi) | 3.141593 |
%.2f | desimal 2 digit | fprintf('%.2f', pi) | 3.14 |
%8.2f | lebar 8 rata kanan, 2 desimal | fprintf('%8.2f', 3.1) | 3.10 |
%e | notasi eksponen | fprintf('%e', pi) | 3.141593e+00 |
%g | paling ringkas %f/%e | fprintf('%g', pi) | 3.14159 |
%s | teks (char/string) | fprintf('%s', 'MATLAB') | MATLAB |
%% | tanda persen literal | fprintf('100%%') | 100% |
\n | pindah baris | fprintf('A\nB') | dua baris |
%5s / %-5s | teks lebar tetap / rata kiri | `fprintf(’%-6s | ‘, ‘ab’)` |
Ringkasan #
Halaman ini adalah peta sintaks Course dalam satu tempat: operator aritmetika dan dot, perbandingan, serta logika; struktur kontrol if/switch/for/while/try yang semuanya ditutup end; tujuh wujud fungsi dari function file hingga anonymous; pola indexing subscript, linear, dan logical; kerangka classdef minimum; dan tabel format specifier. Simpan halaman ini sebagai cheat sheet pertama yang dibuka saat menulis kode — rujukan fungsi bawaan per kategori menyusul di Chapter Referensi Fungsi.