Rabu, 12 Oktober 2016

MENGHITUNG PERKALIAN MATRIKS

procedure PerkalianMatriks(input A, B : Matriks, input n: integer, output C : Matriks)

Deklarasi
i, j, k : integer


Algoritma
for i¬1 to n do
     for j¬1 to n do
        C[i,j]¬0    { inisialisasi penjumlah }
        for k ¬ 1 to n do
           C[i,j]¬C[i,j] + A[i,k]*B[k,j]
        endfor
     endfor
   endfor


Rabu, 05 Oktober 2016

GRAPH PROBLEM

GRAPH


I.Pengertian Graph


         Graf (Graph) adalah kumpulan noktah (simpul) di dalam bidang dua dimensi yang dihubungkan dengan sekumpulan garis (sisi). Graph dapat digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual darigraph adalah dengan menyatakan objek sebagai noktah, bulatan atau titik (Vertex), sedangkan hubungan antara objek dinyatakan dengan garis (Edge).

       G = (V,E)

Dimana :
  G = Graph
  V = Simpul, Vertex, Node, atau Titik
  E = Busur atau Edge

          Graf adalah cabang ilmu yang memiliki banyak terapan, dan banyak masalah juga yang dapat di pecahkan dengan bantuan graf. Seringkali Graf digunakan untuk menggambarkan suatu jaringan. Seperti menggambarkan suatu alur data di motherboard dengan Bank / peripheral sepertu CPU , RAM , dan Hardisk sebaagai Simpul (vertex/node) dan jalur Bus yang menghubungkan mereka sebagai sisi (edege)yang weight nya adalah panjang Bus tersebut.
       
          Ada beberapa cara untuk menyimpan graph di dalam sitem komputer. Struktur data bergantung pada struktur graph dan algoritma yang digunakan untuk memmanipulasi graph. Secara teori salah satu dari keduanya dapat dibedakan antara struktur list dan matriks, tetapi dalam penggunaannya struktur terbaik yang sering digunakan adalah kombinasi keduanya.

         1. Graph tak berarah (undirected graph atau non-directed graph) :
    • Urutan simpul dalam sebuah busur tidak dipentingkan. Misal busur e1 dapat disebut busur AB atau BA
         2. Graph berarah (directed graph) :
    • Urutan simpul mempunyai arti. Misal busur AB adalah e1 sedangkan busur BA adalah e8.
         3. Graph Berbobot (Weighted Graph)
    • Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul, maka busur tersebut dinyatakan memiliki bobot.
    • Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll.

II.Istilah - istilah dalam graph


       1. Vetex

           Adalah himpunan node / titik pada sebuah graph.
        
        2. Edge

            Adalah himpunan garis yang menghubungkan tiap node / vertex.

        3. Adjacent
       
         Adalah dua buah titik dikatakan berdekatan (adjacent) jika dua buah titik tersebut terhubung dengan sebuah sisi. Adalah Sisi e3 = v2v3 insident dengan titik v2 dan titik v3, tetapi sisi e3 = v2v3tidak insident dengan titik v1 dan titik v4.
         
Titik v1 adjacent dengan titik v2 dan titik v3, tetapi titik v1 tidakadjacent dengan titik v4.


         6. Weight
              Adalah Sebuah graf G = (V, E) disebut sebuah graf berbobot (weight graph), apabila terdapat sebuah fungsi bobot bernilai real W pada himpunan E,
                        W : E ® R
nilai W(e) disebut bobot untuk sisi e, " e Î E. Graf berbobot tersebut dinyatakan pula sebagai G = (V, E, W).
Graf berbobot G = (V, E, W) dapat menyatakan
* suatu sistem perhubungan udara, di mana
· V = himpunan kota-kota
· E = himpunan penerbangan langsung dari satu kota ke kota lain
· W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos atau waktu
* suatu sistem jaringan komputer, di mana
· V = himpunan komputer
· E = himpunan jalur komunikasi langsung antar dua komputer
                        · W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos atau waktu      

               7. Path
             Adalah Walk dengan setiap vertex berbeda. Contoh, P = D5B4C2A Sebuah walk (W) didefinisikan sebagai urutan (tdk nol) vertex & edge. Diawali origin vertex dan diakhiri terminus vertex. Dan setiap 2 edge berurutan adalah series. Contoh, W = A1B3C4B1A2.

               8. Cycle
                  Adalah Siklus ( Cycle ) atau Sirkuit ( Circuit ) Lintasan yang berawal dan berakhir pada simpul yang sama

III.  Representasi Graf 

 

       Dalam pemrograman, agar data yang ada dalam graph dapat diolah, maka graph harus dinyatakan dalam suatu struktur data yang dapat mewakili graph tersebut. Dalam hal ini graph perlu direpresentasikan kedalam bentuk array dan dimensi yang sering disebut matrix atau direpresentasikan dalam bentuk linked list. Bentuk mana yang dipilih biasanya tergantung kepada efisiensi dan kemudahan dalam membuat program. Berikut ini beberapa bentuk representasi graph:

         I. Representasi Graph dalam bentuk Matrix:
1. Adjacency Matrik Graf Tak Berarah 





              Matrik yang digambarkan pada gambar 1b merupakan representasi dalam bentuk Adjacency Matrik dari graf yang digambarkan pada gambar 1a. Beberapa hal yang dapat dilihat atau dapat diterangkan pada Adjacency Matrik tersebut adalah sebagai berikut :

               1. Matrik yang terbentuk adalah matrik bujur sangkar n x n, dimana n = jumlah simpul yang ada dalam graf tersebut. Matrik ini menyatakan hubungan antara simpul satu dengan simpul lainnya.

               2. Matrik yang terbentuk adalah matrik simetris dengan sumbu simetris adalah diagonal dari titik kiri atas ke titik kanan bawah. 3. Data yang tedapat baik dalam baris maupun kolom, dapat menyatakan degree sebuah simpul. Contoh : baik pada baris D maupun kolom D jumlah angka 1 nya adalah 3 buah, dimana jumlah ini menyatakan degree simpul D.
          
           2. Adjacency Matrik Graf Berarah 


Matrik yang digambarkan pada gambar 2b merupakan representasi dalam bentuk Adjacency Matrik dari graf yang digambarkan pada gambar 2a. Beberapa hal yang dapat dilihat atau dapat diterangkan pada Adjacency Matrik tersebut adalah sebagai berikut :

          1. Matrik yang terbentuk adalah matrik bujur sangkar n x n, dimana n = jumlah simpul yang ada dalam graf tersebut. Matrik ini menyatakan hubungan antara simpul satu dengan simpul lainnya.

          2. Matrik yang terbentuk mungkin simetris mungkin juga tidak simetris. Menjadi Simetris bila hubungan antara dua buah simpul (v1 dan v2) terdapat busur dari v1 ke v2 dan juga sebaliknya.

          3. Hal pokok yang dinyatakan oleh matrik ini adalah : busur yang ’keluar’ dari suatu simpul. Dengan demikian, data yang terdapat dalam suatu baris, dapat menyatakan outdegree simpul yang bersangkutan.

Contoh : Jumlah elemen yang nilainya = 1 pada baris B ada 3 elemen,ini menyatakan jumlah outdegree simpul B adalah 3 buah.

             4. Data yang terdapat dalam suatu kolom, dapat menyatakan indegree simpul bersangkutan. Contoh : Jumlah elemen yang nilainya 1 pada kolom B ada 2 elemen, ini menyatakan indegree simpul B adalah 2 buah.


           3. Adjacency Matrik Graf Berbobot Tak Berarah   

               Nilai yang ada dalam tiap elemen matrik, menyatakan bobot busur yang menghubungkan dua buah simpul yang bersangkutan. Untuk dua buah simpul yang tidak berhubungan langsung oleh sebuah busur, maka dianggap dihubungkan oleh sebuah busur yang nilai bobotnya tidak terhingga. Dalam pemograman, karena keperluan algoritma, maka dari total bobot seluruh busur yang ada atau yang mungkin ada. Contoh: pada gambar 3a simpul A dan C tidak berhubungan langsung melalui sebuah busur, maka untuk elemen matrik yang bersangkutan diisi dengan nilai 999 karena nilai 999 dalam kasus ini cukup mewakili nilai tidak terhingga.



         II.Representasi graf dalam bentuk Linked List

              1. Adjacency List




             Bila ingin direpresentasikan dalambentuk linked list, dapat diilustrasikan secara sederhana seperti gamabar 4b. Dari ilustrasi sederhana tersebut terlihat ada 5 buah simpul A,B,C,D,dan E yang dibariskan dari atas kebawah seperti pada gambar 4a. Kemudian dari masing-masing simpul ’keluar’ pointer kearah kanan yang menunjuksimpul-simpul lain. Salah satu contoh, yang dapat dilihat pada gambar 4b dimana A menunjuk simpul B dan simpul D.





            Dalam Adjacency List, kita perlu membedakan antara simpul-vertex dan simpul-edge. Simpul-vertex untuk menyatakan simpul atau vertex, dan simpul-edge untuk menyatakan hubungan antar simpul yang biasa disebutbusur. Struktur keduanya bisa sama, bisa juga tidak sama,tergantung kebutuhan.Untuk memudahkan pembuatan program, struktur kedua macam simpul dibuat sama seperti yang digambarkan pada gambar 5c. Yang membedakan antara simpul-vertex dan simpul-edge, adalah anggapan terhadap simpul tersebut. Dalam contoh ini, terlihat struktur simpul dibuat terdiri dari 3 elemen. Satu elemen untuk INFO, dua elemen untuk pointer.pointer kiri (left) dan pointer kanan (right).



Struct tipes{

Struct tipes *Left;

int INFO;

Struct tipes *Right;

};

Struct tipes *First,*Pvertex,*Pedge;



- Bila simpul dianggap sebagai simpul-vertex, maka :

   Pointer left digunakan untuk menunjuk simpul berikutnya dalam untaian simpul-simpul yang ada,atau diisi NULL bila sudah tidak ada simpul yang peluditunjuk.Sedangkan pointer Right digunakan untuk menunjuk simpul edge yang pertama.

- Bila Simpul dianggap sebagai simpul-edge, maka :

  Pointer left digunakan untuk menunjuk simpul-vertex ‘tujuan’ yang berhubungan dengan simpul-vertex ‘asal’ dan pointer right digunakan untuk menunjuk simpul-edge berkiutnya bila masih ada, atau diisi NULL bila tak ada lagi simpul-busur yang ditunjuk




Kombinatorial Problem ( Combinatorial Problems)

Combinatorial Problem merupakan suatu permasalahan matematis utuk menyusun, mengelompokan, atau memilih jumlah objek diskrit tertentu.


Kombinatorial Problem atau bisa juga di sebut masalah kombinasi muncul dibanyak penerapan ilmu komputer dan aplikasi domain : 
  • finding shortest/cheapest round trips (TSP)  
  • finding models of propositional formulae (SAT)  
  • planning, scheduling, time-tabling  
  • internet data packet routing  
  • protein structure prediction  
  • combinatorial  winner determination
Kombinatorial Problems melibatkan pencarian a grouping, ordering, atau assignment dari diskrit, dari obyek himpunan berhingga yang memenuhi kondisi tertentu.

Candidate solutions adalah kombinasi dari komponen solusi yang mungkin dihadapi selama upaya solusi, tapi tidak perlu memenuhi semua kondisi yang diberikan. (Solusi-solusi dari calon solusi kandidat yang memenuhi semua kondisi yang diberikan) 

Contoh :
  • Given: Set poin dalam Euclidean plane  
  • Objective: Find the shortest round trip
Catatan
  • Rount trip (RTT) sesuai dengan urutan point (penugasan poin untuk urutan posisi)
  • Komponen solusi  : rangkaian yang terdiri dari dua titik yang dikunjungi langsung setelah yang lain 
  • Candidate solution: round trip  
  • Solusi                    : round trip dengan panjang minimal

Problem vs problem :

Problem  : Mengingat setiap set poin X, menemukan round trip(RTT) terpendek.
Solusi     :  Algoritma yang menemukan perjalanan pulang terpendek untuk setiap X

Problem Instance : Mengingat satu set khusus point P , menumukan roundtrip(RTT) terpendek.
Solusi                   : Routrip(RTT) terpendek di gunakan untuk point P

(Secara teknis, masalah dapat diformalkan sebagai set contoh masalah)

Decision problems: 

Solusi = solusi kandidat yang memenuhi untuk diberikan kondisi logis

Contoh: Grafik Warna Masalah


Setiap masalah keputusan memiliki dua varian:
Search variant     : Mencari solusi untuk di berikan masalah (menentukan bahwa tidak ada solusi)
Decision variant  : Menentukan apakah solusi untuk masalah yang diberikan misalnya ada.

Catatan: Cari dan putuskan varian yang erat terkait algoritma untuk dapat digunakan  memecahkan masalah yang lainnya.


Optimisation problems:

  • Dapat dilihat sebagai generalisasi dari masalah keputusan
  • Tujuan fungsi F kualitas langkah solusi (Sering didefinisikan pada semua solusi calon)
  • Tujuan khas: mencari solusi dengan kualitas optimal 
  • minimisation problem:  kualitas optimal = nilai minimal f
  • maximisation problem: kualitas optimal = nilai maksimal f

Varian dari masalah optimasi:

Search variant         : Mencari solusi dengan optimal nilai fungsi  untuk diberikan  masalah. 
Evaluation variant: : Menentukan nilai fungsi tujuan yang optimal untuk diberikan masalah

Setiap masalah optimasi telah dikaitkan masalah keputusan

Contoh masalah dan solusi tetap  terikat b, menemukan solusi dengan nilai fungsi tujuan ≤ b (untuk meminimalkan masalah ) atau menentukan bahwa tidak ada solusi. Banyak masalah optimasi memiliki fungsi tujuan serta kondisi logis bahwa solusi harus memenuhi.
Kandidat solusi disebut layak (atau valid) jika memenuhi kondisi logis yang diberikan.

Catatan: kondisi logis selalu dapat ditangkap oleh fungsi tujuan sehingga kandidat solusi yang layak
sesuai dengan solusi dari masalah keputusan yang terkait

Note :
  • Algoritma untuk masalah optimasi dapat digunakan untuk memecahkan masalah  terkait keputusan.
  • Algoritma untuk masalah keputusan selalu dapat diperpanjang untuk masalah optimasi terkait.
  • Tidak selalu memecahkan masalah dengan efisien



Sumber Referensi : Hoos, Holger H & St¨utzle, Thomas , , " STOCHASTIC LOCAL SEARCH FOUNDATIONS AND APPLICATION ( Introduction: Combinatorial Problems and Search )  , http://www.sls-book.net, 3 Oktober 2016 .

Selasa, 04 Oktober 2016

String Matching



String Macthing

Pengertian String Macthing
String macthing adalah pencarian sebuah pattern pada sebuah teks (Corman, T.M. et al. 1994). String macthing digunakan untuk menemukan suatu string yang di sebut dengan pattern dalam string yang di sebut dengan teks(Charras, C. Dan Lecroq. T.1997). Prinsin kerja algoritma string macthing(Effendi, D. Et al. 2013) adalah sebagai berikut:
1.           Memindai teks dengan bantuan sebuah window  yang           ukurannya sama dengan panjang pattern.
2.           Menempampatkan window pada awal teks.
3.           Membandingan karakter pada window dengan karakter dari pattern. Setelah pencocokan dilakukan pergeseran ke kanan pada window. Prosedur ini di lakukan berulang-ulang sampai window berada pada akhir teks. Mekanisme ini di sebut mekanisme sliding window.
Cara kerja Sting Matching
                 Cara yang jelas untuk mencari pattern yang cocok dengan teks adalah dengan mencoba mencari di setiap posisi awal dari teks dan mengabaikan pencarian secepat mungkin jika karakter yang salah di temukan (Knuth, D.E. et al. 1997). Proses pertama adalah menyelaraskan bagian paling kiri dari pattern dengan teks kemudian di bandingkan karakter yangb sesuai dari tks dan pattern setelah seluruhnya cocok maupun tidak cocok dari pattern, window di geser ke kanan sampai posisi (n-m+
                 Dengan sebuah nilai karakter (m < n) yang akan di cari dari teks dalam algoritma pencocokan sting, teks di asumsikan berada di dalam memory, sehingga bila kita mencari string di dalam sebuah arsip, maka semua isi arsip perlu di baca terlebih dahulukemudian di simpan di dalam memory. Jika pattern muncul lebih dari sekali di dalam teks, maka pencarian hanya akan memberikan keluaran berupa lokasi pattern di temukan pertama kali (Wulan. 2011).

  Teknik Algoritma String Matching
Menurut singla, N. Dan Grag, D.(2012), ada dua tekhnik utama dalam algoritma string matching yaitu:
1.                 Exact string matching
Exact string matching merupakan pencocokan string secara tepat dengan susunan karakter dalam string yang dicocokan memiliki jumlah maupun urutan karakter dalam string yang sama. Bagian algoritma ini bermanfaat jiga penggunaan ingin mencari string dalam dokumen yang sama percis dengan string masukan. Beberapa algoritma exact string matching antara lain:

a. Knuth-Morris-Pratt

Metode ini mencari kehadiran sebuah kata dalam teks dengan melakukan observasi awal (preprocessing) dengan cara mengecek ulang kata sebelumnya. Algoritma ini melakukan pencocokan dari kiri ke kanan.

b. Boyer-Moore

Algoritma Boyer-Moore adalah algoritma string matching yang paling efisien dibandingkan algoritma string matching lainnya. Sebelum melakukan pencarian string, algoritma melakukan proses terlebih dahulu pada pattern, bukan pada string pada teks tempat pencarian. Algoritma ini melakukan pencocokan karakter yang dimulai dari kanan ke kiri. Karena sifatnya yang sangat efisien, Boyer-Moore memiliki banyak variasi penyederhanaannya. Salah satunya adalah algoritma Horspool yang akan digunakan dalam penelitian ini dan akan dijelaskan pada poin berikutnya

2.                  Approximate string matching atau Fuzzy string matching.
Fuzzy string matching merupakan pencocokan string secara samar, maksudnya pencocokan string dimana string yang dicocokkan memiliki kemiripan memiliki susunan karakter yang berbeda (mungkin jumlah atau urutannya), tetapi string tersebut memiliki kemiripan baik kemiripan tekstual/penulisan (approximate string matching) atau kemiripan ucapan (phonetic string matching)
   Algoritma Horspool

Algoritma Horspool adalah penyederhanaan dari algoritma Boyer-Moore yang dibuat oleh R. Nigel Horspool. Menurut Horspool, R.N. (1980), masalah dalam pencarian teks ini adalah mencari dalam teks yang besar untuk menemukan pattern pertama. Karena teks yang dicari bisa sangat besar (memungkinkan ratusan ribu karakter) maka penting untuk menggunakan teknik yang lebih efisien. Algoritma Horspool bekerja dengan metode yang hampir sama dengan algoritma Boyer-Moore namun tidak melakukan lompatan berdasarkan karakter pada pattern yang ditemukan tidak cocok pada teks.
Algoritma Horspool mempunyai nilai pergeseran karakter yang paling kanan dari window. Pada tahap observasi awal (preprocessing), nilai shift akan dihitung untuk semua karakter. Pada tahap ini, dibandingkan pattern dari kanan ke kiri hingga kecocokan atau ketidakcocokan pattern terjadi. Karakter yang paling kanan pada window digunakan sebagai indeks dalam melakukan nilai shift. Dalam kasus ketidakcocokan (karakter tidak terdapat pada pattern) terjadi, window digeser oleh panjang dari sebuah pattern. Jika tidak, window digeser menurut karakter yang paling kanan pada pattern (Baeza-Yates, R.A. & Regnier, M. 1992).
Berikut adalah pseudocode algoritma Horspool pada tahap praproses:

Procedure preBmBc (
input P : array[0. . m-1] of char,
input m : integer,
input/output BmBc : array [0 . . n-1] of integer
)
Deklarasi:
i : integer
Algoritma:
for (i := 0 to ASIZE – 1)
BmBc[i] := m;
endfor
for (i := 0 to m-2)
BmBc[P[i]] := m – i – 1;
Endfor

Dan berikut adalah pseudocode algoritma Horspool pada tahap pencarian:
Procedure HorspoolSearch (
input m, n : integer,
input P : array[0 . . m-1] of char,
input T : array[0 . . n-1] of char,
output find : array[0 . . m-1] of boolean
)
Deklarasi:
j : integer
BmBc : array[0 . . n] of integer
c : char
Algoritma:
preBmBc(P, m, BmBc)
j := 0


while (j <= n – m) do
c = T[j + m – 1];
if (P[m – 1] == c && memcmp(P, T + j, m-1) == 0) then
find[j] := true;
endif
j := j + BmBc[c];
endwhile


sumber : 
http://repository.usu.ac.id/

METODE NUMERIK

 METODE NUMERIK

Pengertian Metode Numerik
Metode  Numerik adalah teknik-teknik yang digunakan untuk memformulasi kan masalah matematis agar dapat dipecahkan  dengan operasi perhitungan

Metode Numerik
Tujuan Metode Numerik
Sebelum komputer digunakan untuk penyelesaian komputasi, dilakukan dengan berbagai metode yang memiliki kendala-kendala. Metode yang digunakan antara lain:
  • Metode Analitik, Solusi ini sangat berguna namun terbatas pada masalah sederhana. Sedangkan Masalah real yang komplek dan non linier tidak dapat diselesaikan.
  • Metode Grafik,  metode ini digunakan Sebagai pendekatan penyelesaian yang kompleks. Kendalanya bahwa metode ini Tidak akurat, sangat lama, dan banyak membutuhkan waktu.
  • Kalkulator dan Slide Rules, Penyelesaian numerik secara manual. Cara ini cukup lama dan mungkin bisa terjadi kesalahan pemasukan data.
Penggunaan metode numerik diharapkan dapat mengatasi berbagai kelemahan-kelemahan metode yang ada sebelumnya. Dapat dipahami pula bawa pada umumnya permasalahan dalam sains dan teknologi digambarkan dalam persamaan matematika. Persamaan ini sulit diselesaikan dengan model analitik sehingga diperlukan penyelesaian pendekatan numerik. Dengan metode numerik, manusia terbebas dari hitung menghitung manual yang membosankan . Sehinggga waktu dapat lebih banyak digunakan untuk tujuan yang lebih kreatif, seperti penekanan pada formulasi problem atau interpretasi solusi dan tidak terjebak dalam rutinitas hitung menghitung
Manfaat   Mempelajari   Metode   Numerik
Dengan mempelajari metode numerik diharapkan mahasiswa mampu:
  • Mampu menangani sistem persamaan  besar, Ketaklinieran dan  geometri  yang  rumit, yang dalam masalah rekayasa tidak mungkin dipecahkan  secara  analitis.
  • Mengetahui  secara  singkat  dan jelas teori matematika  yang   mendasari  paket   program.
  • Mampu merancang program sendiri sesuai  permasalahan  yang  dihadapi  pada  masalah  rekayasa.
  • Metode numerik  cocok untuk  menggambarkan  ketang guhan dan keterbatasan komputer dalam  menangani masalah rekayasa yang tidak dapat  ditangani  secara  analitis.
  • Menangani galat (error) suatu nilai  hampiran (aproksimasi) dari  masalah  rekayasa yang  merupakan  bagian  dari  paket  program  yang  bersekala  besar.
  • Menyediakan  sarana  memperkuat  pengertian  matematika mahasisw. Karena  salah  satu  kegunaannya  adalah  menyederhanakan  matematika  yang lebih  tinggi  menjadi  operasi-operasi  matematika  yang  mendasar

Metode Analitik versus Metode Numerik




Metode Numerik - Penyelesaian Masalah
Metode analitik disebut juga metode sejati karena memberikan solusi sejati (exact solution) atau solusi yang sesungguhnya, yaitu solusi yang memiliki galat (error) sama dengan nol! Sayangnya, metode analitik hanya unggul untuk sejumlah persoalan yang terbatas, yaitu persoalan yang memiliki tafsiran geometri sederhana serta bermatra rendah. Padahal persoalan yang muncul dalam dunia nyata seringkali nirlanjar serta melibatkan bentuk dan proses yang rumit. Akibatnya nilai praktis penyelesaian metode analitik menjadi terbatas.
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).
Pemodelan  Matematik  dan  Pemecahan  Masalah  Rekayasa
Pemodelan matematik diperlukan untuk membantu menyelesaikan permasalahan  rekayasa (permasalahan  riil). Gambaran  tahapan pemrosesan  masalah  rekayasa  yang secara  analitis sulit diselesaikan selanjutnya dibawa ke bentuk model matematik dan diselesaikan secara  matematis, aljabar  atau statistik  dan komputasi.
Apabila telah diperoleh penyelesaian matematik proses selanjutnya  mengimplementasikan hasil matematis  ke masalah  rekayasa  sbb:



Metode Numerik - Penyelesaian masalah matematis
Dalam menangani masalah rekayasa(masalah riil) perlu melakukan :
  • Membawa  permasalahan  rekayasa  kedalam  teori  matematika (model matematika)
  • Model matematika yang diperoleh diselesaikan  dengan cara matematika yaitu  digunakan komputasi, statistika dan matematika yang  disebut  dengan  alat  pemecah  masalah.
  • Hasil  dari pemecah  masalah  masih  berupa nilai    numeris  atau grafik
  • Hasil numeris yang diperoleh diimplementasikan kembali ke permasalah semula (masalah rekayasa) sehingga  dapat dipublikasikan  sesuai  dengan  permasalahan  yang dimaksud.
Tahap-Tahap Memecahkan Persoalan Secara Numerik yang dilakukan dakam pemecahan persoalan dunia nyata dengan metode numerik, yaitu:
  1. Pendefinisian masalah (apa yang diketahui dan apa yang diminta).
  2. Pemodelan, Persoalan dunia nyata dimodelkan ke dalam  persamaan matematika
  3. Penyederhanaan model, Model matematika yang dihasilkan dari tahap sebelumnya mungkin saja terlalu kompleks, yaitu memasukkan banyak peubah (variable) atau parameter. Semakin kompleks model matematikanya, semakin rumit penyelesaiannya. Mungkin beberapa andaian dibuat sehingga beberapa parameter dapat diabaikan.  Model matematika yang diperoleh dari penyederhanaan menjadi lebih sederhana sehingga solusinya akan lebih mudah diperoleh.
  4. Formulasi numerik, Setelah model matematika yang sederhana diperoleh, tahap selanjutnya adalah memformulasikannya secara numerik
  5. Pemrograman, Tahap selanjutnya adalah menerjemahkan algoritma ke dalam program komputer dengan menggunakan salah satu bahasa pemrograman yang dikuasai.
  6. Operasional, Pada tahap ini, program komputer dijalankan dengan data uji coba sebelum data yang sesungguhnya.
  7. Evaluasi, Bila program sudah selesai dijalankan dengan data yang sesungguhnya, maka hasil yang diperoleh diinterpretasi. Interpretasi meliputi analisis hasil run dan membandingkannya dengan prinsip dasar dan hasil-hasil empirik untuk menaksir kualitas solusi numerik, dan keputusan untuk menjalankan kembali program dengan untuk memperoleh hasil yang lebih baik.
Desain  Algoritma
Algoritma adalah merupakan  sederetan(sequence) langkah logika yang diperlukan untuk  melakukan suatu tugas tertentu  seperti  pemecahan  masalah.
Algoritma yang baik mempunyai sejumlah kriteria berikut :
  • Setiap langkah harus determinestik.
  • Proses harus berakir setelah sejumlah berhingga langkah.
  • Hasil akhir tidak boleh tergantung kepada siapa yang menjalani algoritma tersebut.
  • Suatu  algoritma  tidak  boleh  berakhir terbuka.
  • Algoritma harus cukup umum untuk menangani keperluan apapun.
Bagan alir ( flowchart)
Bagan alir merupakan  pernyataan  visual atau grafis suatu algoritma. Bagan alir  menggunakan deretan blok dan anak panah, yang masing-masing menyatakan operasi atau langkah tertentu dalam algoritma. Anak panah menyatakan urutan bagaimana seharusnya operasi dijalankan.
Manfaat bagan alir
  1. Dipakai untuk menyatakan dan mengkomunikasikan algoritma.
  2. Dapat membantu dalam perencanaan, menyelesaikan keruwetan.
  3. Mengkomunikasikan logika program.
  4. Merupakan wahana yang menarik untuk memvisualisasikan beberapa struktur  yang mendasar yang diterapkan dalam pemrograman Komputer.


Metode Numerik - Flowchart
Peranan Komputer dalam Metode Numerik
Komputer berperan besar dalam perkembangan bidang metode numerik. Hal ini mudah dimengerti karena perhitungan dengan metode numerik adalah berupaoperasi aritmetika seperti penjumlahan, perkalian, pembagian, plus membuat perbandingan. Sayangnya, jumlah operasi aritmetika ini umumnya sangat banyak dan berulang, sehingga perhitungan secara manual sering menjemukan. Manusia (yang melakukan perhitungan manual ini) dapat membuat kesalahan dalam melakukannya. Dalam hal ini, komputer berperanan mempercepat proses perhitungan tanpa membuat kesalahan.
Penggunaan komputer dalam metode numerik antara lain untuk memprogram. Langkah-langkah metode numerik diformulasikan menjadi program komputer. Program ditulis dengan bahasa pemrograman tertentu, seperti FORTRAN, PASCAL, C, C++, BASIC, dan sebagainya.
Sebenarnya, menulis program numerik tidak selalu diperlukan. Di pasaran terdapat banyak program aplikasi komersil yang langsung dapat digunakan. Beberapa contoh aplikasi yang ada saat ini adalah MathLab, MathCad, Maple, Mathematica, Eureka, dan sebagainya. Selain itu, terdapat juga library yang berisi rutin-rutin yang siap digabung dengan program utama yang ditulis pengguna, misalnya IMSL (International Mathematical and Statistical Library) Math/Library yang berisi ratusan rutin-rutin metode numerik. Selain mempercepat perhitungan numerik, dengan komputer kita dapat mencoba berbagai kemungkinan solusi yang terjadi akibat perubahan beberapa parameter. Solusi yang diperoleh juga dapat ditingkatkan ketelitiannya dengan mengubahubah nilai parameter.
Kemajuan komputer digital telah membuat bidang metode numerik berkembang secara dramatis. Tidak ada bidang matematika lain yang mengalami kemajuan penting secepat metode numerik. Tentu saja alasan utama penyebab kemajuan ini adalah perkembangan komputer itu sendiri, dari komputer mikro sampai komputer Cray, dan kita melihat perkembangan teknologi komputer tidak pernah berakhir. Tiap generasi baru komputer menghadirkan keunggulan seperti waktu, memori, ketelitian, dan kestabilan perhitungan. Hal ini membuat ruang penelitian semakin terbuka luas. Tujuan utama penelitian itu adalah pengembangan algoritma numerik yang lebih baik dengan memanfaatkan keunggulan komputer semaksimal mungkin. Banyak algoritma baru lahir atau perbaikan algoritma yang lama didukung oleh komputer.
Bagian mendasar dari perhitungan rekayasa yang dilakukan saat ini adalah perhitungan “waktu nyata” (real time computing), yaitu perhitungan keluaran (hasil) dari data yang diberikan dilakukan secara simultan dengan event pembangkitan data tersebut, sebagaimana yang dibutuhkan dalam mengendalikan proses kimia atau reaksi nuklir, memandu pesawat udara atau roket dan sebagainya. Karena itu, kecepatan perhitungan dan kebutuhan memori komputer adalah pertimbangan yang sangat penting. Jelaslah bahwa kecepatan tinggi, keandalan, dan fleksibilitas komputer memberikan akses untuk penyelesaian masalah praktek. Sebagai contoh, solusi sistem persamaan lanjar yang besar menjadi lebih mudah dan lebih cepat diselesaikan dengan komputer. Perkembangan yang cepat dalam metode numerik antara lain ialah penemuan metode baru, modifikasi metode yang sudah ada agar lebih mangkus, analisis teoritis dan praktis algoritma untuk proses perhitungan baku, pengkajian galat, dan penghilangan jebakan yang ada pada metode.
Perbedaan Metode Numerik dengan Analisis Numerik
Untuk persoalan tertentu tidaklah cukup kita hanya menggunakan metode untuk memperoleh hasil yang diinginkan; kita juga perlu mengetahui apakah metode tersebut memang memberikan solusi hampiran, dan seberapa bagus hampiran itu . Hal ini melahirkan kajian baru, yaitu analisis numerik.
Metode numerik dan analisis numerik adalah dua hal yang berbeda. Metode adalah algoritma, menyangkut langkah-langkah penyelesaian persoalan secara numerik, sedangkan analisis numerik adalah terapan matematika untuk menganalisis metode. Dalam analisis numerik, hal utama yang ditekankan adalah analisis galat dan kecepatan konvergensi sebuah metode. Teorema-teorema matematika banyak dipakai dalam menganalisis suatu metode. Di dalam perkuliahan  ini, kita akan memasukkan beberapa materi analisis numerik seperti galat metode dan kekonvergenan metode. Tugas para analis numerik ialah mengembangkan dan menganalisis metode numerik. Termasuk di dalamnya pembuktian apakah suatu metode konvergen, dan menganalisis batas-batas galat solusi numerik.Terdapat banyak sumber galat, diantaranya tingkat ketelitian model matematika, sistem aritmetik komputer, dan kondisi yang digunakan untuk menghentikan proses pencarian solusi. Semua ini harus dipertimbangkan untuk menjamin ketelitian solusi akhir yang dihitung.
Materi Metode Numerik
  • Pendahuluan Metode Numerik
  • Galat
  • Solusi Persamaan Non-Linier
    • Persamaan Non-Linier
    • Metode Biseksi
    • Metode Regula Falsi
    • Metode Sekan
    • Metode Iterasi Titik Tetap
    • Metode Newton – Raphson
  • Solusi Persamaan Linier Simultan
    • Sistim Persamaan Linier
    • Metode Eliminasi Gauss.
    • Metode Gauss-Jordan.
    • Iterasi Gauss-Seidel.

  • Interpolasi
    • Pengertian Interpolasi
    • Polinomial (linier dan kuadrat)
    • Lagrange
    • Interpolasi Newton – Selisih hingga
    • Newton – Selisih bagi

  • Integrasi Numerik
    • Pengertian Integrasi
    • Metode Empat Persegi Panjang.
    • Metode Titik Tengah
    • Trapesium
    • Simpson
    • Kwadratur Gauss


Sumber: