BAB III: ANALISA DAN PERANCANGAN
3.4 Model Desain
3.4.2 Atribut dan Method
Berikut ini merupakan method method penting yang digunakan dalam kelas dari kelas desain
1.
a. Nama kelas :LoginController
b. Nama method :Login(String Username,String Password,Object Frame)
c. Fungsi method : berfungsi sebagai verifikasi terhadap user d. Algoritma Method
1. If(User.getUser(username,password) Then Login Sukses
2. If (Frame.user.getUser().==admin Then enter admin page
3. Else
Enter super admin page 4. Endif
5. endif
2.
a. Nama kelas : bobotController
b. Nama method : pembobotan(String namafile,string judul,String path)
c. Fungsi method : berfungsi untuk meakukan pembotan term dalam dokumen
d. Algoritma Method
1. !isCekFile(namafile,judul)
2. Baca file dan tamping dalam variable(mis :word) 3. Potong kata dengan kelas tokenizer
Token.setdata(word)
Membuat token->token.maketoken() 4. Buat objek termtrm bertipe list untuk mendapatkan
hasil token yang disimpan dalam parsing->token.getparsing()
5. Deklarasi objek term dari kelas list untuk menghitung TF
6. For x=0 to termtmp.getsize() Buat trm dari kelas term()
Buat kata untk menyimpan term dari termtmp
If(!token.isstoplist(kata)->jika bukan stoplist kata = word.stemToIndonesian();
trm.setTerm(kata); trm.setTf(1); trm.setDf(1); trm.setDoc(judul);
skrip.setJudul(judul);
skrip.setNamaFile(namafile); term.add(trm);
endIF
7. Deklarasi hitung dari kelas indek untuk menghitung Tf
8. term=hitung.hitungTF(term)
9. masukkan judul dan namafile ke dalam skripsi-> cod=Skripsi.insertSkripsi(judul,namafile)-> bertipe bolean 10.if(cod) then for x=0 to termsize() trm.insertterm()->proses pembobotan end for message sukses 11.else message gagal 12.endif
13.endif
3.
a. Nama kelas : MatrikCluster
c. Fungsi method : berfungsi untuk melakukan pengelompokkan dokumen
d. Algoritma Method
1. Hitung jumlah skipsi 2. If jumlah skripsi< 3 then
3. Message jumlah skripsi terlalu sedikit 4. Else
5. Skripsi.Clust(jumlahK);
4.
a. Nama kelas : InsertUserController
b. Nama method : InsertUser( String nama, String password, Sring confirmpassword)
c. Fungsi method : berfungsi untuk memasukkan user baru d. Algoritma Method
1. If password.matches(confpassword)
2. Ins=User.insertuser(username,password)->Boolean 3. If ins==true
4. Then insert sukses 5. Else insert gagal 6. Endif
7. Endif
a. Nama kelas : DeleteUserController b. Nama method : deleteUser( String nama)
c. Fungsi method : berfungsi untuk menghapus user d. Algoritma Method
1. If nama.equal(“”)->kososng 2. Message klik table user 3. Else
4. User.deleteuser(nama) 5. Message sukses 6. End if
6.
a. Nama kelas : InserStoplistController b. Nama method : insertstoplist(String kata)
c. Fungsi method : berfungsi untuk memasukkan stoplist baru d. Algoritma Method
1. If nama.equal(“”)->kosong 2. Message isi field
3. Ins= stoplist.insertstoplist(kata) 4. If ins==true
5. Then insert sukses 6. Else insert gagal 7. Endif
7.
a. Nama kelas : UpdateStoplistController
b. Nama method : updatetstoplist(int id,String kata) c. Fungsi method : berfungsi untuk mengedit stopword d. Algoritma Method
1. If kata.equal(“”)->kosong 2. Message isi field
3. Elses toplist.update(id,kata) 4. Endif
8.
a. Nama kelas : DeleteStoplistController b. Nama method : deletestoplist(int id,string kata)
c. Fungsi method : berfungsi untuk menghapus stopword d. Algoritma Method
1. If kata.equal(“”)->kosong 2. Message kata kososng 3. Elses stoplist.delete(kata) 4. Endif
9.
b. Nama method : insertKatadasar(String kata)
c. Fungsi method : berfungsi untuk memasukkan katadasar baru baru
d. Algoritma Method
1. If kata.equal(“”)->kosong 2. Message isi field
3. else 4. Ins= kamus.insertkatadasar(kata) 5. If ins==true 6. Then 7. setDictionaries(); 8. insert sukses 9. Else insert gagal 10.Endif
11.Endif
10.
a. Nama kelas : UpdateKatadasarController b. Nama method : updateKatadasar(String kata)
c. Fungsi method : berfungsi untuk mengubah katadasar d. Algoritma Method
1. If kata.equal(“”)->kosong 2. Message isi field
4. kamus.updateKatadasar(kata) 5. message sukses
6. setDictionaries(); 7. Endif
11.
a. Nama kelas : DeleteKatadasarController b. Nama method : deleteKatadasar(String kata)
c. Fungsi method : berfungsi untuk menghapus kata dasar
d. Tipe : void
e. Algoritma Method
1. If kata.equal(“”)->kosong 2. Message isi field
3. else 4. kamus.deletekatadasar(kata) 5. message sukses 6. setDictionaries(); 7. Endif 12.
a. Nama kelas : User
b. Nama method : insertUser (String username,String password)
c. Fungsi method : berfungsi untuk memasukkan user baru d. Tipe : boolean
e. Algoritma Method
1. Buat Koneksi
2. QueryÆpanggil spInsertuser(?,?,?) 3. Tampung hasil query dengan cara
statement.setString(1,username), statement.setString(2,password)
Dan registeroutparameter(3,varchar)->karena variable bertipe OUT
4. Tamping dalam hasil untuk register out parameter 5. executeQuery();
6. If hasil==sukses then 7. Kembalian berupa true 8. Else if hasil ==gagal then 9. False
10.End if
13.
a. Nama kelas : User
b. Nama method : isUserExixt (String username,String password)
c. Fungsi method : berfungsi untuk memverivikasi user
e. Algoritma Method
1. Buat Koneksi
2. QueryÆpanggil spIsUserExist(?,?,?) 3. Tampung hasil query dengan cara
statement.setString(1,username), statement.setString(2,password)
Dan registeroutparameter(3,varchar)->karena variable bertipe OUT
4. executeQuery();
5. Tampung dalam hasil untuk register out parameter 6. If hasil==sukses then
7. Kembalian berupa true 8. Else if hasil ==gagal then 9. False
10.End if
14.
a. Nama kelas : User
b. Nama method : getUser(String username,String password) c. Fungsi method : berfungsi untuk mendapatakan role user
d. Tipe : user
e. Algoritma Method
2. Buat objek result bertipe user set
3. Masukkan usaername dan password ke object result 4. Buat Koneksi
5. QueryÆpanggil spGetUser_role(?,?,?) 6. Tampung hasil query dengan cara
statement.setString(1,username), statement.setString(2,password)
Dan registeroutparameter(3,varchar)->karena variable bertipe OUT
7. executeQuery();
8. Set result.setrole( statement.getstring(3)) 9. Return result
15.
a. Nama kelas : User
b. Nama method : deleteUser(String username) c. Fungsi method : berfungsi untuk menghapus user
d. Tipe : int
e. Algoritma Method
1. Buat koneksi
2. Buat SQL-> delete from user where username like username
3. Int i=Kon.updateData(SQL) 4. Tutup koneksi
5. Return i
16.
a. Nama kelas : Kamus
b. Nama method : Insertkatadasar(String kata)
c. Fungsi method : berfungsi untuk memasukkan kata dasar baru
d. Tipe : boolean
e. Algoritma Method
1. Buat Koneksi
2. QueryÆpanggil spInsertkatadasar(?,?) 3. Tampung hasil query dengan cara
statement.setString(1,kata),
Dan registeroutparameter(2,varchar)->karena variable bertipe OUT
4. executeQuery();
5. Tampung dalam hasil untuk register out parameter 6. If hasil==sukses then
7. Kembalian berupa true 8. Else then
9. False 10.End if
a. Nama kelas : Kamus
b. Nama method : updatekatadasar(String katalama,String katabaru)
c. Fungsi method : berfungsi untuk mengubah kata dasar
d. Tipe : int
e. Algoritma Method
1. Buat koneksi
2. Buat SQL-> update kamus set kata dasar= katabaru where kata dasar = katalama
3. Int i=Kon.updateData(SQL) 4. Tutup koneksi
5. Return i
18.
a. Nama kelas : kamus
b. Nama method : deleteKatadasar(String kata)
c. Fungsi method : berfungsi untuk menghapus kata dasar
d. Tipe : int
e. Algoritma Method
1. Buat koneksi
2. Buat SQL-> delete from kamus where katadasar= kata
4. Tutup koneksi 5. Return i
19.
a. Nama kelas : Skripsi
b. Nama method : Insertskripsi(String judul,string namafile) c. Fungsi method : berfungsi untuk memasukkan atribut
dokumen skripsi seperti judul dan nama file
d. Tipe : boolean
e. Algoritma Method
1. Buat Koneksi
2. QueryÆpanggil spInsert_judul(?,?,?) 3. Tampung hasil query dengan cara
statement.setString(1,judul), 4. statement.setString(2,namafile),
Dan registeroutparameter(3,varchar)->karena variable bertipe OUT
5. executeQuery();
6. Tampung dalam hasil untuk register out parameter 7. If hasil==sukses then
8. Kembalian berupa true 9. Else then
11.End if
20.
a. Nama kelas : Skripsi
b. Nama method : isCekFile(String judul,string namafile) c. Fungsi method : berfungsi untuk mengecek apakah file
dengan nama file dan jusul sudah ada di database
d. Tipe : boolean
e. Algoritma Method
1. Buat Koneksi 2. Buat variable result
3. QueryÆpanggil spIsCekFile(?,?,?) 4. Tampung hasil query dengan cara
statement.setString(1,judul), 5. statement.setString(2,namafile),
Dan registeroutparameter(3,boolean)->karena variable bertipe OUT dan boolean
6. statement.executeQuery(); 7. If statemen.getboolean(3)==true then 8. Set result=true 9. Else then 10.Result=False 11.End if
12.Return result
21.
a. Nama kelas : Skripsi
b. Nama method : Clust(int jumlah K)
c. Fungsi method : berfungsi untuk melakukan pengelompokkan dokumen
d. Algoritma Method
1. Dapatkan jumlahtotalskripsi 2. Dapatkan jumlah total term 3. Masukkan bobot kedalam matrik
4. Buat variable bertipe matrik 2 D->clustering[][] For x=1to jumlah skripsi
For y=1to jumlah termt dari database Ambil bobot dari table indek
If clustering[x][y]==null Then set clustering[x][y]=0 Else
Set clustering[x][y]=bobot
endIf
endFor
endFor
5. Hitung jarak antar obyek dengan menggunakan cosine similarity
6. Mencari inisialisasi medoid awal For q=1 to jumlah skripsi
For w=1 to jumlah skripsi->mencari CosSim antar skripi
For e=1 to jumlah term
Hitung variable pengukuran jarak (cossim) antar dokumen(term)
Endfor
Hitung CosSim lalu cari P->sesuai algoritma K medoid
Masukkan semua jarak beserta idskripsi ke tabel jarak_temp;
Urutkan secara desc;
Ambil sebanyak k dengan perintah sql select dan limit;
7. Buat perulangan sebanyak k
8. Simpan hasil resultset sejumlah k tertinggi kedalam array
9. Buat variable bertipe arraylist[k] sebanyak k untuk menampung anggota cluster [k]
10.Mulai melakukan pengklusteran: 11.While proses =true
12.For z=1 to jumlahskripsi For z==1 to k
For x=1 to jumlah term
Hitung jarak perobjek dengan k medoid awal Simpan dalam variable jarak bertipe array Endfor
Enfor
Buat perulangan sebanyak k Cari jarak yang terbesar(jarak[k])
Ketemu jarak yang terbesar,masukkan z kedalam cluster[k]
13.Cari medoid baru
14.Buat perualangan sebanyak k kluster 15.Cek dimasing masing kluster objek yang
mempunyai nilai maks
16.Jadikan objek tersebut sebagai medoid baru 17.Jika medoid baru != medoid sebelumnya, ulangi
langkah12
18.Jika sama maka selesai
22.
a. Nama kelas : Stoplist
c. Fungsi method : berfungsi untuk memasukkan stoplist baru
d. Tipe : boolean
e. Algoritma Method
1. Buat Koneksi
2. QueryÆpanggil spInsert_stoplist(?,?) 3. Tampung hasil query dengan cara
statement.setString(1,kata),
Dan registeroutparameter(2,varchar)->karena variable bertipe OUT
4. execute();
5. Tampung dalam hasil untuk register out parameter 6. If hasil==sukses then
7. Kembalian berupa true 8. Else then
9. False 10.End if
23.
a. Nama kelas : Stoplist
b. Nama method : updatestoplist(int id,String katabaru) c. Fungsi method : berfungsi untuk mengubah stoplist
d. Tipe : int
1. Buat koneksi
2. Buat SQL-> update stoplist set stoplist= katabaru where idstoplist =id
3. Int i=Kon.updateData(SQL) 4. Tutup koneksi
5. Return i
24.
a. Nama kelas : Stoplist
b. Nama method : deletestoplist(String kata)
c. Fungsi method : berfungsi untuk menghapus stoplist
d. Tipe : int
e. Algoritma Method
1. Algoritma Method Buat koneksi
2. Buat SQL-> delete from stoplist where stoplist= kata
3. Int i=Kon.updateData(SQL) 4. Tutup koneksi
5. Return i
a. Nama kelas : Term
b. Nama method : insertTerm()
c. Fungsi method : berfungsi untuk mengecek apakah file dengan nama file dan jusul sudah ada di database
d. Tipe : void
e. Algoritma Method
1. Buat koneksi 2. Buat perintah SQL
3. String sql = "insert into term(term,df,idf) values(?,?,?)";
4. .PreparedStatement prs =
kon.getKoneksi().prepareStatement(sql); 5. prs.setString(1, getTerm());
6. prs.setInt(2, getDf());
7. Cek apakah kata sudah ada di tabel term
8. stmt.executeQuery("select * from term where term = '" + getTerm() + "'");
9. Jika sudah ada maka melakukan proses update DF 10.if (rs.next()) {
11. Statement stmtUpd =
12. stmtUpd.executeUpdate("Update term set df = " + (rs.getInt(3) + 1) + " where idterm = " +
rs.getInt(1)); 13. stmtUpd.close();
14.Jika belum ada makan cuma langsung insert 15. CallableStatement clsTmp = kon.getKoneksi().prepareCall("call SpHitungIDF(?,?)"); 16. clsTmp.setString(1, getTerm()); 17.clsTmp.registerOutParameter(2, java.sql.Types.DOUBLE); 18. clsTmp.execute();
19.Double idf = clsTmp.getDouble(2); 20. prs.setDouble(3, idf);
21.prs.execute(); 22. rs.close(); 23.rs.close(); 24.Update nilai IDF 25.UpdateIDF_test(term); 26.insertIndex();
27.UpdateBobot_test(term);
26.
b. Nama method : insertindex()
c. Fungsi method : berfungsi untuk memasukkan indek ke dalam database
d. Tipe : void
e. Algoritma Method
1. Buat konoeksi 2. Buat perintah SQL
3. String sql = " "insert into indeks(idterm,idskripsi,tf )" + "values( (select idterm from term where term = ?),(select idskripsi from skripsi where judul = ?),?)"; 4. Buat prepared statement
5. PreparedStatement stmt = (PreparedStatement) kon.getKoneksi().prepareStatement(sql); 6. stmt.setString(1, getTerm()); 7. stmt.setString(2, getDoc()); 8. stmt.setInt(3, getTf()); 9. stmt.execute(); 10.tutup statement 27.
a. Nama kelas : Term
b. Nama method : updateIDF()
c. Fungsi method : berfungsi mengupdate idf
e. Algoritma Method
1. Buat konoeksi 2. Buat SQL statement
3. String sql = "Select * from term"; 4. Execute
5. Selama ada hasil(rs.next()) 6. CallableStatement clsTmp = kon.getKoneksi().prepareCall("call SpHitungIDF(?,?)"); 7. clsTmp.setString(1, rs.getString(2)); 8. clsTmp.registerOutParameter(2, java.sql.Types.DOUBLE); 9. clsTmp.execute();
10.Double idf = clsTmp.getDouble(2); 11. clsTmp.close();
12.Statement stmtUpd =
kon.getKoneksi().createStatement();
13. stmtUpd.executeUpdate("Update term set idf = " + idf + " where idterm = " + rs.getInt(1));
14.stmtUpd.close(); 15.rs.close();
a. Nama kelas : Term
b. Nama method : updatebobot()
c. Fungsi method : berfungsi mengupdate idf
d. Tipe : void
e. Algoritma Method
1. Buat konoeksi 2. Buat SQL statement
3. String sql = String sql = "select i.idindeks, (i.tf * t.idf) bobot from indeks i " + "inner join term t on i.idterm = t.idterm";
4. Execute
5. Selama ada hasil(rs.next()) 6. Statement stmtUpd =
kon.getKoneksi().createStatement();
7. stmtUpd.executeUpdate("update indeks set bobot = " + rs.getDouble(2) + " where idindeks = " + rs.getInt(1));
8. stmtUpd.close();
29.
a. Nama kelas : Term
b. Nama method : updateIDF_test(String term)
c. Fungsi method : berfungsi mengupdate idf sesuai dengan term masukan
d. Tipe : void e. Algoritma Method
1. Buat konoeksi 2. Buat SQL statement
3. String sql = String sql = " "Select * from term where term='"+term+"';"
4. Execute
5. Selama ada hasil(rs.next())
6. Panggil spUpdateIdf untuk menghitung idf 7. Setelah didapat idf, update idf sesuai dengan term
masukan 8. close
30.
a. Nama kelas : Term
b. Nama method : updatebobot_test(String term)
c. Fungsi method : berfungsi mengupdate bobot sesuai term masukan
d. Tipe : void
e. Algoritma Method
1. Buat konoeksi 2. Buat SQL statement
3. String sql = String sql = " select i.idindeks, (i.tf * t.idf) bobot from indeks i,term t where i.idterm = t.idterm and t.term='"+term+"' ";
4. Execute
5. Selama ada hasil(rs.next()) 6. Statement stmtUpd =
kon.getKoneksi().createStatement();
7. stmtUpd.executeUpdate("update indeks set bobot = " + rs.getDouble(2) + " where idindeks = " + rs.getInt(1));
8. stmtUpd.close();
31.
a. Nama kelas : IndekTerm b. Nama method : hitingTF(List list) c. Fungsi method : berfungsi menghitung tf
d. Tipe : List
e. Algoritma Method
1. Buat templist dari kelas arraylist 2. Buat variable term bertipe kelas Term 3. Buat dan termTmp = null bertipe Term 4. Set term=list.get(0);->indek ke 0 5. Set term.setTf(1);
6. Boolean kode ==true
7. Masukkan term tersebut ke termTmp 8. For i=1 to list.size()-.ukuran masukan 9. term = list.get(i)
10.For j=0 to termlist.size()-.ukuran masukan 11.termTmp=templist.get(j);
12.if term equal termTmp then
13.set termTmp.setTF(termTmp.getTf()+1) 14.temrList.remove(j) 15.termList.add(j,term) 16.kode false 17.end if 18.end for 19. if (kode == true) 20.term.setTf(1); 21.tmpList.add(term); 22.end if 23.end for 24.return termlist 25.Buat SQL statement