• Tidak ada hasil yang ditemukan

BAB IV ANALISIS DAN PERANCANGAN SISTEM

4.3. PERANCANGAN SISTEM

4.3.5. Rincian Algoritma per Method

4.3.5.5. Kelas Kontrol_INFLO

Nama Method Fungsi Method Algoritma Method inputData(JTable 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

57

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. cariJarakEcludian(Integer

indexAwal, Integer indexAkhir)

Mencari jarak Euclidean

1. Membuat variabel baru bernama a bertipe List<Double> untuk membuat ArrayList<Double>() baru.

2. Membuat variabel baru bernama b bertipe List<Double> untuk membuat ArrayList<Double>() 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 :

59

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.

cariLabel(String 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.

cariJarak(Double 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, setFlagKunjungan(true)

pada vertexList[i]. cariKDistance(Integer indeks, Integer jangkauan) Mencari k-distance dari masing-masing obyek (vertex)

1. Membuat variabel ‘i’ bertipe Integer. Selama i bernilai 0 – panjang dari vertexList, setFlagKunjungan(true) 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

61

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 cariJarak(maxValue, 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. cariNN(Double kDistance, Integer

indeks) Mencari nearest neighbors (tetangga terdekat) dari masing-masing obyek sebanyak jumlah nilai ‘k’

1. Membuat variabel arrayList bertipe List<String> dan diisikan dengan ArrayList<String>() 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 :

63

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. cariRNN(Integer indeks) Mencari

reverse nearest neighbors dari masing-masing obyek

1. Membuat variabel arrayList bertipe List<String> dan diisikan dengan ArrayList<String>() 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.

65

6. Mengembalikan nilai dari variabel arrayList.

cariIS(Integer indeks) Mencari influence space dari masing-masing obyek

1. Membuat variabel arrayList bertipe List<String> dan diisikan dengan ArrayList<String>() 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. cariDensity(Double 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.

cariAverageDensity(List<Double> 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.

cariINFLO(Double

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.

67

Dokumen terkait