BAB IV ANALISIS DAN PERANCANGAN SISTEM
4.3 Perancangan Sistem
4.3.5 Rincian Algoritma Setiap Method
Nama method Fungsi method Algoritma method KoneksiDatabase(
String, String, String, String)
Melakukan
koneksi ke
database Oracle / MySql
1. Cek jenis database
2. Jika database == MySql, maka lakukan langkah dibawah ini
a. Buat koneksi MySql dengan
menggunakan variable
connection
b. Jika koneksi berhasil tampilkan pesan koneksi berhasil
c. Jika koneksi gagal tampilkan pesan koneksi gagal
3. Jika database == oracle, maka lakukan langkah dibawah ini
a. Buat obyek ds dari oracleDataSource kemudian dengan obyek tersebut setting alamat url dari database
b. Kemudian lakukan koneksi dengan memanggil method getConnection dengan masukan username dan password
c. Apabila koneksi berhasi
tampilkan pesan “koneksi
Berhasil”
d. Apabila koneksi gagal tampilkan
pesan “Koneksigagal”
isConnectedSQL() Mengecek apakah koneksi dengan database
terhubung atauu tidak
1. Cek apakah connection != null Jika ya maka kembalikan nilai true
2. Jika tidak maka kembalikan nilai false
getClose() Method ini
berfungsi untuk memutus koneksi ke basis data
1. Cek apakah koneksi masih terhubung atau tidak dengan memanghil method is Connected 2. Jika hasilnya true putuskan
koneksi
3. Kemudian set koneksi menjadi false
4.3.5.2 Rincian Algoritma pada Method di Kelas Kontroller LOF Nama method Fungsi method Algoritma method inputData Menginputkan data
dari Jtable ke dalam matrix dalam graf
1. Selama i = 0 dan I tidak lebih dari jumlah baris dari jTable lakukan langkah dibawah ini :
2. Buat variable label bertipe string 3. Buat variable listNilai yang bertipe
arraylist double
4. Selama j = 0 dan j tidak lebih dari jumlah kolom jTable lakukan langkah dibawah ini
a. Cek apakah j = 0 jika iya maka set label = data yang ada di dalam baris dan kolom table tersebut,
b. Jika tidak maka lakukan langkah c dan d
c. Cek apakah data tersebut merupakan data numeric, jika masukan data pada baris (i,j) kedalam arraylist nilai
d. Jika data tersebut bukan data numeric, maka masukan nilai
0.0 kedalam arrayList nilai 5. panggil method addVerteks dari kelas
graph dengan inputan label, dan list nilai
6. selama i = 0 dan i tidak lebih dari jumlah baris jTable lakukan langkah dibawah ini :
a. selama j = i + 1 dan j tidak lebih dari jumlah baris dari jTable lakukan langkah dibawah ini : b. cek apakah i=j jika iya panggil
method addEdge yang terdapat di kelas graph dengan memasukan inputan i, j dan hasil perhitungan jarak Ecludian I dan J dengan memanggil method cariJarakEcludian cariJArakEcludian( int indexAwal, intIndexTujuan) Mencari jarak ecludian antar setiap obyek
1. Buat dua buah variabel yaitu a dan b dengan tipe ArrayList double
2. Set arrayList a sebagai arrayList yang menyimpan nilai dari obyek awal 3. Set arrayListb sebagai array yang akan
yang akan dicari jarakanya terhadap obyek awal
4. Kemudian hitung jarak setiap nilai dari obyek awal terhadap obyek tujuan dengan menggunakan rumus ecludian distance
cariKdistance mencariKdistance dari setiap obyek
1. Set semua flagKunjungan dari semua obyek(vertex ) menjaid false
2. buat sebuah variable array a bertipe double, dimana array ini memiliki panjang sesuai jumlah dari minPts / jangkauan
3. buat variable kDistance dengan tipe double
4. buat variable temp1 bertipe double 5. buat variable tamping bertipe string 6. masukan data jarak dari setiap
tetangga dengan menggunakan perulangan, selama t tidak lebih dari panjang array a lakukan langkah dibawah ini
a. inisialisasian variable i = 0 selama i kurang dari panjang verteksList
maka lakukan langkah dibawah ini : b. cek apakah edge dari indeks tersebut
terhadap i != -1 dan !=0 dan flahKunjungannya == false jika ya lakukan langkah dibawah c dan d: c. jika edge dari indeks terhadap
verteksList ke i< dari temp1 maka d. set temp1 = garis[indeks][i]
e. set array a ke t = temp1;
f. kemudian ubah flagKunjungan dari arraylis tersebut menjadi true dengan memanggil method search2 dengan inputan (temp1, indeks)
g. set kembali temp1 = Double.max_value cariNeighborhood(
Double kDistance, int indeks)
Mencari tetangga yang memiliki jarak kurang dari = Kdistance
1. buat sebuah List a dengan bertipe String, array ini berfungsi untuk menyimpan label yang menjadi tetangga terhadap obyek yang akan dicari tetangganya
2. Inisialisasikan i = 0 , selama i kurang dari panjan vertekslist lakukan langkah dibawah ini :
3. Jika jarak indeks terhadap I kurang <= kDIstance , maka tambahkan
verteksList[i] kedalam array a 4. Kembaikan a nilai dari array a reachbilityDistance (int indexAwal, Lis<String> Tujuan) Mencari reachbility Distance
1. Buat variable reachbilityDistance bertipe List Double
2. Buat variable indexTujuan dengan tipe integer, variable ini berfungsi untuk menyimpan label, dari kDistance Neighborhood suatu obyek
3. Buat variable kDistance bertipe double 4. Inisialisasikan i = 0, selama i < size
tujuan lakukan langkah dibawah ini a. Cari index obyek tujuan dengan
memanggil method Search dengan inputan label dari List Tujuan ke i, kemudian inisialisasikan kedalam variable indexTujuan
b. Setelah itu cari kDistance dari obyek tujuan tersebut dengan memanggil verteksList[indexTujuan].getKdistanc( )
garis[indexAwal][indexTujuan] Maka tambahkan kDistance kedalam array reachbiltyDistance
d. Jika tidak maka tambahkan garis[indexAwal[indexTujuan] kedalam array reachbiltyDistance e. Kembalikan nilai reachbiltyDistance
reachBilityDensity( List<Double> reachbiltyDistance)
Mencari
reacbilityDensity dari setiap obyek
1. Buat variable ReachbilityDensity bertipe double
2. Buat variable
jumlahReachbiltyDistance bertipe double dan inisialisasikan = 0.0 3. Inisialisasikan i=0, selama
i<reachbilityDistance.size lakukan langkah dibawah ini :
a. Jumlahkan JumlahreachBIlityDistance dengan reachBilityDistance ke i, kemudian inisialisasikan kedalam variabek jumlahReachBilityDIstance b. Kembalikan nilai ReachBilityDensity
reachBilityDistance.size() getLof(List<Doubl
e>, Double)
Mencari nilai LOF setiap obyek
1. Buat variable LOF bertipe double 2. Buat variable
jumlahReachbilityDensity dan insialisasikan 0.0;
3. Inisialisasikan i=0, selama i< reachbilityDensity.size lakukan langkah dibawah ini
a. Inisialisasikan reachbilityDensity sebagai berikut: jumlahReachbilityDensity = jumlahReachbilityDensity + (reachBilityDensity.get(i) / ReacbilityDensityobyek); 4. Kembalikan nilai LOF = =
Double.valueOf(nf.format(jumlah ReachbilityDensity / reachBilityDensity.size(). setKdistance(String label, int Jangkauan)
Method ini berfungsi untuk mengeset variable kDistance
1. Buat variable index bertipe int 2. lakukan insisialisasi variable index
dalam Verteks dengan inputan label 3. set variable kDIstance pada
vertekslidt[index] dengan inputan yaitu hasil balik dari method cariKdistance dengan inputan index dan jangkauan
setNeigborhood(Str ing label)
Method ini berfungsi untuk mengeset variable
Neighborhood dalam verteks
1. Buat variable index bertipe int 2. lakukan insisialisasi variable index
dengan memanggil method search dengan inputan label
3. set variable kNeighborhood pada vertekslidt[index] dengan inputan yaitu hasil balik dari method cariNeigborhood dengan inputan vertekslist[index].getkDistance(), index
setReachbilityDista nce(String Label)
Method ini berfungsi untuk mengeset variabel
ReachbilityDistance dalam verteks
1. Buat variable index bertipe int 2. lakukan insisialisasi variable index
dengan memanggil method search dengan inputan label
3. set variable ReachbilityDistance pada vertekslidt[index] dengan inputan
yaitu hasil balik dari method CariReachBilityDistance dengan inputan index, vertekslist[index].getNeigborhood() setReachbilityDens ity(String Label)
Method ini berfungsi untuk mengeset variabel
ReachbilityDensity dalam verteks
1. Buat variable index bertipe int 2. lakukan insisialisasi variable index
dengan memanggil method search dengan inputan label
3. set variable ReachbilityDensity pada vertekslidt[index] dengan inputan yaitu hasil balik dari method ReachbilityDensity dengan inputan vertekslist[index].getReachbilityDista nce()
setLOf(String Label)
Method ini berfungsi untuk menginputkan nilai pada variable Lof dalam vertex
1. Buat variable index bertipe int 2. lakukan insisialisasi variable index
dengan memanggil method search dengan inputan label
3. buat variable tetangga bertipe List String
4. inisialisasikan tetangga =
5. buat variable rDensity dengan tipe List Double
6. insialisasikan variable i= 0 , selama i < tetangga.size lakukan langkah dibawah ini :
a. insialisasikan variable index1 bertipe integer
b. inisialisasikan variable index1 = search(tetangga.get(i) c. tambahkan nilai ke list
rDensity dengan menginputkan reachbiltyDensty dari
vertekslist[index1]
7. set lof pada vertekslist[index] dengan memanggil method getLof dengan inputan rDensity,
vertekslist[index].getReachbilityDensi ty()
setDataLOF(String label)
Method ini berfungsi untuk menyimpan data LOF seluruh obyek kedalam
1. buat variable dlf dengan tipe list DataLOF
2. buat variable obyek dl yang bertipe DataLOF
DaraLOFTableMode l
3. selama i = 0 dan I kurang dari vertekslist length lakukan langkah dibawah ini :
a. cek apakah nilai Lof dari vertekslist[i] >= 1.1 jika ya lakukan langkah
selanjutnya
b. insialisasikan dl sebagai obyek baru dari kelas DataLOF
c. set nilai atribut Label dari dl = label dari
verteksList[i]
d. set nilai atibut Lof dari dl = lof dari verteksList[i] e. tambahkan dl kedalam List
dlf
4. buat variable obyek dm yang bertipe DataLofTableModel, dengan
menginputkan dlf serta label sebagai inputan parameter
Search(String label)
Mthod ini berfungsi untuk mencari posisi indeks dari suatu vertekslist
1. insialisasikan i=0 selama ikurang dari verteksList length lakukan langkah dibawah ini :
a. jika label sama denga label dari verteksList[i] maka kembalikan nilai I dan proses pencarian berhenti
2. kembalikan nilai -1 yang berarti tidak terdapat data dalam verteksList Search2 Method ini berfungsi
untuk mencari vertekslist tertentu dan mengubah flag kunjungannya
menjadi true
1. insialisasikan i=0 selama ikurang dari verteksList length lakukan langkah dibawah ini :
a. jika garis[indeks][i] sama dengan jarak , maka set falg kunjungan dari verteksList[i] menjadi true
4.3.5.3 Rincian Algoritma pada Method di Kelas CheckBoxTableModel Nama method Fungsi method Algoritma method add(int, SeleksiAtribut) Menambahkan
data ke dalam CheckBoxTable Model
1) Tambahkan data kedalam arrayList lfm dengan inputan parameter int dan seleksiAtribut 2) menambahkan nilai field_m
sebagai data di index ke-a ke dalam list
removeRow() Menghapus nama
atribut yang yang telah dihapus dari tabel data pada tabel seleksi atribut
3) Buat array list dengan nama s 4) Selama seleksi < lfm terpenuhi ,
lakukan cek atribut yang akan dihapus terpilih.
5) Jika !seleksi.getPilih=true maka nilai seleksi ditambahkan ke list s 6) Set nilai lfm = s
4.3.5.4 Rincian Algoritma pada Method di Kelas DatabaseController
Nama method Fungsi
method Algoritma method displayTableOracle( Connection) Menampilkan data seluruh table yang ada di database oracle
1. Buat variable stmt bertipe Statement 2. Buat variable rset bertipet ResultSet 3. Buat variable query bertipe String 4. Buat koneksi kedalam database
oracle, dan simpan koneksi tersebut ke dalam variable stnt
5. Set variable query = syntax untuk menampilkan seluruh table dalam oracle yaitu : "select table_name from user_tables"
6. Kemudian eksekusi syntax tersebut yang terdapat di variable query dan eksekusi dengan menggunakan variable stmt
7. Kemudian simpan hasil eksekusi query tersebut kedalam variable rset 8. Kembalikan nilai rset
displayTableSQL( Connection)
Menampilkan data seluruh table yang ada di database MySql
1. Buat variable stmt bertipe Statement 2. Buat variable rset bertipet ResultSet 3. Buat variable query bertipe String
4. Buat koneksi kedalam database oracle, dan simpan koneksi tersebut ke dalam variable stnt
5. Set variable query = syntax untuk menampilkan seluruh table dalam oracle yaitu : "show tables "
6. Kemudian eksekusi syntax tersebut yang terdapat di variable query dan eksekusi dengan menggunakan variable stmt
7. Kemudian simpan hasil eksekusi query tersebut kedalam variable rset
8. Kembalikan nilai rset
Connection,String) isi tabel berdasarkan tabel yang dipilih
pengguna
2. Buat variable rset bertipet ResultSet 3. Buat variable query bertipe String
4. Buat koneksi kedalam database oracle, dan simpan koneksi tersebut ke dalam variable stnt
5. Set variable query = syntax untuk menampilkan seluruh table dalam oracle yaitu : " "select * from table "
6. Kemudian eksekusi syntax tersebut yang terdapat di variable query dan eksekusi dengan menggunakan variable stmt
7. Kemudian simpan hasil eksekusi query tersebut kedalam variable rset
8. Kembalikan nilai rset
4.3.5.5 Rincian Algoritma pada Method di Kelas DiagramBatang Nama method Fungsi method Algoritma method tampil(int[][],
String[][], String[][])
Menampilkan grafik distribusi per atribut sesuai pilihan pengguna
1. Membaca paramater input (array int v, array String n , dan array String t) 2. Inisialisasi i=0
3. Selama i <n.length lakukan data.setValue(v[i][1], n[i][0], t[i][0]) 4. createBarChart3D selama langkah 4
terpenuhi