• Tidak ada hasil yang ditemukan

BAB III ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III ANALISIS DAN PERANCANGAN"

Copied!
24
0
0

Teks penuh

(1)

III-1

BAB III

ANALISIS DAN PERANCANGAN

Pada bab ini, akan dibahas analisis dan perancangan aplikasi web event calendar dengan dukungan web service.

3.1 Analisis Perangkat Lunak

Analisis perangkat lunak yang dilakukan terdiri dari arsitektur perangkat lunak, analisis masalah, analisis kebutuhan, tujuan pengembangan, analisis standar event, analisis standar web service, batasan analisis sistem, diagram use-case aplikasi, dan analisis kelas

3.1.1 Arsitektur Perangkat Lunak

Aplikasi utama event calendar merupakan aplikasi web yang dapat dijalankan oleh pengguna melalui internet. Pengguna yang menggunakan aplikasi utama dapat dibedakan menjadi tiga jenis: pengguna aplikasi biasa, administrator, dan pengguna web service. Pengguna aplikasi biasa hanya dapat mengakses fungsi penampilan event, pengeksporan event, dan pendaftaran event saja, tetapi administrator dapat mengakses fungsi-fungsi yang lain, seperti penambahan, pengubahan, penghapusan, dan pengimporan event.

Selain aplikasi utama, event calendar juga memiliki dukungan web service dalam bentuk client-server. Pengguna yang akan menggunakan dukungan web service harus menyediakan program client yang dapat dibuat dengan bantuan WSDL yang telah disediakan. Client ini selanjutnya dapat mengakses fungsi-fungsi web service yang disediakan oleh server. Arsitektur globalnya dapat dilihat pada Gambar III-1.

(2)

Gambar III-1 Arsitektur aplikasi event calendar

3.1.2 Analisis Masalah

Analisis masalah dari aplikasi yang akan dibangun adalah:

1. Bagaimana merepresentasikan masalah penanganan event ke dalam struktur data yang sesuai dengan standar iCalendar.

2. Bagaimana melakukan manajemen event, seperti menambah, mengubah, dan menghapus event.

3. Bagaimana melakukan pengeksporan bentuk data event ke dalam format standar iCalendar.

4. Bagaimana melakukan pengimporan file iCalendar ke dalam aplikasi. 5. Bagaimana menyimpan event-event ke dalam suatu basis data.

6. Bagaimana membuat user interface yang membantu pengguna dalam melakukan manajemen event.

7. Bagaimana menyediakan fungsi login dan logout sebagai administrator untuk melakukan manajemen event.

8. Bagaimana menampilkan event-event yang terjadi dalam bulan dan tahun tertentu. 9. Bagaimana menampilkan visualisasi kalendar yang disesuaikan dengan bulan dan tahun

event yang akan ditampilkan.

(3)

11. Bagaimana membangun web service yang bisa menyediakan fungsi-fungsi seperti: memberikan event pada bulan dan tahun tertentu, memberikan event sesuai dengan id tertentu, dan memberikan event sesuai kategori event tertentu

3.1.3 Analisis Kebutuhan

Analisis kebutuhan dari aplikasi yang akan dibangun adalah:

1. Aplikasi dapat merepresentasikan masalah penanganan event ke dalam struktur data yang sesuai dengan standar iCalendar.

2. Aplikasi dapat melakukan manajemen event, yaitu menambah event, mengubah event, dan menghapus event.

3. Aplikasi dapat melakukan pengeksporan bentuk data event ke dalam format standar iCalendar.

4. Aplikasi dapat melakukan pengimporan file iCalendar.

5. Aplikasi dapat menyimpan event-event ke dalam suatu basis data.

6. Aplikasi dapat menampilkan user interface yang membantu pengguna dalam melakukan manajemen event.

7. Aplikasi menyediakan fungsi login dan logout sebagai administrator untuk melakukan manajemen event.

8. Aplikasi dapat menampilkan event-event yang terjadi pada bulan dan tahun tertentu. 9. Aplikasi dapat menyediakan visualisasi kalendar yang disesuaikan dengan bulan dan

tahun event yang akan ditampilkan.

10. Aplikasi mampu menangani fungsi event yang berulang.

11. Web service yang disediakan aplikasi bisa menyediakan fungsi-fungsi seperti: memberikan event pada bulan dan tahun tertentu, memberikan event sesuai dengan id tertentu, dan memberikan event sesuai kategori event tertentu.

3.1.4 Tujuan Pengembangan

Aplikasi ini dikembangkan dengan tujuan agar manajemen event bisa dilakukan secara on-line dan terpusat. Agar interoperasi antar aplikasi yang berbeda bisa berjalan lancar, digunakan teknologi web service dan juga dukungan terhadap pengeksporan dan pengimporan event dalam format iCalendar.

(4)

3.1.5 Analisis Standar Event

Event yang akan dibuat dalam tugas akhir ini menggunakan standar yang telah ditetapkan dalam RFC2441(iCalendar). Dalam standar iCalendar, ada bagian yang menjelaskan bagaimana suatu event dibentuk yang dinamakan dengan vEvent. Walaupun tidak mengimplementasikan secara persis semua karakteristik vEvent, tetapi hanya mengambil bagian-bagian yang dirasa perlu, bentuk event yang diimplementasikan dalam aplikasi ini menyerupai standar vEvent tersebut, baik dalam atribut-atribut yang digunakan maupun bentuk-bentuk format data untuk masing-masing atribut tersebut.

Atribut-atribut yang dirasa perlu yang akan diimplementasikan adalah id suatu event, timestamp kapan suatu event diubah, ringkasan acara, deskripsi panjang, lokasi, waktu mulai, waktu selesai, aturan pengulangan, kategori event, dan contact person.

Dengan mengikuti standar yang ditetapkan iCalendar, diharapkan interoperabilitas dari aplikasi ini semakin bertambah dengan tidak hanya menyertakan dukungan web service saja, tetapi juga dukungan terhadap standar penanggalan di internet, walaupun tidak secara sempurna.

Event dapat dibagi menjadi dua: event yang terjadi sekali dan event yang berulang. Yang perlu diperhatikan disini adalah adanya penanganan khusus untuk suatu event yang berulang. Penanganan khusus itu berupa aturan yang telah ditetapkan standar iCalendar, yang dinamakan recurrence rule. Aturan yang ditetapkan iCalendar ini telah mencakup secara lengkap semua kemungkinan dari suatu event yang berulang.

3.1.6 Analisis Pengulangan Event

Aturan pengulangan event atau recurrence rule merupakan bagian penting dalam menentukan event yang berulang. Karena pengimplementasian aturan ini sangat kompleks dijabarkan dalam iCalendar, maka tugas akhir ini membatasinya dengan menyediakan aturan pengulangan yang umum terjadi saja.

Ada dua jenis pendekatan dalam menangani pemrosesan event yang berulang:

1. Semua event yang memiliki aturan pengulangan tertentu dibentuk semua instans pengulangannya selama jangka waktu tertentu dan dituliskan ke dalam basis data. Hal ini memudahkan komputasi di dalam aplikasi karena aplikasi hanya tinggal mengakses basis data, tetapi pekerjaan ini sangat membebani basis data, terutama untuk event yang

(5)

berulang cukup banyak. Dengan pendekatan ini, pengubahan satu atau beberapa instans pengulangan dari semua instans yang ada dapat dilakukan.

2. Semua event yang memiliki aturan pengulangan tertentu diperiksa instans pengulangannya secara on-the-fly. Hal ini menambah komputasi di dalam aplikasi tetapi tidak membebani basis data. Cukup satu event saja yang dituliskan dalam basis data dan semua instans pengulangannya diperiksa ketika pengguna mengakses bulan dan tahun tertentu. Pendekatan ini tidak memungkinkan pengubahan satu atau beberapa instans pengulangan dari semua instans yang ada.

Aplikasi web event calendar mengimplementasikan pendekatan yang kedua. Sedangkan mengenai aturan yang didukung oleh aplikasi adalah sebagai berikut:

1. Aturan frekuensi(FREQ). Aturan ini berisi frekuensi pengulangan dalam tahun, bulan, minggu, hari, jam, menit atau detik. Sebagai contoh, event yang memiliki aturan frekuensi, FREQ=YEARLY, berarti berulang setiap tahun.

2. Aturan interval(INTERVAL). Aturan ini berisi jangka waktu dari frekuensi pengulangan yang terjadi. Sebagai contoh, event yang memiliki aturan, FREQ=WEEKLY;INTERVAL=3, berarti berulang setiap tiga minggu.

3. Aturan jumlah(COUNT). Aturan ini berisi berapa banyak instans dari event yang akan

terjadi. Sebagai contoh, event yang memiliki aturan,

FREQ=DAILY;INTERVAL=2;COUNT=5, berarti berulang setiap dua hari sebanyak lima kali.

3.1.7 Analisis Standar Web Service

Dalam bab dasar teori telah dijelaskan secara singkat ada dua jenis web service yang dapat digunakan, yaitu REST dan SOAP. Tugas akhir ini akan menggunakan web service dengan jenis SOAP karena pertama, SOAP adalah jenis web service yang berorientasi pada service yang cocok diterapkan pada aplikasi event calendar yang memang menyediakan layanan untuk memanggil metode yang mengolah resource event, kedua, SOAP memiliki standar yang baik dan jelas. REST tidak memiliki standar, tetapi hanya sebuah arsitektur web service. Untuk aplikasi dimana ia mungkin saja berkomunikasi dengan banyak aplikasi lain yang berbeda bahasa maupun platform, standar sangat diperlukan karena menjamin aplikasi-aplikasi ini berbicara dalam bahasa yang sama dan memudahkan pengembangan. Penjabaran SOAP diperjelas dengan disediakannya WSDL, sehingga pengguna web service dapat dengan mudah membuat client untuk mengonsumsi SOAP.

(6)

3.1.8 Analisis WSDL

SOAP sebagai standar pertukaran pesan dalam web service mampu berjalan sendiri tanpa bantuan WSDL untuk mendeskripsikannya. Tetapi, hal ini akan menyulitkan pengembangan, karena tanpa bantuan WSDL, para pengembang harus bertanya-tanya seperti apa bentuk pesan yang seharusnya dikirim kepada atau diterima dari penyedia layanan web service. Dengan bantuan WSDL, para pengembang telah dibantu karena telah mengetahui seperti apa pesan yang seharusnya dikirim atau diterima. WSDL dalam pembuatannya terlihat sangat menyulitkan dan membingungkan, tetapi dengan bantuan library dan tools yang telah beredar di internet, pembuatannya menjadi mudah dan cepat.

3.1.9 Batasan Analisis Sistem

Batasan analisis sistem pada pengembangan aplikasi adalah: 1. Aplikasi tidak menangani aspek keamanan.

2. Struktur data event disesuaikan dengan standar iCalendar, tetapi tidak mengimplementasikannya secara lengkap. Implementasi yang dilakukan sesuai dengan yang dicantumkan dalam subbab 3 pada bab dasar teori.

3. Kemampuan pengimporan file iCalendar juga dibatasi sesuai dengan struktur data event yang didukung pada poin sebelumnya.

4. Kemampuan aplikasi dalam menangani event yang berulang terbatas pada aturan: event yang berulang tiap: tahun, bulan, minggu, hari, jam, menit, dan detik, interval event yang berulang menurut ketentuan di atas, dan jumlah pengulangan event.

5. Aplikasi hanya mendukung web service dengan standar SOAP.

3.1.10 Diagram Use-Case Untuk Aplikasi Event Calendar

Aplikasi event calendar memiliki tujuh fungsi utama, yaitu: melihat event, membuat daftar event pada bulan atau tahun tertentu, mengekspor event ke dalam iCalendar, menambah, mengubah, menghapus event, dan terakhir meminta event berdasarkan syarat tertentu yang dilakukan oleh pengguna web service. Ketiga fungsi yang pertama bisa dilakukan oleh pengguna biasa dan administrator, sedangkan fungsi keempat sampai keenam hanya bisa dilakukan oleh administrator saja. Diagram use-case untuk aplikasi event calendar dapat dilihat pada gambar III-2.

(7)

Gambar III-2 Use-case aplikasi event calendar

Pada gambar diatas, use-case meminta event ditambah fungsionalitasnya melalui anak use case: meminta event berdasarkan ID, bulan, dan kategori. Use-case menampilkan event berdasarkan bulan termasuk di dalam kelima use-case: ekspor, ubah, hapus, daftar dan lihat event. Use-case login, logout dan menampilkan kalendar termasuk dalam use-case lihat event.

3.1.11 Analisis Kelas

Kelas-kelas utama yang dibutuhkan oleh aplikasi event calendar ini adalah: 1. Event

Kelas ini dibutuhkan sebagai kelas yang merepresentasikan data event yang dimasukkan oleh pengguna.

(8)

2. Calendar

Kelas ini dibutuhkan sebagai kelas yang merepresentasikan sebuah kalendar Gregorian. 3. EventCalendar

Kelas ini dibutuhkan sebagai kelas yang menyimpan obyek-obyek dari kelas event ke dalam suatu kalendar. Merupakan turunan dari kelas Calendar.

4. Date_Time

Kelas ini dibutuhkan sebagai kelas yang merepresentasikan data tanggal dan waktu dengan standar date-time.

5. RecRule

Kelas ini dibutuhkan sebagai kelas yang menjabarkan aturan pengulangan event. 6. MySQLConn

Kelas ini dibutuhkan sebagai kelas yang menangani koneksi basis data event, menyimpan ke dalam basis data event, dan mengubah basis data event.

7. TMainForm

Kelas ini dibutuhkan sebagai kelas untuk memudahkan pengguna melakukan manajemen event dan menjadi penghubung antara kelas eventcalendar, dbconnection, dan kelas GUI yang lain.

8. TAddEvent

Kelas ini dibutuhkan sebagai kelas yang menangani pembuatan form dan pemrosesan penambahan event.

9. TEditEvent

Kelas ini dibutuhkan sebagai kelas yang menangani pembuatan form dan pemrosesan pengubahan event.

10. SOAPServer

Kelas ini dibutuhkan sebagai kelas yang menjalankan fungsi server SOAP. 11. TDeleteEvent

Kelas ini dibutuhkan sebagai kelas yang menangani pembuatan form dan pemrosesan penghapusan event

12. TExportEvent

Kelas ini dibutuhkan sebagai kelas yang menangani pembuatan form dan pemrosesan pengeksporan event.

13. TImportEvent

Kelas ini dibutuhkan sebagai kelas yang menangani pembuatan form dan pemrosesan pengimporan event.

(9)

14. TListEvent

Kelas ini dibutuhkan sebagai kelas yang menangani penampilan daftar event dalam bulan atau tahun tertentu.

Proses-proses yang terdapat pada aplikasi event calendar adalah: 1. Melihat event pada bulan dan tahun berjalan.

Pada proses ini, aplikasi menampilkan daftar event yang terjadi pada bulan dan tahun yang sedang berjalan. Jika pengguna menghendaki melihat daftar event pada bulan dan tahun yang berbeda, aplikasi mengambilkannya dari basis data.

2. Menambah data event ke dalam basis data

Pada proses ini, data yang diinputkan oleh user melalui kelas TaddForm diproses oleh aplikasi kemudian dimasukkan ke dalam basis data.

3. Mengubah event yang ada dalam basis data

Pada proses ini, aplikasi akan menampilkan daftar event yang hendak diubah pada bulan dan tahun tertentu, kemudian memproses data baru yang dimasukkan dan menyimpan perubahannya ke dalam basis data.

4. Menghapus event yang ada dalam basis data

Pada proses ini, aplikasi akan menampilkan daftar event yang hendak dihapus pada bulan dan tahun tertentu, kemudian memproses perintah penghapusan dan menghapus event tertentu yang terdapat dalam basis data.

5. Mengekspor event ke dalam format standar iCalendar.

Pada proses ini, aplikasi akan menampilkan daftar event yang hendak diekspor pada bulan dan tahun tertentu, kemudian memproses perintah pengeksporan dan mengembalikan event dalam file format standar iCalendar(ics).

6. Mengimpor event dari file iCalendar ke dalam aplikasi.

Pada proses ini, pengguna memasukkan file iCalendar yang ingin diimpor. Setelah itu, aplikasi akan memproses file iCalendar itu dan memasukkannya ke dalam basis data. Komponen file iCalendar yang didukung adalah yang sesuai dengan yang diuraikan pada upa bab tiga bab dasar teori.

7. Menampilkan daftar event dalam bulan atau tahun tertentu.

Pada proses ini, aplikasi akan menampilkan daftar semua event yang terjadi dalam bulan tertentu atau tahun tertentu.

(10)

Pada proses ini, web service server akan menerima permintaan dari klien untuk mengambilkan event menurut kategori tertentu. Setelah itu, server akan memproses permintaan dan mengambilkannya dari basis data. Fungsi-fungsi yang disediakan dalam web service adalah pengambilan event berdasarkan id, pengambilan event berdasarkan bulan dan tahun tertentu, dan pengambilan event berdasarkan kategori event tertentu. 9. Login dan logout sebagai administrator

Pada proses ini, aplikasi menyediakan form login untuk memasukkan username dan password agar pengguna bisa login sebagai administrator. Aplikasi juga menyediakan pilihan logout untuk adminsitrator.

10. Menampilkan kalender

Pada proses ini, aplikasi menampilkan kalender dari bulan dan tahun yang dikehendaki pengguna.

Keterlibatan kelas-kelas analisis pada setiap proses ditunjukkan oleh tabel III-1.

Tabel III-1 Keterlibatan kelas-kelas analisis dengan proses-proses

No Proses Kelas yang terlibat

TMainForm EventCalendar Event

Date_Time RRule 1 Melihat event pada bulan dan tahun berjalan

MySQLConn TAddEvent Event Calendar Date_Time Rrule 2 Menambah data event ke dalam basis data

MySQLConn TEditEvent EventCalendar Event

3 Mengubah event yang ada dalam basis data

(11)

No Proses Kelas yang terlibat Rrule MySQLConn TDeleteEvent EventCalendar Event Date_Time Rrule 4 Menghapus event yang ada dalam basis data

MySQLConn SOAPServer Event

EventCalendar Date_Time 5 Mengatur request event dari web service client

MySQLConn TListEvent Calendar EventCalendar Event Date_Time Rrule 6 Menampilkan daftar semua event dalam bulan dan tahun

tertentu. MySQLConn TExportEvent EventCalendar Event MySQLConn DateTime Calendar 7 Mengekspor event ke dalam format standar iCalendar.

Rrule

TImportEvent Event

8 Mengimpor event ke dalam aplikasi

(12)

No Proses Kelas yang terlibat Rrule

MySQLConn

9 Login dan logout sebagai administrator TMainForm

10 Menampilkan kalender TMainForm

3.2 Perancangan

Secara ringkas, pembahasan mengenai perancangan aplikasi event calendar yang akan dibangun terdiri dari perancangan arsitektural, perancangan kelas, perancangan struktur data, dan perancangan antarmuka aplikasi.

3.2.1 Perancangan Arsitektural

Perancangan arsitektural adalah perancangan yang memperlihatkan keterhubungan antar kelas. Keterhubungan antar kelas ini dapat dijelaskan melalui diagram kelas yang dapat dilihat pada gambar III-3.

Dalam gambar III-3, bisa kita lihat ada 14 kelas yang saling berhubungan. Kelas Event, Rrule, Date_Time, Calendar, dan EventCalendar merupakan kelas-kelas dasar aplikasi. Kelas EventCalendar merupakan kelas turunan dari kelas Calendar.

Kelas TAddEvent, TEditEvent, TDeleteEvent, TExportEvent, TImportEvent, TMainForm merupakan kelas yang menggunakan kelas-kelas dasar di atas. Kelas-kelas ini adalah kelas yang melakukan manipulasi terhadap kelas-kelas dasar di atas dan merupakan kelas-kelas yang bertanggung jawab terhadap manajemen event.

Kelas SOAPServer adalah kelas yang mengatur pembentukan server web service. Disini segala metode-metode yang disediakan oleh web service disimpan. Terakhir adalah kelas MySQLConn yang mengatur koneksi ke dalam basis data. Kelas ini adalah kelas yang bertanggung jawab terhadap pembacaan dan penulisan basis data event.

(13)
(14)

3.2.2 Perancangan Kelas

Pada bagian ini akan dijelaskan perancangan kelas yang dibuat berdasarkan analisis kelas dan diagram kelas yang didapat dari perancangan arsitektural sebelumnya. Perincian dari kelas-kelas perancangan beserta dengan beberapa operasinya dapat dilihat pada tabel III-2. Perlu diperhatikan bahwa tidak semua operasi dijabarkan disini, tetapi hanya operasi-operasi utama yang dirasa penting.

Tabel III-2 Daftar kelas yang digunakan beserta definisi dan operasinya

No Nama Kelas Definisi Operasi

1 Event Kelas untuk merepresentasikan bentuk data event.

generate_Uid

2 Date_Time Kelas untuk merepresentasikan bentuk data datetime.

generate_LocalDateTime

3 Rrule Kelas untuk mengatur event yang berulang.

generate_Rrule check_MonthInstance parse_Rrule

4 Calendar Kelas untuk merepresentasikan sebuah kalendar is_LeapYear get_Weekday get_NumofDays get_DayName get_MonthName 5 EventCalendar Kelas untuk menampung event-event

dengan bentuk kalendar.

process_Recurrence

6 TMainForm Kelas untuk melakukan penampilan dan manajemen event.

show_Form

7 TAddEvent Kelas untuk melakukan penambahan event

show_Form process_Form 8 TEditEvent Kelas untuk melakukan pengubahan

event.

show_EditForm process_Form 9 TDeleteEvent Kelas untuk melakukan penghapusan

event.

show_ChooseEventForm process_Form

(15)

No Nama Kelas Definisi Operasi

10 TExportEvent Kelas untuk melakukan

pengeksporan event

show_ChooseEventForm process_Form

11 TImportEvent Kelas untuk melakukan pengimporan event

show_Form process_Form 11 TListEvent Kelas untuk melakukan pendaftaran

event.

show_ChooseTimeEventForm show_ListEvent

12 MySQLConn Kelas untuk melakukan koneksi ke database event.

__construct select_DB run_Query close 13 SOAPServer Kelas untuk menjalankan server

SOAP. init_Server get_EventbyMonth get_EventbyID get_EventbyCategories

3.2.2.1 Kelas Event

Kelas ini berisi semua operasi yang berhubungan dengan event. Fungsi utama kelas ini dijelaskan pada Algoritma III-1.

Algoritma III-1 Fungsi utama kelas Event

3.2.2.2 Kelas Date_Time

Kelas ini berisi operasi-operasi yang berhubungan dengan format datetime. Fungsi utama kelas ini dijelaskan pada Algoritma III-2.

Algoritma III-2 Fungsi utama kelas Date_Time Fungsi generate_Uid()

Masukan : -

Keluaran : ID dalam bentuk string.

Proses : Menggabungkan string datetime, id unik, dan hostname.

Fungsi generate_DateTime(input year:integer, input month:integer, input day:integer, input hour:integer, input minute:integer, input second:integer)

Masukan : Tahun, bulan, hari, jam, menit, detik dalam integer.

Keluaran : Datetime

(16)

3.2.2.3 Kelas Rrule

Kelas ini berisi operasi-operasi yang berhubungan dengan aturan event yang berulang. Fungsi-fungsi utama kelas ini dijelaskan pada Algoritma III-3.

Algoritma III-3 Fungsi-fungsi utama kelas Rrule

3.2.2.4 Kelas Calendar

Kelas ini berisi operasi-operasi yang berhubungan dengan kalender Gregorian. Fungsi-fungsi utama kelas ini dapat dilihat pada Algoritma III-4.

Algoritma III-4 Fungsi-fungsi utama kelas Calendar

Algoritma III-4 Fungsi-fungsi utama kelas Calendar Fungsi generate_Rrule(input freq:string, input interval:integer, input count:integer) Masukan : Frekuensi pengulangan event, interval, dan banyaknya.

Keluaran : Rrule dalam bentuk string.

Proses : 1. Mengecek pengulangan tipe apa yang diinginkan 2. Men-generate recurrence rule berdasarkan input.

Fungsi check_MonthInstance(input parsedrrule:array of string, input month:integer, input year:integer) Masukan : Aturan pengulangan yang telah dibelah, bulan pengecekan dan tahun

pengecekan.

Keluaran : Array yang berisi instans dari aturan tersebut.

Proses : 1. Mengecek apakah ada instans dari aturan itu dalam bulan dan tahun yang dimasukkan

2. Mengembalikan array yang berisi instans dari aturan tersebut. Fungsi parse_Rrule()

Masukan : -

Keluaran : Array yang berisi aturan pengulangan yang telah dipecah.

Proses : 1. Memecah aturan pengulangan menjadi bagian-bagian sederhana.

Fungsi is_LeapYear(input year:integer)

Masukan : Tahun

Keluaran : Boolean yang berisi true jika tahun kabisat.

Proses : Mengecek apakah tahun kabisat atau bukan. Fungsi get_Weekday (input month:integer, input day:integer, input year:integer)

Masukan : Tanggal.

Keluaran : Hari untuk tanggal tersebut.

Proses : Mengecek hari apakah pada tanggal tersebut. Fungsi get_NumofDays(input month:integer)

Masukan : Bulan.

Keluaran : Jumlah hari pada bulan tersebut.

Proses : Mencari jumlah hari pada bulan tersebut. Fungsi get_DayName(input day:integer)

Masukan : Hari.

Keluaran : Nama hari.

Proses : Mencari nama hari.

Fungsi get_MonthName(input month:integer)

Masukan : Bulan.

Keluaran : Nama bulan.

(17)

3.2.2.5 Kelas EventCalendar

Kelas EventCalendar adalah kelas turunan dari Calendar yang berisi instans-instans event yang terjadi pada bulan dan tahun tertentu. Prosedur utama kelas ini dijelaskan pada Algoritma III-5.

Algoritma III-5 Prosedur utama kelas EventCalendar

3.2.2.6 Kelas TMainForm

Kelas TMainForm adalah kelas yang berisi operasi-operasi manajemen event dan penampilan event. Prosedur-prosedur utama kelas ini dijelaskan pada Algoritma III-6.

Algoritma III-6 Prosedur-prosedur utama kelas TMainForm

3.2.2.7 Kelas TAddEvent

Kelas ini berisi operasi-operasi yang diperlukan untuk menambah event ke dalam basis data. Prosedur-prosedur utama dari kelas ini dijelaskan pada Algoritma III-7.

Algoritma III-7 Prosedur-prosedur utama kelas TAddEvent

3.2.2.8 Kelas TEditEvent

Kelas ini berisi operasi-operasi yang diperlukan untuk mengubah event yang ada dalam basis data. Prosedur-prosedur utama dari kelas ini dijelaskan pada Algoritma III-8.

Prosedur process_Recurrence(input datetime:DateTime)

Masukan : Datetime.

Keluaran : -

Proses : 1. Mengambil semua event berulang dalam event calendar.

2. Mengecek instans dari event yang berulang.

3. Mengembalikan array yang berisi semua instans dari event berulang dalam bulan dan tahun tertentu.

Prosedur show_Form(input conn:MySQLConn, input post:array of string) Masukan : Koneksi database dan array of string.

Keluaran : -

Proses : Menampilkan daftar event yang terjadi pada bulan dan tahun tertentu,

daftar menu, form login, kalendar.

Prosedur show_Form()

Masukan : -

Keluaran : -

Proses : Menampilkan form pengisian data event.

Prosedur process_Form(input connection:MySQLConn, input ev:event) Masukan : Koneksi basis data dan event.

Keluaran : -

(18)

Algoritma III-8 Prosedur-prosedur utama kelas TEditEvent

3.2.2.9 Kelas TDeleteEvent

Kelas ini berisi operasi-operasi yang diperlukan untuk menghapus event yang berada dalam basis data. Prosedur-prosedur utama dari kelas ini dapat dilihat pada Algoritma III-9.

Algoritma III-9 Prosedur-prosedur utama kelas TDeleteEvent

3.2.2.10 Kelas TExportEvent

Kelas ini berisi operasi-operasi yang diperlukan untuk mengekspor event yang berada dalam basis data. Prosedur-prosedur utama dari kelas ini dapat dilihat pada Algoritma III-10.

Algoritma III-10 Prosedur-prosedur utama kelas TExportEvent

Algoritma III-10 Prosedur-prosedur utama kelas TExportEvent

3.2.2.11 Kelas TImportEvent

Kelas ini berisi operasi-operasi yang mengatur pengimporan event. Prosedur-prosedur utama dari kelas ini dapat dilihat pada Algoritma III-11.

Prosedur show_EditForm(input connection:MySQLConn, input ev:event) Masukan : Koneksi basis data dan event.

Keluaran : -

Proses : Menampilkan form pengubahan data event.

Prosedur process_Form(input connection:MySQLConn) Masukan : Koneksi basis data.

Keluaran : -

Proses : Mengubah data event dalam basis data.

Prosedur show_ChooseEventForm(input connection:MySQLConn, input post:array ) Masukan : Koneksi basis data dan array post.

Keluaran : -

Proses : Menampilkan form pemilihan data event yang akan

dihapus.

Prosedur process_Form(input connection:MySQLConn, input id:string) Masukan : Koneksi basis data.

Keluaran : -

Proses : Menghapus dataevent dengan id tertentu dalam basis data.

Prosedur show_Form()

Masukan : -

Keluaran : -

Proses : Menampilkan form pemilihan data event yang akan

diekspor.

Prosedur process_Form(input connection:MySQLConn, input id:string) Masukan : Koneksi basis data dan event id.

Keluaran : -

(19)

Algoritma III-11 Prosedur-prosedur utama kelas TImportEvent

3.2.2.12 Kelas MySQLConn

Kelas ini berisi operasi-operasi yang mengatur koneksi basis data, penjalanan query, pemilihan basis data dan penutupan koneksi basis data. Fungsi dan prosedur utama dari kelas ini dapat dilihat pada Algoritma III-12.

Algoritma III-12 Fungsi dan prosedur utama kelas MySQLConn

Algoritma III-11 Fungsi dan prosedur utama kelas MySQLConn

3.2.2.13 Kelas SOAPServer

Kelas ini berisi operasi-operasi seperti pembentukan server SOAP dan fungsi-fungsi yang bisa diberikan oleh web service. Fungsi dan prosedur utama kelas ini dapat dilihat pada Algoritma III-13.

Algoritma III-13 Prosedur dan fungsi utama kelas SOAPServer Prosedur __construct(input hostname:string, input username:string, input password:string)

Masukan : Nama host, nama pengguna, dan kata kunci.

Keluaran : -

Proses : Melakukan koneksi ke basis data Prosedur select_DB(input databasename:string)

Masukan : Nama basis data.

Keluaran : -

Proses : Memilih basis data. Fungsi run_Query(input query:string)

Masukan : Query basis data.

Keluaran : Hasil query.

Proses : Menjalankan query yang dimasukkan.

Prosedur close()

Masukan : -

Keluaran : -

Proses : Menutup koneksi basis data.

Prosedur init_Server()

Masukan : -

Keluaran : -

Proses : Menjalankan serverSOAP.

Prosedur show_Form()

Masukan : -

Keluaran : -

Proses : Menampilkan form untuk mengimpor file iCalendar.

Prosedur process_Form(input connection:MySQLConn, input files:array) Masukan : Koneksi basis data dan array $_FILES.

Keluaran : -

(20)

Algoritma III-12 Prosedur dan fungsi utama kelas SOAPServer

3.2.2.14 Kelas TListEvent

Kelas ini berisi operasi-operasi yang mengatur penampilan daftar event dalam bulan tertentu atau tahun tertentu. Prosedur-prosedur utama kelas ini dapat dilihat pada Algoritma III-14.

Algoritma III-14 Prosedur utama kelas TListEvent

3.2.3 Perancangan Struktur Data

Perancangan struktur data utama dalam pembangunan aplikasi event calendar diuraikan pada tabel III-3. Pada tabel ini, perancangan struktur data hanya dibatasi pada kelas-kelas utama yang langsung merepresentasikan masalah manajemen event.

Fungsi get_EventbyMonth(input month:integer, input year:integer)

Masukan : Bulan dan tahun.

Keluaran : Array event dalam bentuk XML.

Proses : 1. Mengambil event dari basis data dalam bulan

dan tahun yang dimasukkan. 2. Memasukkan eventke dalam array. 3. Mengembalikan array event. Fungsi get_EventbyID(input ID:Event::uid)

Masukan : ID event.

Keluaran : Event dengan id tertentu.

Proses : 1. Mengambil event dari basis data.

2. Mengembalikan event. Fungsi get_EventbyCategories(input categories:string)

Masukan : Kategori.

Keluaran : Array event dalam bentuk XML.

Proses : 1. Mengambil event dari basis data sesuai kategori.

2. Memasukkan event ke dalam array. 2. Mengembalikan array event.

Prosedur show_ChooseTimeEventForm()

Masukan : -

Keluaran : -

Proses : Form yang menyediakan pilihan bulan dan tahun.

Prosedur show_ListEventForm(input post:array)

Masukan : array post.

Keluaran : -

Proses : Form yang menyediakan daftar event dalam bulan atau

(21)

Tabel III-3 Perancangan struktur data utama Atribut

No Struktur Data

Nama Tipe Visibility

uid String Private

dtstamp Date_Time Private

dtstart Date_Time Private

dtend Date_Time Private

summary Text Private

location Text Private

description Text Private

categories Text Private

rrule Recrule Private

organizer Text Private

1 Event

attendee Text Private

months_offset_array Array of Integer Protected

month_days Array of Integer Protected

days_name_array Array of String Protected

2 Calendar

months_name_array Array of String Protected

arrayofevents Array of Event Private

3 EventCalendar

arrayofrecEvents Array of

Reccurence Event

Private

4 Rrule rrule String Private

5 Date_Time Dt String Private

3.2.4 Perancangan Antarmuka

(22)

Gambar III-4 Rancangan antarmuka utama

Antarmuka untuk penambahan, pengubahan, penghapusan, pendaftaran, dan pengimporan event dapat dilihat pada gambar III-5, III-6, III-7, dan III-8.

(23)

Gambar III-6 Rancangan antarmuka pengubahan event

Gambar III-7 Rancangan antarmuka penghapusan event

(24)

Gambar

Gambar III-1 Arsitektur aplikasi event calendar
Gambar III-2 Use-case aplikasi event calendar
Tabel III-1 Keterlibatan kelas-kelas analisis dengan proses-proses
Gambar III-3 Diagram kelas aplikasi event calendar
+5

Referensi

Dokumen terkait

Penggunaan Dummy Load untuk praktikum pembebanan pada PLTD atau PLTS sangat diperlukan karena selain sudah ditetapkan pada kurikulum dan silabus pembelajaran,

Undang-Undang Nomor 32 Tahun 2004 tentang Pemerintahan Daerah (Lembaran Negara Republik Indonesia Tahun 2004 Nomor 125, Tambahan Lembaran Negara Republik Indonesia Nomor 4437)

Berdasarkan hasil penelitian: papaya bangkok dapat dijadikan tepung, tepung pepaya Bangkok dapat disubstitusi dalam pembuatan swiss roll, persiapan bahan, pembuatan

1) Variabel yang mempunyai pengaruh tertinggi adalah Promosi. Oleh karena itu, kegiatan promosi yang telah dilakukan perusahaan sebaiknya terus ditingkatkan untuk dapat

bahwa kuliah dua di fakultas dapat membuat mahasiswa yang telah lulus menjadi.. lebih bernilai dalam pasar kerja yang ketat

Asesmen pasien dilakukan setelah pasien terdaftar di rawat jalan harus segera didokumentasikan dengan lengkap dan benar dalam waktu kurang dari 2 jam pada formulir pengkajian awal

Dalam hal ini, maka setiap saat Penanggung berhak membatalkan pertanggungan terhitung sejak awal pertanggungan, dan Penanggung berkewajiban mengembalikan Premi serta Pemegang

Perbedaan kerapatan dan distribusi jenis spora di tiga kabupaten diduga dipengaruhi oleh karakteristik ketiga lokasi pengambilan sampel pada rhizosfer yang berbeda,