Program nyata tidak hanya berisi angka: nama pengguna, label grafik, pesan galat, dan nama berkas semuanya adalah teks. MATLAB menyediakan dua cara menyimpan teks — char array dengan tanda kutip tunggal ('MATLAB') yang ada sejak versi pertama, dan string dengan tanda kutip ganda ("MATLAB") yang diperkenalkan pada R2016b. Pada Chapter ini kita berfokus pada char sebagai fondasi yang berlaku di semua versi, lalu mengenali string sebagai tipe modern beserta perbedaan keduanya.

Char Array: Teks Klasik MATLAB #

Sebuah char array dibuat dengan membungkus teks dalam tanda kutip tunggal. Yang perlu kita internalisasi sejak awal: char adalah array karakter, bukan satu blok utuh. Teks 'MATLAB' adalah array berukuran 1×6; setiap elemen menyimpan satu karakter, dan setiap karakter di baliknya adalah kode numerik ASCII. Karena array, teks pun bisa diindeks seperti data numerik:

matlab
nama = 'MATLAB';

fprintf('Isi nama   : %s\n', nama);
fprintf('Panjang    : %d\n', length(nama));
fprintf('Huruf awal : %s\n', nama(1));
fprintf('Huruf akhir: %s\n', nama(end));
fprintf('Kode ASCII M: %d\n', double(nama(1)));
fprintf('Karakter 77 : %s\n', char(77));

Output yang Dihasilkan:

text
Isi nama   : MATLAB
Panjang    : 6
Huruf awal : M
Huruf akhir: B
Kode ASCII M: 77
Karakter 77 : M

Mari kita bedah baris-baris kode di atas:

  1. Baris 1 (nama = 'MATLAB';): MATLAB membuat array 1×6 kelas char; setiap elemen menampung satu karakter.
  2. Baris 3 (length(nama)): fungsi length() melaporkan dimensi terpanjang array, yaitu 6 — inilah cara mengukur jumlah karakter pada char array.
  3. Baris 4-5 (nama(1), nama(end)): pengindeksan memakai kurung; nama(1) adalah 'M' dan nama(end) merujuk elemen terakhir 'B'.
  4. Baris 6 (double(nama(1))): konversi double() membongkar kode ASCII karakter 'M' menjadi angka 77.
  5. Baris 7 (char(77)): konversi balik — angka 77 menjadi karakter 'M'.

Hubungan dua arah double ↔ kode ASCII ini menjelaskan mengapa operasi numerik bisa diterapkan pada karakter: 'A' + 1 menghasilkan 66, dan char('A' + 1) menghasilkan 'B'.

Menggabungkan Teks dengan Kurung Siku #

Karena char array adalah array biasa, penggabungan teks menggunakan kurung siku [ ] — mekanisme yang sama dengan penggabungan array numerik. Penggabungan horizontal [a b] menempelkan teks berdampingan; penggabungan vertikal [a; b] menyusun teks menjadi beberapa baris dengan syarat sama panjang:

matlab
kalimat = ['Halo, ' 'MATLAB' '!'];
fprintf('Gabungan: %s (panjang %d)\n', kalimat, length(kalimat));

hari = ['Sen'; 'Sel'; 'Rab'];
disp(hari);

Output yang Dihasilkan:

text
Gabungan: Halo, MATLAB! (panjang 13)
Sen
Sel
Rab

Mari kita bedah baris-baris kode di atas:

  1. Baris 1 (['Halo, ' 'MATLAB' '!']): tiga char array ditempelkan horizontal menjadi satu array 1×13; spasi di antara literal hanya pemisah, bukan bagian hasil.
  2. Baris 4 (['Sen'; 'Sel'; 'Rab']): penggabungan vertikal membentuk char matrix 3×3; semua baris harus berisi jumlah karakter yang sama persis, jika tidak MATLAB menampilkan galat ukuran tidak cocok.

String: Tipe Teks Modern MATLAB #

Sejak R2016b, MATLAB memiliki kelas string yang ditulis dengan tanda kutip ganda. Perbedaan fundamentalnya: "MATLAB" adalah satu string scalar berukuran 1×1 — teks utuh satu elemen — sedangkan 'MATLAB' adalah enam karakter terpisah. Kelas string mendukung pembentukan string array berisi teks dengan panjang berbeda:

matlab
>> s = "MATLAB"

s =

    "MATLAB"

>> kota = ["Jakarta", "Bandung"];
>> class(s)

ans =

    "string"

Konversi antara keduanya cukup sering dibutuhkan: fungsi string() mengubah char menjadi string, dan char() mengembalikannya menjadi char array. Untuk mengukur panjang teks, MATLAB menyediakan strlength(), yang bekerja per elemen pada string array — length() pada char array memang benar, tetapi length() pada string array melaporkan jumlah elemen, bukan jumlah karakter:

matlab
>> nama = ["Budi", "Siti"];
>> strlength(nama)

ans =

     2     4

Karena strlength mengembalikan panjang setiap elemen, fungsi strlength() adalah pilihan tepat untuk semua teks bertipe string.

Operasi Teks yang Sering Dipakai #

Sebagian besar fungsi teks MATLAB bekerja pada char maupun string, sehingga contoh berikut aman dipakai di keduanya:

matlab
fprintf('Huruf besar: %s\n', upper('matlab'));
fprintf('Huruf kecil: %s\n', lower('MATLAB'));
fprintf('Tanpa spasi: [%s]\n', strtrim('  Budi  '));
fprintf('strcmp sama: %d\n', strcmp('halo', 'halo'));
fprintf('Umur Budi: %s\n', num2str(21));

Output yang Dihasilkan:

text
Huruf besar: MATLAB
Huruf kecil: matlab
Tanpa spasi: [Budi]
strcmp sama: 1
Umur Budi: 21

Mari kita bedah baris-baris kode di atas:

  1. Baris 1-2 (upper, lower): mengubah kapitalisasi seluruh teks.
  2. Baris 3 (strtrim): membuang spasi di awal dan akhir teks — sering dipakai setelah membaca input pengguna.
  3. Baris 4 (strcmp): membandingkan dua teks; hasilnya 1 (true) bila identik dan 0 (false) bila berbeda. Gunakan strcmp, bukan operator ==, untuk membandingkan isi teks.
  4. Baris 5 (num2str(21)): mengubah angka menjadi teks sehingga bisa digabungkan atau dicetak dengan %s.

Berkas contoh.m pada bagian bawah halaman merangkum seluruh contoh char di atas dalam satu script yang dapat dijalankan langsung.

Ringkasan #

Teks MATLAB punya dua wajah: char array ('...') yang berupa deretan karakter berindeks, dan string ("...") berupa teks utuh yang modern. Kurung siku menggabungkan char, double/char menjembatani kode ASCII, dan length/strlength mengukur panjang sesuai tipenya. Memahami keduanya membuat kita tidak kehilangan arah ketika membaca kode lama maupun baru.