BAB IV PERANCANGAN 4.1 Perancangan Kelas Diagram perancangan kelas untuk aplikasi dapat dilihat pada Gambar IV-1. Perancangan kelas tersebut berlaku pada setiap knowledge base yang ada, sehingga pada aplikasi ini tidak dikenal istilah host dan client yang terpisah. Pada suatu saat setiap knowledge base dapat berperan sebagai host maupun server.
<
> Login
<> ViewInfo
+Db: DB +showLogin() +verifyLogin(user: string, pass: string) +endLogin()
<> ReviewInfo
+Db: DB +Isi: String
+Db: DB +Isi: String
+ShowViewInfoDetail(info_id: Int) +ShowViewInfoList(topic_id: Int) +ShowViewInfoForm() +AddInfoMetadata(trustvalue: float)
+ShowReviewInfoList() +ShowReviewInfoDetail(tempdataid: int) +ProcessReviewInfo(tempdataid: int, process: int) <> TopicManager
<> DB
+Db: DB +Isi: String
+Connection: string +ServerConn: string +DBHost: string +DBUser: string +DBPass: string +DBName: string +DBRes: string +DBNumRows: int +DBTemp: string
+ShowTopicList() +ShowTopicDetail() +EditTopic(topicid: int) +EditOccur(topicid: int, infoid: int, relval: int) +DelTopic(topicid: int) +AddOccur(topicid: int, infoid: int, relval: int) +AddAssoc(firsttopic: int, secondtopic: int, assoc: int) +AddNewTopic(topicname: string, topickywrd: string)
+DB(db_host, db_user, db_pass, db_name) +Open() +Close() +Query(sql: String)
<> InfoManager +Db: DB +Isi: String +ShowInfoList() +EditInfo(infoid: int, info: arr of string) +AddInfo(info: arr of string) +DelInfo(infoid: int) <> BroadcastInfo +Db: DB +Isi: String +WSClient: WSCLIENT
<> WSClient +Db: DB +WSClientSearch(topic: String, info: String) +WSClientRetrieve(message: array of string)
+ShowBroadcastInfoForm() +ShowBroadcastInfoList(topicid: int) +ShowBroadcastInfoDetail(infoid: int) +ProcessBroadcastInfo(infoid: int, topicid: int, message: string)
<> NuSOAP
<> GetInfo
<> WSHost
+Db: DB +Isi: String +WSClient: WSCLIENT
+ListKB: array of string
+ShowGetInfoForm() +ShowGetInfoList() +ShowGetInfoDetail(tempdataid: int) +SearchGetInfo(keyword, topic) +ProcessGetInfo(tempdataid: int, process: int)
+WSHostSearch(topic: String, info: String) +WSHostSend(information: array of string)
Gambar IV-1 Diagram kelas perancangan
1
IV-2 Di dalam perancangan kelas pada Gambar IV-1, terdapat sebuah kelas tambahan yang digunakan, yaitu kelas NuSOAP untuk menyediakan fungsi-fungsi terkait dengan web service. Kelas WSClient dan WSHost akan menggunakan fungsi-fungsi tersebut untuk memfasilitasi agar aplikasi ini dapat melakukan pertukaran informasi antar knowledge base. Pemetaan kelas analisis menjadi kelas perancangan dapat digambarkan pada Tabel IV-1berikut. Tabel IV-1 Tabel pemetaan kelas analisis pada kelas perancangan
Kelas Analisis ViewInfo GetInfo ReviewInfo BroadcastInfo DB SearchInfo WSClient WSHost AdminLogin InfoManager
Kelas Perancangan ViewInfo GetInfo ReviewInfo BroadcastInfo DB WSClient WSHost Login InfoManager TopicManager NuSOAP
Secara umum, fungsi dari setiap kelas sesuai dengan use case analisis yang telah ada, sehingga tidak perlu dilakukan redefinisi dari use case. Di dalam kelas-kelas yang didefinisikan terdapat beberapa perubahan sebagai hasil dari prototyping aplikasi. Perincian fungsi-fungsi yang terdapat pada setiap kelas dapat dilihat pada lampiran A tugas akhir, sedangkan perubahanperubahan yang terjadi pada definisi kelas tersebut adalah sebagai berikut: Penggabungan kelas SearchInfo dengan WSClient. Hal ini dilakukan dengan pertimbangan bahwa keberadaan kelas SearchInfo dapat digantikan dengan sebuah fungsi pada kelas WSClient. Pemekaran kelas InfoManager menjadi dua buah kelas, yaitu InfoManager dan TopicManager. InfoManager dikhususkan untuk menangani manajemen informasi dan occurrence terkait dengan informasi tertentu, sedangkan TopicManager menangani manajemen topic, occurrence dan association.
IV-3
4.2 Perancangan Antarmuka Untuk mendukung kemudahan penggunaannya, aplikasi ini dirancang untuk menggunakan antarmuka web sebagai tampilannya. Rancangan dari antarmuka aplikasi secara umum dapat dilihat pada Gambar IV-2, dimana antarmuka aplikasi dibagi menjadi lima bagian.
Gambar IV-2 Desain antarmuka aplikasi secara umum
Bagian pertama adalah Header berfungsi sebagai penampil nama aplikasi. Bagian selanjutnya adalah navigation panel yang merupakan lokasi dari untuk mengakses setiap fitur yang dimiliki oleh aplikasi ini. Bagian ketiga adalah side panel yang berfungsi untuk menjaga tinggi minimum dari halaman aplikasi. Bagian keempat adalah footer yang berisi informasi tentang copyright aplikasi. Yang terakhir, bagian content adalah antarmuka utama dari aplikasi tugas akhir ini. Antarmuka content berfungsi untuk menampilkan isi dari fitur yang tersedia dalam aplikasi. Seluruh interaksi yang dilakukan oleh user / admin dilakukan di dalam antarmuka ini, kecuali navigasi yang dilakukan pada bagian navigation panel.
4.3 Perancangan Basis Data Perancangan basis data yang dilakukan mencakup skema basis data untuk penyimpanan informasi-informasi knowledge base dan skema basis data untuk penyimpanan hasil broadcast dari basis data lainnya.
IV-4 Terdapat beberapa penyesuaian dari ERD analisis yang dimiliki. Dari hasil perubahan-perubahan tersebut, maka dihasilkan skema basis data repositori knowledge base sebagaimana terdapat pada Sub bab 4.3.1 di bawah ini. 4.3.1 Konversi Dari Sub bab 3.3.2 dan Sub bab 3.4 telah didapatkan relasi-relasi untuk struktur repositori knowledge base. Pada Sub bab ini akan dilakukan normalisasi dari relasi-relasi tersebut. 4.3.1.1 Entitas assoc_types Relasi dari entitas assoc_types dituliskan sebagai berikut: Assoc_types = { type_id, type_name, type_ket }
Dari relasi di atas dapat ditentukan functional dependency (FD) seperti berikut: type_id -> type_id, type_name, type_ket
Relasi tersebut tidak memerlukan normalisasi karena sudah berbentuk BCNF. 4.3.1.2 Entitas topic Relasi dari entitas topic dituliskan sebagai berikut: Topic = { topic_id, topic_name, topic_keyword }
Dari relasi di atas dapat ditentukan functional dependency (FD) seperti berikut: topic_id -> topic_id, topic_name, topic_keyword
Relasi tersebut tidak memerlukan normalisasi karena sudah berbentuk BCNF. 4.3.1.3 Entitas info Relasi dari entitas info dituliskan sebagai berikut: info = { info_id, info_keyword, info_content, info_judul, info_hit, trust_value, last_access }
Dari relasi di atas dapat ditentukan functional dependency (FD) seperti berikut:
IV-5 info_id ->info_id, info_keyword, info_content, info_judul, info_hit, trust_value, last_access
Relasi tersebut tidak memerlukan normalisasi karena sudah berbentuk BCNF. 4.3.1.4 Relasi assoc Relasi dari entitas assoc dituliskan sebagai berikut: Assoc = { first_topic, second_topic, type_id }
Dari relasi di atas dapat ditentukan functional dependency (FD) seperti berikut: first_topic, second_topic -> first_topic, second_topic, type_id
FD tidak menyertakan type_id sebagai key, karena dipastikan hanya ada satu asosiasi di antara dua buah topik tertentu. Relasi ini tidak memerlukan normalisasi karena sudah berbentuk BCNF. 4.3.1.5 Relasi occurence Relasi dari entitas occurence dituliskan sebagai berikut: Occurence = { topic_id, info_id, relevance_value, vt_start, vt_end }
Dari relasi di atas dapat ditentukan functional dependency (FD) seperti berikut: topic_id, info_id -> topic_id, info_id, relevance_value, vt_start, vt_end
Relasi tersebut tidak memerlukan normalisasi karena sudah berbentuk BCNF. 4.3.1.6 Entitas TempData Relasi dari entitas tempdata dituliskan sebagai berikut: tempdata = {
tempdata_id,
topic_name,
topic_keyword,
info_judul,
info_content,
info_keyword,
vt_start, info_hit,
vt_end,
relevance_value,
trust_value,
last_access,
sender_message }
Dari relasi di atas dapat ditentukan functional dependency (FD) seperti berikut: tempdata_id
->
tempdata_id, info_judul,
topic_name, info_content,
topic_keyword, info_keyword,
vt_start, info_hit,
vt_end,
relevance_value,
trust_value,
sender_message
Relasi tersebut tidak memerlukan normalisasi karena sudah berbentuk BCNF.
last_access,
IV-6 4.3.2 Perancangan Basis Data Knowledge base Berdasarkan FD yang telah terdefinisi pada Sub bab 4.3.1.1 sampai dengan Sub bab 4.3.1.5 di atas, maka dihasilkan sebuah skema basis data untuk penyimpanan informasi pada knowledge base sebagaimana terdapat pada Gambar IV-3. info PK
occurence
info_id
PK,FK1 PK,FK2
info_judul info_content info_keyword info_hit trust_value last_access
vt_start vt_end relevance_value
assoc_types PK
type_id type_name type_ket
info_id topic_id
topic
assoc PK,FK3 PK,FK1
first_topic second_topic
FK2
type_id
PK
topic_id topic_name topic_keyword is_top
Gambar IV-3 Skema basis data knowledge base
4.3.3 Perancangan Basis Data Temporary Data Dari FD yang terdapat pada Sub bab 4.3.1.6, maka dihasilkan sebuah skema basis data untuk melakukan penyimpanan sementara informasi sebagaimana ditunjukkan pada Gambar IV-4. tempdata PK
tempdata_id topic_name topic_keyword relevance_value vt_start vt_end info_judul info_content info_keyword info_hit trust_value last_access sender_message
Gambar IV-4 Skema basis data TempData