Anda di halaman 1dari 23

Modul PTI-B Matlab

Tim Materi PTI-B 2018/2019

2018-10-14

1
Catatan

1. Modul ini dirancang untuk dapat menjadi pegangan pemrograman PTI-B, sehingga banyak
hal yang dipotong karena keluar dari konteks PTI-B.
2. Anda dapat membuka modul ini saat latihan praktikum.
3. Anda sangat disarankan untuk mencoba menjalankan semua program modul ini di kom-
puter Anda, supaya Anda dapat mengetahui keluaran dari program yang ada.
4. Anda sangat disarankan untuk bereksperimen dari program-program yang ada di modul ini
supaya Anda mendapat gambaran lebih jelas mengenai apa yang program Anda lakukan.
5. Anda sangat disarankan membaca tutorial dari tempat lain dan mengeksplor sendiri bahasa
yang Anda gunakan.

2
Contents
1 Modul 1 4
1.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Input dan Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Tipe Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1 Operator Aritmatika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Operator Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.3 Operator Relasional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.4 Operator Logika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Percabangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Modul 2 8
2.1 Pengulangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 While Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 For Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Perulangan bersarang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Deklarasi Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Array dan Variabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Modul 3 11
3.1 Fungsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Prosedur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Modul 4 13
4.1 Membuat Tabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Membaca dan Menulis Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Mengakses Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 Mengambil Ekstremum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.5 Mengurutkan Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.6 Tabel Frekuensi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.7 Menentukan Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.8 Statistik Sederhana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.9 Koefisien Korelasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5 Modul 5 17
5.1 Bar Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3 Pie Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.4 Stacked Bar Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.5 Line Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.6 Area Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.7 Scatter dan Bubble Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3
1 Modul 1

1.1 Pendahuluan

Pada modul ini, kita menggunakan Matlab yang kompatibel dengan versi lebih dari 9.1. IDE
Matlab berbayar, sehingga Anda disarankan belajar dari bahasa Octave (bahasa pemrograman
yang kompatibel dengan Matlab, namun gratis). Anda dapat mencoba Octave secara online di
https://octave-online.net/.

Beberapa karakteristik dari bahasa ini:

• Matlab case-sensitive, artinya perbedaan huruf besar dan huruf kecil menyebabkan perbe-
daan makna.
• Matlab tidak memerhatikan indentasi dan pergantian baris. Namun, sangat disarankan
menggunakan indentasi yang baik karena akan sangat membantu debugging dan meningkatkan
readibility

• Variabel di matlab bersifat implisit dan dinamis. Artinya, sebuah variabel tidak perlu
dideskripsikan tipe datanya. Namun di modul ini kita tetap mempelajari tipe data yang
ada.

1.2 Input dan Output

Dalam Matlab, program untuk menulis "Hello, World!" ke layar adalah seperti berikut:

fprintf (’Hello , World !\n’); % (1)

fprintf (’Ini program ’); % (2)


fprintf (’ pertama saya\n’); % (3)

% Ini adalah sebuah komentar .

% Semua yg ada setelah tanda persen ( % )


% akan diabaikan oleh compiler .

%{
Selain itu , semua yang ada di antara persen diikuti kurung kurawal buka
dan persen diikuti kurung kurawal tutup juga akan diabaikan
%}

Bagian yang ditandai nomor 1 bertugas menuliskan ’Hello, World!’ ke layar. Sintaks ’\n’ akan
memindahkan baris setelah selesai menulis ke layar. Berarti, output program di atas adalah
’Hello, World!’ diikuti dengan ’Ini program pertama saya’ di baris selanjutnya.

1
Selain itu, perhatikan juga tiap statement diakhiri titik-koma (;).

Untuk melakukan input, kita membutuhkan penampung untuk menyimpan data yang diin-
putkan. Sebagai contoh, di bawah ini adalah program yang menerima input bilangan dan
menuliskan ulang bilangan yang dimasukkan.

1 Matlab tidak mengharuskan adanya titik-koma, titik-koma hanya digunakan untuk menyembunyikan output https:

//www.mathworks.com/help/matlab/matlab_prog/matlab-operators-and-special-characters.html

4
S = input(’Masukkan kata apapun : ’, ’s’); % 1
fprintf (’Anda memasukkan kata %s\n’, S); % 2

N = input(’Masukkan sebuah angka: ’); % 3


fprintf (’Anda memasukkan kata %s dan angka %d\n’, S, N + 5); % 4

Pada bagian nomor (1) dan (3), program membaca input dari user dan dimasukkan ke variabel
S dan N. Perhatikan juga, untuk membaca sebuah string (kumpulan karakter), gunakan ’s’ di
parameter kedua input. Selain int, string, Matlab dapat menerima tipe data float (bilangan real),
dan masih banyak lagi.

1.3 Tipe Data

Ada beberapa macam tipe data, namun dalam PTI-B kita hanya akan banyak menggunakan tipe
data berikut:
bool Boolean True atau False
int Bilangan bulat seluruh bilangan bulat
float Bilangan real seluruh bilangan real
string Teks kumpulan karakter

Contoh penggunaan:

B = true; % Boolean
I = 12345; % Bilangan bulat
R = 2.331973; % Bilangan real
S = ’def ’; % Teks

1.4 Operator

1.4.1 Operator Aritmatika

Operator Deskripsi Contoh


+ Penjumlahan 2 + 3 bernilai 5
- Pengurangan 1 - 8 bernilai -7
* Perkalian 5 * 6 bernilai 30
/ Pembagian 13 / 5 bernilai 2.6
mod Sisa Bagi / Modulo mod(13, 5) bernilai 3

1.4.2 Operator Assignment

Operator Deskripsi Contoh


= Assignment N = 5
+= Penjumlahan N += 5, N akan ditambah 5.
-= Pengurangan N -= 5, N akan dikurang 5.
*= Perkalian N *= 5, N akan dikali 5.
/= Pembagian N /= 5, N akan dibagi 5.

5
1.4.3 Operator Relasional

Operator Deskripsi Contoh True Contoh False


== Sama dengan 2 == 2 2 == 3
˜= Tidak sama dengan 3 != 2 3 != 3
< Kurang dari 2 < 3 2 < 2
> Lebih dari 3 > 2 3 > 2
<= Kurang dari sama dengan 2 <= 2 1 <= 3
>= Lebih dari sama dengan 6 >= 5 2 >= 4

1.4.4 Operator Logika

Operator Deskripsi Contoh True Contoh False


&& Dan (1 < 2)&& (3 == 3) (1 == 2)&& (3 == 3)
|| Atau (1 < 2)|| (4 == 3) (3 < 2)|| (2 == 3)
! Negasi ! (3 < 2) ! (1 > 2)

1.5 Percabangan

Dalam pemrograman, terdapat percabangan. Dengan demikian, program kita dapat berperilaku
tergantung input user. Misal kita buat program yang memeriksa apakah sebuah bilangan positif:

N = input(’Masukkan nilai N: ’);

if (N > 0)
fprintf (’%d adalah bilangan positif ’, N)
end

Lalu, jika kita ingin menuliskan kebalikannya:

...
if (N > 0)
fprintf (’%d bilangan positif ’, N)
else % N <= 0
fprintf (’%d bilangan bukan positif ’, N)
end
...

Namun, kita tahu kadang bilangan bisa nol atau negatif, jadi perlu kita tambahkan:

...
if (N > 0)
fprintf (’%d bilangan positif ’, N)
elseif (N < 0)
fprintf (’%d bilangan negatif ’, N)
else % N == 0
fprintf (’%d bilangan nol ’, N)
end
...

Perhatikan juga kalau kita bisa membuat else ini berulang sampai yang kita mau. Selain itu, kita

6
juga bisa meletakkan if di dalam if.

...
if (N >= 0)
if (N > 0)
fprintf (’%d bilangan positif ’, N)
else % N == 0
fprintf (’%d bilangan nol ’, N)
endif
else % N < 0
fprintf (’%d bilangan negatif ’, N)
end
...

7
2 Modul 2

2.1 Pengulangan

Pada pemrograman, sering kali dibutuhkan pemrosesan berulang-ulang untuk mencapai suatu
hasil tertentu. Apabila pengulangan ini dilakukan secara manual ukuran file program akan
menjadi terlalu besar. Contoh sederhana adalah jika kita ingin menuliskan Hello World di layar
sebanyak 1000 kali, maka akan dibutuhkan paling tidak 1000 baris perintah. Menggunakan
sintaks pengulangan, persoalan tersebut dapat diselesaikan hanya menggunakan beberapa baris
program.

for i = 1:1000:
fprintf (" Hello world\n");

2.1.1 While Loop

Salah satu sintaks yang looping / pengulangan yang sering digunakan adalah sintaks While-Do.
Program akan mengecek sebuah kondisi yang diberikan terlebih dahulu sebelum menjalankan
statement yang ada di dalamnya.

Berikut adalah program yang menerima a dan b dan menuliskan a, a + 1, a + 2, . . . , b − 1, b.

a = input(’’);
b = input(’’);
i = a;
while i <= b
fprintf (’%d\n’, i);
i += 1;
end

2.1.2 For Loop

Bentuk looping yang kedua adalah bentuk For. Bentuk ini umumnya digunakan untuk pengu-
langan yang sudah diketahui jumlahnya.

Berikut adalah program yang menerima a dan b dan menuliskan a, a + 1, a + 2, . . . , b − 1, b.

a = input(’’);
b = input(’’);
for i = a:b
fprintf (’%d\n’, i)

2.2 Perulangan bersarang

Perhatikan pula, perulangan dapat dilakukan di dalam perulangan. Sebagai contoh, berikut
adalah program untuk membuat pola persegi.

8
n = input(’’);
for i = 1:n
for j = 1:n
fprintf (’*’);
end
fprintf (’\n’);
end

2.3 Array

Array adalah variabel dengan satu buah nama, tetapi mengandung banyak nilai. Akses nilai-
nilainya dilakukan dengan indeks.

Perhatikanlah contoh berikut!


Indeks 1 2 3 4 5 6 7 8 9 10
A 10 5 7 11 19 23 35 37 12 1

• A(10)= 1

• A(1) = 10
• A(7) = 35

Pada contoh diatas, kita memiliki sebuah variabel yang bernama A. Variabel A tersebut memiliki
10 buah nilai, dimana nilai-nilai tersebut dapat diakses dengan indeks. Untuk mengakses indeks
ke x, gunakanlah A(x). Dan nilai A(x) itu bisa kita anggap sebagai variabel yang berdiri sendiri.
Konsep inilah yang kita sebut dengan array. Perhatikan pula bahwa indeks dimulai dari 1, berbeda
dengan beberapa bahasa yang memulai indeks dari 0.

Tambahan: Untuk menerima masukan array of string, gunakan

A(1) ={ input(’Masukkan nama: ’,’s’)}

2.3.1 Deklarasi Array

Karena array juga merupakan sebuah variabel, maka array juga memerlukan deklarasi seperti
variabel lainnya.

Contoh deklarasi array:

• x = zeros(1, n); membuat array berukuran n dengan isi 0.


• x = ones(1, 100); membuat array berukuran 100 dengan isi 1.

Untuk contoh tersebut array A yang terdefinisi adalah A(1), A(2), . . . , A(10). Mengakses nilai
indeks di luar batasan tersebut akan menyebabkan array membesar untuk memenuhi indeks
yang diminta.

9
2.3.2 Array dan Variabel

Suatu array dapat kita anggap sebagai variabel, sehingga segala jenis operasi pada variabel juga
berlaku pada array. Sebagai contoh, kita memiliki suatu array

tabel = zeros(1, 10);

Maka array tabel tersebut akan terdefinisi untuk indeks 1 sampai dengan indeks 10. Maka kita
bisa melakukan instruksi.

tabel(2)= input(’’);

Jika diberikan 5 buah bilangan , dan kita perlu menyimpan bilangan tersebut pada tabel, kita bisa
melakukan:

tabel (1) = input(’Masukkan nilai ke -1: ’);


tabel (2) = input(’Masukkan nilai ke -2: ’);
tabel (3) = input(’Masukkan nilai ke -3: ’);
tabel (4) = input(’Masukkan nilai ke -4: ’);
tabel (5) = input(’Masukkan nilai ke -5: ’);

Namun, cara menginput tersebut kurang efisien. Akan lebih efisien jika kita menginput menggu-
nakan perulangan (looping).

tabel = zeros (1, 5);


for i = 1:5
fprintf (’Masukkan nilai ke -%d: ’, i);
tabel(i) = input(’’);
end

10
3 Modul 3

3.1 Fungsi

Apa itu fungsi? Fungsi adalah suatu bagian dari program yang mampu mengerjakan tugas atau
operasi tertentu di luar program utama. Fungsi akan mengembalikan nilai sesuai algoritma yang
diberikan.

Sebagai contoh, fungsi untuk menghitung kuadrat adalah sebagai berikut:

function x2 = kuadrat (x)


x2 = x*x;
end

Fungsi di atas bernama kuadrat dan mengembalikan nilai kuadrat. Fungsi itu juga menerima satu
parameter bernama x. Variabel keluaran harus dituliskan sebelum nama fungsi, diikuti dengan
sama dengan. Variabel inilah yang akan dikembalikan setelah fungsi dipanggil.

Sebagai contoh, berikut program lengkap yang menerima input dan mengeluarkan kuadrat dari
bilangan input.

function main ()
n = input(’Masukkan n: ’);
n2 = kuadrat (n);
fprintf (’%d’, n2);
end

function x2 = kuadrat (x)


x2 = x*x;
end

Program tersebut harus disimpan dengan nama file main.m supaya matlab mengenali fungsi main
sebagai program utama.

Perhatikan pada contoh di atas, variabel di program utama bernama n. Namun di fungsi, variabel
berubah nama menjadi x. Meskipun x berubah, nilai n di program utama tidak akan berubah.

Sebuah fungsi juga dapat menerima lebih dari satu parameter. Selain itu, fungsi juga dapat
melakukan hal-hal layaknya program biasa, namun tidak dapat mengubah variabel di program
utama. Sebagai contoh, berikut adalah fungsi yang menghitung nilai ab .

function c = pangkat (a, b)


c = 1;
for i = 1:b
c = c * a;
end
end

Catatan: Anda tidak disarankan menaruh array sebagai parameter fungsi, karena ada hal khusus
yang belum diajarkan di PTI.

11
3.2 Prosedur

Prosedur sebenarnya sama seperti fungsi, namun tidak ada kembalian. Sebagai contoh, berikut
adalah program untuk menuliskan menu:

fprintf (’Menu :\n’);


fprintf (’1. Burger \n’);
fprintf (’2. Ayam Geprek \n’);
fprintf (’3. Mie Instan \n’);
pilihan_makanan = input(’Masukkan pilihan : ’);

fprintf (’Menu :\n’);


fprintf (’1. Jus Alpukat \n’);
fprintf (’2. Thai Tea\n’);
fprintf (’3. Teh Tarik\n’);
pilihan_minuman = input(’Masukkan pilihan : ’);

fprintf (’Menu :\n’);


fprintf (’1. Kentang \n’);
fprintf (’2. Krupuk \n’);
fprintf (’3. Abon\n’);
pilihan_tambahan = input(’Masukkan pilihan : ’);

Seperti yang tertulis di atas, menuliskan menu perlu berkali-kali. Kita dapat meringkasnya
menjadi:

function main ()
tulis_menu (’Burger ’, ’Ayam Geprek ’, ’Mie Instan ’);
pilihan_makanan = input(’Masukkan pilihan : ’);

tulis_menu (’Jus Alpukat ’, ’Thai Tea ’, ’Teh Tarik ’);


pilihan_minuman = input(’Masukkan pilihan : ’);

tulis_menu (’Kentang ’, ’Krupuk ’, ’Abon ’);


pilihan_tambahan = input(’Masukkan pilihan : ’);
end

function tulis_menu (pil1 , pil2 , pil3)


fprintf (’Menu :\n’);
fprintf (’1. %s\n’, pil1);
fprintf (’2. %s\n’, pil2);
fprintf (’3. %s\n’, pil3);
end

12
4 Modul 4

Pada modul ini, kita akan menggunakan data yang bisa didownload di https://drive.google.
com/drive/folders/1o2Zg_Lc911dsW0Iw37uWgYqM0-dR8Jro?usp=sharing.

4.1 Membuat Tabel

% membuat tabel dengan kolom "name" dan "age"


name = {’ani ’;’budi ’;’caca ’;’dea ’;’egi ’};
age = [10;20;30;40;50];
T = table(name ,age);

4.2 Membaca dan Menulis Data

Untuk membaca data csv / excel, kita dapat menggunakan method readtable. Untuk menulis
data, baik ke csv maupun excel, perhatikan contoh berikut:

% Membaca file csv tingkatinflasi20082013 .csv


% di folder yang sama dengan tempat
% kode matlab ini disimpan
M = readtable (’tingkatinflasi20082013 .csv ’);

% Membaca file excel di D:/


M = readtable (’D:/ data.xlsx ’);
% Membaca file excel di D:/, dengan nama sheet " Sheet1 "
M = readtable (’D:/ data.xlsx ’, ’Sheet ’, ’Sheet1 ’);

% Menulis file csv di folder yang sama


writetable (M, ’data_out .csv ’);

% Menulis file excel di folder yang sama


writetable (M, ’data_out .xlsx ’);

% Menulis file excel di folder yang sama ,


% dengan nama sheet " Sheet1 "
writetable (M, ’data_out .xlsx ’, ’Sheet ’, ’Sheet1 ’);

Catatan: Anda disarankan menggunakan format ”D:/path/ke/file.xlsx” dibanding penggunaan


folder yang sama.

4.3 Mengakses Data

Perhatikan contoh berikut:

M = readtable (’tingkatinflasi20082013 .csv ’);

% mengambil data ke -5
M(5:5 ,:)

% mengambil data ke -5 hingga ke -7,

13
% kolom ke 1 hingga 3
M(5:7 ,1:3)

% mengambil data ke -17 hingga akhir


M(17: end ,:)

% mengambil 5 data pertama


M(0:5 , :)

% menghitung berapa banyak data yang ada


height (M)

Selain itu, kita bisa mengakses data berdasar kriteria. Perhatikan contoh berikut:

M = readtable (’tingkatinflasi20082013 .csv ’);

% mengambil data tahun 2012


cond1 = M.Tahun == 2012;
M( cond1 ,:)

% mengambil data Kota Bandung sebelum tahun 2012


cond2 = M.Tahun < 2012 & isequal (M.Cakupan ,’Bandung ’);
M( cond2 ,:)

% mengambil data dengan tingkat inflasi di atas 10


% atau di bawah 3
cond3 = M. Tingkat_Inflasi > 10 | M. Tingkat_Inflasi < 3;
M( cond3 ,:)

4.4 Mengambil Ekstremum

Ekstremum adalah data yang ekstrem: paling tinggi atau paling rendah

M = readtable (’tingkatinflasi20082013 .csv ’)

% mengambil data dengan inflasi maksimum


[valmax , idxmax ] = max(M. Tingkat_Inflasi );
cond1 = M. Tingkat_Inflasi == valmax ;
M(cond1 ,:)

% mengambil data dengan inflasi maksimum


[valmin , idxmin ] = min(M. Tingkat_Inflasi );
cond2 = M. Tingkat_Inflasi == valmin ;
M(cond2 ,:)

4.5 Mengurutkan Data

Data dapat diurutkan secara tidak menurun (ascending) tidak menaik (descending).

M = readtable (’tingkatinflasi20082013 .csv ’)

% mengurutkan data berdasar tingkat inflasi (kolom 3, ascending )

14
S = sortrows (M, 3, ’ascend ’)

% Mengurutkan data berdasar tahun ascending ,


% lalu tingkat inflasi descending
S = sortrows (M, [1 3], {’ascend ’ ’descend ’})

4.6 Tabel Frekuensi

Kita dapat membuat tabel frekuensi. Tabel frekuensi berdasar kolom X artinya kita mendaftar
semua kemungkinan nilai di kolom X secara unik, lalu menghitung berapa kali nilai itu muncul.

M = readtable (’tingkatinflasi20082013 .csv ’)

% mendaftar kemunculan tiap tahun (kolom 1) pada data


tabulate (M{: ,1})

4.7 Menentukan Range

M = readtable (’tingkatinflasi20082013 .csv ’)

% Mengambil nilai maksimum dan minimum tingkat inflasi


[valmax , idxmax ] = max(M. Tingkat_Inflasi );
[valmin , idxmin ] = min(M. Tingkat_Inflasi );

fprintf (’tingkat inflasi maksimum adalah %.4f’, valmax );


fprintf (’tingkat inflasi minimum adalah %.4f’, valmin );

4.8 Statistik Sederhana

M = readtable (’tingkatinflasi20082013 .csv ’)

summary (M)

Kita dapat juga mengambil statistik tertentu:

M = readtable (’tingkatinflasi20082013 .csv ’)

% rata -rata dari tingkat inflasi (kolom 3)


rata_inflasi = mean(M{: ,3})

% standar deviasi dari tingkat inflasi (kolom 3)


stdcol4 = std(M{: ,3})

15
4.9 Koefisien Korelasi

Dua kolom pada data yang sama bisa memiliki korelasi. Tingkat korelasi ini kita sebut sebagai
koefisien korelasi. Cara memaknai koefisien korelasi adalah sebagai berikut:

• Semakin mendekati 0, semakin dua kolom tidak berkorelasi.


• Semakin mendekati 1, semakin dua kolom berbanding lurus.
• Semakin mendekati -1, semakin dua kolom berbanding terbalik.

Berikt ini adalah contoh bila kita ingin melihat korelasi tahun dengan tingkat inflasi:

M = readtable (’tingkatinflasi20082013 .csv ’)

% koefisien korelasi antara tahun


% dan tingkat inflasi
A = M{: ,1};
B = M{: ,3};
corrcoef (A,B)

16
5 Modul 5

Pada modul ini, kita akan menggunakan data yang bisa didownload di https://drive.google.
com/drive/folders/1o2Zg_Lc911dsW0Iw37uWgYqM0-dR8Jro?usp=sharing. Load data dapat di-
lakukan dengan

Tdata = readtable (’data.csv ’)


Tanimal = readtable (’animal .csv ’)
Tmedali = readtable (’medali .csv ’)

5.1 Bar Chart

% Vertical bar chart untuk menampilkan umur dari setiap orang


bar( categorical (Tdata.name),Tdata.age)

17
% Banyaknya anak ( num_children ) dan banyaknya piaraan ( num_pets ) dalam
% 1 grafik vertical bar chart
bar( categorical (Tdata.name) ,[Tdata. num_children ,Tdata . num_pets ])

barh( categorical (Tdata.name),Tdata.age ,’FaceColor ’,’red ’)

18
5.2 Histogram

% Histogram orang berdasarkan kelompok umur: 0 -20; 21 -40; 41 -60; 61 -80; 81 -100
histogram (Tdata.age ,[0 20 40 60 80 100])

5.3 Pie Chart

% Komposisi banyaknya orang berdasarkan negara


% Hitung Distribusi Frekuensi
[ TdataStateUnik ,ia ,ic] = unique (Tdata.state);
TdataStateOcc = accumarray (ic ,1);
TdataStateCount = table(
TdataStateUnik , TdataStateOcc , ’VariableNames ’, {’state ’,’number ’});
% Create Pie Chart
pie( TdataStateCount .number , TdataStateCount .state)

19
5.4 Stacked Bar Chart

% Banyaknya data per jenis kelamin ( gender ) per negara bagian (state)
TSG = unstack (Tdata ,’num_children ’,’state ’,
’GroupingVariables ’,’gender ’, ’AggregationFunction ’,@length )
bar( categorical (TSG. gender ), [TSG.CA ,TSG.DC ,TSG.TX], ’stacked ’)

% Banyaknya anak ( num_children ) dan banyaknya piaraan ( num_pets )


% dalam 1 grafik stacked bar chart
bar( categorical (Tdata.name) ,[Tdata. num_children ,Tdata . num_pets ],’stacked ’)

20
5.5 Line Chart

% Pertumbuhan populasi beruang (Bears) dari tahun ke tahun dalam line chart
plot( Tanimal .Year , Tanimal .Bears)

% Pertumbuhan populasi beruang (Bears), lumba -lumba ( Dolphins ), dan


% ikan paus ( Whales ) dari tahun ke tahun dalam 1 line chart
plot( Tanimal .Year , [ Tanimal .Bears , Tanimal .Dolphins , Tanimal . Whales ])

21
5.6 Area Chart

% Pertumbuhan populasi lumba -lumba ( Dolphins ) dari tahun ke tahun


% dalam area chart
area( Tanimal .Year , Tanimal . Dolphins )

% Pertumbuhan populasi lumba -lumba ( Dolphins ), ikan paus ( Whales ),


% dan beruang (Bears), dari tahun ke tahun dalam stacked area chart
area( Tanimal .Year , [ Tanimal .Bears , Tanimal .Dolphins , Tanimal . Whales ])

22
5.7 Scatter dan Bubble Plot

% Relationship antara variable gold dan total dalam grafik scatter plot
% dan tunjukkan adanya korelasi positif
scatter ( Tmedali .gold , Tmedali .total , ’filled ’,’magenta ’)

% Banyaknya total medali 10 negara tertinggi dikaitkan dengan perolehan nilai


% medali emas (gold) pada sumbu x dan perolehan medali perak ( silver ) pada
% sumbu y dalam grafik bubble plot
Tmedali10 = Tmedali (1:10 ,:)
scatter ( Tmedali10 .gold , Tmedali10 .silver , [ Tmedali10 .total],’filled ’, ’green ’)

23

Anda mungkin juga menyukai