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
  • linspace untuk jumlah titik terjamin, logspace untuk 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.

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

text
size(hargaKopi) : 1 x 3
size(hargaKopi2): 1 x 3
size(stokToko)  : 3 x 1

Mari kita bedah baris-baris kode di atas:

  1. Baris 1-2 (hargaKopi, hargaKopi2): dua cara menulis row vector yang identik — spasi dan koma sama-sama memisahkan kolom. size membuktikan keduanya 1×3.
  2. Baris 3 (stokToko): titik koma memindahkan penulisan ke baris berikutnya, menghasilkan column vector 3×1 — cocok untuk data satu-entitas-per-baris.
  3. Baris 5-7 (fprintf): size() mengisi dua %d dengan [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:

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

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

Mari kita bedah baris-baris kode di atas:

  1. Baris 1 (1:5): step default 1 menghasilkan [1 2 3 4 5].
  2. Baris 2 (1:2:9): deret naik dua-dua; nilai terakhir 9 karena 9 ≤ 9. Bila stop diganti 8, hasil berhenti di 7 — elemen tidak pernah MELEWATI stop.
  3. Baris 3 (10:-2:2): step negatif membuat deret menurun — pola sering dipakai untuk membalik urutan, seperti n:-1:1.
  4. 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:

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

text
linspace(0,1,5) : 0 0.25 0.5 0.75 1
logspace(0,3,4) : 1 10 100 1000

Mari kita bedah baris-baris kode di atas:

  1. 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. logspace secara internal serupa dengan 10.^linspace(a, b, n).
  2. 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:

matlab
dataKosong = [];
fprintf('size(dataKosong): %d x %d, numel: %d\n', ...
        size(dataKosong), numel(dataKosong));

Output yang Dihasilkan:

text
size(dataKosong): 0 x 0, numel: 0

Mari kita bedah baris-baris kode di atas:

  1. 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:

CaraContohHasil
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 default1:5[1 2 3 4 5]
Colon dengan step1:2:9 / 10:-2:2[1 3 5 7 9] / [10 8 6 4 2]
Jarak linear, n titiklinspace(0, 1, 5)[0 0.25 0.5 0.75 1]
Skala logaritmiklogspace(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.