bab3 analisis dan perancangan - thesis.binus.ac.idthesis.binus.ac.id/asli/bab3/2006-2-01302-mtif-bab...

29
BAB 3 ANALISIS DAN PERANCANGAN 3.1 Analisis Permasalahan Permasalahan mencari nilai eigen sangat penting untuk bermacam-macam aplikasi misalnya mencari solusi untuk persamaan diferensial linear dan non-linear, permasalahan nilai batas, teori chaos, rantai Markov, analisis jaringan, dan model pertumbuhan populasi, dan sebagainya. Banyak tool statistik dan sistem pengambilan keputusan misalnya Multi Dimensional Scaling (MDS) dan Principle Component Analysis (PCA) sangat bergantung pada hal-hal seperti mencari nilai eigen suatu matriks. Pada model pertumbuhan populasi, khususnya pada model pertumbuhan Leslie, perhitungan matriks untuk sekian periode ke depan dapat dilakukan dengan cara mencari nilai eigen dan vektor eigen terlebih dahulu. Hal ini jelas lebih ‘murah’ secara kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi bila matriks tersebut berukuran besar. Awalnya permasalahan mencari nilai eigen diselesaikan secara manual, tetapi hal tersebut sangat menyulitkan terutama untuk matriks berukuran besar. Perkembangan teknologi informasi telah memudahkan manusia untuk melakukan perhitungan yang butuh dilakukan berulang-ulang (repetition). Dengan menggunakan alat bantu komputer, masalah nilai eigen diselesaikan dengan menggunakan metode Power dan algoritma QR. Tetapi perkembangan selanjutnya menuntut adanya algoritma yang lebih cepat dan efisien.

Upload: doancong

Post on 27-Aug-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Permasalahan

Permasalahan mencari nilai eigen sangat penting untuk bermacam-macam

aplikasi misalnya mencari solusi untuk persamaan diferensial linear dan non-linear,

permasalahan nilai batas, teori chaos, rantai Markov, analisis jaringan, dan model

pertumbuhan populasi, dan sebagainya. Banyak tool statistik dan sistem pengambilan

keputusan misalnya Multi Dimensional Scaling (MDS) dan Principle Component

Analysis (PCA) sangat bergantung pada hal-hal seperti mencari nilai eigen suatu

matriks.

Pada model pertumbuhan populasi, khususnya pada model pertumbuhan Leslie,

perhitungan matriks untuk sekian periode ke depan dapat dilakukan dengan cara mencari

nilai eigen dan vektor eigen terlebih dahulu. Hal ini jelas lebih ‘murah’ secara

kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi bila matriks

tersebut berukuran besar.

Awalnya permasalahan mencari nilai eigen diselesaikan secara manual, tetapi hal

tersebut sangat menyulitkan terutama untuk matriks berukuran besar. Perkembangan

teknologi informasi telah memudahkan manusia untuk melakukan perhitungan yang

butuh dilakukan berulang-ulang (repetition). Dengan menggunakan alat bantu komputer,

masalah nilai eigen diselesaikan dengan menggunakan metode Power dan algoritma QR.

Tetapi perkembangan selanjutnya menuntut adanya algoritma yang lebih cepat dan

efisien.

Page 2: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

51

3.2 Solusi Permasalahan

Berdasarkan masalah di atas, dibutuhkan suatu program aplikasi yang dapat

menghitung nilai dan vektor eigen dengan algoritma yang cukup ‘murah’. Dalam

aplikasi ini, akan diimplementasikan algoritma QR setelah matriks ditransformasi

menjadi matriks Hessenberg. Hasil nilai dan vektor eigen kemudian dapat dipakai untuk

memperkirakan berapa jumlah populasi yang ada setelah sekian waktu. Dengan kata

lain, aplikasi yang dibuat harus dapat menghitung nilai eigen dan vektor eigen suatu

matriks, menghitung pangkat yang dikenakan pada suatu matriks, dan juga dapat

digunakan untuk mengetahui data-data yang umumnya digunakan pada model

pertumbuhan Leslie. Untuk mempermudah penyebutan, selanjutnya aplikasi akan diberi

nama EigenSolver.

3.3 Analisis dan Perancangan Proses

3.3.1 Use Case Diagram

Gambar 3.1 Use case aplikasi

Page 3: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

52

Penjelasan use case aplikasi:

1. Use Case Menghitung Nilai Eigen

Deskripsi:

Tujuan dari use case ‘Menghitung Nilai Eigen’ adalah untuk menghitung nilai

eigen dari suatu matriks. Setelah pengguna memasukkan input matriks dan batas

error, maka aplikasi akan melakukan validasi terhadap input dan kemudian

menghitung nilai dan vektor eigen dari matriks yang telah diinput tersebut.

Pengguna dapat memasukkan input matriks dari file .txt, atau mencetak hasil

nilai eigen dan vektor eigen ke file .txt.

Flow of events:

1. Masukkan input matriks dan batas error atau masukkan input matriks

dari file.

2. Sistem memvalidasi input matriks dan batas error.

3. Sistem menghitung nilai eigen dan vektor eigen.

4. Sistem menampilkan hasil nilai eigen dan vektor eigen.

5. Pengguna dapat mencetak hasil ke dalam file.

Page 4: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

53

Pilih menu‘Menghitung Nilai

Eigen’

Menampilkan halaman‘Menghitung Nilai Eigen’

Memasukkan nilai inputmatriks dan batas error

Klik ‘Hitung Nilai danVektor Eigen’

Validasi input matriksdan batas error

Klik ‘MasukkanMatriks dari File’

Tampilkan dialog PilihFile

MenampilkanPesan Kesalahan

Menampilkan hasilnilai dan vektor eigen

Tampilkan dialogSimpan ke FileKlik ‘Keluar ke

Menu Utama’’

Klik ‘SimpanHasil’

[tidakvalid]

[valid]

User Sistem EigenSolver

Gambar 3.2 Activity Diagram Menghitung Nilai Eigen

2. Use Case Operasi Pangkat Matriks

Deskripsi:

Tujuan dari use case ‘Operasi Pangkat Matriks’ adalah untuk menghitung

pangkat dari matriks dengan suatu bilangan bulat positif atau perkalian dari

pangkat matriks dengan suatu vektor. Untuk pangkat matriks pengguna

memasukkan input matriks, pangkat, dan batas error. Sedangkan untuk perkalian

Page 5: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

54

pangkat matriks dengan vektor, pengguna juga harus memasukkan input vektor.

Input matriks dapat dimasukkan melalui file. Aplikasi akan memvalidasi input–

input tersebut, lalu menghitung pangkat matriks atau perkalian pangkat matriks

dengan vektor. Hasil dari matriks dan vektor yang telah dihitung dapat disimpan

ke dalam file .txt.

Flow of events:

1. Masukkan input matriks, input vektor, pangkat dan batas error atau

masukkan input matriks dari file.

2. Pengguna dapat memilih pangkat matriks atau perkalian pangkat matriks

dengan vektor.

3. Jika pengguna memilih pangkat matriks, sistem memvalidasi input

matriks, pangkat, dan batas error. Sistem kemudian melakukan pangkat

matriks.

4. Jika pengguna memilih kalikan pangkat matriks dengan vektor, sistem

memvalidasi input matriks, input vektor, pangkat, dan batas error. Sistem

kemudian melakukan kalikan matriks dengan vektor.

5. Sistem menampilkan hasil pangkat matriks atau kalikan matriks dengan

vektor.

6. Pengguna dapat mencetak matriks hasil ke dalam file.

Page 6: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

55

Gambar 3.3 Activity Diagram Operasi Pangkat Matriks

3. Use Case Data Leslie

Deskripsi:

Page 7: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

56

Tujuan dari use case ’Data Leslie’ adalah untuk menghitung data-data yang

didapat dari input matriks Leslie dan input vektor awal. Input matriks Leslie

dapat dimasukkan melalui file. Aplikasi akan memvalidasi input matriks Leslie,

input vektor awal, dan batas error, lalu menghitung data-data dari input tersebut.

Data-data Leslie yang telah dihitung dapat disimpan ke dalam file .txt.

Flow of events :

1. Masukkan input matriks Leslie, input vektor awal, batas error. Pengguna

juga dapat memasukkan input matriks Leslie dari file .

2. Sistem memvalidasi input matriks Leslie, input vektor awal, dan batas

error.

3. Sistem menghitung data Leslie.

4. Sistem menampilkan hasil perhitungan data Leslie.

5. Pengguna dapat mencetak hasil ke dalam file.

Page 8: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

57

Gambar 3.4 Activity Diagram Data Leslie

4. Use Case Masukkan Matriks dari File

Deskripsi:

Tujuan dari use case ‘Masukkan Matriks dari File’ adalah untuk membuka file

berformat .txt, kemudian memasukkan isinya ke input matriks.

Flow of events :

1. Pilih file .txt yang akan dimasukkan ke dalam input matriks.

Page 9: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

58

2. Sistem membuka file dan memasukkan isinya ke input matriks.

Gambar 3.5 Activity Diagram Masukkan Matriks dari File

5. Use Case Simpan ke File

Deskripsi:

Tujuan dari use case ‘Simpan ke File’ adalah untuk menyimpan hasil matriks ke

dalam file berformat .txt.

Flow of events :

1. Masukkan nama file untuk penyimpanan hasil matriks.

2. Sistem menyimpan file ke dalam nama file yang telah diinput.

Gambar 3.6 Activity Diagram Simpan ke File

Page 10: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

59

3.3.2 Class Diagram

Gambar 3.7 Class Diagram aplikasi

Page 11: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

60

3.4 Perancangan Menu

3.4.1 Hierarki Menu

Gambar 3.8 Hierarki menu aplikasi

3.4.2 Statechart Diagram

3.4.2.1 Statechart Menu Utama

Gambar 3.9 Statechart Menu Utama

Page 12: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

61

3.4.2.2 Statechart Form Menghitung Nilai Eigen

Gambar 3.10 Statechart Form Menghitung Nilai Eigen

3.4.2.3 Statechart Form Operasi Pangkat Matriks

Gambar 3.11 Statechart Form Operasi Pangkat Matriks

Page 13: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

62

3.4.2.4 Statechart Form Data Leslie

Gambar 3.12 Statechart Form Data Leslie

3.5 Perancangan Modul

Modul utama ini berisikan tiga menu pilihan yaitu menu Menghitung Nilai

Eigen, menu Operasi Pangkat Matriks, dan menu Data Leslie. Modul yang akan

digunakan adalah modul menu utama, modul Menghitung Nilai Eigen, modul Operasi

Pangkat Matriks, dan modul Data Leslie. Seluruh modul dibuat dengan menggunakan

bahasa pemrograman C#.

3.5.1 Modul Menu Utama

Modul Menu Utama ini berisikan tiga menu pilihan yaitu menu Menghitung

Nilai Eigen, menu Operasi Pangkat Matriks, dan menu Data Leslie. Pengguna dapat

memilih menu Menghitung Nilai Eigen dengan mengklik button

Page 14: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

63

buttonMenghitungNilaiEigen untuk menghitung nilai eigen dan vektor eigen dari sebuah

matriks dan memilih menu Operasi Pangkat Matriks dengan mengklik button

buttonOperasiPangkatMatriks untuk menghitung pangkat bilangan bulat dari matriks

tertentu serta memilih menu Data Leslie dengan mengklik buttonDataLeslie untuk

menghitung data-data berkaitan dengan matriks Leslie. Pengguna juga dapat keluar dari

aplikasi dengan mengklik button buttonKeluar.

3.5.2 Modul Menghitung Nilai Eigen

Modul Menghitung Nilai Eigen adalah modul yang berguna untuk menghitung

nilai eigen dan vektor eigen dari matriks yang diinput. Modul ini akan menghasilkan

nilai eigen dan vektor eigen dengan menggunakan algoritma QR. Hasil perhitungan dari

modul ini juga dapat disimpan ke dalam file dengan format .txt. Modul ini hanya dapat

digunakan untuk input matriks di mana elemen-elemennya merupakan bilangan real.

Secara teknis, modul Menghitung Nilai Eigen dibagi ke dalam 3 tahapan yang

dapat dilihat pada Gambar 3.13.

Gambar 3.13 Tahapan perancangan Menghitung Nilai Eigen

Page 15: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

64

Tahap-tahap tersebut adalah sebagai berikut:

1. Mengubah matriks ke dalam bentuk Hessenberg

2. Faktorisasi matriks dengan algoritma QR

3. Menghitung nilai dan vektor eigen

Modul Menghitung Nilai Eigen berisikan fungsi untuk meminta input matriks

kepada pengguna berupa teks baik dari file dengan format .txt, maupun dari textbox yang

disediakan di aplikasi. Fasilitas meng-input matriks dari file dapat digunakan untuk

mempermudah pengguna. Modul Menghitung Nilai Eigen ini membutuhkan beberapa

class C# yaitu:

1. Eigenvalue.cs

2. Hessenberg.cs

3. QRDecomposition.cs

4. Matrix.cs

Class Eigenvalue.cs merupakan class yang digunakan untuk mencari nilai eigen

dan vektor eigen. Dari dalam class Eigenvalue.cs, program akan memanggil class

Hessenberg.cs yang digunakan untuk mentransformasi matriks menjadi matriks

Hessenberg. Setelah matriks yang diubah menjadi matriks bentuk Hessenberg, kemudian

akan dilakukan dekomposisi QR berulang-ulang, yaitu dengan menggunakan class

QRDecomposition.cs. Sementara class Matrix.cs merupakan class yang berisi

representasi bentuk matriks.

Page 16: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

65

3.5.3 Modul Operasi Pangkat Matriks

Modul Operasi Pangkat Matriks merupakan modul yang digunakan untuk

menghitung operasi pangkat bilangan bulat yang dikenakan pada suatu matriks dan

menghitung perkalian antara matriks tersebut dengan suatu vektor. Hasil dari

perhitungan modul ini juga dapat disimpan ke dalam file dengan format .txt. Modul ini

hanya bekerja bila pangkat yang dikenakan pada matriks tersebut berupa bilangan bulat

positif, dan seluruh elemen dari matriks dan vektor yang hendak dipangkatkan berupa

bilangan real.

Secara teknis, perhitungan pangkat suatu matriks dengan bilangan bulat dibagi

ke dalam 4 tahapan yang dapat dilihat pada Gambar 3.14.

Gambar 3.14 Tahapan perancangan Perhitungan Pangkat Matriks

Page 17: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

66

Tahap-tahap tersebut adalah sebagai berikut:

1. Mengubah matriks ke dalam bentuk Hessenberg

2. Faktorisasi matriks dengan algoritma QR

3. Menghitung nilai dan vektor eigen

4. Menghitung pangkat matriks

Sedangkan perhitungan perkalian pangkat suatu matriks dengan suatu vektor

dapat dibagi menjadi tahap-tahap seperti pada Gambar 3.15.

Gambar 3.15 Tahapan perancangan Perkalian Pangkat Matriks dengan Vektor

Tahap-tahap tersebut adalah sebagai berikut.

1. Mengubah matriks ke dalam bentuk Hessenberg

2. Faktorisasi matriks dengan algoritma QR

3. Menghitung nilai eigen dan vektor eigen

4. Menghitung perkalian pangkat matriks dengan vektor

Page 18: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

67

Modul Operasi Pangkat Matriks berisikan fungsi meminta input matriks kepada

pengguna berupa teks baik dari file dengan format .txt, atau dari textbox yang disediakan

di aplikasi. Modul ini juga meminta input berupa bilangan bulat positif yang akan

menjadi pangkat yang dikenakan pada matriks. akan menghitung hasil dari pangkat yang

dikenakan pada matriks. Selain itu, untuk proses perhitugan perkalian pangkat matriks

dengan vektor, modul meminta input berupa vektor. Modul Operasi Pangkat Matriks

membutuhkan beberapa class C#, antara lain:

1. MatrixPower.cs

2. MatrixPowerVector.cs

3. Eigenvalue.cs

4. Hessenberg.cs

5. QRDecomposition.cs

6. Matrix.cs

Class MatrixPower.cs merupakan class yang digunakan untuk mencari pangkat

dari suatu matriks. Class MatrixPowerVector.cs digunakan untuk menghitung perkalian

pangkat matriks dengan vektor. Dalam kedua class tersebut, program akan memanggil

class Eigenvalue.cs untuk mencari nilai eigen dan vektor eigen dari matriks yang di-

input.

3.5.4 Modul Data Leslie

Modul Data Leslie merupakan modul yang digunakan untuk menghitung data-

data yang berkaitan dengan model pertumbuhan Leslie dari sebuah matriks Leslie dan

juga sebuah vektor awal. Modul ini hanya dapat bekerja apabila seluruh elemen dari

matriks Leslie dan vektor awal merupakan bilangan real, dan memiliki banyak baris

yang sama. Hasil dari perhitungan data-data Leslie dapat disimpan ke dalam file .txt.

Page 19: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

68

Secara teknis, perhitungan data Leslie membutuhkan 4 tahap seperti pada

Gambar 3.16.

Gambar 3.16. Tahapan perancangan Data Leslie

Modul Data Leslie ini berisikan fungsi untuk meminta input berupa matriks baik

dari file .txt, maupun dari textbox yang disediakan. Pengguna juga diminta untuk

memasukkan vektor awal dan batas error yang masih diperbolehkan melalui textbox

yang ada. Modul Data Leslie membutuhkan beberapa class C#, antara lain:

1. Leslie.cs

2. Eigenvalue.cs

3. Hessenberg.cs

4. QRDecomposition.cs

5. Matrix.cs

Page 20: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

69

Class Leslie.cs merupakan class yang digunakan untuk menghitung data-data

Leslie. Di dalam class Leslie.cs program akan memanggil class Eigenvalue.cs untuk

menghitung nilai eigen dan vektor eigen dari matriks yang di-input.

3.6 Perancangan Aplikasi

3.6.1 Form Menu Utama

3.6.1.1 Rancangan Layar Form Menu Utama

Form ini adalah form utama pada program aplikasi EigenSolver. Form ini diberi

nama formMenuUtama. Form ini terdiri dari button buttonMenghitungNilaiEigen,

buttonOperasiPangkatMatriks, buttonDataLeslie dan buttonKeluar. Form ini juga

terdiri dari menu, yaitu menu Calculate, menu About, menu Help, dan menu Keluar.

Menu Calculate terdiri atas tiga sub menu, yaitu sub menu Menghitung Nilai Keluar, sub

menu Operasi Pangkat Matriks, sub menu Data Leslie. Berikut ini adalah rancangan

layar untuk formMenuUtama:

Gambar 3.17 Rancangan layar Form Menu Utama

Page 21: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

70

3.6.2 Form Menghitung Nilai Eigen

3.6.2.1 Rancangan Layar Form Menghitung Nilai Eigen

Form ini diberi nama formMenghitungNilaiEigen. Terdapat tiga buah textbox,

yaitu textBoxInputMatriks untuk memberi nilai pada input matriks, textBoxBatasError

untuk memberi nilai pada batas error, dan textBoxHasil untuk menampilkan hasil nilai

dan vektor eigen. Pada form ini juga terdapat empat buah button, yaitu

buttonMasukkanMatriks untuk memasukkan matriks dari file, buttonHitungEigen untuk

menghitung nilai dan vektor eigen, buttonSimpanHasil untuk menyimpan teks pada

textBoxHasil ke dalam file, dan buttonKeluar untuk keluar ke menu utama. Berikut

adalah rancangan layar untuk formMenghitungNilaiEigen:

Gambar 3.18 Rancangan layar Form Menghitung Nilai Eigen

Page 22: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

71

3.6.2.2 Spesifikasi Proses Form Menghitung Nilai Eigen

Proses ini digunakan untuk menghitung nilai eigen dan vektor eigen berdasarkan

input matriks dan batas error oleh pengguna. Tahap-tahap yang dilakukan adalah:

1. Mengubah matriks ke dalam bentuk Hessenberg

Mulai

Deklarasi konstanta dan variabel

matriksH adalah inputMatriks

matriksS diisi dengan matriks Identitas dengan ukuran sama dengan

inputMatriks

Untuk i kolom pertama sampai terakhir - 2 dalam matriks lakukan

Cari norm dari kolom matriks tersebut

Bentuk vektor u =

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

−=

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

matriksHelemen

normmatriksHelemen

u

u

u

n

k

_

_

01

M

M

M

M

Bentuk matriks TTi uuuu

IS 2−=

matriksH = matriks Si × matriksH × matriks Si

matriksS dinyatakan perkalian matriks Si dengan matriksS

Akhir untuk

Tutup dan buang semua objek variabel

Akhir

Page 23: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

72

2. Faktorisasi matriks dengan algoritma QR

Mulai

Deklarasi konstanta dan variabel

matriksA dinyatakan inputMatriks

Untuk i kolom pertama sampai terakhir - 1 dalam matriks lakukan

Jika i bukan kolom pertama, matriksA dinyatakan perkalian

matriks Qi-1 dengan matriksA

norm dinyatakan hipotenusa dari elemen matriks dengan baris ke-

i kolom ke-i dengan elemen matriks baris ke-i+1 kolom

ke-i

Elemen ke-i vektor u dinyatakan selisih elemen matriksA baris

ke-i kolom ke-i dengan norm

Elemen ke-i+1 vektor u dinyatakan elemen matriksA baris ke-i+1

kolom ke-i

Elemen vektor u lainnya dinyatakan dengan 0

Bentuk matriks TTi uuuu

IQ 22−=

matriksQ dinyatakan matriksQ dikalikan dengan Qi

Akhir Untuk

matriksR dinyatakan matriksQ transpose dikalikan dengan inputMatriks

Tutup dan buang semua objek variabel

Akhir

Page 24: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

73

3. Menghitung nilai dan vektor eigen

Mulai

Deklarasi konstanta dan variabel

Panggil Modul Hessenberg dengan masukan inputMatriks

matriksA dinyatakan matriksH hasil Hessenberg

matriksVektorEigen dinyatakan matriksS hasil Hessenberg

Lakukan

Panggil QRDecomposition dengan masukan matriksA

matriksA dinyatakan perkalian antara matriksR dengan matriksQ

hasil QRDecomposition

error dinyatakan penjumlahan tiap elemen di bawah diagonal

utama pada matriksA

matriksVektorEigen dinyatakan perkalian matriksVektorEigen

dengan matriksQ

Selama error > batas_error

nilaiEigen dinyatakan sebagai elemen diagonal utama pada matriksA

Tutup dan buang semua objek variabel

Akhir

3.6.3 Form Operasi Pangkat Matriks

3.6.3.1 Rancangan Layar Form Operasi Pangkat Matriks

Form Operasi Pangkat Matriks ini diberi nama formOperasiPangkatMatriks. Di

dalam form ini terdapat lima buah textbox, yaitu textBoxInputMatriks untuk memberi

nilai pada input matriks, textBoxInputVektor untuk memberi nilai pada input vektor,

Page 25: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

74

textBoxBatasError untuk memberi nilai pada batas error, textBoxPangkat untuk

memberi nilai pada pangkat dan textBoxHasil untuk menampilkan hasil pangkat matriks

atau hasil perkalian pangkat matriks dengan vektor. Pada form ini juga terdapat lima

buah button, yaitu buttonMasukkanMatriks untuk memasukkan matriks dari file,

buttonHitungPangkat untuk menghitung pangkat matriks, buttonKalikanMatriks untuk

menghitung peralikan pangkat matriks dengan vektor, buttonSimpanHasil untuk

menyimpan teks pada textBoxHasil ke dalam file, dan buttonKeluar untuk keluar ke

menu utama. Berikut adalah rancangan layar formOperasiPangkatMatriks:

Gambar 3.19 Rancangan layar Form Operasi Pangkat Matriks

Page 26: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

75

3.6.3.2 Spesifikasi Proses Form Operasi Pangkat Matriks

Proses ini digunakan untuk menghitung operasi pangkat matriks dan perkalian

pangkat matriks dengan vektor berdasarkan input matriks, input vektor, pangkat dan

batas error oleh pengguna. Tahap-tahap yang dilakukan pada perhitungan pangkat

matriks adalah:

1. Mengubah matriks ke dalam bentuk Hessenberg

2. Faktorisasi matriks dengan algoritma QR

3. Menghitung nilai dan vektor eigen

4. Menghitung pangkat matriks

Mulai

Deklarasi konstanta dan variabel

Panggil modul Eigenvalue

Bentuk matriksNilaiEigen dengan matriks diagonal yang elemennya

berupa nilai eigen dengan pangkat

matriksHasil dinyatakan perkalian matriksVektorEigen dengan

matriksNilaiEigen

matriksHasil dinyatakan perkalian matriksHasil dengan invers

matriksVektorEigen

Tutup dan buang semua objek variabel

Akhir

Sedangkan tahap-tahap yang dilakukan dalam perhitungan perkalian pangkat

matriks dengan vektor adalah:

1. Mengubah matriks ke dalam bentuk Hessenberg

2. Faktorisasi matriks dengan algoritma QR

Page 27: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

76

3. Menghitung nilai eigen dan vektor eigen

4. Menghitung perkalian pangkat matriks dengan vektor

Mulai

Deklarasi konstanta dan variabel

Panggil modul Eigenvalue dengan masukan inputMatriks dan batasError

matriksBobot dinyatakan perkalian invers matriksVektorEigen dengan

inputVektor

elemen matriksA dinyatakan pangkat nilai eigen dengan elemen

matriksVektorEigen

matriksHasil dinyatakan perkalian matriksA dengan matriksBobot

Tutup dan buang semua objek variabel

Akhir

3.6.4 Form Data Leslie

3.6.4.1 Rancangan Layar Form Data Leslie

Form ini diberi nama formDataLeslie. Dalam form ini terdapat empat buah

textbox, yaitu textBoxInputMatriks untuk memberi nilai pada input matriks,

textBoxInputVektor untuk memberi nilai pada input vektor, textBoxBatasError untuk

memberi nilai pada batas error, dan textBoxHasil untuk menampilkan hasil data-data

Leslie. Pada form ini juga terdapat empat buah yaitu buttonMasukkanMatriks untuk

memasukkan matriks dari file, buttonHitungLeslie untuk menghitung data-data Leslie,

buttonSimpanHasil untuk menyimpan teks pada textBoxHasil ke dalam file, dan

buttonKeluar untuk keluar ke menu utama. Berikut adalah rancangan layar dari

formDataLeslie.

Page 28: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

77

Gambar 3.20 Rancangan layar Form Data Leslie

3.6.4.2 Spesifikasi Proses Form Data Leslie

Proses ini digunakan untuk menghitung data-data yang berkaitan dengan model

pertumbuhan Leslie berdasarkan input matriks, input vektor, dan batas error oleh

pengguna. Tahap-tahap yang dilakukan adalah:

1. Mengubah matriks ke dalam bentuk Hessenberg

2. Faktorisasi matriks dengan algoritma QR

3. Menghitung nilai eigen dan vektor eigen

4. Menghitung data-data Leslie

Mulai

Deklarasi konstanta dan variabel

Panggil modul Eigenvalue dengan masukan inputMatriks dan batasError

Page 29: BAB3 Analisis dan Perancangan - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2006-2-01302-MTIF-Bab 3.pdf · kompleksitas daripada melakukan perkalian matriks terus-menerus, apalagi

78

Elemen vektorAwal dinyatakan pembagian elemen inputVektor yang

bersesuaian dengan penjumlahan seluruh elemen inputVektor

vektorSatuPeriode dinyatakan perkalian inputMatriks dengan vektorAwal

vektorPertumbuhan dinyatakan pengurangan vektorSatuPeriode dengan

vektorAwal

nilaiEigenDominan dinyatakan nilaiEigen dengan modulus terbesar

vektorStabil dinyatakan vektorEigen yang bersesuaian dengan

nilaiEigenDominan

Tutup dan buang semua objek variabel

Akhir