Diagram Sequence Diagram Kelas Desain Rincian Algoritma per Method

10. ModelVertex Model Kelas ini merupakan kelas yang berisi atribut-atribut yang berhubungan dengan vertex obyek outlier yang akan digunakan untuk perhitungan outlier itu sendiri. Atribut- atribut tersebut seperti k- distance, local density, dan INFLO. 11. Kontrol_INFLOTableModel Controller Kelas ini merupakan kelas yang mengatur hasil perhitungan INFLO ke dalam suatu tabel model. 12. ModelHasil_INFLO Model Kelas ini merupakan kelas yang berisi atribut yang digunakan untuk penyimpanan hasil deteksi outlier menggunakan algoritma INFLO.

4.3.3. Diagram Sequence

Diagram aktivitas sistem terlampir pada Lampiran 7. Diagram aktivitas ada 5, yaitu : 1. Memasukkan Data “Pilih File” 2. Memasukkan Data “Pilih Database” 3. Menyeleksi Atribut 4. Mendeteksi Outlier dengan Algoritma INFLO 5. Menyimpan Hasil

4.3.4. Diagram Kelas Desain

Diagram kelas desain terlampir pada Lampiran 8.

4.3.5. Rincian Algoritma per Method

4.3.5.1.Kelas KontrolKoneksiDatabase Nama Method Fungsi Method Algoritma Method koneksiMySQLString url, String username, String password Melakukan koneksi ke database MySQL 1. Menginisialisasikan MysqlDataSource baru bernama ds. 2. Variabel ds memanggil method setConn dengan parameter url. 3. Variabel conn diisikan dengan ds yang memanggil method getConnection dengan parameter username dan password. 4. Jika koneksi berhasil, menampilkan pesan Koneksi ke MySQL Berhasil. 5. Namun jika koneksi gagal, menampilkan pesan “Koneksi ke MySQL Gagal”. 6. Mengembalikan variabel conn. isConnectedMySQLString url, String username, String password Melakukan pengecekkan koneksi ke database MySQL 1. Melakukan pengecekan dengan memanggil method koneksiMySQLurl, username, password. 2. Jika tidak menghasilkan null, maka akan mengembalikkan nilai true. 3. Jika menghasilkan null, maka akan mengembalikkan nilai false. koneksiOracleString url, String username, String password Melakukan koneksi ke database Oracle 1. Menginisialisasikan OracleDataSource baru bernama ds. 2. Variabel ds memanggil method setConn dengan parameter url. 3. Variabel conn diisikan dengan ds yang memanggil method getConnection dengan parameter username dan password. 4. Jika koneksi berhasil, menampilkan pesan Koneksi ke Oracle Berhasil. 5. Namun jika koneksi gagal, menampilkan pesan “Koneksi ke Oracle Gagal”. 6. Mengembalikan variabel conn. isConnectedOracleString url, String username, String password Melakukan pengecekkan koneksi ke database Oracle 1. Melakukan pengecekan dengan memanggil method koneksiOracleurl, username, password. 2. Jika tidak menghasilkan null, maka akan mengembalikkan nilai true. 3. Jika menghasilkan null, maka akan mengembalikkan nilai false. 4.3.5.2.Kelas KontrolKoneksiTable Nama Method Fungsi Method Algoritma Method displayTableMySQLConnection conn Menampilkan tabel yang ada dalam koneksi MySQL dari nama database yang terpilih 1. Inisialisasi statement baru. 2. Inisialisasi query dengan = show tables. 3. Membuat result statement dengan cara statement mengeksekusi query tersebut. 4. Mengembalikan hasil result statement. displayTableOracleConnection conn Menampilkan tabel yang ada dalam koneksi Oracle 1. Inisialisasi statement baru. 2. Inisialisasi query dengan = select table_name from tabs. 3. Membuat result statement dengan cara statement mengeksekusi query tersebut. 4. Mengembalikan hasil result statement. selectTableConnection conn, String table Mengambil isi dari tabel yang terpilih 1. Inisialisasi statement baru. 2. Inisialisasi query dengan = select from + table. 3. Membuat result statement dengan cara statement mengeksekusi query tersebut. 4. Mengembalikan hasil result statement. 4.3.5.3.Kelas KontrolSeleksiAtributTableModel Nama Method Fungsi Method Algoritma Method deleteAtribut Menghapus atribut yang tidak digunakan dalam deteksi 1. Inisialisasi sa bertipe ListModelSeleksiAtribut dengan membuat ArrayListModelSeleksiAtribut baru. 2. Ketika variabel seleksi bertipe ModelSeleksiAtribut sesuai dengan atribut yang terpilih, melakukan : a. Jika seleksi bukan yang dipilih, sa.addseleksi. b. Nilai atribut disamakan dengan sa. 3. fireTableDataChanged; 4.3.5.4.Kelas Kontrol_INFLOTableModel Nama Method Fungsi Method Algoritma Method setValueAtObject value, int rowIndex, int columnIndex Memasukkan nilai obyek pada baris dan kolom tertentu Ketika indeks kolom = 0 : mengambil nilai ranking dari hasil INFLO. Ketika indeks kolom = 1 : mengambil nilai label dari hasil INFLO. Ketika indeks kolom = 2 : mengambil nilai INFLO dari hasil INFLO. 4.3.5.5.Kelas Kontrol_INFLO Nama Method Fungsi Method Algoritma Method inputDataJTable tableProsesDeteksi Memasukkan data masukkan ke Table File Input untuk dilakukan preprocess Membuat inisialisasi variabel ‘i’ bertipe integer. Selama i bernilai 0 – sejumlah baris dari tabel, langkahnya : 1. Inisialisasi variabel label bertipe String. 2. Membuat inisialisasi variabel ‘j’ bertipe integer. Selama j bernilai 0 – sejumlah kolom dari tabel, langkahnya : a. Melakukan pengecekkan apakah variabel j bernilai 0. b. Jika iya, lakukan pengecekkan apakah data pada tabel dengan indeks i, j berisi karakter kosong atau tidak. Jika kosong, maka variabel label diisikan dengan “null”. Jika tidak kosong, maka variabel label diisikan dengan isi dari tabel pada indeks i, j tersebut. c. Jika tidak, lakukan pengecekkan apakah data pada tabel dengan indeks i, j berisi karakter kosong atau tidak. Jika kosong, maka listData diisikan dengan nilai “0.0”. Jika tidak kosong, lakukan pengecekkan kedua, apakah data pada tabel dengan indeks i, j berisi karakter selain angka atau tidak. Jika berisi karakter selain angka, listData diisikan dengan nilai “0.0”. Jika data pada tabel dengan indeks i, j tidak kosong dan tidak berisi karakter selain angka, data pada indeks tersebut dimasukkan ke dalam listData dan mengganti karakter koma , menjadi karakter titik .. 3. Memasukkan vertex baru berisi label dan listData ke dalam graph. Membuat inisialisasi variabel ‘i’ bertipe integer. Selama i bernilai 0 – sejumlah baris dari tabel, langkahnya : 1. Membuat inisialisasi variabel ‘j’ bertipe integer. Selama j bernilai i+1 – sejumlah baris dari tabel, langkahnya : a. Melakukan pengecekkan apakah nilai ‘i’ tidak sama dengan nilai ‘j’. b. Jika nilai ‘i’ tidak sama dengan nilai ‘j’, maka membuat edge dengan cara mencari jarak Euclidean dan edge tersebut dimasukkan ke dalam graph. cariJarakEcludianInteger indexAwal, Integer indexAkhir Mencari jarak Euclidean 1. Membuat variabel baru bernama a bertipe ListDouble untuk membuat ArrayListDouble baru. 2. Membuat variabel baru bernama b bertipe ListDouble untuk membuat ArrayListDouble baru. 3. Variabel a diisikan dengan nilai dari vertexList[indexAwal]. 4. Variabel b diisikan dengan nilai dari vertexList[indexAkhir]. 5. Membuat variabel baru bernama jarak bertipe Double dengan inisialisasi awal 0.0. 6. Membuat variabel baru bernama jarakEuclidean bertipe Double dengan inisialisasi awal 0.0. 7. Membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – jumlah dari variabel a, langkahnya : a. Mengisikan variabel jarak dengan jarak ditambah dengan nilai a – nilai b kuadrat . b. Mengisikan jarak dari vertexList dengan hasil perhitungan variabel jarak tersebut. 8. Mengisikan variabel jarakEuclidean dengan rata-rata seluruh variabel jarak yang didapatkan. 9. Mengembalikkan nilai jarakEuclidean. cariLabelString label Mencari indeks dari label vertexList pada indeks tertentu 1. Membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – panjang dari vertexList, langkahnya : a. Melakukan pengecekkan apakah label sama dengan label dari vertexList[i]. b. Jika iya, mengembalikan nilai i. 2. Mengembalikan nilai -1. cariJarakDouble jarak, Integer indeks Mencari jarak yang sudah dikunjungi Membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – panjang dari vertexList, langkahnya : 1. Melakukan pengecekkan apakah edge[indeks][i] sama dengan jarak. 2. Jika iya, setFlagKunjungantrue pada vertexList[i]. cariKDistanceInteger indeks, Integer jangkauan Mencari k- distance dari masing- masing obyek vertex 1. Membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – panjang dari vertexList, setFlagKunjungantrue pada vertexList[i]. 2. Membuat variabel Double[jangkauan] baru dengan nama a bertipe Double[]. 3. Membuat variabel bernama kDistance bertipe Double dengan inisialisasi awal 0.0. 4. Membuat variabel bernama maxValue bertipe Double dengan inisialisasi awal adalah nilai maksimal dari tipe Double. 5. Melakukan pengecekkan apakah variabel indeks bernilai -1. 6. Jika iya, menampilkan pesan Tidak ada indeks 7. Jika tidak, membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – panjang dari vertexList, lakukan : a. Membuat variabel ‘j’ bertipe Integer. Selama j bernilai 0 – panjang dari vertexList, lakukan : - Melakukan pengecekkan apakah edge[indeks][j] tidak bernilai -1 dan edge[indeks][j] tidak bernilai 0 dan vertexList[j] belum dikunjungi. - Jika iya, melakukan pengecekkan apakah nilai edge[indeks][j] lebih kecil daripada maxValue. Jika iya, maxValue diisikan dengan edge[indeks][j] b. Mengisikan variabel a[i] dengan nilai maxValue. c. Memanggil method cariJarakmaxValue, indeks. d. Mengisikan variabel maxValue dengan nilai maksimal dari tipe Double. 8. Membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – panjang dari a, lakukan : a. Melakukan pengecekkan apakah kDistance lebih kecil daripada a[i]. b. Jika iya, kDistance diisikan dengan a[i]. 9. Mengembalikan nilai kDistance. cariNNDouble kDistance, Integer indeks Mencari nearest neighbors tetangga terdekat dari masing- masing obyek sebanyak jumlah nilai ‘k’ 1. Membuat variabel arrayList bertipe ListString dan diisikan dengan ArrayListString baru. 2. Melakukan pengecekkan apakah variabel indeks bernilai -1. 3. Jika iya, menampilkan pesan Tidak ada indeks”. 4. Jika tidak, membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – panjang dari vertexList, lakukan : a. Melakukan pengecekkan apakah variabel edge[indeks][i] tidak bernilai -1 dan tidak bernilai 0. Jika iya, melakukan pengecekkan lagi apakah variabel edge[indeks][i] lebih kecil atau sama dengan kDistance. Jika iya, menambahkan label dari vertexList[i] ke arrayList. 5. Mengembalikan nilai dari variabel arrayList. cariRNNInteger indeks Mencari reverse nearest neighbors dari masing- masing obyek 1. Membuat variabel arrayList bertipe ListString dan diisikan dengan ArrayListString baru. 2. Melakukan pengecekkan apakah variabel indeks bernilai -1. 3. Jika iya, menampilkan pesan Tidak ada indeks”. 4. Jika tidak, memanggil method setAnggotaNN dengan parameter label dari vertexList[indeks]. 5. Membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – jumlah anggotaNN dari vertexList[indeks], lakukan : a. Memanggil method setAnggotaNN dengan parameter anggotaNN ke-i dari vertexList[indeks]. b. Membuat variabel ‘j’ bertipe Integer. Selama j bernilai 0 – jumlah anggotaNN dari vertexList[indeks dari vertexList anggotaNN ke-i], lakukan : - Melakukan pengecekkan apakah label dari vertexList[indeks] sama dengan vertexList[indeks dari vertexList anggotaNN ke-i]. - Jika iya, memasukkan anggotaNN ke-i dari vertexList[indeks] ke arrayList. 6. Mengembalikan nilai dari variabel arrayList. cariISInteger indeks Mencari influence space dari masing- masing obyek 1. Membuat variabel arrayList bertipe ListString dan diisikan dengan ArrayListString baru. 2. Melakukan pengecekkan apakah variabel indeks bernilai -1. 3. Jika iya, menampilkan pesan Tidak ada indeks”. 4. Jika tidak, membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – jumlah anggotaNN dari vertexList[indeks], lakukan : memasukkan anggotaNN ke-i dari vertexList[indeks] ke arrayList. 5. Mengembalikan nilai dari variabel arrayList. cariDensityDouble kDistance Mencari density dari masing- masing obyek 1. Membuat variabel density bertipe Double yang didapatkan dengan cara memasukkan nilai 1 dibagi dengan nilai dari variabel kDistance. 2. Mengembalikan nilai density. cariAverageDensityListDouble density Mencari rata- rata density dari density tetangga terdekat dari masing- masing obyek 1. Membuat variabel averageDensity bertipe Double. 2. Membuat variabel jmlhDensity bertipe Double dan diinisialisasi awal dengan 0.0. 3. Membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – banyak dari density, lakukan : jmlhDensity diisikan dengan jmlhDensity dijumlahkan dengan density indeks ke-i. 4. Nilai averageDensity diisikan dengan jmlhDensity dibagi dengan banyak dari density. 5. Mengembalikan nilai variabel averageDensity. cariINFLODouble averageDensity, Double density Mencari hasil INFLO dari masing- masing obyek 1. Membuat variabel INFLO bertipe Double yang didapatkan dengan cara memasukkan nilai variabel averageDensity dibagi dengan nilai variabel density. 2. Mengembalikan nilai variabel INFLO.

4.4. PERANCANGAN STRUKTUR DATA

Dokumen yang terkait

PEMBANGUNAN SISTEM INFORMASI NILAI UNTUK SEKOLAH MENENGAH ATAS BERBASIS WEB PEMBANGUNAN SISTEM INFORMASI NILAI UNTUK SEKOLAH MENENGAH ATAS BERBASIS WEB.

0 2 12

Implementasi algoritma Partitioning Around Medoids (PAM) untuk pengelompokan Sekolah Menengah Atas di DIY berdasarkan nilai daya serap Ujian Nasional.

0 0 2

Pengelompokan Sekolah Menengah Atas di Provinsi Daerah Istimewa Yogyakarta berdasarkan nilai Ujian Nasional menggunakan algoritma K-Means Clustering.

1 1 87

Pengelompokan Sekolah Menengah Atas di Provinsi Daerah Istimewa Yogyakarta berdasarkan nilai Ujian Nasional menggunakan algoritma agglomerative hierarchical clustering.

11 55 123

Implementasi algoritma fuzzy c-means untuk pengelompokan sekolah menengah atas di diy berdasarkan nilai ujian nasional dan nilai sekolah.

2 16 145

Deteksi outlier menggunakan Algoritma Connectivity Based Outlier Factor : studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma.

0 4 252

Penerapan metode enhanced class outlier distance based untuk identifikasi outlier pada data hasil ujian nasional, indeks integritas dan akreditasi sekolah menengah atas

1 6 143

Implementasi algoritma Partitioning Around Medoids (PAM) untuk pengelompokan Sekolah Menengah Atas di DIY berdasarkan nilai daya serap Ujian Nasional

7 43 133

Pemahaman Nilai-Nilai Kewirausahaan Dalam Menulis Naskah Drama Untuk Sekolah Menengah Atas (SMA) Dengan Menggunakan Model Peralihan Konsep

0 4 8

IMPLEMENTASI DETEKSI OUTLIER PADA ALGORITMA HIERARCHICAL CLUSTERING

0 0 6