Buku Pemrograman Matlab – Pengenalan dan Operasi Array

By | March 29, 2020
Print Friendly, PDF & Email

Sinopsis

Pada bagian ini kalian akan belajar mengenai beberapa dasar mengenai Array pada Matlab yang sangat berguna mulai dari

  1. Pengertian Array
  2. Membuat 1D, 2D, serta 3D
  3. Akses Array
  4. Ubah value Array
  5. Operasi Matematika Array
  6. Replikasi, Reshape, dan Flip Array
  7. Operasi Dasar Statistika Array
  8. Operasi Masking Array
  9. Operasi Stacking Array

Dengan mempelajari Array di Matlab (Matrix Laboratory) maka kalian akan sangat terbantu beragam komputasi yang melibatkan Array yang pada dasarnya variabel di Matlab berupa Array lho seperti  kalkulator ilmiah yang sangat canggih.

Pengertian Array di Matlab

Array adalah core engine-nya di Matlab karena Matlab itu sendiri adalah singkatan Matrix Laboratory dengan sejarahnya dibangun menggunakan Bahasa Java sebagai interfacingnya terhadap library algebra Fortan yaitu LAPACK yang dikenal dengan function algebra yang kuat. Oiya penyebutan Array / Matrix / Vector akan disebut dengan 1 istilah saja agar tidak membuat kalian bingung yaitu Array. Secara umum tipe/jenis Array yaitu

  1. Hanya terdiri dari 1 baris dan beberapa kolom disebut array 1D
  2. terdiri dari beberapa baris dan beberapa kolom disebut array 2D
  3. seperti point 2 tapi bertumpuk disebut dengan array multidimensi, biasanya digunakan untuk format gambar ataupun GIS (peta satelit).
Biar kalian tidak bingung dibawah ini gambarannya ya

Array 1D di Matlab

Operator Array pada Matlab sangatlah flexible sekali yaitu terdiri dari operator kurung kurawal kotak, semicolon, serta koma dan space seperti kode berikut dibawah ini (tulis di command window)
%pembuatan array 1D
a = [1 2 3 ] %menggunakan pemisah space atau dengan cara berikut
b = [1,2,3] %menggunakan pemisah koma
c = 1:3 %atau menggunakan operator semicolon dengan increment default 1
d = 1:0.5:3 %membuat array dengan increment 0.5 dari 1 sampai dengan 3

Note: tanda prosentase % digunakan untuk memberikan comment

Hasilnya

a =

     1     2     3


b =

     1     2     3


c =

     1     2     3


d =

    1.0000    1.5000    2.0000    2.5000    3.0000

Biar makin yakin, bisa kamu cek menggunakan perintah whos, akan tampil hasil dibawah ini.

Name      Size            Bytes  Class     Attributes

a         1x3                24  double              
b         1x3                24  double              
c         1x3                24  double              
d         1x5                40  double

Array 2D di Matlab

Bila 1D biasa disebut dengan vector (Bahasa R), maka untuk array 2D disebut matrix (bahasa R) yang terdiri dari baris dan kolom.

%Untuk array 2D yang terdiri dari beberapa baris dan kolom
a = [1,2,3; 4,5,6]
b = [1 2 3
 4 5 6]

hasil

a =

     1     2     3
     4     5     6


b =

     1     2     3
     4     5     6

Coba kamu cek perintah whos

Name      Size            Bytes  Class     Attributes

a         2x3                48  double              
b         2x3                48  double

gunakan perintah clc untuk membersihkan layar serta clear all untuk menghapus semua variabel yang ada.

Array 3D di Matlab

Untuk Array 3D yang terdiri dari layer/lapisan, misakan 2 baris x 3 kolom x 2 layer. Biasa digunakan untuk menyimpan sebuah data seperti gambar, geo spatial

clc; clear all;
a(:,:,1) = [1,2,3;4,5,6];
a(:,:,2) = [7,8,9;10,11,12];
a
Note: tanda titik koma ; pada akhir sebuah variabel digunakan agar tidak ditampilkan secara langsung

Hasil

a(:,:,1) =

     1     2     3
     4     5     6


a(:,:,2) =

     7     8     9
    10    11    12

Akses Array

Untuk akses Array dibutuhkan sebuah index baris dan kolom yang dimulai dari angka 1. Operator yang digunakan untuk akses array yaitu (). Misalkan
a = [1,2,3; 4,5,6]

disp('untuk akses baris 2 dan kolom 1 yaitu')
a(2,1)

disp('untuk akses semua baris pada kolom 1 saja yaitu')
a(:,1) 

disp('untuk akses baris 1 sampai dengan 2 dan kolom 3 yaitu')
a(1:2,3)

disp('ataupun akses baris 1 dan kolom 2 sampai dengan akhir yaitu')
a(1,2:end)

hasil

a =

     1     2     3
     4     5     6

untuk akses baris 2 dan kolom 1 yaitu

ans =

     4

untuk akses semua baris pada kolom 1 saja yaitu

ans =

     1
     4

untuk akses baris 1 sampai dengan 2 dan kolom 3 yaitu

ans =

     3
     6

ataupun akses baris 1 dan kolom 2 sampai dengan akhir yaitu

ans =

     2     3

Oiya ada yang perlu kamu tahu untuk mengetahui size array gunakan perintah berikut

[baris,kolom]= size(a)  %akan tampil jumlah baris dan kolom
size(a,1)  %akan tampil jumlah baris saja
size(a,2) %akan tampil jumlah kolom saja

hasil

baris =

     2


kolom =

     3


ans =

     2


ans =

     3

Ubah Value Array

Untuk mengubah isi/value array caranya seperti mengakses array terlebih dahulu, pada contoh berikut mengubah value array

a = [1,2,3; 4,5,6]
%akan diubah baris 2 kolom 1 menjadi 90
a(2,1) = 90;
%tampilkan hasil akhir
a

hasil

a =
     1     2     3
     4     5     6
a =
     1     2     3
    90     5     6

Operasi Matematika Array

Operasi matematika Array seperti yang dijelaskan sebelumnya terdiri operasi terhadap array dan element, yang harus kalian pahami yaitu operasi perkalian antar array haruslah memenuhi syarat baris * kolom ya (ingat-ingat lagi pelajari perkalian matrix/array di SMA), mengenai sifat-sifat array.

a = [1,4,8; 5,8,10]
b = [4,9,10; 6,8,12]
 
hasil_tambah = a+b
hasil_kurang = a-b
hasil_bagi = a/b

hasil

a =
     1     4     8
     5     8    10
b =
     4     9    10
     6     8    12
hasil_tambah =
     5    13    18
    11    16    22
hasil_kurang =
    -3    -5    -2
    -1     0    -2
hasil_bagi =
    0.2380    0.3385
    0.4419    0.4858

Contoh perkalian array di Matlab

%untuk operasi perkalian antar array
%yaitu baris x kolom
a = [1,4,8; 5,8,10]
c = [8,6; 9,2; 5,13]
hasil_kali = a*c

hasil

a =
     1     4     8
     5     8    10
c =
     8     6
     9     2
     5    13
hasil_kali =
    84   118
   162   176

Sedangkan untuk operasi array dengan skalar menggunakan operator . diawal khusus untuk perkaliannya, sedangkan operasi + – / tidak diperlukan.

a = [1,4,8; 5,8,10]
k = 2
 
tambah = a+k
kurang = k-a
bagi = a/k
kali = a.*k

Hasil

a =
     1     4     8
     5     8    10
k =
     2
tambah =
     3     6    10
     7    10    12
kurang =
     1    -2    -6
    -3    -6    -8
bagi =
    0.5000    2.0000    4.0000
    2.5000    4.0000    5.0000
kali =
     2     8    16
    10    16    20

Replikasi, Reshape, dan Flip pada Array

Beberapa perintah/function yang mempermudah operasi array di Matlab yaitu

  1. Repmat (replication matrix)
  2. Reshape (re shape)

Contohnya akan mereplikasi sebanyak 2 baris dengan 1 kolom tetap.

A = [2,4]
baris = 2;
kolom = 1;
duplikat = repmat(A,[baris,kolom])

hasil

A =
     2     4
duplikat =
     2     4
     2     4

Sedangkan untuk reshape digunakan untuk membentuk ulang ordo/size array

A = 1:10 %semula 1 baris x 10 kolom
B = reshape(A,[2,5]) % menjadi 2 baris x 5 kolom

hasil

A =
     1     2     3     4     5     6     7     8     9    10
B =
     1     3     5     7     9
     2     4     6     8    10
Operasi-operasi diatas sangat efisien dan seringkali digunakan lho walau terlihat sepele, tapi kalau kamu menggunakan bahasa pemrograman C#, Java, Basic, Pascal dan yang sejenisnya akan memakan waktu yang lama untuk komputasinya.  Oiya ada satu lagi functionnya yaitu flip untuk membalikan urutan array, seperti contoh berikut
a = 1:9
b = flip(a)

hasil

Hasil
a =
     1     2     3     4     5     6     7     8     9
b =
     9     8     7     6     5     4     3     2     1

Operasi Dasar Statistika pada Array

Kalian akan sangat terbantu dengan operasi dasar statistika seperti mean, max, min, tranpose. Kalian bisa memahami cara penggunaan mulai dari

a.    Mencari minimal dan maksimal perkolom
b.    Ataupun per baris
c.    Ataupun nilai absolutnya

clear all;close all;clc;
a = [4,8,10;20,37,70]
transpose_array = transpose(a)
min_perkolom = min(a,[],1)
min_perbaris = min(a,[],2)
minimal_absolut = min(a(:))
 
 
max_perkolom = max(a,[],1)
max_perbaris = max(a,[],2)
maximal_absolut = max(a(:))
 
 
rerata_perkolom = mean(a,1)
rerata_perbaris = mean(a,2)
rerata_absolut = mean(a(:))

hasil

a =
     4     8    10
    20    37    70
transpose_array =
     4    20
     8    37
    10    70
min_perkolom =
     4     8    10
min_perbaris =
     4
    20
minimal_absolut =
     4
max_perkolom =
    20    37    70
max_perbaris =
    10
    70
maximal_absolut =
    70
rerata_perkolom =
   12.0000   22.5000   40.0000
rerata_perbaris =
    7.3333
   42.3333
rerata_absolut =
   24.8333

Operasi Masking Array

Inilah salah satu dari sekian banyak keunggulan operasi Array yaitu Masking untuk mengubah Value Array dengan Seleksi Indexnya serta mengganti valuenya. Kalian bisa lihat contoh berikut

a = [4,6,9; 12, 17,5]
disp('mengganti a>=7 menjadi 0')
a(a>=7)=0;
a

hasil

a =

     4     6     9
    12    17     5

mengganti a>=7 menjadi 0

a =

     4     6     0
     0     0     5

Kalian bisa pelajari Operator Perbandingan di link ref: https://www.softscients.web.id/2020/01/dasar-dasar-pemrograman-matlab-operator.html atau mencari lokasi sebuah index

a = [4,6,9; 12, 17,5]
[baris,kolom]=find(a==9)

hasil

a =

     4     6     9
    12    17     5


baris =

     1


kolom =

     3

Kalau kalian tahu operasi diatas sangatlah berguna ketika dijumpai kasus-kasus pada pengolahan citra digital dan sinyal digital lho.

Operasi Stacking Array Hstack dan Vstack

Operasi ini akan sering kalian temui untuk mempermudah append sebuah object pada tipe list() yang dikenal oleh bahasa pemrograman lainnya. Sangat mudah sekali menumpuk array menjadi satu secara horisontal dan vertikal.  Contoh berikut stacking array secara vertikal.

a = [1,2,3; 4,5,6]
b = [7,8,9]
disp('Vstack Array');
c = [a;b]

hasil

a =
     1     2     3
     4     5     6
b =
     7     8     9
Vstack Array
c =
     1     2     3
     4     5     6
     7     8     9

Sedangkan untuk horisontal yaitu

a = [1,2,3; 4,5,6]
b = [7;8]
disp('Hstack Array');
c = [a,b]

Hasilnya

a =
     1     2     3
     4     5     6
b =
     7
     8
Hstack Array
c =
     1     2     3     7
     4     5     6     8

 

Leave a Reply

Your email address will not be published. Required fields are marked *