BAB III ANALISIS DAN PERANCANGAN Bab ini berisi penjelasan tentang metodologi, analisis, dan perancangan. Dalam subbab metodologi akan dijelaskan metodologi yang dipakai dalam membangun perangkat lunak. Subbab analisis berisi penjelasan tentang hasil analisis yang dilakukan dalam Tugas Akhir. Terakhir, subbab perancangan berisi penjelasan tentang hasil perancangan perangkat lunak yang dilakukan dalam Tugas Akhir.
3.1 Metodologi Metodologi yang digunakan dalam pengembangan perangkat lunak Tugas Akhir ini mengacu pada Unified Proses (UP). UP memiliki empat fase, yaitu Inception, Elaboration, Construction, dan Transition. Dalam UP, terdapat core-workflows: requirements, analysis, design, implementation, dan testing. Kelima workflows inti tersebut dilakukan secara berulang-ulang (iterative) dalam setiap fase dengan prioritas yang berbeda-beda sampai semua fungsionalitas perangkat lunak berhasil diimplementasikan. Iterasi yang bersifat incremental ini merupakan ciri utama metodologi UP. Deliverables setiap fase UP yang dijalankan dalam Tugas Akhir ini dapat dilihat pada Tabel III-1. Tabel III-1 Fase dan Deliverables UP dalam Tugas Akhir
No. 1.
Fase Inception
Deliverables 1. spesifikasi kebutuhan perangkat lunak 2. diagram use case 3. diagram sequence 4. diagram kelas tahap analisis
2.
Elaboration
1. diagram kelas tahap perancangan 2. komponen aplikasi 3. rancangan antarmuka 4. perancangan basis data 5. prototipe XCMS
3.
Construction
1. kelas-kelas XCMS 2. hasil pengujian kelas 3. hasil pengujian integrasi kelas-kelas 4. perangkat lunak semi-final
4.
Transition
1. hasil pengujian akhir 2. perangkat lunak final 3. dokumen final
III-1
III-2 Dalam Tugas Akhir ini, pemodelan perangkat lunak akan menghasilkan tiga buah diagram, yaitu use case diagram, sequence diagram, dan class diagram. Use case diagram dan skenario use case bermanfaat untuk memodelkan fungsionalitas perangkat lunak berdasarkan deskripsi dan spesifikasi yang dijelaskan pada bagian analisis. Dari beberapa use case, dibuat diagram sequence yang dapat menggambarkan urutan proses fungsionalitas tertentu dari perangkat lunak dan memperkirakan objek-objek yang dibutuhkan untuk setiap use case. Berdasarkan diagram sequence yang dihasilkan, dilakukan identifikasi kelas yang mungkin dikembangkan dan dibuat sebuah diagram kelas yang menunjukkan keterhubungan antar kelas tersebut.
3.2 Analisis Sesuai dengan metodologi yang dijelaskan pada subbab 3.1, workflow yang dilakukan pada fase inception adalah analisis dan pendefinisian kebutuhan perangkat lunak (requirements). Subbab ini berisi hasil analisis aplikasi CMS, identifikasi service, deskripsi perangkat lunak, spesifikasi kebutuhan, dan pemodelan perangkat lunak yang dibangun dalam Tugas Akhir.
3.2.1 Analisis Fitur Aplikasi CMS Analisis fitur aplikasi CMS dilakukan dengan melakukan eksplorasi terhadap aplikasi CMS yang didapatkan dari internet secara gratis. Aplikasi yang dieksplorasi yaitu Joomla versi 1.0.12 dan Drupal versi 5.1. Kedua aplikasi tersebut dipilih karena cukup populer dan banyak digunakan untuk mengelola website. Berdasarkan hasil eksplorasi, fitur Joomla dapat dilihat pada Tabel III-2, sedangkan fitur Drupal dapat dilihat pada Tabel III-3. Tabel III-2 Fitur Joomla No 1.
Jenis Fitur Pengelolaan content
Keterangan Meliputi penambahan, pengubahan, penerbitan, pencarian, dan penghapusan content. Tiap content dikelompokkan berdasarkan section dan category tertentu.
2.
Pengelolaan section dan category
Meliputi penambahan, pengubahan, penerbitan, dan penghapusan section dan category. Setiap category merupakan anak dari section tertentu.
3.
Pengelolaan user
Meliputi penambahan, pengubahan, dan penghapusan user. Setiap user harus terdefinisi pada group tertentu. Setiap group memiliki hak akses berbeda terhadap aplikasi.
4.
Pengelolaan media
Meliputi penambahan, dan penghapusan media berupa file gambar. File disimpan pada folder tertentu, dan hanya file yang berada pada folder tersebut yang dapat digunakan sebagai file pendukung content.
5.
Pengelolaan halaman depan
Digunakan untuk mengatur content yang akan ditampilkan pada halaman ketika website pertama kali dibuka
6.
Pengelolaan menu
Digunakan untuk mendefinisikan menu yang akan ditampilkan pada halaman web sebagai navigasi situs.
III-3 No 7.
Jenis Fitur Pengelolaan banner
Keterangan Merupakan fitur khusus untuk menampilkan gambar pada header situs yang akan merujuk pada situs tertentu (semacam iklan)
8.
Pengelolaan template
Template digunakan untuk keseragaman tampilan, seperti jenis dan ukuran font, tata letak content, header dan footer halaman web. Pengelolaan template meliputi penambahan dan penghapusan template.
9.
Pengelolaan modul
Modul merupakan komponen CMS yang memiliki fungsi tertentu. Pengelolaan modul meliputi penambahan, pengaktifan, dan penghapusan modul. Beberapa modul merupakan modul utama dan tidak dapat dihapus.
10.
Content syndication
Digunakan untuk menyediakan content summary dalam bentuk dokumen XML, menggunakan RSS, ATOM, dan OPML.
11.
Pengelolaan contact
Digunakan untuk menyimpan data tambahan user tertentu, semacam address book.
12.
Send mail
Digunakan untuk mengirim email.
13.
Trash management
Digunakan untuk mengelola content yang dihapus. Secara default, content yang dihapus dimasukkan ke dalam trash. Dalam trash management, dapat dilakukan penghapusan secara permanen atau tidak jadi menghapus content (restore).
14.
Help
Manual aplikasi bersifat online karena merujuk kepada situs resmi Joomla.
Tabel III-3 Fitur Drupal No 1.
Jenis Fitur Pengelolaan content
Keterangan Meliputi penambahan, pengubahan, penerbitan, pencarian, dan penghapusan content. Tiap content dikelompokkan berdasarkan jenisnya.
2.
Pengelolaan jenis content
Meliputi penambahan, pengubahan, penerbitan, dan penghapusan jenis content.
3.
Pengelolaan user
Meliputi penambahan, pengubahan, dan penghapusan user. Setiap user memiliki hak akses tertentu yang ditentukan administrator. Selain itu juga dapat dilakukan pendefinisian user role.
4.
Pengaturan layout halaman
Digunakan untuk mengatur tata letak content yang akan ditampilkan pada halaman web.
5.
Pengelolaan template
Template digunakan untuk keseragaman tampilan, seperti jenis dan ukuran font, tata letak content, header dan footer halaman web. Pengelolaan template meliputi pengubahan, dan pengaktifan template.
6.
Pengelolaan modul
Modul merupakan komponen CMS yang memiliki fungsi tertentu. Pengelolaan modul meliputi penambahan, pengaktifan, dan penghapusan modul. Beberapa modul merupakan modul utama dan tidak dapat dihapus.
7.
Content syndication
Digunakan untuk menyediakan content summary dalam bentuk dokumen XML, menggunakan RSS 2.0.
III-4 No 8.
Help
Jenis Fitur
9.
Logs
Keterangan Manual aplikasi terdapat pada instalasi aplikasi, tidak bersifat online. Berisi informasi aktivitas yang terjadi pada website, seperti terjadinya error, aksi administrator, dan sebagainya.
Berdasarkan studi pustaka tentang CMS yang dijelaskan pada subbab 2.4.2 dan hasil eksplorasi aplikasi CMS, ditetapkan beberapa fitur yang akan diimplementasikan pada aplikasi yang dibangun pada Tugas Akhir. Fitur tersebut antara lain pengelolaan content, pengelolaan kategori content, pengelolaan user, dan penampilan content pada halaman web. Fitur-fitur tersebut dipilih karena cukup mewakili fungsionalitas sebuah aplikasi CMS yaitu sebagai alat bantu untuk mengelola content.
Fitur pengelolaan content meliputi fungsi untuk menambah, mengubah, menghapus, mencari, dan menerbitkan content. Fitur pengelolaan kategori meliputi fungsi untuk menambah, mengubah, mencari, dan menghapus kategori atau sub kategori content. Sedangkan fitur pengelolaan user meliputi fungsi untuk menambah, mengubah, mencari, menghapus, dan melakukan validasi user. Sementara fitur penampilan content pada halaman web selain berfungsi untuk menampilkan content, juga berfungsi untuk membuat menu untuk navigasi situs berdasarkan kategori content.
3.2.2 Identifikasi dan Implementasi Web Service pada Modul CMS Berdasarkan hasil analisis fitur CMS yang dijelaskan pada subbab 3.2.1, aplikasi yang dibangun dalam Tugas Akhir ini akan mengimplementasikan beberapa fitur yang merupakan fitur minimal CMS, yaitu pengelolaan content, kategori, dan pengguna, serta fitur untuk menampilkan content ke dalam halaman web. Implementasi fitur tersebut dikelompokkan menjadi modul-modul CMS, berupa modul untuk pengelolaan content, pengelolaan kategori content, pengelolaan user, dan penampilan content pada halaman web.
Beberapa modul CMS yang akan diimplementasikan juga akan dikembangkan menjadi web service, yaitu modul pengelolaan content, pengelolaan kategori content, dan pengelolaan user. Modul pengelolaan content yang akan dikembangkan menjadi web service berupa fungsi untuk menambah, dan mendapatkan content. Modul pengelolaan kategori yang akan dikembangkan menjadi web service yaitu fungsi untuk menambah, mengubah, menghapus dan mendapatkan kategori atau sub kategori content. Modul pengelolaan user yang akan dikembangkan menjadi web service yaitu fungsi untuk melakukan validasi, menambah, mengubah, dan menghapus user. Hasil identifikasi web service yang akan diimplementasikan dapat dilihat pada Tabel III-4.
III-5 Tabel III-4 Identifikasi Web Service No 1.
Nama Service Get Content
Deskripsi Service ini berfungsi untuk mendapatkan dan mengirimkan content sesuai dengan permintaan client. Service ini memiliki parameter input berupa username dan password client, tanggal content yang diinginkan, kata kunci pencarian content, dan jumlah maksimal content yang diinginkan. Sedangkan output-nya berupa array yang berisi content yang sesuai dengan permintaan client.
2.
Get Category
Service ini berfungsi untuk mendapatkan dan mengirimkan kategori content. Service ini memiliki parameter input berupa username dan password client. Sedangkan output-nya berupa array yang berisi kategori content.
3.
Get Sub Category
Service ini berfungsi untuk mendapatkan dan mengirimkan sub kategori content sesuai dengan permintaan client. Service ini memiliki parameter input berupa username dan password client, serta kategori content. Sedangkan output-nya berupa array yang berisi sub kategori content yang sesuai dengan permintaan client.
4.
Validate User
Service ini berfungsi untuk melakukan validasi user. Service ini memiliki parameter input berupa username dan password client, serta username dan password yang akan divalidasi. Sedangkan output-nya berupa nilai boolean (true/false).
5.
Add Content
Service ini berfungsi untuk menambahkan content ke dalam aplikasi CMS. Service ini memiliki parameter input berupa username dan password client, serta parameter-parameter lain yang dibutuhkan untuk menambahkan content ke dalam basis data. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
6.
Add Category
Service ini berfungsi untuk menambahkan kategori content ke dalam aplikasi CMS. Service ini memiliki parameter input berupa username dan password client, serta parameter-parameter lain yang dibutuhkan untuk menambahkan kategori content ke dalam basis data. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
7.
Add Sub Category
Service ini berfungsi untuk menambahkan sub kategori content ke dalam aplikasi CMS. Service ini memiliki parameter input berupa username dan password client, serta parameter-parameter lain yang dibutuhkan untuk menambahkan sub kategori content ke dalam basis data. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
8.
Edit Category
Service ini berfungsi untuk mengubah kategori content. Service ini memiliki parameter input berupa username dan password client, serta parameter-parameter lain yang dibutuhkan untuk mengubah kategori content. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
9.
Edit Sub Category
Service ini berfungsi untuk mengubah sub kategori content. Service ini memiliki parameter input berupa username dan password client, serta parameter-parameter lain yang dibutuhkan untuk mengubah sub kategori content. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
10.
Delete Category
Service ini berfungsi untuk menghapus kategori content. Service ini memiliki parameter input berupa username dan password client, serta ID
III-6 No
Nama Service
Deskripsi kategori yang akan dihapus. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
11.
Delete Sub Category
Service ini berfungsi untuk menghapus sub kategori content. Service ini memiliki parameter input berupa username dan password client, serta ID sub kategori yang akan dihapus. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
12.
Add User
Service ini berfungsi untuk menambahkan data pengguna ke dalam aplikasi CMS. Service ini memiliki parameter input berupa username dan password client, serta parameter-parameter lain yang dibutuhkan untuk menambahkan data pengguna ke dalam basis data. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
13.
Delete User
Service ini berfungsi untuk menghapus data pengguna aplikasi CMS. Service ini memiliki parameter input berupa username dan password client, serta parameter-parameter lain yang dibutuhkan untuk menghapus data pengguna dari basis data. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
14.
Edit User
Service ini berfungsi untuk mengubah data pengguna aplikasi CMS. Service ini memiliki parameter input berupa username dan password client, serta parameter-parameter lain yang dibutuhkan untuk mengubah data pengguna. Sedangkan output-nya berupa nilai boolean (true/false) yang menjelaskan keberhasilan atau kegagalan.
Implementasi web service pada modul CMS dilakukan dengan cara memilih method dari suatu kelas pada modul tersebut untuk dijadikan web service. Untuk menangani akses terhadap web service tersebut, dibutuhkan semacam listener berupa kelas yang bertugas sebagai penerima permintaan akses yang kemudian akan menjalankan method tersebut. Keluaran yang dihasilkan method akan dikirimkan kepada pengirim permintaan melalui kelas listener tersebut.
Implementasi web service pada aplikasi CMS dikembangkan dengan menggunakan library SOAP Extension yang dimiliki oleh PHP. Library ini menyediakan kelas-kelas yang dapat digunakan untuk membuat web service, diantaranya kelas SoapServer dan SoapClient. Kelas SoapServer dapat digunakan untuk membuat instance server web service yang berfungsi untuk menyediakan web service (service provider) atau sebagai listener yang akan menerima dan merespon permintaan akses terhadap web service. Sedangkan kelas SoapClient digunakan untuk membuat instance client web service yang berfungsi untuk menggunakan layanan dari web service yang ada atau sebagai service requestor.
Aplikasi lain mendapatkan deskripsi layanan yang dimiliki aplikasi CMS melalui dokumen WSDL. Dengan WSDL ini, aplikasi lain dapat mengetahui deskripsi layanan yang dimiliki
III-7 aplikasi CMS, yaitu berupa method apa saja yang tersedia, parameter masukan, dan parameter keluaran dari method tersebut. Dokumen WSDL ini tidak dapat dibangkitkan secara otomatis oleh SOAP Extension. Oleh karena itu, dokumen WSDL yang akan digunakan harus dibuat secara manual.
3.2.3 Deskripsi Perangkat Lunak Perangkat lunak yang dibangun dalam Tugas Akhir diberi nama XCMS (eXtended Content Management System). Perangkat lunak ini berbasis pada web dan bersifat multiplatform (mampu dijalankan di berbagai sistem operasi). Perangkat lunak akan diinstal pada komputer yang berperan sebagai web server, dan basis data yang digunakan disimpan pada suatu database server. Web server maupun database server dapat berada pada satu komputer atau pada komputer yang berlainan. Pengguna dapat menjalankan aplikasi XCMS melalui sebuah web browser. Web service yang disediakan oleh aplikasi dapat diakses oleh aplikasi lain melalui suatu jaringan. Permintaan yang datang dari pengguna akan dieksekusi di server untuk kemudian dihasilkan response. Gambaran umum perangkat lunak yang akan dibangun dapat dilihat pada Gambar III-1.
Gambar III-1 Hubungan antara Pengguna dan Aplikasi
Bahasa pemrograman yang akan digunakan untuk membangun perangkat lunak adalah PHP. Bahasa ini dipilih karena memiliki kemampuan yang baik dalam pemrograman web, sudah cukup mapan, dan dukungan yang terus diberikan oleh para pengembang di seluruh dunia untuk mengembangkan PHP. PHP memiliki library yang cukup lengkap, salah satunya library untuk membangun web service yang sangat dibutuhkan untuk membangun perangkat lunak dalam Tugas Akhir ini. Selain itu, PHP juga dipilih karena merupakan bahasa pemrograman yang paling banyak digunakan untuk membangun aplikasi CMS.
3.2.4 Spesifikasi Kebutuhan Perangkat Lunak Aplikasi XCMS dikembangkan menggunakan bahasa PHP dengan library SOAP extension. Penggunaan library ini berdasarkan keunggulan utama library ini yaitu kecepatan yang lebih
III-8 baik dibandingkan library yang lain. Unsur kecepatan ini menjadi penting karena pertukaran data yang terjadi dalam web service menggunakan XML yang berukuran relatif besar. Selain itu library ini juga memiliki fitur yang cukup lengkap dan mudah digunakan.
Aplikasi yang dikembangkan memiliki beberapa fitur utama sebagai suatu CMS, seperti pengelolaan content, pengelolaan user, dan pengelolaan kategori content. Selain itu, beberapa method yang dimiliki oleh aplikasi dikembangkan menjadi web service agar dapat diakses oleh aplikasi di luar aplikasi XCMS. Untuk memanfaatkan web service yang dimiliki, aplikasi juga menyediakan fasilitas untuk menggunakan web service tersebut. Jadi, selain sebagai service provider, aplikasi dapat juga berperan sebagai service requestor.
Seperti yang telah dijelaskan pada subbab 3.2.1 tentang analisis fitur aplikasi CMS, aplikasi yang akan dikembangkan akan mengimplementasikan fitur pengelolaan content, kategori, dan user, serta penampilan content pada halaman web. Selain itu, aplikasi memiliki tambahan fitur yaitu menyediakan web service dan fasilitas untuk menggunakan web service yang telah dibuat. Spesifikasi kebutuhan perangkat lunak yang lengkap adalah sebagai berikut: 1. Aplikasi menyediakan fasilitas bagi pengguna untuk melakukan pengelolaan content, meliputi pembuatan content baru, pengubahan content, dan penghapusan content (SRS-01). 2. Aplikasi menyediakan fasilitas bagi pengguna untuk melakukan pengelolaan kategori content, yaitu pembuatan, pengubahan, dan penghapusan kategori (SRS-02). 3. Aplikasi menyediakan fasilitas bagi pengguna untuk melakukan pengelolaan data user aplikasi, yaitu pembuatan, pengubahan, dan penghapusan data user (SRS-03). 4. Aplikasi dapat menampilkan content yang ada pada halaman web yang dapat dilihat oleh pengguna (SRS-04). 5. Aplikasi menyediakan fasilitas untuk melakukan pencarian content sesuai dengan keinginan pengguna (SRS-05). 6. Aplikasi menyediakan fasilitas untuk melakukan registrasi bagi calon pengguna web service yang dimiliki aplikasi (SRS-06). 7. Aplikasi mampu melakukan validasi pengguna aplikasi maupun pengguna web service (SRS-07). 8. Aplikasi menyediakan web service untuk pengelolaan content, pengelolaan kategori content, dan pengelolaan user, seperti teridentifikasi pada subbab 3.2.2 (SRS-08). 9. Aplikasi menyediakan fasilitas bagi pengguna untuk memanfaatkan web service yang telah dibuat, dan dapat menyimpan hasilnya ke basis data (SRS-09).
III-9 Perangkat lunak yang akan dibangun hanya akan menangani satu jenis content, yaitu content web secara umum berupa teks yang dapat ditampilkan oleh web browser. Content tersebut dapat mengandung tag html yang sesuai dengan standar, dan akan ditampilkan ke dalam web browser sesuai dengan tag html yang dikandungnya.
Selain memiliki kebutuhan fungsional yang telah dijabarkan sebelumnya, aplikasi yang akan dibangun juga memiliki spesifikasi kebutuhan non-fungsional sebagai berikut: 1. Aplikasi harus dapat dijalankan pada berbagai sistem operasi, minimal Microsoft Windows XP dan Linux (SRS-NF-01). 2. Aplikasi harus dapat dijalankan pada berbagai web server yang mendukung PHP, minimal Apache dan IIS (SRS-NF-02). 3. Aplikasi harus dapat dijalankan pada berbagai web browser, minimal Internet Explorer dan Mozilla Firefox (SRS-NF-03).
3.2.5 Karakteristik Pengguna Aplikasi yang dibangun hanya memiliki 4 macam pengguna, yaitu webmaster, administrator, pengunjung situs, dan client application. Masing-masing pengguna memiliki hak akses yang berbeda-beda. Administrator adalah pengguna aplikasi yang memiliki hak akses tertinggi, yaitu dapat melakukan aksi: 1. mengelola, melihat dan mencari content. 2. mengelola kategori. 3. mengelola user. 4. menggunakan web service yang disediakan aplikasi.
Webmaster adalah pengguna aplikasi yang memiliki hak akses lebih rendah daripada administrator. Aksi yang dapat dilakukan oleh webmaster yaitu semua aksi yang dapat dilakukan oleh administrator kecuali aksi mengelola user. Sedangkan pengunjung situs merupakan pengguna aplikasi yang memiliki hak akses terendah, yaitu hanya dapat melakukan aksi: 1. melihat dan mencari content. 2. melakukan registrasi untuk dapat menggunakan web service. Sedang client application merupakan aplikasi lain yang menggunakan layanan dari web service yang dimiliki aplikasi.
3.2.6 Pemodelan Perangkat Lunak Sesuai dengan metodologi Tugas Akhir yang telah dijelaskan pada subbab 3.1, pada bagian ini akan dijelaskan pemodelan perangkat lunak yang merupakan salah satu aktifitas pada
III-10 tahap analisis. Pemodelan meliputi pembuatan diagram use case dan skenarionya, pembuatan diagram sequence, dan diagram kelas.
3.2.6.1 Pemodelan Kebutuhan Sistem Pemodelan kebutuhan sistem dibuat dalam bentuk diagram use case. Diagram use case yang dibuat dalam Tugas Akhir ini dapat dilihat pada Gambar III-2.
Gambar III-2 Diagram Use Case
Pada Gambar III-2 dapat dilihat bahwa aplikasi XCMS memiliki lima aktor, dua belas use case utama, dan lima extended use case. Hubungan antara aktor dan use case menggambarkan rangkaian interaksi antar keduanya dalam menjalankan suatu fungsi tertentu. Masing-masing use case yang terdapat dalam pemodelan kebutuhan sistem merepresentasikan fungsionalitas yang harus dimiliki oleh aplikasi. Use case tersebut diturunkan berdasarkan spesifikasi kebutuhan perangkat lunak yang telah dijelaskan pada subbab 3.2.4. Deskripsi untuk masingmasing use case dan aktor dapat dilihat pada Tabel III-5 dan Tabel III-6.
III-11 Tabel III-5 Deskripsi Use Case No 1.
Use Case Manage content
Deskripsi Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam melakukan pengelolaan terhadap content aplikasi.
ID SRS SRS-01
2.
Manage category
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam melakukan pengelolaan terhadap kategori suatu content.
SRS-02
3.
Manage user
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam melakukan pengelolaan terhadap pengguna aplikasi maupun pengguna web service.
SRS-03
4.
View content
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam menampilkan content yang ada pada halaman web.
SRS-04
5.
Search content
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam melakukan pencarian content sesuai keinginan pengguna.
SRS-05
6.
Register
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam menyediakan sarana bagi calon pengguna web service untuk melakukan registrasi agar dapat menggunakan web service yang disediakan aplikasi.
SRS-06
7.
Invoke other XCMS web service
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam memanfaatkan web service yang disediakan oleh aplikasi XCMS lain, dan menyimpan hasilnya ke dalam basis data.
SRS-09
8.
Get other XCMS content
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam memanfaatkan web service yang disediakan oleh aplikasi XCMS lain, yaitu service untuk mendapatkan content.
SRS-09
9.
Add other XCMS content
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam memanfaatkan web service yang disediakan oleh aplikasi XCMS lain, yaitu service untuk menambahkan content.
SRS-09
10.
Get other XCMS Category
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam memanfaatkan web service yang disediakan aplikasi XCMS lain, yaitu service untuk mendapatkan kategori atau sub kategori.
SRS-09
11.
Manage other XCMS category
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam memanfaatkan web service yang disediakan oleh aplikasi XCMS lain, yaitu service untuk mengelola kategori.
SRS-09
12.
Manage other XCMS user
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam memanfaatkan web service yang disediakan oleh aplikasi XCMS lain, yaitu service untuk validasi dan mengelola user.
SRS-09
III-12 No 13.
Use Case Get content via web service
Deskripsi Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam menyediakan web service kepada aplikasi lain, berupa web service untuk mengambil content.
ID SRS SRS-08
14.
Add content via web service
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam menyediakan web service kepada aplikasi lain, berupa web service untuk menambah dan mengambil content.
SRS-08
15.
Get category via web service
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam menyediakan web service kepada aplikasi lain, berupa web service untuk mengambil kategori atau sub kategori content.
SRS-08
16.
Manage category via web service
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam menyediakan web service kepada aplikasi lain, berupa web service untuk mengelola kategori atau sub kategori content.
SRS-08
17.
Manage user via web service
Use case ini mendeskripsikan fungsionalitas yang dimiliki aplikasi dalam menyediakan web service kepada aplikasi lain, berupa web service untuk mengelola user meliputi add user, edit user, dan delete user.
SRS-08
Sesuai spesifikasi kebutuhan perangkat lunak, SRS-07, yaitu tentang kemampuan aplikasi dapat melakukan validasi pengguna, tidak digambarkan secara eksplisit dalam diagram use case. Spesifikasi kebutuhan perangkat lunak tersebut sudah termasuk dalam use case yang memerlukan validasi pengguna, yaitu use case manage content, manage category, manage user, invoke other XCMS web service, get content via WS, add content via WS, get category via WS, manage category via WS, dan manage user via WS. Tabel III-6 Deskripsi Aktor No 1.
Aktor Webmaster
Deskripsi Aktor yang termasuk dalam kategori pengguna webmaster.
2.
Administrator
Aktor yang termasuk dalam kategori pengguna administrator.
3.
Web Visitor
Aktor yang termasuk dalam kategori pengguna pengunjung situs.
4.
Client Application
Aktor yang termasuk dalam kategori pengguna client application.
5.
Other XCMS
Aktor ini merupakan sistem lain, berupa aplikasi XCMS lain yang berperan sebagai web service server.
3.2.6.2 Pemodelan Skenario Kejadian Pemodelan skenario kejadian dimaksudkan untuk memodelkan jalannya aplikasi perangkat lunak pada saat run-time. Skenario kejadian dibuat untuk setiap use case yang telah dibuat.
III-13 Contoh skenario normal untuk use case manage content dapat dilihat pada Tabel III-7 dan skenario yang lain dapat dilihat pada Acuan Teknis subbab 2.3.4. Tabel III-7 Skenario Normal Use Case Manage Content, Sub Skenario Add Content Aksi Aktor 1. Menekan link “Add Content”
Reaksi Sistem
2. Menampilkan form untuk menambah content baru 3. Mengisi form masukan untuk menambah content baru dan menekan tombol “Save” 4. Menyimpan masukan ke dalam basis data dan menampilkan pesan
3.2.6.3 Pemodelan Interaksi Elemen Pada subbab berikut akan ditampilkan diagram sequence yang menggambarkan model interaksi elemen-elemen dalam aplikasi. Diagram sequence ini akan dibuat untuk setiap use case utama. Pada setiap pembuatan diagram sequence akan ditentukan objek-objek yang dibutuhkan oleh aplikasi serta interaksi antar objek-objek tersebut. Gambar III-3 menunjukkan diagram sequence yang terdapat dalam aplikasi yang dibangun, yaitu diagram sequence untuk use case manage content, sub skenario Add Content. Diagram sequence yang lain dapat dilihat pada Acuan Teknis subbab 3.1.1 dan subbab 4.1.1.
Gambar III-3 Diagram sequence untuk use case manage content, sub skenario Add Content
III-14 3.2.6.4 Pemodelan Kelas Subbab ini berisi pembahasan tentang pemodelan kelas yang terdapat dalam sistem. Pemodelan kelas akan digambarkan dengan diagram kelas. Kelas-kelas yang terdapat dalam diagram kelas merupakan hasil identifikasi awal, sesuai dengan objek-objek yang terdapat dalam diagram sequence. Untuk lebih jelas, hasil identifikasi kelas tahap awal dapat dilihat pada Tabel III-8. Sedangkan diagram kelas analisis dari aplikasi yang dibangun dapat dilihat pada Gambar III-4.
Gambar III-4 Diagram Kelas Analisis
Tabel III-8 Hasil Identifikasi Awal Kelas-Kelas yang Terdapat dalam Aplikasi No 1.
Nama Kelas UI_class
Tipe Kelas Boundary
Deskripsi Kelas ini berfungsi untuk membangkitkan halaman web sebagai jembatan interaksi antara pengguna dan aplikasi.
2.
procUser
Control
Kelas ini berfungsi untuk membuka koneksi basis data melalui kelas DBConn dan berisi method yang dapat dilakukan dan dikenakan terhadap suatu user.
3.
entUser
Entity
Kelas ini berisi atribut dan method untuk menangani operasi terhadap entitas user.
4.
procContent
Control
Kelas ini berfungsi untuk membuka koneksi basis data melalui kelas DBConn dan berisi method yang dapat dilakukan dan dikenakan terhadap suatu content.
5.
entContent
Entity
Kelas ini berisi atribut dan method untuk menangani operasi terhadap entitas content.
III-15 No 6.
Nama Kelas procCategory
Tipe Kelas Control
Deskripsi Kelas ini berfungsi untuk membuka koneksi basis data melalui kelas DBConn dan berisi method yang dapat dilakukan dan dikenakan terhadap suatu kategori.
7.
entCategory
Entity
Kelas ini berisi atribut dan method untuk menangani operasi terhadap entitas kategori.
8.
DBConn
Control
Kelas ini berfungsi untuk menangani konfigurasi dan koneksi basis data.
9.
WSHandler
Control
Kelas ini berfungsi untuk membentuk dan menjalankan web service dari method yang dimiliki oleh kelas-kelas lain yang ada dalam aplikasi.
10.
WSConsumer
Control
Kelas ini berisi method yang digunakan untuk mempermudah pemakaian web service dari pihak lain oleh aplikasi.
3.3 Perancangan Sesuai dengan metodologi Tugas Akhir yang telah dijelaskan pada subbab 3.1, perancangan termasuk pada akhir fase inception dan terutama pada fase elaboration. Pada bagian ini akan dijelaskan hasil rancangan yang dibuat berdasarkan hasil analisis sebelumnya. Kegiatan perancangan ini dilakukan terhadap konfigurasi jaringan, struktur kelas dan antarmuka perangkat lunak. Struktur kelas yang terdapat dalam subbab ini merupakan hasil penjabaran terhadap struktur kelas awal yang telah dijelaskan pada subbab 3.2.6.4.
3.3.1 Batasan Perancangan Perancangan aplikasi XCMS ini memiliki batasan berupa perancangan kelas yang disesuaikan dengan bahasa pemrograman yang digunakan untuk implementasi perangkat lunak, yaitu PHP. Pada kelas perancangan, kelas entity yang muncul pada kelas analisis digabungkan dengan kelas control yang bersesuaian. Hal ini dilakukan untuk memudahkan dalam coding, dan efisiensi kode dalam pembuatan halaman web yang akan ditampilkan. Selain itu, implementasi perangkat lunak tidak akan menggunakan framework tertentu, tetapi hanya akan memanfaatkan library dasar yang dimiliki oleh PHP sehingga tidak akan mengikuti standar pengkodean yang dimiliki oleh suatu framework.
3.3.2 Perancangan Konfigurasi Jaringan Gambar III-5 menunjukkan hasil rancangan konfigurasi jaringan yang terdapat dalam Tugas Akhir ini. Dalam gambar tersebut terdapat sebuah komputer yang berperan sebagai web server. Aplikasi XCMS dapat diinstal pada komputer tersebut. Selain itu juga terdapat
III-16 beberapa komputer yang terhubung ke server melalui suatu jaringan (internet). Komputerkomputer tersebut merupakan client yang hendak mengakses aplikasi XCMS. Pengguna memerlukan web browser untuk dapat menjalankan aplikasi tersebut.
Gambar III-5 Konfigurasi Jaringan XCMS
3.3.3 Perancangan Rinci Struktur Kelas Berdasarkan diagram kelas analisis yang telah diperoleh pada subbab 3.2.6.4, selanjutnya akan dilakukan perancangan detil tentang kelas-kelas yang terdapat dalam sistem. Diagram kelas perancangan yang digunakan dalam sistem dapat dilihat pada Gambar III-6.
Kelas-kelas hasil perancangan memiliki perbedaan jika dibandingkan dengan kandidat kelas yang diperoleh pada bagian analisis. Terdapat beberapa kelas analisis yang tidak muncul dalam kelas perancangan dan terdapat beberapa kelas tambahan dalam perancangan yang dibuat. Kelas analisis yang tidak muncul yaitu kelas procUser, procContent, procCategory, entUser, entContent, dan entCategory. Kelas-kelas tersebut digabungkan menjadi kelas-kelas perancangan, yaitu kelas User (gabungan dari procUser dan entUser), Content (gabungan dari procContent dan entContent), dan Category (gabungan dari procCategory dan entCategory). Hal ini dilakukan untuk efektifitas pemrosesan dalam pembuatan halaman web. Dalam pemrograman berbasis web, semua variabel yang dibutuhkan ditangani pada setiap halaman web yang bersangkutan. Variabel-variabel tersebut bersifat bebas, dan dapat di-passing ke kelas manapun yang akan memprosesnya. Oleh karena itu, pemrosesan variabel dapat dilakukan oleh satu kelas yang mencakup fungsionalitas sebagai kelas entity dan control.
Beberapa
kelas
tambahan
HTML_Template_IT,
lain
yang
WSResultProcessor,
muncul
dalam
SoapClient,
perancangan
SoapServer,
dan
yaitu
kelas
SoapFault.
HTML_Template_IT merupakan kelas yang menyediakan fungsionalitas untuk membentuk antarmuka antara pengguna dengan sistem, yaitu dengan memproses suatu file html yang
III-17 dijadikan template antarmuka halaman web. Kelas ini berasosiasi dengan kelas UI_class yang telah dibuat dalam tahap analisis.
Gambar III-6 Diagram Kelas Perancangan
Kelas WSResultProcessor merupakan kelas yang digunakan oleh aplikasi untuk memproses hasil yang didapatkan dari pemanggilan web service yang disediakan oleh aplikasi XCMS yang lain. Hasil yang didapatkan akan diproses dan kemudian dilakukan penyimpanan hasil ke dalam basis data. Kelas ini berhubungan dengan kelas WSConsumer, yaitu kelas ini mendapatkan parameter berupa hasil yang didapatkan kelas WSConsumer dari pemanfaatan web service.
Kelas SoapClient merupakan kelas yang termasuk dalam library SOAP Extension. Kelas ini digunakan untuk menciptakan instance web service client. Kelas ini memiliki method yang dapat digunakan untuk melakukan pemanggilan terhadap web service. Dengan instance kelas tersebut, aplikasi dapat melakukan perannya sebagai service requestor atau pengguna layanan.
III-18 Kelas SoapServer dan SoapFault juga merupakan kelas yang termasuk dalam library SOAP Extension. Kelas SoapServer digunakan untuk menciptakan instance web service server. Kelas ini memiliki method yang dapat digunakan untuk membuat web service berdasarkan kelas dan method yang diinginkan, dan membuat semacam listener yang akan memproses permintaan penggunaan web service. Sedangkan kelas SoapFault digunakan untuk mendukung kelas SoapServer dalam pembuatan web service. Kelas ini berfungsi untuk menciptakan pesan kesalahan jika web service yang diminta mengalami suatu kegagalan.
Daftar kelas yang dihasilkan pada tahap perancangan dapat dilihat pada Tabel III-9. Penjelasan lebih detil tentang kelas-kelas hasil tahap perancangan dapat dilihat pada Acuan Teknis subbab 4.2. Tabel III-9 Deskripsi Kelas Hasil Perancangan No
Nama Kelas
1.
UI_class
Kelas Analisis Terkait UI_class
Definisi
2.
User
procUser, entUser
Kelas ini bertanggung jawab untuk melakukan aksi terhadap pengguna aplikasi.
3.
Content
procContent, entContent
Kelas ini bertanggung jawab untuk menangani semua aksi yang berhubungan dengan suatu content.
4.
Category
procCategory, entCategory
Kelas ini bertanggung jawab untuk menangani semua aksi yang berhubungan dengan suatu kategori content.
5.
DBConn
DBConn
Kelas ini bertanggung jawab untuk melakukan koneksi ke database.
6.
WSHandler
WSHandler
Kelas ini bertangggung jawab untuk menangani penyediaan web service terhadap aplikasi lain.
7.
WSConsumer
WSConsumer
Kelas ini bertanggung jawab untuk menangani proses pemanfaatan web service lain.
8.
HTML_Template_IT
UI_class
Merupakan template antarmuka yang bertanggung jawab untuk menangani interaksi pengguna dengan sistem.
9.
WSResultProcessor
WSConsumer
Kelas ini bertanggung jawab untuk memproses hasil yang didapatkan oleh kelas WSConsumer.
Kelas ini bertanggung jawab untuk menjembatani interaksi antara pengguna dengan aplikasi.
III-19 No
Nama Kelas
10.
SoapClient
Kelas Analisis Terkait WSConsumer
Definisi
11.
SoapServer
WSHandler
Kelas ini merupakan kelas pustaka yang digunakan untuk menciptakan instance web service server.
12.
SoapFault
WSHandler
Kelas ini merupakan kelas pustaka yang digunakan untuk mendukung penciptaan instance web service server.
Kelas ini merupakan kelas pustaka yang digunakan untuk menciptakan instance web service client.
3.3.4 Representasi Persisten Kelas Perancangan Berdasarkan hasil perancangan kelas yang telah dibuat, aplikasi memerlukan persistensi beberapa kelas. Persistensi ini direalisasikan dalam bentuk tabel basis data. Beberapa kelas yang memerlukan persistensi diantaranya kelas User, Content, dan Category. Setiap kelas yang memerlukan persistensi tersebut dipetakan dalam sebuah tabel dalam basis data. Selain itu juga dilakukan normalisasi atau denormalisasi terhadap basis data agar pemrosesan data menjadi lebih efektif dan efisien. Basis data yang digunakan merupakan basis data relasional. Hasil perancangan basis data dapat dilihat pada Gambar III-7.
Gambar III-7 Rancangan Persistensi Kelas Perancangan
III-20 Dari Gambar III-7 dapat dilihat bahwa basis data memiliki 5 tabel. Tabel category dan sub_category berasal dari persistensi kelas Category, tabel content berasal dari kelas Content, sedangkan tabel user dan user_detail berasal dari kelas User. Selain membutuhkan persistensi terhadap beberapa kelas yang diwujudkan dalam bentuk tabel basis data, aplikasi juga memerlukan beberapa data tambahan. Data tambahan tersebut terutama diperlukan oleh content sebagai data pendukung yang dapat berbentuk file gambar atau file lainnya. Dokumen pendukung content tersebut tidak disimpan dalam tabel, tetapi disimpan dalam bentuk flat file dan disimpan dalam folder tertentu dengan aturan tertentu. Aturan yang dimaksud yaitu: 1. File gambar disimpan dalam folder images, dan nama file gambar tersebut disimpan dalam tabel content pada kolom content_image dalam bentuk string/variable characters. 2. File pendukung lainnya disimpan dalam folder files, dan nama file pendukung tersebut disimpan dalam tabel content pada kolom content_file dalam bentuk string/variable characters.
3.3.5 Perancangan Antarmuka Pada subbab ini akan ditampilkan rancangan antarmuka aplikasi. Aplikasi yang dibangun pada dasarnya memiliki 2 jenis antarmuka, yaitu antarmuka halaman utama untuk pengunjung situs, dan antarmuka untuk administrasi situs. Antarmuka untuk administrasi situs hanya dapat diakses oleh pengguna yang memiliki hak akses, yaitu administrator dan webmaster. Antarmuka untuk pengunjung situs menampilkan content yang telah dibuat dan dipublikasikan oleh pengelola situs. Salah satu rancangan antarmuka dapat dilihat pada Gambar III-8.
Gambar III-8 Rancangan Halaman Utama Pengunjung Situs
III-21 Gambar III-8 menunjukkan halaman utama untuk pengunjung situs. Bagian paling atas dari antarmuka tersebut berisi logo atau banner dari situs tersebut. Dibawahnya terdapat ruang untuk meletakkan judul atau keterangan dari halaman yang sedang diakses. Pada bagian kiri terdapat ruang untuk menampilkan menu utama dari situs tersebut, dan form untuk melakukan pencarian. Bagian tengah merupakan tempat utama, yaitu untuk menampilkan content dari situs tersebut. Sedangkan bagian paling bawah memuat footer atau keterangan singkat tentang situs tersebut. Halaman-halaman untuk administrasi web hanya dapat diakses oleh pengguna yang memiliki hak akses, yaitu pengguna dengan level administrator dan webmaster. Untuk mengakses halaman tersebut diperlukan proses otentikasi terlebih dahulu dengan melakukan login ke aplikasi. Setelah melalui proses otentikasi atau login, pengguna dapat melakukan pengelolaan terhadap situs, yaitu dengan mengelola kategori dan sub kategori content, mengelola content, mengelola user, dan menggunakan layanan dari web service XCMS lain. Rancangan tampilan halaman-halaman yang lain dapat dilihat pada Acuan Teknis subbab 4.4.