• Tidak ada hasil yang ditemukan

IMPLEMENTASI DAN PENGUJIAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI DAN PENGUJIAN"

Copied!
14
0
0

Teks penuh

(1)

BAB V

IMPLEMENTASI DAN PENGUJIAN

Bab ini merupakan pembahasan mengenai implementasi perangkat lunak untuk menerapkan dynamic folksonomy dan pengujian terhadap perangkat lunak yang telah diimplementasikan. Perangkat lunak yang dibangun diberi nama Folksonomy Generator v2.0.

5.1

Implementasi Perangkat Lunak

Implementasi perangkat lunak dilaksanakan berdasarkan analisis dan perancangan yang ada pada bab sebelumnya. Pembahasan pada bagian ini meliputi lingkungan implementasi, implementasi kelas, dan implementasi antarmuka.

5.1.1 Lingkungan Implementasi

Lingkungan implementasi disesuaikan dengan analisis lingkungan pengembangan yang terdapat pada subbab 3.3.2.2. Sistem operasi yang digunakan dalam pengembangan perangkat lunak adalah Fedora Core 7. Sistem operasi ini dipilih karena distro Linux ini telah lama dipakai oleh pengembang. Bahasa pemrograman yang dipilih adalah C/C++. Untuk melakukan kompilasi menggunakan standard GNU GCC. C/C++ akan berjalan pada level sistem sebagai service (daemon). Bahasa pemrograman PHP digunakan untuk memodifikasi modul folksonomy yang terdapat pada aplikasi digital library.

5.1.2 Implementasi Kelas

Pada bagian ini akan mendeskripsikan kelas-kelas yang diimplementasikan pada perangkat lunak folksonomy generator. Pada tahap implementasi kelas terdapat penambahan kelas-kelas baru. Hal ini dikarenakan folksonomy generator tidak hanya harus bekerja secara background process namun juga harus bertindak sebagai daemon (service level).

(2)

Untuk memudahkan pengaturan, source code dibagi kedalam beberapa folder. Susunan folder pada folksonomy generator sebagai berikut:

Gambar V-1. Struktur folder dari aplikasi folksonomy generator.

Berikut ini adalah deskripsi masing-masing folder berikut kelas-kelas yang terdapat didalamnya:

1. Folder service

Folder ini berisi kelas-kelas yang akan menagani layanan pada sisi server dan client.

Kelas Client_service Deskripsi

Kelas ini akan mengatur manajemen pengiriman pesan atau request serta penerimaan pesan atau respon dari dan ke folksonomy generator (daemon). Kelas ini bertindak sebagai client FIFO.

Keamanan terhadap Thread

Kelas ini aman terhadap multithreading karena tidak ada proses external yang mengubah property internal.

Kelas Server_service Deskripsi

Kelas ini mengatur penerimaan pesan atau request serta pengiriman pesan atau response ke sisi client. Kelas ini berada pada folksonomy generator (daemon). Kelas ini

(3)

bertindak sebagai server FIFO.

Keamanan terhadap Thread

Kelas ini aman terhadap multithreading karena tidak ada proses eksternal yang merubah property internal.

Kelas Packet Deskripsi

Merupakan paket untuk mengirimkan request atau menerima response dari client ke server. Packet ini berisi PID client, request, nomor node, jumlah tag, serta response.

Keamanan terhadap Thread

Kelas ini tidak aman terhadap multithreading karena ada pengubahan terhadap property internal.

Tabel V-1. Tabel kelas pada folder service. 2. Folder folksgen

Folder ini berisi kelas-kelas yang akan menangani penyusunan tag cloud secara dinamis sesuai dengan domainnya. Folder ini merupakan folder utama dari aplikasi folksonomy generator.

Kelas FolksonomyManagerImpl Deskripsi

Kelas ini untuk memenuhi spesifikasi bahwa hanya satu instance saja yang eksis pada saat runtime.

Keamanan terhadap Thread

Kelas ini aman dari multithreading karena tidak ada property internal dari kelas ini yang berubah. Kelas ini hanya memberikan initialisasi apabila FolksonomyManager instance belum eksis.

Kelas DefaultFolksonomyManager Deskripsi

Kelas ini mengimplementasikan method yang ada pada FolksonomyManager. DefaultFolksonomyManager merupakan kelas yang menangani proses bisnis dari folksonomy generator.

Keamanan terhadap Thread

Kelas ini tidak aman dari proses multithreading. Terdapat method yang mengubah property internal sehingga untuk proses pengubahan property internal harus diyakinkan bahwa hanya satu thread yang berhak mengakses property tersebut.

(4)

Kelas nodeTree Deskripsi

Kelas yang merepresentasikan node tree. Kelas ini berisi informasi nomor node dan informasi keyword yang berada pada node tersebut serta frekuensinya.

Keamanan terhadap Thread

Kelas ini tidak aman terhadap multithreading. Apabila terdapat perubahan property internal dari sebuah node maka harus diyakinkan bahwa tidak ada proses lain yang mengakses kelas ini.

Interface FolksonomyManager Deskripsi

Interface ini merepresentasikan mekanisme umum yang digunakan pada folksonomy generator.

Keamanan terhadap Thread

Keamanan dari method yang didefinisikan oleh interface ini terhadap multithreading tergantung dari bagaimana method ini dimplementasikan.

Kelas ListTag Deskripsi

Kelas ini berisi informasi keyword yang merupakan keyword popular pada satu group.

Keamanan terhadap Thread

Kelas ini tidak aman terhadap multithreading. Hal ini disebabkan karena ada perubahan property internal.

Kelas Cellist Deskripsi

Kelas ini berisi informasi tagging dan disusun terurut berdasarkan frekuensinya.

Keamanan terhadap Thread

Kelas ini tidak aman terhadap multithreading. Hal ini disebabkan karena ada perubahan property internal.

Kelas Pool Deskripsi

Kelas ini merupakan V-4V-4ontainer untuk melakukkan pengelompokan berdasarkan huruf awal literal keyword.

Keamanan terhadap Thread

(5)

karena terdapat mekanisme perubahan property internal.

Kelas FolksonomyHelper Deskripsi

Kelas ini berisi method yang umum dipakai. Pemisahan mekanisme yang umum dipakai untuk mengurangi coding yang redundant.

Keamanan terhadap Thread

Kelas ini aman dari multithreading.

Tabel V-2. Tabel kelas pada folder folksgen.

3. Folder folksgend

Folder ini berisi kelas yang akan membuat aplikasi folksonomy generator bertindak sebagai daemon ataukah client.

Kelas Folksgend Deskripsi

Folksgend merupakan kelas yang dapat bertindak sebagai client maupun sebagai service (daemon). Kelas ini akan bertindak sebagai daemon apabila perintah start dijalankan. Kelas ini merupakan kelas manager yang akan mengatur layanan pada sisi server dan layanan pada sisi client.

Keamanan terhadap Thread

Kelas ini harus aman terhadap multithreading. Tiap-tiap request ke server harus berjalan secara atomic. Apabila hal ini tidak dapat dipenuhi maka akan terjadi race condition yang menyebabkan munculnya defunc atau process zombie.

Tabel V-3. Tabel kelas pada folder folksgend.

4. Folder message

Folder ini berisi kelas yang mengatur format tampilan dari respon atas suatu request.

Kelas Message Deskripsi

Kelas ini akan menformat pesan yang akan dijadikan response ke client.

Keamanan terhadap Thread

Kelas ini aman terhadap multithreading karena tidak ada property internal.

(6)

5. Folder tester

Folder ini berisi file-file yang digunakan untuk melakukan pengetesan terhadap aplikasi folksonomy generator.

File Main.cpp Deskripsi

File ini untuk menguji aplikasi folksonomy generator apakah aman terhadap multithreading atau tidak. Apabila melalui pengujian ini tidak terjadi error atau muncul zombie maka aplikasi folksonomy generator adalah aman.

Keamanan terhadap Thread

Kelas ini aman terhadap multithreading karena merupakan driver.

Main Tservice.cpp Deskripsi

File ini sebagai driver dari folksnomy generator.

Keamanan terhadap Thread

Kelas ini aman terhadap multithreading karena merupakan driver.

Tabel V-5. Tabel file pada folder tester.

6. Folder data

Folder ini merupakan tempat dataset. Format dataset adalah <no>_.tag. Contohnya adalah 0.tag, 1.tag, dan seterusnya.

7. Folder log

Folder ini berisi file log. File log ini untuk melihat aktifitas dari aplikasi folksonomy generator. Selain itu bertujuan untuk melakukan audit apabila terjadi kegagalan.

8. Folder lock

Folder lock ini berisi PID file dari daemon. 9. Folder tmp

Folder ini berisi file FIFO. File FIFO ini sebagai pipa antara daemon dengan client.

(7)

5.1.3 Implementasi Antarmuka

Pada dasarnya folksnomy generator tidak memerlukan antarmuka berupa GUI (Graphical User Interface). Folksonomy generator akan diintegrasikan dengan web digital library sehingga perlu dilakukan modifikasi pada modul folksonomy. Berikut ini adalah antarmuka pada modul folksonomy setelah dilakukan perubahan.

Gambar V-2. Antamuka modul folksonomy pada level administrator.

5.2

Pengujian Perangkat Lunak

Bagian ini berisi pengujian terhadap perangkat lunak. Pembahasan pada bab ini terbagi atas beberapa bagian meliputi tujuan dari aplikasi yang dikembangkan, lingkungan pengujian, skenario dari pengujian yang dilakukan, hasil pengujian serta analisis terhadap hasil pengujian.

(8)

5.2.1 Tujuan Pengujian

Pengujian perangkat lunak folksonomy generator bertujuan untuk memeriksa apakah perangkat lunak yang dikembangkan berjalan sesuai dengan skenario pengujian. Apabila ditemukan kesalahan maka akan dilakukan perbaikan dan penyempurnaan terhadap kesalahan tersebut. Berdasarkan hasil dari pengujian perangkat lunak kemudian akan diambil kesimpulan terhadap sukses tidaknya pengujian tersebut.

5.2.2 Lingkungan Pengujian

Lingkungan pengujian yang dilakukan adalahpada sistem operasi Fedora Core 7. Pengembang tidak melakukan pengujian pada Microsoft Windows karena kode daemon untuk UNIX tidak dapat berjalan pada Windows.

5.2.3 Skenario Pengujian

Pengujian perangkat lunak folksonomy generator meliputi beberapa tahap yakni:

1. Pengujian pada level command line.

2. Pengujian saat diintegrasikan dengan web digital library.

3. Pemberian formulir survey kepada beberapa mahasiswa dan pegawai perpustakaan pusat I TB.

5.2.3.1 Skenario Pengujian Pada Level Command Line.

Pengujian ini meliputi skenario sebagai berikut: 1. Menjalankan service folksonomy generator. 2. Menghentikan service folksonomy generator. 3. Me-restart service folksonomy generator.

4. Menampilkan informasi dari service folksonomy generator. 5. Mengambil tag cloud dengan domain tertentu

6. Melakukan pengujian multithreading (start, restart, stop). 7. Melakukan pengujian multithreading (start, fetch, info).

5.2.3.2 Skenario Pengujian Pada Web Digital Library.

Pengujian ini meliputi scenario sebagai berikut: 1. Membangun dataset

(9)

2. Menghapus dataset

3. Mengaktifkan service folksonomy generator. 4. Menonaktifkan service folksonomy generator.

5. Menyusun ulang data tag cloud pada service folksonomy generator.

6. Tag cloud berubah secara dinamis saat menelusuri folder pada digital library.

5.2.4 Hasil Pengujian

Pengujian kinerja perangkat lunak dilakukan oleh tiga orang. Pengujian ini ditekankan apakah fungsionalitas dari perangkat lunak dapat berjalan dengan baik ataukah tidak. Formulir pengujian ini terdapat pada lampiran A. Selain pengujian kinerja perangkat lunak juga dilakukan pengujian akan kemanfaatan penggunaan dynamic folksnomy dalam membantu melakukan pencarian pada digital library. Formulir untuk pengujian ini terdapat pada lampiran B.

Berikut ini merupakan hasil pengujian yang disesuaikan dengan skenario yang ditentukan pada bagian 4.2.3.

5.2.4.1 Hasil Pengujian Pada Level Command Line.

Pengujian ini dilakukan dengan mengetikkan beberapa perintah pada terminal (console). Berikut ini table yang mendeskripsikan hasil pengujian oleh beberapa penguji.

No Pengujian Penguji

1 2 3

1 Menjalankan service folksonomy generator. OK OK OK 2 Menghentikan service folksonomy generator. OK OK OK 3 Me-restart service folksonomy generator. OK OK OK 4 Menampilkan informasi dari service folksonomy

generator. OK OK OK

5 Mengambil tag cloud dengan domain tertentu. OK OK OK 6 Pengujian multithreading (start, restart, stop). OK GAGAL OK 7 Pengujian multithreading 2 (start, fetch, info). OK OK OK

Tabel V-6. Tabel hasil pengujian pada level command line.

5.2.4.2 Hasil Pengujian Pada Web Digital Library

Aplikasi folksonomy generator diintegrasikan dengan modul folksonomy pada aplikasi web digital library. Tujuan utama dari pengujian ini adalah apakah tag cloud

(10)

yang ditampilkan dapat berbeda-beda sesuai dengan domain dari node yang diakses. Berikut ini adalah hasil pengujian dari beberapa penguji.

No Pengujian Penguji

1 2 3

1 Membangun dataset OK OK OK

2 Menghapus dataset. OK OK OK

3 Mengaktifkan service folksonomy generator. OK OK OK 4 Menonaktifkan service folksonomy generator. OK OK OK 5 Menyusun ulang data tag cloud pada service folksonomy

generator. OK OK OK

6 Tag cloud berubah secara dinamis saat menelusuri folder

pada web digital library. OK OK OK

Tabel V-7. Hasil pengujian pada web digital library.

5.2.4.3Hasil Survey Kemanfaatan Dynamic Folksonomy

Survey untuk mengetahui kemanfaatan penggunaan dynamic folksonomy dilakukan kepada beberapa mahasiswa dan pegawai perpustakaan ITB. Dalam melakukan survey, perangkat lunak belum digabungkan dengan web digital library ITB sehingga untuk membantu pelaksanaan survey, aplikasi untuk diujicobakan masih memanfaatkan aplikasi yang ada pada laptop pengembang. Formulir untuk melakukan survey dapat dilihat pada lampiran B.

Berikut ini adalah penyebaran data dari user yang berpartisipasi pada survey:

No Pekerjaan Jumlah

1 Mahasiswa 3

2 Pustakawan 6

3 Webmaster 2

(11)

Hasil survey ditunjukkan pada tabel berikut:

No Topik

Pilihan

1 2 3

1 Pencarian dokumen dengan tag cloud 11 0 0

2 Pencarian dokumen dengan penulusuran subfolder 6 4 1 3 Pencarian dokumen yang berkaitan dengan dokumen

yang dibuka. 9 2 0

4 Dynamic folksonomy dalam membantu memberikan

informasi dokumen yang terdapat pada suatu domain. 10 1 0 5 Pencarian dokumen dengan dynamic folksonomy 8 3 0

6 Keefektifan pencarian dokumen 0 2 9

Berikut ini merupakan isi dari beberapa pilihan pada survey.

1. Nomor 1,2,3, dan 5; Pilihan 1 berisi jawaban “mudah”, pilihan 2 berisi jawaban “ragu-ragu” dan pilihan 3 berisi jawaban “sulit”.

2. Nomor 4; Pilihan 1 berisi jawaban “ya”, pilihan 2 berisi jawaban “ragu-ragu”, dan pilihan 3 berisi jawaban “tidak”.

3. Nomor 6; Pilihan 1: Eksplorasi melalui subfolder, Pilihan 2: Cukup dengan memanfaatkan daftar tag cloud di halaman depan, Pilihan 3: Bereksplorasi melalui subfolder dan memperhatikan tag cloud yang ditampilkan.

5.2.5 Analisis Hasil Pengujian

Hasil pengujian memberikan gambaran bahwa tidak semua skenario pengujian berjalan dengan baik. Pengujian multithreading1 (start, restart, stop) tidak berjalan dengan sempurna. Permasalahan utama yakni perintah “restart” tidaklah aman terhadap multithreading. Oleh karena itu, perintah restart sebaiknya dihindari. Pengujian terhadap multithreading ini untuk mengecek apakah perangkat lunak handal apabila dijalankan oleh sistem dengan multi thread.

Dalam melakukan pengujian terhadap performansi perangkat lunak saat di implementasikan ke operating Sistem lain seperti FreeBSD maupun Mac OS X,

(12)

teradapat beberapa kendala. Beberapa kendala tersebut berkaitan dengan pengimplementasion semaphore. Perbedaan semaphore library ini menyebabkan adanya beberapa fungsi semaphore yang tidak dikenali. Untuk menyelesaikan permasalahan tersebut, fungsi – fungsi semaphore yang digunakan pada perangkat lunak ini harus didukung oleh library semaphore yang terdapat pada operating sistem yang digunakan sebagai media implementasi.

Pengembang menerima beberapa saran dari penguji berkaitan dengan aplikasi folksonomy generator. Beberapa saran tersebut yakni:

1. Perbaikan penanganan perintah “restart” pada apliaksi folksonomy generator agar thread-safety.

2. Untuk command line, bila option syntax tidak tersedia agar diberikan peringatan. 3. Pada modul folksonomy di web digital library, penggunaan masing-masing menu

agar dibuatkan manualnya.

Saran – saran diatas sangat membangun dalam mengembangkan aplikasi folksonomy generator. Saran – saran diatas tidak seluruhnya dapat dipenuhi oleh pengembang. Saran pertama tidak dapat dipenuhi karena pengembang tidak menemukan alternatif lain untuk membuat perintah “restart” thread-safety. Pemecahan permasalahan ini adalah perintah “restart” sebaiknya dijalankan oleh administrator yang langsung mengakses terminal. Thread-safety pada perangkat lunak memiliki pengertian bahwa perangkat lunak harus berjalan dengan baik pada aplikasi/program multithreading.

Dari hasil pengujian, dynamic folksonomy dapat tercapai dengan bantuan aplikasi folksonomy generator. Hal ini ditunjukkan dari hasil pengujian bahwa tag cloud berubah secara dinamis saat mengakses folder-folder pada aplikasi web digital library. Perubahan tag cloud ini disebabkan karena adanya perubahan domain dari folder (node) yang diakses. Gambar V-3 dan Gambar V-4 memberikan ilustrasi bahwa terdapat perbedaan tag cloud yang ditampilkan.

(13)

Pada Gambar V-3, tag cloud yang ditampilkan merupakan agregasi tag yang terdapat pada subfolder Dept_of_Aeronautics_Eng, Dept_of_Civil_Engineering, Dept_of_Electrical_Eng, dan Dept_of_Mechanical_Eng. Ruang lingkup yang lebih kecil akan menampilkan tag-tag yang lebih spesifik yang mana belum tentu tag-tag yang ditampilkan tersebut muncul pada halaman utama (Home).

Gambar V-3. Tag cloud pada sub folder Proceedings.

Pada Gambar V-4, tag cloud yang ditampilkan merupakan agregasi tag yang terdapat pada subfolder Dept_of_Civil_Engineering dan Dept_of_Informatics. Tag cloud yang ditampilkan sangat berbeda dengan tag cloud yang ditampilkan pada sub folder Proceedings. Hal ini disebabkan domain data untuk agregasi tag berbeda. Hal ini menunjukkan bahwa dynamic folksonomy pada metadata yang telah tersusun dengan prinsip taxonomy dapat terwujud.

(14)

Gambar

Gambar V-1. Struktur folder dari aplikasi folksonomy generator.
Tabel V-1.  Tabel kelas pada folder service.  2.  Folder folksgen
Tabel V-2. Tabel kelas pada folder folksgen. 3.  Folder folksgend
Tabel V-5. Tabel file pada folder tester. 6.  Folder data
+6

Referensi

Dokumen terkait

Dari hasi penelitian karakteristik penerimaan dimana orang yang menerima dirinya memiliki harapan yang realistis terhadap keadaan dan menghargai dirinya yang

Tujuan penelitian ini adalah untuk mendeskripsikan dan menganalisa bagaimana Partisipasi Rumah Tangga Sangat Miskin (RTSM) dalam Program Keluarga Harapan (PKH)

Basirun Sawmill tidak menggunakan bahan baku kayu impor dan tidak melakukan impor kayu dan atau produk kayu, sehingga verifier ini tidak diaplikasikan.

Hal ini sangat beralasn sebab pengaturan masalah pencurian ikan/ Illegal Fishing itu sendiri masih baru saja diatur dalam Hukum positif kita, dengan

Dalam pengujian ini dilakukan untuk mengukur keakuratan dan membandingkan hasil yang telah melalui proses modifikasi dengan proses yang langsung. Pada tiap

Kemudian, sambungkan alat pengukur tingkat kematangan buah dengan komputer menggunakan kabel USB melalui USB Port.Perhatikan lampu indicator.Jika lampu indicator menyala berarti

Mesnet donatısı hesabı yapılırken Xküçük/Xbüyük oranına bakmak gereklidir.Buna göre Xk/Xb&lt;0,8 olması durumunda aradaki moment farkının 2/3’lük kısmı

Teori tersebut juga sesuai dengan hasil penelitian yang dilakukan Merry Fanada (2012) yang menyebutkan bahwa ada hubungan yang bermakna antara Status Imunisasi