Kamis, 05 Juli 2012

Laporan Praktikum Metode Numerik


BAB I
PENDAHULUAN
1.1  latar belakang
Matlab adalah singkatan dari Matrix Laboratory, software yang dibuat dengan menggunakan bahasa ini dibuat oleh The Mathworks.inc dan telah memilki berbagai versi, kekuatan matlab terletak pada :
1.  Kemudahan manipulasi struktur matriks.
2.  Jumlah routine-routine powerful yang berlimpah yang terus berkembang.
3.  Kekuatan fasilitas grafik tiga dimensi yang sangat memadai.
4.  Sistem scripting yang memberikan keleluasaan bagi pengguna mengembangkan dan memodifikasi software untuk kebutuhan sendiri.
5.  Kemampuan interface( misal dengan bahasa C, word dan mathematica).
6.  Dilengkapi dengan toolbox, simulink, stateflow dan sebagainya,
serta mulai melimpahnya source code di internet yang dibuat dalam matlab( contoh  toolbox misalnya : signal processing, control system, neural networks dan sebagainya). Semua itu merupakan perangkat yang powerful untuk menyelesaikan permasalahan sains dan teknik  terutama untuk wilayah dimana komputasi numerik harus dibuat.
Salah satu yang cukup menarik dari matlab ini adalah kemudahan dan kejelasannya dalam memahami contoh dan demo serta help yang ada pada matlab. Kita akan berkenalan lebih dekat dengan yang satu ini. Kita bisa lihat dari demo ini ternyata begitu banyak persoalan yang dapat dibangun dengan matlab dengan cara lebih mudah dan lebih singkat, tanpa mengurangi kepahaman kita pada suatu persoalan(bisa dibandingkan dengan bahasa C, pascal, delphi atau visual lainnya). Dengan dilengkapinya matlab  dengan toolbox, simulink dan sebagainya maka semakin menambah kekuatan matlab untuk menyelesaikan permasalahan yang rumit menjadi lebih mudah.




I. 2  TUJUAN PRATIKUM
  a. . Mahasiswa mampu mengoperasikan MATLAB dan memanfaatkannya sebagai perangkat Simulasi untuk praktikum Sinyal dan Sistem
bMahasiswa dapat menyelesaikan pemasalahan dalam metode numerit dengan mengunakan sistem MATLAB.
c.  Mempelajari penggunaan sistem  help untuk mengetahui  commands dan  syntax dasar MATLAB
d.    Dapat menggunakan MATLAB untuk desain filter

1.3  MANFAAT PRAKTIKUM
Adapun maksud dan tujuan dari pembuatan laporan ini adalah :
a.    Mampu melakukan perhitungan matematis dengan menggunakan matlab
b. Mampu membuat program dengan kondisi IF…END,  FOR …END,  WHILE…END dan SWITCH CASE
c. Mampu menggambarkan plot/grafik dari suatu fungsi atau persamaan menggunakan matlab 
d. Mampu menyelesaikan persamaan non linear seperti metode bisection, newton raphson  dan secant dengan matlab.

BAB II
LANDASAN TEORI II. DASAR TEORI
2.1     Metode Numerik
Persoalan yang melibatkan model matematika banyak muncul dalam berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia, ekonomi, atau pada persoalan rekayasa (engineering), seperti Teknik Sipil, Teknik Mesin, Elektro, Teknik Informatika dan sebagainya.  Seringkali model matematika tersebut muncul dalam bentuk yang tidak ideal alias rumit. Model matematika yang rumit ini adakalanya tidak dapat diselesaikan dengan metode analitik yang sudah umum untuk mendapatkan solusi sejatinya (exact solution). Yang dimaksud dengan metode analitik adalah metode penyelesaian model matematika dengan rumus-rumus aljabar yang sudah baku (lazim).
Bila metode analitik tidak dapat lagi diterapkan, maka solusi persoalan sebenarnya masih dapat dicari dengan  menggunakan metode numerik. Metode numerik adalah teknik yang digunakan untuk memformulasikan persoalan matematik sehingga dapat dipecahkan dengan operasi perhitungan/aritmetika biasa (tambah, kurang, kali, dan bagi). Metode artinya cara, sedangkan numerik artinya angka. Jadi metode numerik secara harafiah berarti cara berhitung dengan menggunakan angka-angka.
Perbedaan utama antara metode numerik dengan metode analitik terletak pada dua hal.  Pertama, solusi dengan menggunakan metode numerik selalu berbentuk angka. Bandingkan  dengan metode analitik yang biasanya menghasilkan solusi dalam bentuk fungsi  matematik yang selanjutnya fungsi mateamtik tersebut dapat dievaluasi untuk menghasilkan nilai dalam bentuk angka.
       Kedua, dengan metode numerik, kita hanya memperoleh solusi yang menghampiri atau mendekati solusi sejati sehingga solusi numerik dinamakan juga  solusi hampiran (approxomation)atau  solusi pendekatan, namun solusi hampiran dapat dibuat seteliti yang kita inginkan.  Solusi hampiran jelas tidak tepat sama dengan solusi sejati, sehingga ada selisih antara keduanya. Selisih inilah yang disebut dengan galat (error).

 
 2.2 Pengenalan Matlab 
MATLAB adalah sebuah bahasa dengan (high-performance) kinerja tinggi untuk komputasi masalah teknik.  Matlab mengintegrasikan komputasi, visualisasi, dan pemrograman dalam suatu model yang sangat mudah untuk pakai dimana masalah-masalah dan penyelesaiannya diekspresikan dalam notasi matematika yang familiar. Penggunaan Matlab meliputi bidang-bidang:
•  Matematika dan Komputasi 
•  Pembentukan Algorithm 
•  Akusisi Data 
•  Pemodelan, simulasi, dan pembuatan prototipe
•  Analisa data, explorasi, dan visualisasi 
•  Grafik Keilmuan dan bidang Rekayasa 
MATLAB merupakan suatu sistem interaktif yang memiliki elemen data dalam suatu array sehingga tidak lagi kita dipusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan komputasi, kususnya yang berhubungan dengan matrix dan formulasi vektor, yang mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic. Nama MATLAB merupakan singkatan dari matrix laboratory. MATLAB pada awalnya ditulis untuk memudahkan akses perangkat lunak matrik yang telah dibentuk oleh LINPACK dan EISPACK. Saat ini perangkat MATLAB telah menggabung dengan LAPACK dan BLAS library, yang merupakan satu kesatuan dari  sebuah seni tersendiri dalam perangkat lunak untuk komputasi matrix.  Dalam lingkungan perguruan tinggi teknik, Matlab merupakan perangkat standar untuk memperkenalkan dan mengembangkan penyajian materi matematika, rekayasa dan kelimuan. Di industri, MATLAB merupakan perangkat pilihan untuk penelitian dengan produktifitas yang tingi,  pengembangan dan analisanya. Fitur-fitur MATLAB sudah banyak dikembangkan, dan lebih kita kenal dengan nama toolbox. Sangat penting bagi seorang pengguna Matlab, toolbox mana yang mandukung untuk learn dan  apply technologi yang sedang dipelajarinya. Toolbox toolbox ini merupakan kumpulan dari fungsi-fungsi MATLAB (M-files) yang telah dikembangkan ke suatu lingkungan kerja MATLAB untuk memecahkan masalah dalam kelas particular. Area-area  yang sudah bisa dipecahkan dengan toolbox saat ini meliputi pengolahan sinyal, system  kontrol, neural networks, fuzzy logic, wavelets, dan lain-lain.

 2.3  bagian dari Sistem MATLAB 
Sebagai sebuah system, MATLAB tersusun dari 5 bagian utama:
1. Development Environment.   Merupakan sekumpulan perangkat dan fasilitas yang  membantuanda untuk menggunakan fungsi-fungsi dan file-file MATLAB. Beberapa  perangkat ini merupakan sebuah graphical user interfaces (GUI). Termasuk didalamnya adalah MATLAB desktop dan Command Window, command history, sebuah editor dan debugger, dan browsers untuk melihat help, workspace, files, dan search path.
2. MATLAB Mathematical Function Library. Merupakan sekumpulan algoritma  komputasi mulai dari fungsi-fungsi  dasar sepertri: sum, sin, cos, dan complex arithmetic, sampai dengan fungsi-fungsi yang lebih kompek seperti  matrix inverse, matrix eigenvalues, Bessel functions, dan fast Fourier transforms. 
3. MATLAB Language.   Merupakan suatu high-level matrix/array language dengan control flow statements, functions, data structures, input/output, dan fitur-fitur object-oriented programming. Ini memungkinkan bagi kita untuk melakukan kedua hal baik  "pemrograman dalam lingkup sederhana " untuk mendapatkan hasil yang cepat, dan "pemrograman dalam lingkup yang lebih besar" untuk memperoleh hasil-hasil dan aplikasi yang komplek. 
4. Graphics.   MATLAB memiliki fasilitas untuk menampilkan vector dan matrices sebagai  suatu grafik. Didalamnya melibatkan high-level functions (fungsi-fungsi level tinggi) untuk  visualisasi data dua dikensi dan data tiga  dimensi, image processing, animation, dan presentation graphics. Ini juga melibatkan fungsi level rendah yang memungkinkan bagi anda untuk membiasakan diri untuk memunculkan grafik mulai dari benutk yang sederhana sampai dengan tingkatan graphical user interfaces pada aplikasi MATLAB anda.
5. MATLAB Application Program Interface (API).   Merupakan suatu library yang  memungkinkan program yang telah anda tulis dalam bahasa C dan Fortran mampu berinterakasi dengan MATLAB. Ini melibatkan fasilitas untuk pemanggilan routines dari MATLAB (dynamic linking), pemanggilan MATLAB sebagai sebuah computational engine, dan untuk membaca dan menuliskan MAT-files.

2. 5  VARIABEL DAN OPERTOR
2.4.1 Variabel
Seperti bahasa pemrograman lainnya, matlab pun memiliki variabel, tetapi dalam penulisannya, variabel di dalam matlab tidak perlu dideklarasikan, karena matlab mampu mengenali tipe data dari variable dari  isi variabel tersebut.  Aturan penulisan variabel pada matlab sama  dengan aturan pada bahasa pemrograman lainnya, yaitu bersifa case sensitive, diawali dengan huruf dan selanjutanya boleh menggunakan gabungan huruf-angka atau tanda garis bawah. Matlab mampu mengenali sampai 31 karakter pertama, selanjutnya diabaikan.
Contoh: 


>> var1=7.1
var1 =
      7.1
>> var_2=[4 6 7]
Var_2 =
       4  6  7

        Semua tipe data di matlab memiliki bentuk yang sama, yaitu array. Array minimal berukuran 0x0 dan dapat bertambah menjadi array n x m dimensi dengan sebarang ukuran. Matlab mempunyai beberapa tipe data dasar (atau class), yaitu: logical, char, numeric, cell, structure, java classes, function handles.

2.5.2 Operator
Di dalam matlab, operator diklasifikasikan menjadi tiga bagian, yaitu: 
a)      Operator Arimatika
  Operator aritmatika digunakan untuk mengerjakan komputasi numeric. 
 

opertor
Arti
+
Penjumlaha
-
Pengurangan
*
Perkalian (aturan matrik)
.*
Perkalian masing-masing ellemen yang bersesauian (aturan array)
/
Pembagian kanan (matrik)
./
Pembagian kana (array)
\
Pembagian kiri (matrik)
.\
Pembagian kiri (array)         
^
Perpangkatan (matrik)
.^
Perpangkatan (array)
:
Langkah




b).  Operator Relasional
 
Operator relasional digunakan untuk membandingkan operand-operand secara kuantitatif .
Operator
Arti
==
Sama dengan
~=
Tidak sama dengan
Kurang dari
Lebih dari
<=
Kurang dari sama dengan
>=
Lebih dari sama dengan

c)  Operator Logika
Operator
arti
%
Akan menghasilkan nilai 1 jika kedua elemen yang bersesuaian memilki nilai true dan 0 untuk lain nya
|
Akan bernilai 1 jika salh satu elemen nya true
~
Komplen dari elemen yang di inputkan
xor
Akan bernilai 1 jika salah satu dari kedua elemen memilki nilai berbeda dan bernilai nol jika sama

Input Data
Terdapat dua cara untuk memasukkan data yaitu:
a.       inisialisasi data, dimana data diberikan secara langsung pada saat pembuatan program
Bentuk umum:
variabel = ekspresi
b.      menggunakan perintah input, dimana data diberikan pada saat program di-running.
Bentuk umum:
variabel = input(‘text’)  numerik dan string
atau variabel = input(‘text’, ‘s’)  string
pada layar akan tampil apa yang tertulis di antara tanda petik (text), menanti masukan data yang diikuti dengan menekan enter melalui keyboard

BAB III
ANALISA DAN HASIL PERCOBAAN

3.1     Operasi-operasi Dasar Pada MATLAB
                                MATLAB dapat melakukan operasi-operasi aritmatika dasar sebagai  berikut :
Operasi
Simbol
Penambahan, a + b
+
Pengurangan a-b
-
Perkalian a x b
*
Pembagian a : b
/ atau \
Pemangkatan ab
^
      
Urutan operasi tersebut yang dikerjakan dalam suatu ekspresi yang mengikuti aturan prioritas yang biasa (hirarki). Aturan tersebut dapat diringkas sebagai berikut :
Ekspresi dikejakan dari kiri ke kanan dengan pemangkatan mempunyai prioritas tertinggi, diikuti dengan perkalian atau pembagian yang mempunyai prioritas yang sama, diikuti dengan penambahan dan pengurangan yang juga memiliki prioritas yang sama. Tanda kurung dapat digunakan untuk merubah urutan pengerjaan yang biasa dimana bagian yang dikerjakan terlebih dahulu adalah bagian yang yang ada di bagian kurung paling dalam kemudian keluar.Seperti contoh berikut :
                >> x = (5*5+7*7+2*2+5*4)/(5+7+2+5)
ans =5.1579
3.2     Tipe Data
Software MATLAB mengenal 3 tipe data yaitu : string, scalar, dan matriks. Array merupakan matriks yang hanya memiliki satu baris. MATLAB juga memiliki banyak fungsi built-in untuk bejkerja memanipulasi tipe data tersebut. Berikut ini beberapa contoh yang menjelaskan ketiga tipe data tersebut di atas.

3.2.1          String
String dalam MATLAB adalah type data yang terdiri atas huruf-huruf dan atau nilai-nilai ASCII yang ditampilkan representasinya. String adalah teks yang diawali dan diakhiri dengan apostrof ‘   ‘.
Contoh :

>> p='haii how are you??'

p =

haii how are you??

>> size (p)

ans =

     1    18

>> whos
  Name      Size                    Bytes  Class


 


ans       1x2                        16  double array
  p         1x18                       36  char array

Grand total is 20 elements using 52 bytes

Setiap karakter dalam suatu string adalah satu elemen dalam array, dengan setiap elemennya sebesar 2 byte.
   Untuk melihat representasi ASCII karakter string dapat dilakukan dengan melakukan operasi aritmetik terhadap string atau mengkonversikannya menggunakan fungsi double.
Contoh :
double(p)
ans =
Columns 1 through 16
  104    97   105   105    32   104   111   119    32    97   114   101    32   121   111   117
Columns 17 through 18
    63    63

>> abs(p)
ans =
    Columns 1 through 16
104    97   105   105    32   104   111   119    32    97   114  101   32   121   111   117
Columns 17 through 18
63    63
selain fungsi-fungsi di atas fungsi-fungsi string lainnya adalah :

1.     Fungsi disp
       Fungsi disp memungkinkan untuk menampilkan string tanpa menampilkan nama variabelnya.
Contoh :
   teks bantuan dalam suatu file script

>>disp('Ini contoh tampilan dari text')
   Ini contoh tampilan dari text

       Syarat digunakannya disp , isi didalamnya harus merupakan strings, jadi jika ingin menampilkan sebuah angka terlebih dahulu dirubah kedalam bentuk strings dengan menggunakan function num2str( ).
Sebagai contoh :
>> nim=090170021;
>> disp(['Nim saya adalah ',num2str(nim)])
Nim saya adalah 90170021

2.     Fungsi input
       Contoh:
   » nama=input('Masukkan nama anda !','s')
         Masukkan nama anda !
   » disp('Nama yang anda masukkan=');
         Nama yang anda masukkan=
   » disp(nama);

3.     fungsi fprintf
Command ini berfungsi untuk menampilkan output di layar atau menyimpan output di suatu external file ( sama halnya dengan command fprint di C/C++). Fungsi ini mempunyai argumen sbb:
   fprintf( ' nama file ' ,' format string ' , list)
dimana list adalah nama variabel yang dipisahkan dengan koma. Untukformat string :
       %P.Qe untuk eksponensial
       %P.Qf untuk fixed point
       /n untuk membuat baris baru
dan lebih detailnya dapat dilihat di help untuk fprintf. Dibawah ini diberikan contoh penggunaannya.
Contoh 1.
>> z='cuma mencoba..';
>> y='semoga sukses';
>> fprintf('%s\n',z,y);
cuma mencoba..
semoga sukses
Contoh 2.
x=1007.46 ; y=2.1278;k=17;
fprintf('x= %8.2f y=%8.2f k=%2.0f',x,y,k)
x= 1007.46 y= 2.13 k=17
Catatan : Teks atau string di Matlab dapat di tampilkan dengan cara menggunakan ( ') di awal dan( ')diakhir contoh: ' ini cara menulis string '.
perintah ini mirip dengan disp, namun lebih memiliki fleksibilitas dalam format output yang diinginkan.



3.2.1          Scalar
Scalar adalah nama lain dari data numeric, Dalam MATLAB data scalar dapat dimanipulasikan dengan menggunakan beberapa fungsi, seperti type string sebelumnya. Berikut ini beberapa contohnya:
» x=0:0.1:1;
» y=[x;tan(x)];
» fid=fopen('c:\backup\tan.txt','w');
» fprintf(fid,'&6.2f %12.8f\n',y);
» fclose(fid);
akan menyimpan tabel berisikan x dan tan(x) di file tan.txt (nama ini sebarang, sesuai dengan keinginan anda) yang disimpan di direktori c:\backup berisikan data berikut :
0.00   0.00000000
0.10   0.10033467
0.20   0.20271004
0.30   0.30933625
0.40   0.42279322
0.50   0.54630249
0.60   0.68413681
0.70   0.84228838
0.80   1.02963856
0.90   1.26015822
1.00   1.55740772

3.2.2          Array
MATLAB menangani array secara intuitif. Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah mengetikkan kurung kotak kiri, memasukkan elemen-elemen denagn dipisahkan oleh spasi atau koma, kemudian menutup array dengan kurung kotak kanan. 
Berikut ini akan diberikan beberapa contoh assignment untuk array :

a.     Pengalamatan array
Dalam MATLAB elemen-elemen array diakses menggunkan subcript; misalnya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dan seterusnya.
Contoh :
» >> x=[3 4 1 6 4 8 10 4]
x =     3     4     1     6     4     8    10     4
>> x(5)  %elemen keempat x
ans =
     4
>> x([1 3 5])=[0.2 0.5 0.7]

x =
0.2000    4.0000    0.5000    6.0000    0.7000    8.0000   10.0000    4.0000
maka x(1)=0.1, x(3)=0.5, x(5)=0.7 dan x(i) untuk i=2,3,4 bernilai 0.
nilai array dapat juga diisikan sebagai berikut :
x= 3:1:4
x = 3     4
artinya bahwa nilai array yang diisikan dengan angka dari 4 sampai 9 dengan penambahan 1 (default). Penambahan dapat bernilai sebarang, bahkan dapat juga negatif, seperti contoh berikut :
>> z=9:-3:1
z = 9     6     3
Memisahkan elemen dengan titik koma membuat elemen berada dalam baris yang berbeda, seperti contoh berikut :

>> y=[3,6,7,8,4,3]
y =
 3     6     7     8     4     3
b.    Menambahkan elemen array

>> x=[x 2 4] % array sebelumnya
x =
 3     4     2     4
>> x=[x 2 4] %menambahkan 2 elemen dibelakang
x =
3     4     2     4     2   4

c.   Mengakses sebagian elemen array
Dari contoh sebelumnya misalkan hanya diakses elemen ke 2 sampai ke empat
>> y=x(2:4)
y =
 4     2     4

d. Menghapus elemen array
Dapat dilihat contoh berikut :
Menghapus elemen terakhir dari array
» n=[1 3 5 7 9]
n =
     1     3     5     7     9
» n=n(1:length(n)-1)
n =
     1     3     5     7
Menghapus elemen pada index tertentu
Misalkan z =[1 2 3 4 5 ] dan ingin dihapus z pada index ke 2 dan 4 maka:
» z=[1 2 3 4 5]
z =
     1     2     3     4     5
» z([2 4])=[]
z =
     1     3     5




3.2.3          Matrik
Matriks merupakan bentuk utama dari MATLAB, seperti halnya array matriks juga didefenisikan elemen demi elemen. Sebagai contoh jika diketahui matriks berikut ini :
A=
Maka matriks di atas dapat diinputkan ke MATLAB dengan beberapa cara yaitu:
a.     Mengentri satu persatu data matriks A
» A(1,1)=3;A(1,2)=5;A(2,1)=4;A(2,2)=1
A =
     3     5
     4     1
b.    Menggunakan operator titik koma
» A=[3 5;4 1]
A =
     3     5
     4     1
untuk mengetahui ukuran matriks di atas dapat dilakukan dengan menggunakan command size berikut :
» [baris kolom]=size(A)
baris =
     2
kolom =
     2
atau jika hanya ingin mengetahui jumlah baris atau kolom saja maka  digunakan perintah berikut :
» baris=size(A,1)
» kolom=size(A,2)
Sebagai latihan dapat dicoba contoh berikut ini:
>> A = [1 2 3;4 5 6;7 8 9]; 
>> B = [1 1 1;2 2 2;3 3 3];
>> C = [1 2;3 4;5 6];
>> whos
  Name      Size         Bytes  Class
 
  A         3x3             72  double array
  B         3x3             72  double array
  C         3x2             48  double array
Grand total is 24 elements using 192 bytes
>> A+B
ans =
     2     3     4
     6     7     8
    10    11    12
>> A+C
??? Error using ==> +
Matrix dimensions must agree.
Matrix multiplication is also defined:
>> A*C
ans =
    22    28
    49    64
    76   100
>> C*A
??? Error using ==> *
Inner matrix dimensions must agree.
If Ais a square matrix and m is a positive integer, then A^m is the product of m factors of A.
However, no notion of multiplication is defined for multi-dimensional arrays with more than 2 dimensions:
>> C = cat(3,[1 2;3 4],[5 6;7 8])
C(:,:,1) =
     1     2
     3     4
C(:,:,2) =
     5     6
     7     8
>> D = [1;2]
D =
     1
     2
>> whos
  Name      Size         Bytes  Class
  C         2x2x2           64  double array
  D         2x1             16  double array
Grand total is 10 elements using 80 bytes
 
>> C*D
??? Error using ==> *
No functional support for matrix inputs.
By the same token, the exponentiation operator ^ is only defined for square 2-dimensional arrays (matrices).
Dan operasi-operasi lainnya seperti :
1. >>x=A/f
2. >>A=A’
3.    >>2*A
4.    >>inv(B)

3.1     Membuat file matlab (M-FILE)
M-file merupakan sederetan perintah matlab yang dituliskan secara berurutan sebagai sebuah file. Nama file yang tersimpan akan memiliki ekstensi .m yang menandakan bahwa file yang dibuat adalah file matlab. M-file dapat ditulis sebagai sebuah script atau dapat pula ditulis sebagai sebuah fungsi yang menerima argument atau masukan yang menghasilkan output.
                Untuk menuliskan skrip M-file, Anda bisa mulai dengan membuka file baru.  Caranya ialah melalui menu di  main window: File>Open atau File>New>M-file; atau dengan mengklik ikon yang ada di jendela utama.
seperti pada contoh di atas, file matlab (m-file) sudah berisi listing program untuk  menghitung rata-rata. Di dalam M-file, setiap  command diakhiri dengan titik-koma supaya hasil perhitungan di tiap baris tidak ditampilkan di command window.  Kecuali pada hasil perhitungan yang ingin
kita tampilkan, tidak diakhiri titik-koma. Variabel yang didefinisikan di dalam M-file akan disimpan oleh MATLAB ketika M-file telah dieksekusi.
Di dalam editor, skrip yang kita tuliskan akan memiliki warna tertentu:
•  hijau untuk komentar
•  hitam untuk variabel dan command
•  biru untuk statement pemrograman.
3.1     Grafik
Salah satu keunggulan MATLAB ialah kemampuannya dalam menampilkan/mengolah grafik dengan  command yang sederhana dan fleksibel.  Pada bagian ini saya akan mengulas sedikit mengenai visualisasi data (plot grafik 2-dimensi dan 3-dimensi).

3.4.1          Plot 2-Dimensi
Contoh Fungsi plot digunakan untuk menggambar grafik 2D dengan skala linear pada kedua sumbunya :
>> x=-10:15;
>> y=x*4;
>> plot(x,y)


3.4.1          Plot 3-Dimensi
Untuk menampilkan grafik 3 dimensi digunakan fungsi plot3. Plot3 memerlukan 3 argumen dengan bentuk plot3(x,y,z), dimana x, y, z merupakan 3 bagian vector yang sama panjang.
t=0:pi/125:12*pi;
 plot3(sin(3*t),cos(3*t),t)


3.4.3          Bar
Fungsi bar digunakan untuk menampilkan data yang berbentuk vector maupun matriks. grafIk  bar digunakan untuk menampilkan sekumpulan data selama kurun waktu terentu dan cocok untuk menampilkan data dalam bentuk diskrit.
Contoh:
>> t=[20 10 17 50; 27 32 10 13; 80, 31, 34, 24; 50 87 35 52];
>> bar(t)
>> grid on
 
Matlab juga menyediakan dalam bentuk 3 dimensi, yaitu bar3. Missal grafik diatas disajikan dalambar3, maka kita ketik perintah berikut:
>>bar3(t)



3.4.3          Pie
Fungsi pie digunakan untuk menampilkan data secara prosentase, dimana setiap lemen data akan dibandingkan dengan penjumlahan seluruh data yang ada. Grafik pie dapat disajikan dalam bentuk 2 dimensi maupun 3 dimensi.
Contoh:
 >> x=[10 30 21 52];
>> pie(x, {'A', 'B', 'C', 'D'}) %pie 2 dimensi
>> pie3(x, {'A', 'B', 'C', 'D'}) %pie 3 dimensi




3.4.3          Stem
Fungsi stem cocok digunakan untuk menampilkan data dalam bentuk diskrit.
Contoh:
>> x=1:10;
>> y=rand(1,10);
>> stem(x,y)



3.1     Persamaan Non Linear
Menyelesaikan persamaan atau mencari akar persamaan f(x)=0 berarti mencari nilai-nilai xsehingga menyebabkan pernyataan f(x)=0 menjadi benar. Dengan kata lain, akar persamaan f(x)=0adalah absis perpotongan grafik fungsi f(x) dengan sumbu x. Untuk menyelesaikan persamaan ini, ada dua metode, yaitu metode tertutup dan metode terbuka. Dengan metode tertutup, kita memberikan dua nilai misal a dan buntuk inisialisasi proses. Dua nilai ini harus mengapit akar yang sebenarnya. Untuk melihat apakah di antara range (a, b) ada akar atau tidak, kita bisa memanfaatkan teorema berikut: Jika nilai fungsi di a dan b berlawanan, maka ada akar di antara a dan b, namun hal ini tidak berlaku sebaliknya. Sedangkan dengan metode terbuka, kita memberikan satu tebakan awal untuk inisialisasi proses, tebakan awal ini diusahakan sedekat mungkin dengan akar sebenarnya.
Ada 2 kelompok metode dalam penyelesaian persamaan metode numerik, yaitu :
1.    Metode Tertutup
Ciri-ciri dalam metode tertutup :
§  Mencari akar pada range [a,b] tertentu
§  Dalam range [a,b] dipastikan terdapat satu akar
§  Hasil selalu konvergen maka sering disebut juga metode konvergen
Yang termasuk dalam metode tertutup, yaitu :
·      Metode Tabel
·      Metode Biseksi
·      Metode Regulasi Falsi

2.    Metode Terbuka
Ciri-ciri dalam metode terbuka :
§  Diperlukan tebakan awal
§  xn dipakai untuk menghitung xn+1
§  Hasil dapat konvergen atau divergen
Yang termasuk dalam metode terbuka, yaitu :
·      Metode Iterasi Sederhana
·      Metode Newton-Raphson
·      Metode Secant

3.6.1          Metode Bisection
Ide awal metode ini adalah metode table, dimana area dibagi menjadi N bagian. Hanya saja metode biseksi ini membagi range menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian yang tidak mengandung akar dibuang.
Algoritma Metode Biseksi
1.               Definisikan fungsi f(x) yang akan dicari akarnya
2.               Tentukan nilai a dan b
3.               Tentukan toleransi e (error) dan iterasi maksimum N
4.               Hitung f(a) dan f(b)
5.               Jika f(a).f(b)>0 maka proses dihentikan karna tidak ada akar, bila tidak
dilajutkan
6.               Hitung x=a+b/2
7.               Hitung f(x)
8.               Jika f(x).f(a)<0 maka b=x dan f(b)=f(x)
Jika tidak a=xdan f(a)=f(x)
9.              Jika |b-a|<e atau iterasi > iterasi maksimum maka proses dihentikan dan didapatkan akar = x, dan bila tidak ulangi langkah 6.
Implementasi metode Bisection dengan matlab adalah sebagai berikut :
%contoh program mencari akar persamaan dengan metode bisection
%dari fungsi f = log (2-exp(x)-x+alpa

function bisection;
disp('METODE BISECTION')
disp('================')
a = input ('masukkan batas kiri interval :');
b = input ('masukkan batas kanan interval :');
esp = input ('masukkan epsilon / batas ketelitian : ');
itemax = input (' masukkan jumlah iterasi maksimum : ');
alfa = a;
disp('     ');
disp('memulai proses interasi');
disp('=======================');
tic
for i = 1:1:itemax
    t =(a+b)/2;
    if(fn(a,alfa)*fn(t,alfa)<=0)
        b = t;
    else
        a = t;
    end
    disp (['interasi ke',num2str(i),',',' akarnya :',num2str(t)])
    if(abs(a-b))<=eps;
        break
    end
end
waktu =toc;
disp('     ');
disp(['akarnya adalah            :',num2str(t)]);
disp(['jumlah interasi           :',num2str(i)]);
disp(['selang waktu konvergensi  :',num2str(waktu)]);

function f = fn(x,alfa)
f = log (2-exp(-x))-x +alfa;


maka setelah di running dan kita masukkan nilainya maka akan nampak seperti dibawah ini
>> bisection
METODE BISECTION
================
masukkan batas kiri interval :4
masukkan batas kanan interval :5
masukkan epsilon / batas ketelitian : 4
 masukkan jumlah iterasi maksimum : 5
    
memulai proses interasi
=======================
interasi ke1, akarnya :4.5
interasi ke2, akarnya :4.75
interasi ke3, akarnya :4.625
interasi ke4, akarnya :4.6875
interasi ke5, akarnya :4.7188
    
akarnya adalah            :4.7188
jumlah interasi           :5
selang waktu konvergensi  :0.76786

3.6.2          Metode Newton Rapshon

Metode pendekatan yang menggunakan satu titik awal dan mendekatinya dengan memperhatikan slope atau gradien pada titik tersebut.Titik pendekatan ke n+1 dituliskan dengan : Xn+1=xn-F(Xn)/F1(Xn)
Algoritma Metode Newton-Rapshon
1.     Definisikan fungsi f(x) dan f 1(x)
2.     Tentukan toleransi error (e) dan iterasi maksimum (n)
3.     Tentukan nilai pendekatan awal x0
4.     Hitung f(x0) dan f (x0)
5.     Untuk iterasi I = 1 s/d n atau |f(xi)|> e
Hitung f(xi) dan f 1(xi)
Hitung n+1=xn-F(Xn)/F1(Xn)

6.    Akar persamaan adalah nilai xiyang terakhir diperoleh.
Implementasi metode Bisection dengan matlab adalah sebagai berikut :
function newtonrapson;
clc
clear;
disp('programm metode newton rapson');
disp('=============================');
E= 0.0001;
x0 = input ('masukkan x awal :');
i = 0;
m = 9;
xb = 0;
disp('__________________________________________');
disp(' i        xi         f(xi)        epsilon ') ;
disp('__________________________________________');
while(E<m);
    fx = exp(x0)-4*x0;
        gx=exp(x0)- 4;
        xb=x0-(fx/gx);
        m=abs(x0-xb);
        x0=xb;
        i=i+1;
        fprintf('%3.0f %12.6f %12.6f %12.6f\n', 1, xb, fx, m);
end
  disp('-------------------------------------------');
  fprintf('Akarnya adalah = %10.8f\n, xb');
end

maka setelah di running akan nampak seperti dibawah ini
programm metode newton rapson
=============================
masukkan x awal :4
__________________________________________
 i        xi         f(xi)        epsilon
__________________________________________
  1     3.237163    38.598150     0.762837
  1     2.654128    12.512729     0.583035
  1     2.302006     3.596077     0.352122
  1     2.170848     0.786188     0.131158
  1     2.153574     0.082324     0.017274
  1     2.153292     0.001300     0.000282
  1     2.153292     0.000000     0.000000
-------------------------------------------
Akarnya adalah = >> 3

ans =

     3

3.6.3          Metode Secant
Tidak semua fungsi mudah dicari turunannya terutama fungsi yang bentuknya rumit.  Apalagi masalah yang di dapat dalam metode Newton Raphson adalah terkadang sulit mendapatkan turunan pertama, yakni f (x). Turunan fungsi dapat dihilangkan dengan cara menggantinya dengan bentuk lain yang equivalen dengan cara memodifikasi metode Newton Raphson yang dinamakan metode Secant dengan jalan pendekatan :

 

Algoritma Metode Secant
1.     Definisikan fungsi F(x)
2.     Definisikan torelansi error (e) dan iterasi maksimum (n)
3.     Masukkan dua nilai pendekatan awal yang di antaranya terdapat akar yaitu x0 dan x1, sebaiknya gunakan metode tabel atau grafis untuk menjamin titik pendakatannya adalah titik pendekatan yang konvergensinya pada akar persamaan yang diharapkan.
4.     Hitung F(x0) dan F(x1) sebagai y0 dan y1
5.     Untuk iterasi I = 1 s/d n atau |F(xi)|
       hitung yi+1 = F(xi+1)
6.    Akar persamaan adalah nilai x yang terakhir.

Implementasi metode Bisection dengan matlab adalah sebagai berikut :

Metode second
function secant;
clc;
clear;
disp('Program Metode Secant');
disp('=============================');
E=0.0001;
x0=input('Masukkan X0  :');
xb=input('Masukkan X1  :');
i=0;
M=9;
disp('_______________________________________________');
disp(' i           xi          f(xi)     epsilon');
disp('_________________________________________________');
while (E<M)
    fx=exp(x0)-5*x0^2;
    fxb=exp(xb)-5*xb^2;
    d = xb - (fxb*(xb-x0)/(fxb-fx));
    M=abs(x0-xb);
    x0 = xb;
    xb = d;
    i=i+1;
     fprintf('%3.0f %12.6f %12.6f %12.6f\n',i,xb,fx,M);
end;
disp('_______________________________________________');
fprintf('Akarnya Adalah = %10.8f\n',xb);
end

tampilan hasil running dan stelah di masukkan nilai.
Program Metode Secant
=============================
Masukkan X0  :3
Masukkan X1  :2
_______________________________________________
 i           xi          f(xi)     epsilon
_________________________________________________
  1     0.975013   -24.914463     1.000000
  2     0.769989   -12.610944     1.024987
  3     0.642827    -2.102052     0.205024
  4     0.610205    -0.804674     0.127162
  5     0.605439    -0.164283     0.032622
  6     0.605268    -0.020944     0.004766
  7     0.605267    -0.000725     0.000171
  8     0.605267    -0.000003     0.000001
_______________________________________________
Akarnya Adalah = 0.60526712




BAB IV
PENUTUP
4.1   Kesimpulan
Dari pembahasan diatas dapat disimpulkan  bahwa :

v  Program matlab sangat memudahkan kita dalam menghitung perhitungan numeric dan matematika lainnya dari yang sederhana hingga rumit.

v  Dengan matlab dapat dengan mudah menggambarkan kurva dari suatu persamaan atau pun fungsi-fungsi lainnya.

v  Penyelesaian persamaan non linear dapat dengan mudah diselesaikan dengan matlab.


 

program penilaian mahasiswa



program penilaian_MHS;{program ini untuk melihat hasil nilai mahasiswa selama 1 semester}

uses wincrt;

var nama :array[1..20] of string;
tugas,uts, uas,presensi : array[1..20] of integer;
rata :array[1..20] of real;
a,jd : byte;
begin
  clrscr;
  write('Masukkan Jumlah Data Nilai: '); readln(jd);
  for a :=1 tojd do;
  begin
    writeln('PENILAIAN UJIAN MAHASISWA');
    write('Masukkan Nama : '); readln(nama[a]);
    write('Masukkan Nilai Tugas : '); readln(tugas[a]);
    write('Masukkan Nilai UTS : '); readln(uts[a]);
    write('Masukkan Nilai UAS : '); readln(uas[a]);
    write('Masukkan Presensi : '); readln(presensi[a]);
    Rata[a]:=(0.1*tugas[a])+(0.2*uts[a])+(0.3*uas[a])+(0.4*presensi[a]);
  end;
  clrscr;
  for a :=1 tojd do;
  begin
    writeln('PENILAIAN UJIAN MAHASISWA');
    writeln('Nama : ',nama[a]);
    writeln('Nilai Tugas : ',tugas[a]);
    writeln('Nilai UTS : ',uts[a]);
    writeln('Nilai UAS : ',uas[a]);
    writeln('Presensi : ',presensi[a]);
    {untuk menampilkan semua data yang sudah dimasukkan di awal}
    writeln('Rata-rata : ',rata[a]:1:2);{untuk menampilkan rata-rata}
  end;
end.

Rabu, 04 Juli 2012

Sistem Operasi FreeBSD





SISTEM OPERASI
FReeBSD
FreeBSD adalah suatu sistem operasi yang bekerja layaknya UNIX tetapi bukan turunan dari UNIX. Pertama kali dikembangkan oleh Berkeley Software Distribution pada tahun 1993.
Operating system ini dijuluki FreebSD karena software ini gratis untuk digunakan oleh siapapun termasuk untuk kepentingan komersial, source code yang tersedia dengan gratis, siapapun dapat meningkatkan performa FreeBSD ini atau menemukan bug untuk mensubmit source codenya, kata “free” dapat diartikan sebagai gratis, atau dapat digunakan sesuai keinginan user.
Saat ini FreeBSD banyak dipercaya sebagai OS untuk server yang menangani beban yang cukup tinggi. Tercatat beberapa situs internet tersibuk di dunia, seperti Yahoo.com, Hotmail.com, dan ftp.cdrom.com menggunakan FreeBSD sebagai sistem operasi bagi servernya. Sementara itu, di Indonesia FreeBSD menjadi tulang punggung dari jaringan AI3 (Asian Internet Interconnection Initiative). Jaringan yang di Indonesia berpusat di ITB ini bertujuan untuk menghubungkan perguruan tinggi serta lembaga pendidikan maupun riset di Indonesia ke jaringan internet melalui gateway internet AI3 di ITB.
1. Sejarah FreeBSD
Sejarah munculnya FreeBSD berawal dari pengembangan system Operasi Unix yang dirancang oleh Ken Thompson dan Dennis Ritchie, peneliti dari AT&T Bell Laboratories. Selama pertengahan tahun 70an, Ken Thompson memperkenalkan UNIX ke University of California di Berkeley. Dan ketika University of California at Berkeley menerima source code ini (membeli dengan harga $400), co-creator Unix, Ken Thompson, tengah berkunjung ke salah satu fakultas. Melalui bantuannya yang konsisten, para periset dan mahasiswa, terutama Bill Joy (salah satu pendiri Sun Microsystem), berusaha mengembangkan source code Unix tersebut dan melahirkan apa yang disebut The Berkeley Software Distribution (BSD).
Dengan dukungan pendanaan dari DARPA (departemen pertahanan Amerika), Berkeley Computer System Research Group (CSRG) selanjutnya menjadi bagian penting dalam pengembangan Unix disamping Bell Labs. Bersamaan dengan Unix System V AT&T sendiri, BSD tumbuh menjadi salah satu dari dua flavor Unix mayor pada saat itu.
Faktanya, sistem Unix BSD berkembang lebih inovatif dari Unix System V. Ia lebih digemari oleh kalangan akademik dan institusi-institusi riset daripada perusahaan komersial.
Berbeda dengan Linux yang dibuat secara “keroyokan” oleh para programmer di seluruh dunia, FreeBSD dikembangkan oleh sebuah tim yang terbagi atas tiga kelompok besar, masing-masing adalah FreeBSD Core Team, FreeBSD Developers, dan FreeBSD Documentation Project. FreeBSD Core Team bertindak sebagai semacam “dewan direksi” dari proyek FreeBSD. Tim ini bertanggung jawab untuk menentukan tujuan-tujuan proyek secara keseluruhan serta aturan pelaksanaannya. Tim kedua, FreeBSD Developers, bertanggung jawab terhadap tugas teknis dalam pembuatan FreeBSD, sementara FreBSD Documentation Team menangani tugas-tugas yang berkenaan dengan pendokumentasian proyek, pembuatan manual, FAQ, dan sebagainya.
Seiring bergulirnya waktu, Unix BSD sangat mempengaruhi perkembangan sistem-sistem Unix yang ada saat ini. Berbagai utiliti dasar Unix, seperti C-shell, vi, TCP/IP, dan virtual memory, dibuat pertama kali pada rilis Unix BSD. Sun Microsystem SunOS termasuk turunan dari 4.2BSD, sedangkan Unix System V ditulis-ulang dalam rilis ke-empatnya (SVR4) untuk menyesuaikan diri dengan fitur-fitur BSD.
2. Versi FreeBSD
Versi modern BSD adalah 4.4BSD yang dirilis pada tahun 1993. Kebanyakan sistem-sistem BSD saat ini berstandarkan 4.4BSD-Lite. Di antara sekian banyak flavor Unix BSD terdapat tiga sistem freeware yang populer digunakan dan salah satunya adalah FreeBsd yang akan dijelaskan dalam pelatihan ini. Varian BSD yang lainnya adalah NetBSD dan OpenBsd.
Pengembangan FreeBSD melibatkan banyak sekali pihak. Biasanya mereka adalah programmer individu berkemampuan tinggi yang dikenal sebagai commiters. Commiters dipilih oleh FreeBSD Core Team. Sekitar tahun 1992 dan 1993, Jordan K. Hubbard, Rod Grimes, dan Nate Williams bekerja pada proyek 386BSD dan merilis set perubahan-perubahan yang dikenal dengan “Unofficial 386BSD Patchkit.”
David Greenman, yang kemudian bekerja pada Walnut Creek, selanjutnya mengusulkan sistem operasi baru berbasiskan kepada patchkit yang telah ada dengan nama FreeBSD.
Segera setelah itu, Hubbard dikontrak Walnut Creek untuk mempersiapkan channel distribusi CDROM. Walnut Creek memberikan dukungan dengan menawarkan server dan hardware ber-bandwidth tinggi untuk mengembangkannya. CDROM pertama dari FreeBSD adalah versi 1.0, dirilis pada bulan Desember 1993.
FreeBSD 2.0 dirilis bulan November 1994. Selanjutnya sebagai upgrade dan peningkatan dilakukan secara berkesinambungan dan signifikan. Dewasa ini FreeBSD telah melahirkan rilis-rilis yang sangat stabil dan luas digunakan oleh masyarakat dunia. Yahoo!, direktori internet terbesar saat ini, mempercayakan jutaan halamannya untuk dilayani oleh sistem FreeBSD, begitu pula organisasi dan vendor-vendor besar lainnya.
3. Tujuan dari penggunaan FreeBSD
Berdasarkan penuturan Hubbard, sasaran utama FreeBSD Project adalah memberikan software yang dapat digunakan untuk beragam tujuan. Barangkali apa yang menarik dari FreeBSD adalah sisi teknisnya yang simpel. Diakui bahwa program instalasi FreeBSD termasuk dalam tool instalasi Unix yang paling sederhana di antara yang lainnya. Di samping itu, sistem software third-party yang datang bersamanya (Port Collections) telah diadopsi NetBSD dan OpenBSD.
4. Keuntungan menggunakan FreeBSD
  • Memiliki sistem software third-party yang memberikan kemudahan yang berarti bagi para user untuk menambah atau menghapus aplikasi-aplikasi. Para user cukup mengeksekusi satu baris perintah dan aplikasi-aplikasi dengan sendirinya di-download, dicek integritasnya, di-build, dan diinstall secara otomatis. Tugas-tugas administrasi sistem menjadi sangat praktis dan mudah.
  • Keuntungan lain dalam memakai freebsd sebagai server diantaranya adalah mudah, gratis (bisa di download langsung dr www.freebsd.org), secure, powerfull, mendukung patch dan update, disertai port dan package u/ memudahkan install software lain, disertai firewall, dan ada team yang akan selalu develop OS FreeBSD.
5. Model Pengembangan FreeBSD
Model pengembangan FreeBSD nyaris serupa dengan NetBSD maupun OpenBSD, tetapi memiliki perbedaan yang signifikan dengan development Linux. Model pengembangan FreeBSD dikelola secara profesional oleh ratusan programmer individual yang dipanggil dengan Committers. Commiters berwenang melakukan perubahan-perubahan yang dibutuhkan terhadap source official FreeBSD kapan pun juga. Penyeleksian tim Commiters diputuskan oleh FreeBSD Core Team, yang merupakan papan direksi FreeBSD.
Model pengembangan FreeBSD diarahkan untuk menciptakan produk yang stabil dan mudah digunakan. Sebagai salah satu sistem Unix yang reliabel untuk platform x86, FreeBSD harus menjaga kompatibilitas program-program sebaik mungkin di antara sistem. memiliki wewenang langsung untuk melakukan perubahan-perubahan pada system.
6. Tambahan :
Selain FreeBSD, OS lain yang berbasis BSD adalah NetBSD dan OpenBSD. Perbedaan dari ketiga OS tersebut simplenya seperti ini. Dilihat dari kelebihannya :
1. FreeBSD : mendukung byk 3rd party software dng semboyan “ready to serve”.
2. OpenBSD : menitikberatkan pd security, dgn slogan canggihnya “secure by default”.
3. NetBSD : Mendukung banyak hardware dan berbagai arsitektur.

program pangkat menggunakan C++

#include<stdio.h>
#include<conio.h>


int pangkat(int a,int b)
{
    int hasil,jumlah,j,i;

    hasil=a;
    jumlah=0;
          j=b;

    for (i=0;i<j-1;i++)

    {
        hasil=hasil*a;
    }

    jumlah=jumlah+hasil;
          return (jumlah);
}

void main()
{

int a, i, j, hasil, jumlah;

printf("-----------------\n");
printf(" PROGRAM PANGKAT \n");
printf("-----------------\n");

printf("Masukkan Angka : "); scanf("%d",&a);
printf("dipangkatkan berapa : "); scanf("%d",&j);

jumlah=pangkat(a,j);

printf("%d Pangkat %d adalah : ",a,j);
printf("%d", jumlah);
}