Senin, 29 Juni 2020

Interpolasi pada MATLAB

Halo sobat semua. Dalam tulisan ini saya ingin berbagi tentang metode interpolasi dengan menggunakan MATLAB. Yuk, simak uraiannya berikut ini. 
Dalam proses pengumpulan data di lapangan atau eksperimen laboratorium bisa saja terjadi kendala, seperti data kurang lengkap atau data hilang yang dapat mengganggu analisis data. Permasalahan tersebut dapat diselesaikan dengan menggunakan interpolasi (interpolation). Interpolasi merupakan suatu teknik mencari nilai-nilai antara yang tidak ada dalam suatu data. Selain berguna mengisi data yang hilang atau kosong, interpolasi juga biasa digunakan untuk memuluskan kurva. Intepolasi terbagi atas beberapa jenis, diantaranya: interpolasi linear, kuadrat, polinomial, Lagrange, dan Newton. Interpolasi yang paling mudah digunakan adalah interpolasi linear.
Dalam MATLAB terdapat berbagai perintah/fungsi yang dapat digunakan untuk interpolasi data. Interpolasi dalam MATLAB dibedakan atas dua jenis, yaitu interpolasi untuk data grid (grid data points) dan data gerombol (scattered data points).  Dalam tulisan ini akan dibahas beberapa interpolasi MATLAB yang umum, diantaranya:
vq = interp1(x,v,xq,method): mencari hasil interpolasi data berdimensi satu. Titik-titik sampel data dinyatakan dengan (x,v). Vektor xq menyatakan sekumpulan titik untuk interpolasi (xq,vq). Beberapa method yang tersedia yaitu linear (default), nearest, cubic, spline, pchip, makima, dan lain-lain.

Vq = interp2(X,Y,V,Xq,Yq,method): mencari hasil interpolasi untuk data grid dua dimensi. Titik-titik sampel data dinyatakan dengan (X,Y,V). Vektor Xq dan Yq menyatakan sekumpulan titik untuk interpolasi (Xq, Yq, Vq). Beberapa method yang tersedia yaitu linear (default), nearest, cubic, spline, dan makima.


Contoh 1
%mendeklarasikan titik-titik sampel (x,v)
x = 0:pi/4:2*pi;
v = cos(x);
%mendeklarasikan titik di sumbu-x untuk interpolasi
xq = 0:pi/16:2*pi;
%interpolasi dan plot
figure
vq1 = interp1(x,v,xq);
plot(x,v,'ro',xq,vq1,'b:.');
xlim([0 2*pi]);
title('Interpolasi linear/standar');
Plot interpolasi linear

Minggu, 28 Juni 2020

Fungsi Statistika pada MATLAB

Halo sobat pembaca semua. Dalam artikel kali ini akan dibahas kegunaan MATLAB dalam menganalisis data dengan perhitungan statistika. MATLAB menyediakan beragam perintah atau fungsi yang dapat digunakan untuk analisis data dan lain sebagainya. Adapun langkah pertama yang harus dilakukan dalam menganalisis data ataupun fungsi pada MATLAB adalah menuliskan data tersebut ke dalam bentuk vektor atau matriks.

Apabila proses pengumpulan data telah selesai, tahapan selanjutnya yang biasa dilakukan adalah mengolah atau menganalisis data tersebut. MATLAB menyediakan beberapa perintah yang dapat memudahkan proses analisis data dengan metode statistika dasar, seperti mean, median, modus, nilai maksimum, minimum, simpangan baku, ragam, dan lain sebagainya. Untuk lebih jelasnya, simaklah uraiannya berikut ini.


Dalam MATLAB tersedia beberapa perintah yang dapat kita gunakan untuk menganalisis ukuran pemusatan (mean, median, modus) serta nilai minimum dan maksimum suatu data.
mean(x): menghitung nilai rata-rata aritmatika dari suatu vektor baris/kolom.
mean(A): menghitung nilai rata-rata dari elemen setiap kolom suatu matriks.
mean(A,dim): menghitung rata-rata menurut kolom atau baris dari suatu matriks.
Bentuk perintah di atas juga dapat kita gunakan untuk perintah-perintah berikut:
median(…): menghitung median atau nilai tengah.
mode(…): menghitung modus atau nilai yang paling sering muncul.
min(…): menentukan nilai minimum.
max(…): menentukan nilai maksimum.
[S,L] = bounds (A): menentukan nilai minimum/smallest (S) dan maksimum/largest (L) dari larik A. Perintah ini mirip min dan max.
Agar lebih jelas, perhatikanlah contoh-contoh di bawah ini.
Contoh 1
Diketahui data berat badan dari 10 orang berikut ini.
>> x=[52.3 62.4 49.5 60.2 63.5 74 77 65.5 66.4 68.5];
Selanjutnya dapat dihitung:
>> mean(x) %nilai rata-rata  
ans =
   63.9300
>> median(x) %nilai tengah
ans =
   64.5000
>> min(x) %nilai minimum
ans =
   49.5000
>> max(x) %nilai maksimum
ans =
    77
>> [S,L]=bounds(x)
S =
   49.5000

L =
    77

Contoh 2
>> y = [2 2 2 3 4 2 5 6 8 2 9]
y =
2     2     2     3     4     2     5     6     8   2     9
Selanjutnya dapat dihitung:
>> mode(y) %nilai modus
ans =
     2
Contoh 3
Misalkan, kita memiliki data dalam bentuk matriks berikut:
>> A = [12 7 8 9; 8 4 9 15; 10 13 15 9; 7 9 6 8]
A =
    12     7     8     9
     8     4     9    15
    10    13    15     9
     7     9     6     8
Selanjutnya dihitung:
>> mean(A) % menghitung rata-rata menurut kolom
ans =
    9.2500    8.2500    9.5000   10.2500

>> mean(A,1) %menghitung rata-rata menurut kolom
ans =
    9.2500    8.2500    9.5000   10.2500

>> mean(A,2) %menghitung rata-rata menurut baris
ans =
    9.0000
    9.0000
   11.7500
    7.5000

>> median(A) %menghitung median menurut kolom
ans =
    9.0000    8.0000    8.5000    9.0000

>> median(A,2)    %menghitung median menurut baris
ans =
    8.5000
    8.5000
   11.5000
    7.5000

>> min(A)%menentukan nilai minimum menurut kolom
ans =
     7     4     6     8

>> min(A,[],2) %menentukan nilai minimum menurut baris
ans =
     7
     4
     9
     6

>> max(A) %menentukan nilai maksimum menurut kolom
ans =
    12    13    15    15

>> max(A,[],2)%menentukan nilai maksimum menurut baris
ans =
    12
    15
    15
     9

Contoh 4
Perhatikanlah contoh menentukan nilai modus berikut ini.
>> B=[2 3 4 5; 2 4 3 1; 2 3 4 2; 3 3 4 4]
B =
     2     3     4     5
     2     4     3     1
     2     3     4     2
     3     3     4     4
>> mode(B) %menentukan modus menurut kolom
ans =
     2     3     4     1

>> mode(B,2) %menentukan modus menurut baris
ans =
     2
     1
     2
     3

Jika setiap anggota dalam vektor atau matriks muncul sama banyak atau dengan kata lain tidak ada modus, maka MATLAB akan menampilkan bilangan terkecil.

Sabtu, 27 Juni 2020

Cara Menyelesaikan Persamaan dan Sistem Persamaan dengan MATLAB

Halo sobat semua. Dalam artikel kali ini, saya ingin berbagi tentang cara menuliskan dan menyelesaikan persamaan matematis dengan menggunakan MATLAB. MATLAB tak hanya populer karena kemampuan visualisasi 2D dan 3Dnya, tetapi juga dikenal dalam hal komputasi matematis termasuk di dalamnya penyelesaian sistem persamaan. Penyelesaian sistem persamaan baik berupa persamaan aljabar sederhana hingga yang tingkat tinggi dilakukan oleh MATLAB dengan komputasi variabel simbolik. Perintah atau fungsi komputasi ini dalam MATLAB disediakan melalui fitur Symbolic Math Toolbox. Pada bagian ini akan dibahas tentang penyelesaian sistem persamaan aljabar sederhana, kuadrat, hingga persamaan logaritma dan eksponen.

Persamaan Aljabar Sederhana
2 
3 
4 
5 

Persamaan aljabar sederhana adalah suatu persamaan yang memuat satu atau lebih variabel dengan pangkat tertingginya satu. Untuk menyelesaikan persamaan aljabar sederhana hingga kompleks dengan menggunakan MATLAB, kita dapat menggunakan perintah solve. Perintah ini biasanya didahului dengan mendeklarasikan variabel simbolik melalui ekspresi perintah syms.
solve(eqn,var): menyelesaikan suatu persamaan dengan variabel tertentu.
Contoh 1
a. Menentukan nilai x yang memenuhi x + 3 = 10.
Pada jendela perintah, tuliskanlah sintaks berikut.
>> syms x %membuat variabel simbolik x
>> solve(x+3==10,x)
ans =
      7

b. Menentukan nilai x yang memenuhi 5x + 7 = 37
>> syms x
>> solve (5*x + 7 == 37,x)
ans =
      6

c. Menentukan nilai x yang memenuhi sin(x) = 1.
>> syms x
>> solve(sin(x)==1,x)
ans =
      pi/2

d. Menentukan nilai x yang memenuhi ax + 7 = 10.
>> syms a x %membuat variabel simbolik a dan x
>> solve(a*x+7==10,x)
ans =
      3/a

e. Menentukan nilai a yang memenuhi ax + 7 = 10.
>> syms a x
>> solve(a*x+7==10,a)
ans =
      3/x

      Persamaan Kuadrat

Persamaan kuadrat atau persamaan pangkat dua adalah persamaan dengan pangkat tertinggi variabelnya adalah dua. Penyelesaian dari suatu persamaan kuadrat biasa disebut dengan akar-akar persamaan kuadrat. Adapun bentuk umum persamaan kuadrat dapat dituliskan sebagai berikut:
ax2 + bx + c = 0, dengan a, b, c R dan a 0
Perhatikanlah cara menyelesaikan persamaan kuadrat dengan menggunakan MATLAB berikut ini.
Contoh 1
Menentukan nilai x yang memenuhi x2+x-6=0.
a. >> syms x
>> solve(x^2+x-6==0,x)
ans =
      -3
       2
Jadi, nilai x yang memenuhi adalah {-3,2}.
MATLAB juga menyediakan perintah fplot yang dapat kita gunakan untuk membuat plot grafik suatu fungsi. Bentuk grafik dari persamaan kuadrat adalah kurva non-linear atau lengkung.
b. >> syms x
%menggunakan fplot untuk memplot grafik fungsi
>>fplot(x^2+x-6);xlabel('sumbu-x');ylabel('sumbu-y');grid on

Plot fungsi x2+x-6=0
Dari plot di atas dapat diamati bahwa nilai-nilai fungsi (y) bernilai 0 (y = 0) terjadi pada saat x = {-3,2} yang merupakan akar-akar atau solusi persamaan kuadrat  x2+x-6 = 0.
Contoh 2
a. Menentukan nilai x yang memenuhi 3x2 +11x-4=0.
>> syms x
>> solve(3*x^2 - 11*x - 4==0,x)
ans =
      -1/3
      4
Jadi, nilai x yang memenuhi adalah {-1/3,4}.

b. Menentukan nilai x yang memenuhi 15x2 +2x-8=0.
>> syms x
>> solve(15*x^2 + 2*x - 8==0,x)
ans =
      -4/5
      2/3
Jadi, nilai x yang memenuhi adalah {-4/5,2/3}.
Contoh 3
Menentukan nilai x yang memenuhi
a. >> syms x
>> solve(x^2+2*x-3^(1/2)==0,x)
ans =       
(3^(1/2) + 1)^(1/2) - 1
-(3^(1/2) + 1)^(1/2) – 1
%menampilkan hasil dengan format bilangan desimal
>> double(ans)
ans =
 0.6529
-2.6529
Jadi, nilai x yang memenuhi adalah {-2,653; 0,653}.

b. >> syms x
>>fplot(x^2+2*x-3^(1/2));xlabel('sumbu-x'); ylabel('sumbu-y');grid on

Plot fungsi x^2+2*x-3^(1/2)

Jumat, 26 Juni 2020

Pernyataan Perulangan (Looping) pada MATLAB

Pernyataan perulangan atau yang lebih dikenal dengan looping memudahkan kita untuk melakukan pemrograman dengan perintah yang beriterasi atau berulang. Dalam pemrograman MATLAB, terdapat beberapa perintah yang berkaitan dengan looping dan sering dipakai, yakni for…end, while…end, break, dan continue. Perintah-perintah ini berguna untuk mengontrol jalannya eksekusi skrip dan fungsi.

Perintah for …end

Dalam struktur perintah for…end, jumlah perulangan yang akan dilakukan telah ditentukan terlebih dahulu oleh programmer. Dengan kata lain, sebelum program dieksekusi, telah diketahui berapa banyak iterasi yang nantinya akan dilakukan. Adapun sintaks umum perintah for…end adalah sebagai berikut:
for indeks=nilai_awal:inkremen:nilai akhir
    perintah yang akan dijalankan
end
Untuk inkremen yang bernilai 1 tidak perlu dituliskan, cukup nilai awal dan akhirnya saja.
Contoh 1
Misalkan kita ingin menampilkan kalimat “Belajar MATLAB itu mudah” sebanyak lima kali. Program ini dapat dibuat dengan menggunakan perintah disp dan for...end.
Dengan menggunakan disp:
disp(‘Belajar MATLAB itu mudah’)
disp(‘Belajar MATLAB itu mudah’)
disp(‘Belajar MATLAB itu mudah’)
disp(‘Belajar MATLAB itu mudah’)
disp(‘Belajar MATLAB itu mudah’)
Dengan menggunakan for…end:
for i=1:5
disp(‘Belajar MATLAB itu Mudah’)
end
Dari contoh di atas dapat diamati bahwa penggunaan perintah for…end menjadikan pemrograman menjadi lebih mudah, efektif, dan efisien.
Contoh 2
Program berikut untuk menghitung hasil penjumlahan bilangan dari 1 hingga 10.
%program penjumlahan bilangan
jumlah=0;
for i=1:10
 jumlah=jumlah+i;
 i=i+1;
end
fprintf('Hasil penjumlahan 1 hingga 10 adalah %d\n',jumlah)
Jika dijalankan dengan benar maka program di atas akan menampilkan hasil berikut:
Hasil penjumlahan 1 hingga 10 adalah 55
Contoh 3
Program berikut untuk menampilkan hasil perhitungan faktorial
%program bilangan faktorial
faktorial=1;
n=input('Masukkan bilangan bulat positif: ');
for i=1:n
 faktorial=faktorial*i;
 i=i+1;
end
fprintf('Faktorial dari %d adalah %d\n',n,faktorial)
Berikut contoh-contoh tampilan eksekusi program di atas:
Masukkan bilangan bulat positif: 5
Faktorial dari 5 adalah 120
Masukkan bilangan bulat positif: 10
Faktorial dari 10 adalah 3628800
Adakalanya dalam pemrograman, kita memerlukan for bersarang (nested-for), yaitu pengulangan for yang disarangkan pada for yang lain.
for indeks1= nilai_awal:inkremen:nilai_akhir
   for indeks2=nilai_awal:inkremen:nilai_akhir
for indeks3=nilai_awal:inkremen:nilai_akhir 
   perintah yang akan dijalankan
end
   end
end
Perintah perulangan atau looping for…end yang akan dijalankan terlebih dahulu adalah loop terdalam hingga selesai, kemudian ke loop for…end sebelah luarnya.
Contoh 4
Program berikut untuk membuat tabel perkalian 5 dan 6 dengan perintah for…end bersarang.
%program membuat tabel perkalian
for i=5:6
 for j=1:10
 fprintf('%d*%d=%d\n',i,j,i*j)
 end
end
Berikut tampilan eksekusi program di atas:
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
5*10=50
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
6*7=42
6*8=48
6*9=54
6*10=60
Contoh 5
Program for…end bersarang
for i=1:4
 for j=1:3
 fprintf('*\t')
 end
 fprintf('\n')
end
Tampilan hasil eksekusi program:
*  *  *
*  *  *
*  *  *
*  *  *