Fungsi pada MATLAB

Fungsi merupakan kumpulan pernyataan/perintah yang dikemas dalam satu nama dan nama tersebut dapat dipanggil beberapa kali di beberapa tempat dalam program. Fungsi merupakan bagian program (sub program) yang berfungsi mengerjakan suatu tugas tertentu. Fungsi merupakan konsep dasar dari paradigma pemrograman terstruktur yang membagi-bagi tugas program ke dalam bagian-bagian kecil (fungsi). Manfaat adanya fungsi:

  1. Memudahkan dalam mengembangkan program.
  2. Menghemat ukuran program.

Aturan penamaan fungsi sama dengan aturan penamaan variabel. Pemanggilan fungsi dapat dilakukan di beberapa tempat sesuai dengan kebutuhan. Pemanggilan fungsi dilakukan dengan menuliskan nama_fungsi dan parameter-nya (jika ada).

Parameter merupakan variabel yang hanya dikenali dalam fungsi diamana dia berada. Parameter berfungsi untuk memudahkan pertukaran informasi/data antara fungsi dengan program yang memanggilnya. Penggunaan parameter bersifat opsional, boleh ada boleh tidak sesuai dengan kebutuhan. Jumlah parameter tidak terbatas disesuaikan dengan kebutuhan. Penulisan parameter lebih dari satu dipisahkan dengan tanda koma. Terdapat dua jenis parameter:

  1. Parameter formal merupakan variabel yang menjadi parameter dalam definisi fungsi dan berfungsi menerima nilai dari parameter aktual.
  2. Parameter aktual merupakan variabel yang menjadi parameter dalam pemanggilan fungsi dan berfungsi mengirim nilai ke parameter formal.

Parameter formal dan aktual saling berpasangan dan jumlahnya harus sama.

Nilai Balik (return value) merupakan nilai yang dikembalikan oleh fungsi pada saat pemanggilan fungsi. Kelebihan Matlab dibandingkan bahasa pemrograman lain adalah Matlab dapat mengembalikan nilai lebih dari 1 variabel.

Fungsi dalam Matlab dibuat menggunakan keyword function dan diakhiri dengan keyword end. Ada 4 cara mendefinisikan fungsi yang dapat dipilih:

1. Fungsi yang mempunyai parameter dan nilai balik

function nilai_balik = nama_fungsi(parameter)
   kumpulan_perintah;
end

Contoh :

Program Utama

Fungsi

disp(‘Inputkan Data’)
disp(‘————-‘)
n = input(‘Banyak data : ‘);
for i = 1 : n
fprintf(‘Bilangan ke-%d : ‘,i);
data(i) = input(”);
end
r = average(data);
fprintf(‘Rata-rata = %f\n’, r);
function rata2 = average(M)
n = length(M);
jml = 0;
for i = 1 : n
jml = jml + M(i);
end
rata2 = jml/n;
end

2. Fungsi yang mempunyai parameter tapi tidak mempunyai nilai balik

function nama_fungsi(parameter)
   kumpulan_perintah;
end

Contoh :

Program Utama

Fungsi

disp(‘Predikat Nilai Mahasiswa’)
disp(‘———————–‘)
nilai = input(‘Inputkan nilai : ‘);
predikat(nilai);
function predikat(x)
if (x>=90)&&(x<=100)
disp(‘Excellent!’)
elseif (x>=80)&&(x<90)
disp(‘Good Job!’)
elseif (x>=70)&&(x<80)
disp(‘Study Harder!’)
else
disp(‘Sorry, you failed!’)
end
end

3. Fungsi yang tidak mempunyai parameter dan nilai balik

function nama_fungsi()
   kumpulan_perintah;
end

Contoh :

Program Utama

Fungsi

menu(); function menu()
disp(‘Menu Program’)
disp(‘————‘)
disp(‘1. Segitiga’)
disp(‘2. Bujur Sangkar’)
disp(‘3. Persegi Panjang’)
end

 

4. Fungsi yang tidak mempunyai parameter tapi mempunyai nilai balik

function nilai_balik = nama_fungsi()
kumpulan_perintah;
end

Contoh :

Program Utama

Fungsi

disp(‘Segitiga Siku-siku’)
disp(‘——————‘)
alas = input(‘Inputkan alas   : ‘);
tinggi = input(‘Inputkan tinggi : ‘);
[luas,kel] = segitigaSiku2(alas,tinggi);
disp(‘HASIL:’)
fprintf(‘Luas       : %f\n’, luas)
fprintf(‘Kelililing : %f\n’, kel)
function [L,K] = segitigaSiku2(a,t)
L = a * t / 2;
K = a + t + sqrt(a*a+t*t);
end
Original Written by Dian Nuraiman

Pencarian pada MATLAB

Setiap data yang berada dalam sebuah array tentu memiliki indexs atau letak dimana data tersebut berada. Semakin banyak data maka akan semakin banyak pula indexs dari data-data tersebut. Bagaimana jika kita ingin mencari sebuah data dari sekian banyak data.??? Apakah kita perlu mencarinya satu demi satu dengan cara diurut.??? Tentu itu akan memakan waktu lama dan melelahkan, maka dari itu pada kesempatan kali ini penulis akan berbagi artikel mengenai Pencarian pada MATLAB yang akan mempermudah kamu dalam pengindexan data. Pencarian data (searching) adalah proses mencari data dari sekumpulan data. Metode yang paling sederhana yaitu sequential search. Sequential search merupakan metode pencarian dari sekumpulan data secara sequential (berurutan).

Contoh :

A = [6 4 2 1 3 5 2];
n = 7;
key = input('Data yang anda cari : ');
j = 0;
for i = 1 : n
   if A(i)==key
      j = j + 1;
   end
end
if(j > 0)
   disp('Data ditemukan.')
else
   disp('Data tidak ditemukan.')
end
Original Written by Dian Nuraiman

Pengurutan pada MATLAB

Pengurutan data (sorting) adalah proses mengurutkan sekumpulan data yang tersusun secara acak atau tidak terurut menjadi terurut.  Pengurutan sangat penting dalam sebuah program, dan terdapat banyak metode pengurutan. Metode yang paling sederhana adalah buble sort.  Buble sort merupakan metode pengurutan yang akan menggeser nilai yang terkecil atau terbesar ke posisi ujung dari daftar sesuai dengan jenis pengurutannya, menaik (ascending) atau menurun (descending). Demikian seterusnya hingga semua daftar dalam keadaan terurut. Proses dasar yang terjadi dalam algoritma ini adalah proses pertukaran nilai (swapping).

Contoh :

A = [6 4 2 1 3 5 2];
n = 7;
disp('Data sebelum diurutkan : ')
disp (A)
for i = n : -1 : 1
   for j = 1 : i-1
      if A(j)>A(j+1)
         temp = A(j);
         A(j) = A(j+1);
         A(j+1) = temp;
      end
   end
end
disp('Data setelah diurutkan : ')
disp(A)
Original Written by Dian Nuraiman

Array pada MATLAB

Variabel merupakan tempat penyimpanan data yang nilainya dapat diubah-ubah. Akan tetapi variabel mempunyai kelemahan yaitu hanya dapat menyimpan sebuah data dalam sebuah nama. Hal ini menjadi masalah jika data yang akan disimpan banyak. Maka kita membutuhkan jumlah variabel sebanyak data yang disimpan. Misalkan kita akan menyimpan data tinggi badan mahasiswa, maka kita membutuhkan variabel sebanyak mahasiswa. Cara ini sama sekali tidak efektif, karena akan banyak variabel yang berbeda-beda namanya dan akan mengalami kesulitan dalam pengolahan datanya.  merupakan solusi untuk permasalahan ini.

Array merupakan bentuk penyimpanan data yang dapat menyimpan sekumpulan data yang mempunyai tipe sama dalam sebuah nama. Sekalipun nama -nya sama, akan tetapi data 1 dengan data yang lain mempunyai memori penyimpanan yang berbeda. Memori penyimpanan ini ditandai dengan indeks. Banyaknya memori penyimpanan  dalam MATLAB tidak terbatas dan tidak perlu dipesan terlebih dahulu seperti halnya dalam bahasa pemrograman yang lain.

Array terdiri dari beberapa dimensi dari mulai 1, 2, 3, dst. Akan tetapi yang banyak digunakan hanya array 1 dan 2 dimensi. Gambar berikut mengilustrasikan sebuah array 1 dimensi dengan nama data yang mempunyai 6 memori penyimpanan.

[table caption=”Ilustrasi Array 1 Dimensi” width=”500″ colwidth=”50|50|50|50|50|50″ colalign=”center|center|center|center|center|center”]
Data 1,Data 2,Data 3,Data 4,Data 5, Data 6
5,4,3,1,6,2
[/table]
Array 2 dimensi merupakan gabungan dari array 1 dimensi. Array 2 dimensi memiiki 2 indeks, yaitu indeks baris dan kolom. Tempat penyimpanan array 2 dimensi dapat diilustrasikan dalam gambar berikut:

[table width=”500″ colwidth=”50|50|50″ colalign=”center|center|center”]
,Ilustrasi Array 2 Dimensi,
Data 1 – 1,Data 2 – 1,Data 3 – 1
Data 1 – 2,Data 2 – 2,Data 3 – 3
Data 1 – 3,Data 2 – 3,Data 3 – 3
[/table]
Contoh :

A = [1 2 3 4 5];
B = [1 2 3; 4 5 6];
disp('Data A :')
disp(A)
disp('Data B :')
disp(B)
disp('Inputkan Data Nilai Mahasiswa')
disp('-----------------------------')
for i = 1 : 3
   fprintf('Mahasiswa ke-%d : \n', i)
   for j = 1 : 3
      fprintf('Nilai ke-%d : ', j);
      nilai(i,j) = input('');
   end
end
disp('-----------------------------')
disp('    Data Nilai Mahasiswa     ')
disp('-----------------------------')
disp('Nilai ke |   1    2    3')
disp('========================')
for i = 1 : 3
   fprintf('Mhs ke-%d | ', i)
   for j = 1 : 3
   fprintf(' %d  ', nilai(i,j));
   end
fprintf('\n')
end
Original Written by Dian Nuraiman

Pengulangan for Bersarang pada MATLAB

Setelah kita mempelajari dan mengetahui apa itu pengulangan for dan apa yang dimaksud dengan kata bersarang pada artikel lainnya. Kini kita akan coba mempelajari bagaimana sih membuat Pengulangan for Bersarang pada MATLAB.??? Masih ingat dengan materi sebelumnya yang berjudul Pengulangan pada MATLAB dan Pemilihan if Bersarang.??? Jika pada if bersarang kita menggunakan perintah if dalam if untuk membuat sebuah kondisi dalam kondisi, maka untuk for bersarang kita gunakan untuk membuat pengulangan dalam pengulangan yang lain. Gunanya agar pada nantinya kita dapat membuat data berupa matriks 2 dimensi.

Bentuk pengulangan  bersarang sebagai berikut :

for inisialisasi1 : iterasi1 : kondisi1
   for inisialisasi2 : iterasi2 : kondisi2
      proses
   end
end

Contoh :

for i = 1 : 5
   for j = 1 : 5
      fprintf(' %d ',i)
   end
   fprintf('\n')
end
Original Written by Dian Nuraiman

Pengulangan pada MATLAB part 2

Materi pada kesempatan kali ini merupakan kelanjutan dari materi yang sebelumnya, yakni Pengulangan pada MATLAB part 1. Disini kita akan membahas mengenai fungsi break dan continue. Break merupakan pernyataan/perintah untuk menghentikan pengulangan while maupun for. Sedangkan continue adalah pernyataan/perintah untuk melanjutkan ke iterasi pengulangan berikutnya tanpa mengeksekusi perintah yang berada setelah continue.

Contoh :

i = 1;
while (i > 0)
   fprintf('%d  ', i);
   i = i + 1;
   if (i > 10)
      break
   end
end
fprintf('\n');
for i = 1 : 20
   if (mod(i,2) == 0)
      continue
   end
   fprintf('%d  ',i);
end
fprintf('\n');
Original Written by Dian Nuraiman

Pengulangan pada MATLAB part 1

Pengulangan (looping) adalah bagian yang bertugas melakukan kegiatan/proses secara berulang-ulang sesuai dengan perintah yang diberikan. Terdapat 4 bagian pengulangan:

  1. Inisialisasi, berfungsi sebagai keadaan awal sebelum pengulangan dilakukan. Inisialisasi hanya dilakukan sekali selama pengulangan.
  2. Kondisi pengulangan, berfungsi untuk menentukan pengulangan akan dilakukan atau tidak. Selama kondisi pengulangan terpenuhi/benar, maka pengulangan akan dilakukan. Sebaliknya jika kondisi pengulangan tidak terpenuhi/salah, maka pengulangan dihentikan.
  3. Proses, yaitu bagian yang dilakukan berulang-ulang selama kondisi pengulangan terpenuhi atau bernilai benar.
  4. Pengatur iterasi, berfungsi untuk mengatur langkah iterasi. Langkah iterasi bisa dilakukan secara menaik atau menurun.

Dalam Matlab, terdapat dua jenis pengulangan, yakni pengulangan dengan menggunakan while dan for

Pengulangan while
Pengulangan while akan melakukan pemeriksaan kondisi terlebih dahulu. Jika kondisi tidak terpenuhi, ada kemungkinan pengulangan tidak dikerjakan sama sekali. Selama kondisinya terpenuhi/benar, maka pengulangan akan dikerjakan. Pengulangan while biasanya digunakan untuk kasus dimana banyaknya pengulangan yang akan dilakukan tidak diketahui secara pasti. Bentuk pengulangan dengan menggunakan while adalah sebagai berikut :

inisialisasi
while kondisi
proses
pengatur iterasi
end

Contoh :

i = 1;
while i <= 10
disp('Teknik Informatika')
i = i + 1;
end

Pengulangan for
Pengulangan for biasanya digunakan untuk kasus dimana banyaknya pengulangan yang akan dilakukan sudah diketahui secara pasti dan menurut penulis, pengulangan dengan menggunakan for lebih mudah dan efektif digunakan dalam pemrograman di MATLAB. Bentuk pengulangan for adalah sebagai berikut :

for inisialisasi : pengatur iterasi : kondisi
proses
end

Contoh :

for i = 1 : 10
disp('Teknik Informatika')
end
Original Written by Dian Nuraiman

Switch-Case pada MATLAB

Berbeda dengan Pemilihan If, Switch-Case merupakan bentuk pemilihan yang mencocokkan nilai ekspresi yang berada dalam Switch dengan nilai pilihan yang berada dalam Case, jika cocok/sama maka aksi dari Case akan dijalankan. Sedangkan Otherwise (jika ada) akan dijalankan jika semua pilihan tidak ada yang cocok/sama. Bentuk Switch-Case:

switch ungkapan
   case pilihan1
      aksi1;
   case pilihan2
      aksi2;
   otherwise
      aksiN;
end

Contoh :

disp('Program Ganjil Genap')
disp('--------------------')
bil = input('Masukkan angka : ');
switch mod(bil,2)
   case 0
      disp('Bilangan genap')
   case 1
      disp('Bilangan ganjil')
end
Original Written by Dian Nuraiman

Operator Logika dan Pemilihan if Bersarang di MATLAB

Operator Logika
Operator logika biasanya digunakan untuk menyatakan sebuah kondisi yang bernilai TRUE (1) atau FALSE (0). Terdapat beberapa jenis operator logika sebagai berikut:

[table caption=”” width=”610″ colwidth=”20|100|15|200″ colalign=”center|left|center|left”]
No,Operasi,Simbol,Contoh
1,Konjungsi (AND),&&,Bernilai TRUE jika operand kiri dan kanan bernilai TRUE selain itu FALSE
2,Disjungsi (OR),||,Bernilai FALSE jika operand kiri dan kanan bernilai FALSE selain itu TRUE
3,Negasi (NOT),~,Bernilai TRUE jika operandnya bernilai FALSE begitupula sebaliknya
[/table]
Pemilihan if  Bersarang
Pemilihan if  bersarang merupakan bentuk pemilihan dimana terdapat pemilihan dalam pemilihan, atau aksi dari sebuah kondisi terdapat pemilihan atau penyeleksian kondisi yang lain. Pemilihan bentuk ini disebut juga penyeleksian kondisi bertingkat. Salah satu bentuk pemilihan if  bersarang:

if (kondisiA)
   if (kondisi1)
      aksi1;
   else
      aksi2;
   end
else
   if (kondisi2)
      aksi3;
   else
      aksi4;
   end
end

Contoh Operasi Logika :

disp('Program Operasi Logika')
disp('----------------------')
bil = input('Masukkan sebuah bilangan : ');
if (bil > 0) && (bil < 10)
   disp('Bilangan positif yang kurang dari 10')
else
   disp('Bukan bilangan positif yang kurang dari 10')
end
disp('----------------------')
huruf = input('Masukkan sebuah huruf : ');
if (huruf == 'a') || (huruf == 'A')
   disp('Huruf A')
else
   disp('Bukan huruf A')
end

Contoh Pemilihan if  Bersarang :

disp('Program Pemilihan if Bersarang')
disp('------------------------------')
k = 5; g = 4; b = -3; c = 2; d = 5;
if (k > 9)
   if (c <= 4)
      b = b + 2;
   else
      disp('BANDUNG')
      b = b - 2;
   end
else
   if (g ~= 4)
      disp('JAKARTA')
      d = d / 4;
   else
      d = mod(d,4);
   end
end
p = d + b;
disp(p)
Original Written by Dian Nuraiman

Operator Relasi dan Pemilihan if di MATLAB

Operator Relasi
Operator relasi disebut juga operator pembanding, karena operator ini berfungsi membandingkan nilai operand kiri dengan operand kanannya. Operator relasi biasanya digunakan untuk menyatakan sebuah kondisi yang bernilai TRUE (1) atau FALSE (0). Terdapat beberapa jenis operator relasi sebagai berikut:

[table caption=”” width=”610″ colwidth=”20|100|15|50|300″ colalign=”center|left|center|center|left”]
No,Operasi,Simbol,Contoh,Keterangan
1,Lebih besar dari,>,x > y,Bernilai TRUE jika x lebih besar dari y
2,Lebih kecil dari,<,x < y,Bernilai TRUE jika x lebih kecil dari y
3,Lebih besar sama dengan dari,>=,x >= y,Bernilai TRUE jika x lebih besar dari atau sama dengan y
4,Lebih kecil sama dengan dari,<=,x <= y,Bernilai TRUE jika x lebih kecil dari atau sama dengan y
5,Sama dengan,==,x == y,Bernilai TRUE jika x sama dengan y
6,Tidak sama dengan,~=,x ~= y,Bernilai TRUE jika x tidak sama dengan y
[/table]
Pemilihan if
Dalam menyelesaikan kasus, terkadang program harus memilih mana perintah harus dikerjakan dan mana yang tidak perlu dikerjakan bergantung kondisinya. Pemilihan if merupakan sebuah cara untuk mengambil keputusan berdasarkan suatu kondisi, jika kondisi terpenuhi maka aksi dikerjakan. Sebuah kondisi dapat bernilai TRUE (1) atau FALSE (0). Jika kondisi bernilai TRUE, maka aksi akan dikerjakan.

Bentuk pemilihan if  dengan dua alternatif :

if (kondisi)
   aksi1;
else
   aksi2;
end

Bentuk pemilihan if  dengan beberapa alternatif :

if (kondisi1)
   aksi1;
elseif (kondisi2)
   aksi2;
elseif (kondisi-n)
   aksi-n;
else
   aksi-N;
end

Contoh :

lembur = input('Masukkan jam lembur = ');
if (lembur >= 10)
   gaji = 20000 * lembur;
   fprintf('Gaji lembur anda Rp. %d\n', gaji)
elseif (lembur >= 5)
   gaji = 15000 * lembur;
   fprintf('Gaji lembur anda Rp. %d\n', gaji)
else
   gaji = 10000 * lembur;
   fprintf('Gaji lembur anda Rp. %d\n', gaji)
end
Original Written by Dian Nuraiman