Setelah memahami bahwa semua data adalah array, pertanyaan berikutnya: bagaimana array itu dibuat? Menghitung lima harga, seratus titik pengukuran, atau sepuluh ribu sampel sensor satu per satu jelas tidak masuk akal. MATLAB menyediakan lima jalur pembuatan array — penulisan langsung, operator colon, linspace, logspace, dan array kosong — dan memilih jalur yang tepat membuat kode pendek sekaligus bebas galat ketik. Pada Chapter ini kita kuasai kelimanya:
- Penulisan langsung dengan
[ ]: spasi/koma dan titik koma - Operator colon
start:step:stop linspaceuntuk jumlah titik terjamin,logspaceuntuk skala logaritmik- Array kosong
[]dan verifikasi ukuran
Penulisan Langsung dengan Kurung Siku #
Aturan penulisan langsung: buka [, tulis nilai-nilai, tutup ]. Spasi atau koma berarti “pindah satu kolom ke kanan”; titik koma berarti “pindah satu baris ke bawah”. Mekanismenya: parser MATLAB membaca isi kurung siku baris demi baris, setiap baris harus memiliki jumlah kolom yang sama, lalu MATLAB merakit array 2-D dari potongan-potongan tersebut.
hargaKopi = [1500 2500 3500]; % row vector 1x3
hargaKopi2 = [1500, 2500, 3500]; % koma = spasi, hasil sama
stokToko = [40; 55; 62]; % column vector 3x1
fprintf('size(hargaKopi) : %d x %d\n', size(hargaKopi));
fprintf('size(hargaKopi2): %d x %d\n', size(hargaKopi2));
fprintf('size(stokToko) : %d x %d\n', size(stokToko));Output yang Dihasilkan:
size(hargaKopi) : 1 x 3
size(hargaKopi2): 1 x 3
size(stokToko) : 3 x 1Mari kita bedah baris-baris kode di atas:
- Baris 1-2 (
hargaKopi,hargaKopi2): dua cara menulis row vector yang identik — spasi dan koma sama-sama memisahkan kolom.sizemembuktikan keduanya 1×3. - Baris 3 (
stokToko): titik koma memindahkan penulisan ke baris berikutnya, menghasilkan column vector 3×1 — cocok untuk data satu-entitas-per-baris. - Baris 5-7 (
fprintf):size()mengisi dua%ddengan[baris kolom].
Untuk matriks 2-D, kedua pemisah digabung: [78 84 90; 65 72 88] menghasilkan matriks 2×3. Aturan ketatnya: jumlah kolom tiap baris harus sama — [1 2; 3] memicu galat Error using vertcat / Dimensions of arrays being concatenated are not consistent. karena baris kedua hanya berisi satu kolom.
Operator Colon: Deret Beraturan #
Operator colon adalah cara paling sering dipakai membuat deret beraturan. Bentuk lengkapnya start:step:stop — mulai dari start, bertambah step, berhenti sebelum melewati stop. Bila step dihilangkan, nilainya 1. Mekanismenya: MATLAB menghitung jumlah elemen dari rentang tersebut lalu membangun row vector sekaligus:
nomorMeja = 1:5; % step default 1
bilanganGanjil = 1:2:9; % 1, 3, 5, 7, 9
hitungMundur = 10:-2:2; % step negatif: turun
waktuDetik = 0:0.5:2; % step pecahan
fprintf('1:5 : %d %d %d %d %d\n', nomorMeja);
fprintf('1:2:9 : %d %d %d %d %d\n', bilanganGanjil);
fprintf('10:-2:2 : %d %d %d %d %d\n', hitungMundur);
fprintf('0:0.5:2 : %g %g %g %g %g\n', waktuDetik);Output yang Dihasilkan:
1:5 : 1 2 3 4 5
1:2:9 : 1 3 5 7 9
10:-2:2 : 10 8 6 4 2
0:0.5:2 : 0 0.5 1 1.5 2Mari kita bedah baris-baris kode di atas:
- Baris 1 (
1:5): step default 1 menghasilkan[1 2 3 4 5]. - Baris 2 (
1:2:9): deret naik dua-dua; nilai terakhir 9 karena 9 ≤ 9. Bila stop diganti8, hasil berhenti di 7 — elemen tidak pernah MELEWATIstop. - Baris 3 (
10:-2:2): step negatif membuat deret menurun — pola sering dipakai untuk membalik urutan, sepertin:-1:1. - Baris 4 (
0:0.5:2): step pecahan sah; lima titik dari 0 sampai 2.
linspace dan logspace: Jumlah Titik Terjamin #
Fungsi linspace(a, b, n) membuat n titik berjarak sama dari a sampai b — kedua ujung selalu termasuk. Adapun logspace(a, b, n) membuat n titik berjarak sama pada skala logaritmik, dari 10^a sampai 10^b:
posisi = linspace(0, 1, 5);
frekuensi = logspace(0, 3, 4);
fprintf('linspace(0,1,5) : %g %g %g %g %g\n', posisi);
fprintf('logspace(0,3,4) : %g %g %g %g\n', frekuensi);Output yang Dihasilkan:
linspace(0,1,5) : 0 0.25 0.5 0.75 1
logspace(0,3,4) : 1 10 100 1000Mari kita bedah baris-baris kode di atas:
- Baris 1 (
linspace(0, 1, 5)): lima titik dari 0 sampai 1 dengan jarak pasti 0.25 — jumlah titik dijamin tepat, ujung kanan dijamin termasuk.logspacesecara internal serupa dengan10.^linspace(a, b, n). - Baris 2 (
logspace(0, 3, 4)): empat titik 1, 10, 100, 1000 — masing-masing satu dekade. Pola ini standar untuk rentang frekuensi (Hz) atau konstanta waktu yang melintasi beberapa orde besaran.
Array Kosong dan Verifikasi Ukuran #
Array paling kecil adalah array kosong [] — berukuran 0×0 dan tidak berisi elemen apa pun. Array kosong berperan sebagai titik awal penampung yang “belum diisi”, dan fungsi isempty() mengujinya:
dataKosong = [];
fprintf('size(dataKosong): %d x %d, numel: %d\n', ...
size(dataKosong), numel(dataKosong));Output yang Dihasilkan:
size(dataKosong): 0 x 0, numel: 0Mari kita bedah baris-baris kode di atas:
- Baris 1 (
dataKosong = []):[]adalah array 0×0 — bukan “tidak ada variabel”, melainkan variabel yang ada tetapi kosong. Kita manfaatkan pola ini saat menumbuhkan array pada Chapter Mengubah Ukuran Array.
Rangkuman seluruh jalur pembuatan array:
| Cara | Contoh | Hasil |
|---|---|---|
| Nilai eksplisit, spasi | [1500 2500 3500] | row vector 1×3 |
| Nilai eksplisit, koma | [1500, 2500, 3500] | row vector 1×3 (identik) |
| Titik koma per baris | [40; 55; 62] | column vector 3×1 |
| Colon default | 1:5 | [1 2 3 4 5] |
| Colon dengan step | 1:2:9 / 10:-2:2 | [1 3 5 7 9] / [10 8 6 4 2] |
| Jarak linear, n titik | linspace(0, 1, 5) | [0 0.25 0.5 0.75 1] |
| Skala logaritmik | logspace(0, 3, 4) | [1 10 100 1000] |
| Array kosong | [] | 0×0, isempty → true |
Berkas contoh.m pada bagian bawah halaman menjalankan seluruh pola di atas beserta verifikasi size-nya dalam satu script utuh.
Ringkasan #
Array dibangun lewat penulisan langsung dengan [ ] (spasi/koma untuk kolom, titik koma untuk baris), operator colon start:step:stop untuk deret beraturan, linspace ketika jumlah titik harus terjamin, logspace untuk rentang dekade, dan [] untuk penampung kosong. Setiap array yang dibuat sebaiknya diverifikasi dengan size() — kebiasaan murah yang menghindarkan kita dari bug bentuk (1×n vs n×1). Selanjutnya kita berkenalan dengan pabrik matriks khusus: zeros, ones, eye, dan kawan-kawannya.