Sepanjang Course ini kita memanggil fungsi bawaan MATLAB untuk hampir semua pekerjaan: membangun array, merangkum statistik, membaca berkas, menggambar, dan menyelesaikan persamaan. Masalahnya bukan kekurangan fungsi — MATLAB inti memuat ribuan fungsi — melainkan mengingat nama yang tepat saat dibutuhkan. Chapter ini memadatkan fungsi yang paling sering muncul di Course ke dalam tabel per kategori: satu baris per fungsi, berisi tugas singkat dan satu contoh pemanggilan. Gunakan halaman ini sebagai indeks cepat; penjelasan mendalam tiap fungsi tinggal dibuka dari dokumentasi resmi lewat pola URL yang kita bahas di Chapter Dokumentasi Resmi.
Fungsi Array #
Tabel pertama merangkum pembuatan dan manipulasi array — kelompok fungsi dengan frekuensi pemakaian tertinggi di seluruh Course:
| Fungsi | Tugas | Contoh pemanggilan |
|---|---|---|
zeros, ones | array nol/satu untuk preallocation | akum = zeros(1, 12); |
eye | matriks identitas | I = eye(3); |
linspace | vektor berjarak rata | x = linspace(0, 1, 5); |
rand, randn, randi | acak seragam, normal, bulat | dadu = randi([1 6], 1, 5); |
rng | atur seed agar hasil deterministik | rng(42); |
size, numel, length | dimensi, jumlah elemen, dimensi terpanjang | [r, c] = size(M); |
reshape | ubah bentuk (urutan column-major tetap) | B = reshape(1:6, 2, 3); |
sort | urutkan naik/turun | v = sort([3 1 2], 'descend'); |
find | indeks elemen yang memenuhi kondisi | idx = find(x > 0); |
unique | nilai unik terurut | u = unique([2 1 2]); |
repmat | tile array berulang | T = repmat([1 2], 2, 3); |
cat / horzcat / vertcat | gabungkan array | G = cat(3, A, B); |
flip / fliplr | balik urutan | y = fliplr(1:5); |
sub2ind / ind2sub | konversi subscript ↔ linear index | k = sub2ind([2 3], 1, 2); |
accumarray | agregasi per grup (bincount) | n = accumarray(grup', 1); |
Dua fungsi di tabel ini pantas diberi catatan: find hampir selalu bisa digantikan logical indexing x(x > 0) yang lebih cepat — find baru menang saat kita butuh posisi indeksnya, bukan nilainya. Fungsi rng wajib dipanggil sebelum contoh acak bila hasil ingin direproduksi; kebiasaan ini kita kunci di Chapter Reproducible Results.
Fungsi Statistik #
Kelompok kedua merangkum statistik deskriptif dan asosiasi dari section Statistik dan Analisis Data:
| Fungsi | Tugas | Contoh pemanggilan |
|---|---|---|
mean, median | rata-rata, median (per kolom default) | m = mean(data, 1); |
std, var | simpangan baku (sample, n-1), variansi | s = std(nilai); |
min, max | ekstrem beserta indeksnya | [mn, idx] = max(nilai); |
sum, cumsum | total, jumlah kumulatif | total = sum(penjualan(:, 2)); |
quantile | kuartil dan persentil | q = quantile(x, [0.25 0.75]); |
corrcoef | matriks korelasi Pearson | R = corrcoef(iklan, jual); |
movmean | moving average untuk haluskan deret | halus = movmean(suhu, 3); |
hist | histogram frekuensi per bin | n = hist(x, 0:10:100); |
trapz | integral trapezoid dari data | luas = trapz(x, y); |
Default arah agregasi MATLAB adalah per kolom (mean(A) = mean(A, 1)), sehingga dataset berorientasi baris-observasi langsung teragregasi benar; mean(A, 2) mengubah arah ke per baris. Fungsi hist bekerja di MATLAB dan Octave — versi modern MATLAB menyarankan histogram(x) yang memakai objek grafik dan lebih kaya opsi.
Fungsi String dan Konversi #
Tabel string mencakup perbandingan, penggabungan, dan konversi angka-teks yang kita pakai di section Character dan String:
| Fungsi | Tugas | Contoh pemanggilan |
|---|---|---|
strcat | gabungkan teks (hasil rata kiri) | s = strcat('Halo, ', nama); |
sprintf | format teks menjadi variabel | s = sprintf('Total: %d', 42); |
fprintf | cetak terformat ke layar/berkas | fprintf('pi = %.2f\n', pi); |
strsplit | pecah teks menjadi cell array | c = strsplit('a,b,c', ','); |
strjoin | gabungkan cell array menjadi teks | s = strjoin({'a','b'}, '-'); |
strcmp, strcmpi | bandingkan teks (peka/abaikan huruf besar) | sama = strcmp(s, 'mie'); |
strfind | cari posisi substring | p = strfind('matlab', 'lab'); |
strrep | ganti substring | s = strrep('kotor', 't', 'b'); |
strtrim | buang spasi tepi | s = strtrim(' budi '); |
num2str, str2double | konversi angka ↔ teks | n = str2double('3.14'); |
upper, lower | kapitalisasi | s = upper('matlab'); |
Perbandingan teks harus memakai strcmp, bukan ==: operator == membandingkan karakter satu per satu dan gagal saat kedua teks beda panjang — salah satu jebakan klasik yang kita bedah di Chapter Panduan Debugging.
Fungsi File I/O #
Kelompok pembacaan dan penulisan berkas, dari teks mentah hingga CSV — basis seluruh proyek data Course:
| Fungsi | Tugas | Contoh pemanggilan |
|---|---|---|
fopen, fclose | buka/tutup berkas dengan mode 'r'/'w'/'a' | fid = fopen('data.csv', 'r'); |
fprintf (ke fid) | tulis terformat ke berkas | fprintf(fid, '%d,%.2f\n', x, y); |
fscanf, textscan | baca teks terformat | c = textscan(fid, '%f', 'Delimiter', ','); |
fread, fwrite | baca/tulis biner | d = fread(fid, inf, 'double'); |
dlmread | baca matriks berpembatas (offset baris/kolom) | M = dlmread('data.csv', ',', 1, 0); |
dlmwrite, csvwrite | tulis matriks ke berkas | csvwrite('out.csv', M); |
csvread | baca CSV (padanan dlmread) | M = csvread('data.csv', 1, 0); |
load, save | simpan/muat variabel .mat | save('hasil.mat', 'x', 'y'); |
exist | cek keberadaan berkas/variabel | ada = exist('data.csv', 'file'); |
readmatrix, writematrix | baca/tulis CSV modern (MATLAB R2019a+) | M = readmatrix('data.csv'); |
Fungsi readmatrix/readtable/writetable yang modern hanya tersedia di MATLAB (GNU Octave belum mengimplementasikannya), sehingga seluruh contoh portabel Course memakai keluarga dlmread/csvread — perbedaan ini dijelaskan tuntas di Chapter Membaca File CSV.
Fungsi Plot #
Tabel visualisasi merangkum jenis grafik dan pengaturannya dari section Visualisasi Data:
| Fungsi | Tugas | Contoh pemanggilan |
|---|---|---|
plot | garis dan titik 2D | plot(x, y, 'o-'); |
scatter | diagram sebar | scatter(suhu, penjualan); |
bar, barh | batang vertikal/horizontal | bar(1:12, unit); |
hist | histogram | hist(nilai, 10); |
contour, contourf | kontur permukaan (garis/isi) | contour(X, Y, Z); |
surf, mesh | permukaan 3D | surf(X, Y, Z); |
plot3 | garis 3D | plot3(x, y, z); |
errorbar | data beserta galat | errorbar(x, y, e); |
subplot | kisi beberapa sumbu | subplot(2, 1, 2); |
hold, grid, legend | tumpuk grafik, kisi, legenda | legend('data', 'model'); |
saveas, print | simpan figur ke berkas | saveas(gcf, 'grafik.png'); |
exportgraphics | ekspor modern (MATLAB R2020b+) | exportgraphics(gca, 'p.png'); |
Semua contoh dijalankan headless dengan pola figure('Visible', 'off') … saveas … delete(gcf) — pola yang kita pakai di seluruh berkas sumber Course agar kode plot tetap teruji tanpa layar.
Fungsi Numerik dan Aljabar Linear #
Kelompok solver dan hampiran numerik dari section Matematika dan Komputasi Numerik:
| Fungsi | Tugas | Contoh pemanggilan |
|---|---|---|
A \ b | selesaikan sistem linear (mldivide) | x = A \ b; |
eig | nilai dan vektor eigen | [V, D] = eig(A); |
det, rank, inv | determinan, rank, invers | d = det(A); |
pinv | invers pseudo (least squares) | beta = pinv(X) * y; |
polyfit, polyval | regresi polinomial dan evaluasinya | p = polyfit(x, y, 1); |
roots | akar polinomial | r = roots([1 -3 2]); |
fzero | akar fungsi skalar dengan bracket | x = fzero(@(t) t - cos(t), 1); |
ode45 | integrasi ODE Runge-Kutta adaptif | [t, y] = ode45(f, [0 10], y0); |
interp1 | interpolasi linear/spline | yi = interp1(x, y, 2.5); |
gradient, diff | turunan numerik dan selisih | dy = gradient(y, h); |
trapz, quad | integral trapezoid / adaptif | I = quad(@(x) sin(x), 0, pi); |
fft, ifft, fftshift | transformasi Fourier | X = fft(x); |
filter | filter FIR y = filter(b, 1, x) | yf = filter(ones(1,4)/4, 1, x); |
Satu catatan pemakaian: operator \ dan pinv berbeda tugas untuk masalah least squares — X \ y lebih stabil dan lebih cepat; pinv baru dibutuhkan saat X rank-defisien dan kita menginginkan solusi norma minimum. Perbandingan lengkapnya ada di Chapter Sistem Persamaan Linear.
Fungsi Utilitas #
Tabel penutup: fungsi pemeriksaan lingkungan dan metaprogramming yang muncul di seluruh section rekayasa perangkat lunak:
| Fungsi | Tugas | Contoh pemanggilan |
|---|---|---|
exist | cek variabel/berkas/fungsi | exist('x') → 1, exist('fzero') → 2 |
which | lokasi berkas fungsi di path | which('fzero'); |
who, whos | daftar variabel workspace | whos('data') |
clear | hapus variabel | clear x y |
class, isa | tipe data dan uji kelas | class(x) → 'double' |
nargin, nargout | jumlah argumen masukan/keluaran aktual | if nargin < 2 ... end |
help, doc, lookfor | bantuan dari dalam MATLAB | doc fzero |
tic, toc | stopwatch benchmark | tic; A*B; toc |
disp | tampilkan nilai tanpa format | disp('selesai'); |
isfield, fieldnames | inspeksi struct | isfield(s, 'nama') |
cellfun, structfun | terapkan fungsi ke elemen | cellfun(@abs, {-3 4}); |
profile, checkcode | profiler dan analisis statis | checkcode('skrip.m') |
Ringkasan #
Tujuh tabel di atas merangkum fungsi inti Course per kategori: array, statistik, string, file I/O, plot, numerik-aljabar linear, dan utilitas. Tiap baris sengaja hanya memuat tugas dan satu contoh pemanggilan — parameter lengkap dan perilaku tepi (NaN, array kosong, dimensi) tetap harus dibaca di halaman dokumentasi resmi fungsi tersebut. Gabungkan halaman ini dengan tabel sintaks Chapter Referensi Sintaks, dan kita punya satu set cheat sheet yang menutup hampir seluruh kebutuhan penulisan kode MATLAB sehari-hari.