BAB II LANDASAN TEORI
2.1 Penjadwalan 2.1.1 Definisi Penjadwalan Pengertian jadwal menurut kamus besar bahasa Indonesia adalah pembagian waktu berdasarkan rencana pengaturan urutan kerja, daftar atau tabel kegiatan atau rencana kegiatan dengan pembagian waktu pelaksana yang terinci. Sedangkan pengertian penjadwalan adalah proses, cara, pembuatan menjadwalkan atau memasukkan dalam jadwal. Pengertian lain dari penjadwalan adalah proses menugaskan pada satu set sumber daya. Hal tersebut adalah konsep yang penting di berbagai area seperti komputasi dan proses produksi. (Wikipedia, 2007) Menurut (Chambers 1999) menyatakan bahwa jadwal didefinisikan “sebagai sesuatu yang menjelaskan di mana dan kapan orang-orang dan sumber daya berada pada suatu waktu”. Berdasarkan Kamus Besar Bahasa Indonesia, jadwal merupakan pembagian waktu berdasarkan rencana pengaturan urutan kerja. Jadwal juga didefinisikan sebagai daftar atau tabel kegiatan atau rencana kegiatan dengan pembagian waktu pelaksanaan yang terperinci. Sedangkan penjadwalan merupakan proses, cara, perbuatan menjadwalkan atau memasukkan dalam jadwal. (Departemen Pendidikan dan Kebudayaan, 1995)
11
Kebanyakan orang terbiasa dengan jadwal kuliah yang disajikan sebagai tabel hari dalam seminggu dan slot waktu. Dapat dilihat bahwa setiap hari dibagi ke dalam slot waktu. Setiap slot waktu memiliki daftar mata kuliah yang sedang diajarkan, oleh siapa dan di mana. Jadwal dapat dinyatakan dalam sejumlah cara yang berbeda, masing-masing mahasiswa harus memiliki jadwal sendiri tergantung pada mata pelajaran, begitu juga masing-masing dosen dan ruang, semua ini adalah perspektif yang berbeda pada jadwal yang sama. 2.1.2 Penjadwalan MataKuliah Penjadwalan
matakuliah
(lecture
timetabling)
adalah
masalah
menempatkan waktu dan ruangan kepada sejumlah mata kuliah, tutorial, dan kegiatan akademik sejenis, dengan memperhatikan sejumlah aturan yang berhubungan dengan kapasitas dan lokasi dari ruangan yang tersedia, waktu bebas yang diperlukan dan sejumlah aturan lain yang berkaitan dengan toleransi untuk dosen, dan hubungan antara mata kuliah pilihan. Penjadwalan mata kuliah adalah kegiatan administratif yang paling utama di universitas. Dalam masalah penjadwalan mata kuliah, sejumlah mata kuliah yang dialokasikan ke sejumlah ruang kelas yang tersedia dan sejumlah slot waktu disertai dengan constraints.Constraints terbagi atas dua jenis, yaitu hard constraints dan soft constraints. Hard constraints merupakan batas-batas yang harus diterapkan pada penjadwalan mata kuliah dan harus dipenuhi. Solusi yang tidak melanggar hard constraints disebut solusi layak. Hard constraints yang umum dalam penjadwalan mata kuliah adalah sebagai berikut: 12
a. Seorang dosen hanya dapat memberi kuliah pada suatu ruangan dalam waktu tertentu. b. Seorang mahasiswa hanya dapat mengikuti kuliah untuk satu lokasi pada waktu tertentu. c. Sebuah lokasi (ruangan) hanya dapat digunakan untuk satu mata kuliah pada waktu tertentu. d. Mahasiswa tidak dapat dialokasikan pada suatu ruangan yang menyebabkan ruangan melebihi kapasitas maksimum. Soft constraints didefinisikan sebagai batas-batas mengenai alokasi sumber daya yang jika dilanggar masih dapat menghasilkan solusi yang layak tetapi sedapat mungkin untuk dipenuhi. Dalam kenyataannya, masalah penjadwalan mata kuliah biasanya tidak mungkin untuk memenuhi semua soft constraints. Kualitas jadwal yang layak dapat dinilai berdasarkan seberapa baik soft constraints dapat dipenuhi. Namun, beberapa masalah yang kompleks sulit menemukan solusi yang layak. Sebagai contoh, soft constraints yang mungkin ingin dicapai dalam jadwal sehubungan dengan aspek mata kuliah adalah meminimalkan terjadinya jadwal mata kuliah satu tingkat yang beturutturut. Inti dari penjadwalan mata kuliah adalah bagaimana menjadwalkan sejumlah komponen yang terdiri atas mahasiswa, dosen, ruang, dan waktu dengan sejumlah aturan dan batasan (constraint) tertentu. Beberapa univeristas dengan jumlah mata kuliah yang akan dijadwalkan dan berbagai constraints yang harus dipertimbangkan membuat penyusunan jadwal mata kuliah menjadi sangat sulit. 13
2.1.3 Tujuan Pengembangan Penjadwalan Penjadwalan yang buruk dapat menyebabkan mahasiswa tidak bisa mengambil kuliah yang diinginkan karena bentrok dengan kuliah lainnya, Dosen bisa terlalu sibuk karena terlalu banyak dijadwalkan untuk mengajar, atau bahkan kuliah tidak dapat berlangsung nyaman karena kapasitas ruangan yang dialokasikan tidak mencukupi. Oleh karena itu, perlu penjadwalan yang baik agar penjadwalan tidak terjadi bentrok antar komponen yang dijadwalkan yaitu kelas, matakuliah, dosen, waktu, dan ruangan. Sehingga menunjang proses perkuliahan dan menguntungkan semua pihak terutama mahasiswa dan dosen.
2.2 Particle Swarm Optimization 2.2.1 Definisi Particle Swarm Optimization
Particle Swarm Optimized (PSO) merupakan algoritma berbasis populasi yang mengeksploitasi individu dalam populasi menuju daerah penyelesaian dalam daerah pencarian. Pada PSO populasi disebut dengan swarm, dan individu disebut dengan partikel. Tiap partikel berpindah dengan kecepatan yang diadaptasi dari daerah pencarian dan menyimpannya sebagai posisi terbaik yang pernah dicapai. (Hasan, Rania. 2004)
Dalam ilmu komputer, partikel kawanan optimasi (PSO) adalah metode komputasi
yang
mengoptimalkan
masalah
dengan
iteratif
mencoba
mengembangkan solusi kandidat berkaitan dengan ukuran tertentu dari kualitas. PSO mengoptimalkan masalah dengan memiliki solusi calon penduduk, disini
14
dijuluki partikel, dan partikel-partikel ini bergerak di dalam ruang pencarian sesuai dengan sederhana rumus matematika atas partikel posisi dan kecepatan. Setiap gerakan partikel dipengaruhi oleh posisi lokal yang dikenal terbaik dan juga dipandu menuju posisi paling terkenal di ruang pencarian, yang diperbarui sebagai posisi yang lebih baik yang ditemukan oleh partikel lain. 2.2.2 Algoritma Particle Swarm Optimization Algoritma dasar PSO terdiri dari tiga tahap, yaitu pembangkitan posisi dan velocity (kecepatan) awal, menentukan nilai fitness masing-masing partikel, dan proses Update Velocity dan Posisi. Pada kasus penjadwalan kuliah, partikel adalah satu jadwal kuliah yang terdiri dari beberapa kelas. Terdapat 3 tahap dari metode PSO pada permasalahan penjadwalan kuliah, yaitu sebagai berikut: 1. Pembangkitan posisi dan velocity (kecepatan) awal Partikel berubah posisinya dari suatu perpindahan (iterasi) ke posisi lainnya berdasarkan update velocity. Pertama posisi Xik dan partikel kecepatan Vik dari kumpulan partikel yang dip roses secara random menggunakan batas atas (Xmax) dan batas bawah (Xmin), seperti persamaan berikut: Xi0 = Xmin + rand (Xmax - Xmin) Vi0 = Xmin + rand(Xmax - Xmin) Dalam proses random diperlukan slot untuk menampung dari random posisi dan random kecepatan. Melalui proses pembangkitan partikel ini maka kumpulan partikel dapat terdistribusi secara acak. 2. Menentukan nilai fitness masing-masing partikel
15
Tabel 2.1 Batasan constraint No. 1 2 3
Batasan Tidak bentrok dosen Tidak bentrok ruangan Tidak bentrok waktu
Dalam penjadwalan ini nilai fitness yaitu pelanggaran konstrain yang harus dioptimasi. Apabila terjadi pelanggaran terhadap konstrain-konstrain diatas, maka nilai fitness masing-masing partikel akan di increment sebanyak satu untuk tiap pelanggaran yang terjadi. 3. Proses Update Velocity dan Posisi Nilai dari local best dan global best yang didapat akan digunakan untuk proses update kecepatan dan update posisi. Adapun 3 parameter yang mempengaruhi pencarian pada algoritma particle swarm optimization ini adalah w (inertia weight), c1 (faktor learning local partikel), c2 (faktor learning global partikel) yang digabungkan dalam satu persamaan sebagai berikut : Vik+1 = w *Vik + cl * rnd * (pi - Xik) + c2 * (pgk - Xik) Dengan range w = 0.4 – 1.4, cl = 1.5 – 2.0 dan c2 = 2.0 – 2.5 Dimana : W = factor inersia (inertia weight) Vik = kecepatan Xik = posisi rnd = parameter random range 0 – 1 c1, c2 = konstanta akselerasi (learning rate) pi = local best g p k = global best i = partikel Persamaan diatas adalah persamaan yang digunakan untuk proses update velocity (update kecepatan) untuk masing-masing partikel dengan menggunakan 16
nilai fitness terbaik yang didapat dari perulangan partikel. Perumusan dari update velocity ini menggunakan beberapa parameter random (rnd) dengan range 0 - 1 untuk mendapatkan nilai velocity yang baik. Proses terakhir yang dilakukan adalah update posisi dari nilai update velocity, seperti pada persamaan, sebagai berikut : Xik+1 = Xik + Vik+1 Pada PSO akan digunakan algoritma dasar sedehana dari PSO dengan variabel bernilai integer dan faktor inersia w statis, tahapan- tahapan secara jelas seperti digambarkan pada Gambar 2.1 :
Gambar 2.1 Diagram alir PSO
17
Pada Gambar 2.1 dijelaskan bahwa proses awal yang dilakukan adalah inisialisasi partikel awal dan parameter perkuliahan yang digunakan untuk proses penjadwalan
kuliah
dengan
algoritma
PSO.
Untuk
melakukan
proses
pembangkitan posisi dan kecepatan awal maka kita mengambil data perkuliahan dari database yang diperlukan untuk proses random untuk posisi dan kecepatan yang dimisalkan sebagai slot, setelah itu menghitung nilai fittnes dari tiap partikel sesuai dengan jumlah partikel. Lalu kita menghitung nilai local best dan global best yaitu nilai partikel terbaik dari semua partikel local best. Kemudian melakukan tahapan hitung velocity partikel yang digunakan untuk update nilai velocity untuk semua partikel, apabila kriteria berhenti tercapai maka proses pun berhenti. 2.3 Konsep Dasar Web
2.3.1 Definisi Website Website dapat diartikan sebagai kumpulan halaman yang menampilkan informasi data teks, data gambar diam atau gerak, data animasi, suara, video dan atau gabungan dari semuanya, baik yang bersifat statis maupun dinamis yang membentuk satu rangkaian bangunan yang saling terkait dimana masing-masing dihubungkan dengan jaringan-jaringan halaman (hyperlink). 2.3.2 World Wide Web (WWW) World Wide Web (WWW) atau disebut dengan web, adalah fasilitas yang menyediakan interface yaitu saling keterkaitan dan interaksi antar subsistem yang sederhana ke sumber daya internet yang sangat besar.
18
Web tidak membatasi diri untuk hubungan ke file, tetapi juga menyertakan hubungan ke segala tipe sumber daya internet, salah satu contoh adalah Terminal Emulation (Telnet) yaitu suatu aplikasi program komunikasi interaktif dua arah berbasiskan protocol TCP/IP yang digunakan untuk Telnet ke remote komputer dari komputer local atau terminal server, serta menikmati fungsi yang sama dengan terminal yang dihubungkan langsung ke komputer tersebut. 2.3.3 Client dan Server Web Interaksi antara browser dan server web diatur oleh suatu aturan yang disebut Hipertext Transfer Protocol atau HTTP. Protocol ini menguraikan jenis pesan server dan client yang dapat dikirimkan kepada satu sama lain. Pesan tersebut dapat dikirim dan dijalankan untuk menangani berbagai kondisi-kondisi kesalahan. (Janner Simarmata, 2010) 2.4 Model Proses Pengembangan Metodologi rekayasa perangkat lunak adalah proses untuk menghasilkan perangkat lunak yang terorganisasi menggunakan teknik-teknik dan konvensikonvensi notasi yang telah ditentukan. Metodologi biasanya dipresentasikan sebagai satu rangkaian tahap, dengan teknik-teknik dan notasi diasosiasikan pada masing-masing tahap . Tahap-tahap produksi perangkat lunak biasanya diorganisasikan kedalam
siklus hidup
yang berisi
beberapa fase/tahap
pengembangan. (Bambang Hariyanto, 2004) 2.4.1 Kegunaan Model Proses Pengembangan Proses pengembangan perangkat lunak memuat serangkaian langkah yang dapat diprediksi harus ditempuh untuk menciptakan produksi perangkat lunak
19
yang berkualitas tinggi serta sesuai dengan jadwal yang ditentukan. (Bambang Hariyanto, 2004) Kegunaan model proses pengembangan adalah sebagai berikut : 1. Penentuan
untuk
mengorganisasikan,
merencanakan,
penugasan,
penganggaran, dan pengelolaan kerja proyek perangkat lunak atas waktu, ruang dan lingkungan komputasi. 2. Kerangka mengenai dokumen-dokumen yang dihasilkan untuk diberikan ke client. 3. Basis untuk menentukan kakas dan metodologi rekayasa perangkat lunak yang paling cocok untuk mendukung aktivitas-aktivitas pengembangan. 4. Kerangka kerja untuk menganalisis atau estimasi pola-pola alokasi dan konsumsi sumber daya selama pengembangan. 5. Basis untuk membuat studi empiris untuk menentukan apa yang mempengaruhi produktivitas, ongkos dan kualitas keseluruhan. 2.4.2 Rational Unified Process (RUP) RUP (Rational Unified Process) menggunakan Object Oriented dengan aktivitas yang berfokus pada pengembangan model dengan menggunakan UML (Unified Model Language). RUP merupakan suatu pendekatan proses pembangunan perangkat lunak yang dilakukan secara iterative dan incremental. Metode ini sanggup menjawab tantangan apabila terdapat identifikasi permasalah yang muncul pada saat proses pembangunan perangkat lunak berlangsung dan tidak semata-mata membebankan aktivitas identifikasi resiko hanya di awal siklus pembangunan perangkat lunak.
20
2.4.3 Tahapan Dalam Rational Unified Process (RUP) Lima tahapan dalam Unified Process adalah requirement, analisa, desain, implementasi, dan test. 1. Requirements Tahapan ini berfokus pada kegiatan yang memungkinkan prasayarat fungsional dan non-fungsional dari sistem untuk diidentifikasi. Produk utama disiplin ini adalah model use case. 2. Analisys Tujuan analisys ini adalah untuk merestrukturisasi kebutuhan yang diidentifikasi dalam tahapan requirement dalam hal perangkat lunak yang akan dibangun. Dapat dilihat sebagai langkah pertama yaitu desain. 3. Desain Tahapan desain menghasilkan rancangan rinci yang akan dilaksanakan pada disiplin berikutnya. 4. Implementation Tahapan ini merupakan pengkodean desain dalam bahasa pemrograman yang sesuai dan kompilasi, kemasan, penyebaran dan mendokumentasikan perangkat lunak. 5. Test Disiplin uji menggambarkan kegiatan yang dilakukan untuk menguji perangkat lunak untuk memastikan bahwa (perangkat lunak yang dibangun) memenuhi kebutuhan user, handal dll.
21
Pemodelan perangkat lunak yang terdapat pada metode RUP bermanfaat dalam membantu memahami dan menggambarkan kondisi permasalahan dan solusi dari proses-proses bisnis yang mendasari spesifikasi kebutuhan yang terdapat pada perangkat lunak. Pemodelan-pemodelan yang terdapat pada metode RUP adalah : 1.
Model use case, dimodelkan dengan diagram use case, diagram sequence, diagram statechart, dan diagram activity.
2.
Model analisis, dimodelkan dengan diagram class, diagram sequence, diagram collaboration, diagram statechart, dan diagram activity.
3.
Model desain, dimodelkan dengan diagram class, diagram sequence, diagram collaboration, diagram statechart, dan diagram activity.
4.
Model deployment, dimodelkan dengan diagram deployment, diagram sequence, dan diagram collaboration.
5.
Model implementasi, dimodelkan dengan diagram component, diagram sequence, dan diagram collaboration.
6.
Model pengujian, berkaitan dengan kelima model-model lainnya, dan menggunakan diagram-diagram yang sesuai dengan tiap-tiap model tersebut.
2.4.4 Fase-fase pada Rational Unified Process Proses yang bersifat iterative pada metode RUP dikelola dalam bentuk fase-fase pembangunan perangkat lunak. Terdapat empat fase dalam metode RUP, yaitu fase inception, fase Elaboration, fase Construction, dan fase Transition. Dari setiap fase tersebut, terdapat tujuan yang harus dicapai dari proses-proses
22
pembangunan perangkat lunak yang dilakukan. Fase-fase yang terdapat pada metode RUP dapat dilihat pada Gambar 2.2.
Gambar 2.2 Fase-fase pada metode RUP
Teknik analisis data dalam pembuatan perangkat lunak menggunakan metode pengembangan RUP (Rational Unified Process), yang meliputi beberapa fase diantaranya: a.
Inception Pada fase ini ditentukan berbagai kebijakan proyek seperti kriteria
kesuksesan penanganan resiko, perkiraan sumber daya yang dibutuhkan dan jadwal pengembangan perangkat lunak. b.
Elaboration Pada fase ini dilakukan analisis masalah, perancangan perangkat lunak dan
mengeliminasi resiko terberat proyek. c.
Construction Pada fase ini dikembangkan secara iterasi dan bertahap sampai dihasilkan
produk jadi berupa perangkat lunak yang akan digunakan oleh pengguna.
23
d.
Transition Setelah perangkat lunak selesai dikontruksi, perangkat lunak tersebut
didistribusikan kepada pengguna yang kemudian melakukan evaluasi dan mengirimkan umpan balik berupa informasi sesuai dengan hasil evaluasi.
2.5 UML (Unified Modeling Language) UML (Unified Modelling Language) adalah sebuah "bahasa" yg telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasabahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. 2.5.1 Tujuan Pembuatan UML Terdapat tujuan utama UML diantaranya adalah : a. Memberikan bahasa pemodelan yang bebas dari berbagai bahas pemrograman dan proses rekayasa. b. Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
24
c. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum. d. UML bisa juga berfungsi sebagai sebuah (blue print) cetak biru karena sangat lengkap dan detail. Dengan cetak biru ini maka akan bias diketahui informasi secara detail tentang coding program atau bahkan membaca program dan menginterpretasikan kembali ke dalam bentuk diagram (reserve enginering). 2.5.2 Notasi UML Terdapat beberapa notasi pada UML untuk menggambarkan proses dalam pembangunan sistem, diantaranya : a) Actor
Actor1
Gambar 2.3 Simbol Notasi Actor Actor
menggambarkan
segala
pengguna
software
(user).
Actor
memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software. Sebagai contoh sebuah actor dapat memberikan input kedalam dan menerima informasi dari software, perlu dicatat bahwa sebuah actor berinteraksi dengan use case, tetapi tidak memiliki control atas use case. Sebuah actor mungkin seorang manusia, satu device, hardware atau sistem informasi lainnya.
25
b) Use Case
Gambar 2.4 Simbol Notasi Use Case Use Case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan, namun use case hanya menjelaskan apa yang dilakukan oleh actor dan sistem bukan bagaimana actor dan sistem melakukan kegiatan tersebut. Untuk menggambarkannya dalam use case model biasanya digunakan association relationship yang memiliki stereotype include, extend atau generalization relationship. Hubungan include menggambarkan bahwa suatu use case seluruhnya meliputi fungsionalitas dari use case lainnya. Hubungan extend antar use case berarti bahwa satu use case merupakan tambahan fungsionalitas dari use case yang lain jika kondisi atu syarat tertentu dipenuhi. c) Interface
Gambar 2.5 Simbol Notasi Interface Interface merupakan kumpulan operasi tanpa implementasi dari suatu class. Implementasi operasi dalam interface dijabarkan oleh operasi dalam class. Oleh karena itu keberadaan interface selalu disertai oleh class yang
26
mengimplementasikan operasinya. Interface ini merupakan salah satu cara mewujudkan prinsip enkapsulasi dalam objek. d) Interaction
Gambar 2.6 Simbol Notasi Interaction Interaction digunakan untuk menunjukan baik aliran pesan atau informasi antar obyek maupun hubungan antar abyek. Biasanya interaction ini dilengkapi juga dengan teks bernama operation signature yang tersusun dari nama operasi, parameter yang dikirim dan tipe parameter yang dikembalikan. e) Defendency
Gambar 2.7 Simbol Notasi Defendency Defendency merupakan relasi yang menunjukan bahwa perubahan pada salah satu elemen memberi pengaruh pada elemen lain. Elemen yang ada dibagian tanda panah adalah elemen yang tergantung pada elemen yang ada dibagian tanpa tanda panah. f)
Association
Gambar 2.8 Simbol Notasi Association
27
Association menggambarkan navigasi antar class (navigation), berapa banyak obyek lain yang bias berhubungan dengan satu obyek (multiplicity antar class) dan apakah suatu class menjadi bagian dari class lainnya (aggregation). g) Generalization
Gambar 2.9 Simbol Notasi Generalization Generalization menunjukan hubungan antara elemen yang lebih umum ke elemen yang lebih spesifik. Dengan generalization, class yang lebih spesifik (subclass) akan menurunkan atribut dan operasi dari class yang lebih umum (superclass) atau “subclass is superclass”. Dengan menggunakan notasi generalization ini, konsep inheritance dari prinsip hirarki dapat dimodelkan. h) Realization
Gambar 2.10 Simbol Notasi Realization Realization menunjukan hubungan bahwa elemen yang ada di bagian tanpa panah akan merealisasikan apa yang dinyatakan oleh elemen yang ada di bagian dengan panah. Misalnya class merealisasikan package, component merealisasikan class atau interface. 2.5.3 Diagram Model 1) Activity Diagram
28
Activity Diagram adalah teknik untuk mendeskripsikan logika procedural, proses bisnis dan aliran kerja dalam banyak kasus. Activity Diagram mempunyai peran seperti halnya flowchart, akan tetapi perbedaannya dengan flowchart adalah activity diagram bias mendukung perilaku parallel sedangkan flowchart tidak bias. (Munawar, 2005) Berikut adalah simbol-simbol yang sering digunakan pada saat pembuatan activity diagram. a. Activity
Gambar 2.11 Simbol Notasi Activity Activity menggambarkan sebuah pekerjaan/tugas dalam workflow. Pada UML, activity digambarkan dengan symbol “lozenge” (horizontal top and bottom with convex sides). b. Start State
Gambar 2.12 Simbol Notasi Start State Start state menunjukan dimulainya suatu workflow pada sebuah activity diagram. Pada UML, start state digambarkan dengan symbol lingkaran yang solid.
29
c. End State
Gambar 2.13 Simbol End State End state menggambarkan akhir atau terminal dari sebuah activity diagram, bisa terdapat lebih dari satu end state pada sebuah activity diagram. Pada UML, end state digambarkan dengan symbol bull’s eye. d. State Transitions
Gambar 2.14 Simbol State Transition State transitions menunjukan kegiatan apa berikutnya setelah suatu kegiatan sebelumnya. Pada UML, state transtions digambarkan oleh sebuah solid line dengan panah. e. Decisions
Gambar 2.15 Simbol Decisions Decisions adalah suatu titik/point
pada activity diagram yang
mengindikasikan suatu kondisi dimana ada kemungkinan perbedaan transisi. Pada UML, decision digambarkan dengan symbol diamond.
30
2) Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Berikut adalah symbol-simbol yang sering digunakan pada saat pembuatan activity diagram. a. Actor Actor menggambarkan semua pengguna software (user). Actor memberika suatu gambaran jelas tentang apa yang harus dikerjakan software. Sebagai contoh sebuah actor dapat memberikan input ke dalam dan menerima informasi dari software.
Actor1
Gambar 2.16 Simbol Actor b. Use Case
31
Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan, namun usecase hanya menjelaskan apa yang dilakukan oleh actor dan sistem bukan bagaimana actor dan system melakukan kegiatan tersebut.
Gambar 2.17 Simbol Use case c. Interaction Interaction untuk menunjukan baik aliran pesan atau informasi antar objek maupun hubungan antar objek. Biasanya interaction dilengkapi juga dengan teks bernama operation signature yang tersusun dari nama operasi, parameter yang dikirim dan tipe parameter yang dikembalikan.
Gambar 2.18 Simbol Interaction d. Association Association menggambarkan navigasi antar class (navigation), berapa banyak objek yang bisa berhubungan dengan satu objek (multiplicity antar class) dan apakah suatu class menjadi bagian dari class lainnya (aggregation).
Gambar 2.19 Simbol Association e. Include
32
Include menggambarkan suatu usecase seluruhnya meliputi kegunaan usecase lainnya. Sebuah usecase dapat meng-include fungsionalitas usecase lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa usecase yang di-include secara normal. Sebuah usecase dapat di-include oleh lebih dari usecase lain, sehingga duplikasi fungsionalitas dapat dihindari. << include >>
Gambar 2.20 Simbol Include f. Extend Hubungan extend antar usecase berarti bahwa suatu usecase merupakan tambahan kegunaan dari usecase yang lain jika kondisi atau syarat tertentu dipenuhi. Jika prosedur dari usecase merupakan alternative untuk menjelaskan usecase lain. Usecase akan dikerjakan apabila salah satu syarat dipenuhi. << extend >>
Gambar 2.21 Simbol Extend 3) Sequence Diagram Interaction diagram menunjukan bagaimana kelompok-kelompok objek saling berkolaborasi dalam beberapa behavior. UML memiliki beberapa bentuk interaction diagram dan yang paling umum digunakan adalah sequence diagram. Sebuah sequence diagram, secara khusus menjabarkan behaviour sebuah scenario tunggal. Diagram tersebut menunjukan sebuah objek contoh dan pesan-pesan yang melewati objek-objek ini di dalam usecase.
33
Diagram ini menjelaskan bagaimana objek berinteraksi dengan lainnya dengan cara mengirim dan menerima pesan. (Martin Fowler: 2005) a. Object Menunjukan objek yang terdapat di diagram sequence.
Object1
Gambar 2.22 Simbol Object b. Object Message Menunjukan pesan yang disampaikan ke objek lain dalam diagram sequence.
Gambar 2.23 Simbol Object Message
4) Class Diagram Diagram kelas merupakan diagram paling umum dipakai di semua pemodelan berorientasi objek. Pemodelan kelas menunjukan kelas-kelas yang ada di system dan hubungan antar kelas-kelas itu, atribut-atribut dan operasi di kelaskelas. Elemen-elemen diagram kelas sebagai berikut : 1.
Kelas Kelas merupakan elemen terpenting di sistem berorientasi objek yang
mendeskripsikan satu blok pembangunan sistem. Kelas yang baik yaitu:
34
a) Memberikan abstrakasi tajam mengenai sesuatu yang diperoleh dari permasalahan dan solusi. b) Berisi sekumpulan tanggung jawab yang terdefinisi bagus dan kecil serta dapat dilaksanakan dengan baik. c) Menyediakan pemisah yang jelas antara spesifikasi dan implementasi abstarksi. d) Mudah dipahami dan sederhana sekaligus mudah diperluas dan diadaptasi. 2.
Antarmuka (interface) Antarmuka (nterface) merupakan koleksi operasi yang mendefinisikan
layanan dari suatu kelas atau komponen. Antamuka mendeskripsikan tampak secara eksternal dari elemen. 3.
Kolaborasi Kolaborasi merupakan pendefinisian suatu interaksi dan sekelompok peran
dan elemen-elemen lain yang bekerja untuk menyediakan suatu perilaku kooperatif yang lebih besar dari penjumlahan seluruh elemen. 4.
Hubungan Hubungan antar kelas-kelas beraneka ragam, diantaranya: a) Asosiasi Asosiasi
merupakan
hubungan
statisantar
class.
Umumnya
menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. b) Pewarisan dan Generalisasi
35
Pewarisan yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. c)
Agregasi Agregasi yaitu bentuk khusus dari asosiasi yang menggambarkan seluruh
bagian suatu obyek merupakan dari bagian obyek lainnya. Sebagai contoh obyek tanggal dapat disusun dari obyek hari, obyek bulan dan obyek tahun. d) Dependency Dependency merupakan relasi yang menunjukan bahwa perubahan pada salah satu elemen memberi pengaruh pada elemen lain. Terdapat stereotype dari dependency, yaitu include dan extend. Include menunjukan bahwa suatu bagian dari elemen (yang ada digaris tanpa panah) memicu eksekusi bagian dari elemen lain ( yang ada digaris dengan panah). Extend menunjukan bahwa suatu bagian dari elemen di garis tanpa panah bisa disisipkan ke dalam yang ada di garis dengan panah. 5) Collaboration Diagram Melihat pada interaksi dan hubungan terstruktur antar obyek. Tipe diagram ini menekankan pada hubungan (relationship) antar obyek, sedangkan sequence diagram menekankan pada urutan kejadian. Collaboration diagram digunakan sebagai alat untuk menggambarkan interaksi yang mengungkapkan keputusan mengenai perilaku sistem. 6) Component Diagram
36
Menggambarkan alokasi semua kelas dan obyek ke dalam komponenkomponen dalam desain fisik sistem software. Diagram ini memperlihatkan pengaturan dan kebergantungan antara komponen-komponen software seperti source code, binary code dan komponen tereksekusi. 7) Deployment Diagram Diagram ini memperlihatkan pemetaan software kepada hardware. Diagram ini menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, dimana komponen akan terletak. 8) Package Paket adalah mekanisme pengelompokan yang digunakan untuk menandai pengelompokan elemen-elemen model. Sebuah paket dapat mengandung beberapa paket lain di dalamnya. Paket digunakan untuk memudahkan mengorganisasikan elemen-elemen model. 2.6 Perangkat Lunak Pendukung Untuk mendukung pembuatan perangkat lunak ini, bahasa pemrograman yang dipakai adalah sebagai berikut: 2.6.1 PHP PHP adalah singkatan dari Personal Home Page yang merupakan bahasa standar yang digunakan dalam dunia website. PHP adalah bahasa pemrograman yang berbentuk script yang diletakkan didalam web server. Ada beberapa pengertian tentang PHP, akan tetapi PHP dapat diartikan sebagai Hypertext Preeprocessor. Ini merupakan bahasa yang hanya dapat berjalan pada server yang hasilnya dapat ditampilkan pada klien. Interpreter PHP dalam mengeksekusi kode
37
PHP pada sisi server disebut serverside, berbeda dengan mesin maya Java yang mengeksekusi program pada sisi klien (client-server). PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk pemrograman website, walaupun tidak tertutup kemungkinan untuk digunakan untuk pemakaian lain. PHP merupakan salah satu bahasa server side scripting yang disisipkan di antara bahasa HTML untuk membuat halaman web yang dinamis. Salah satu fungsi PHP adalah untuk menerima, mengolah, dan menampilkan data dari dan ke sebuah website. Data yang diterima akan diolah di sebuah program database server dan kemudian hasilnya ditampilkan kembali ke layar web browser sebuah website. Seorang pengguna internet tidak dapat melihat kode program yang ditulis dalam PHP sehingga keamanan dari halaman web menjadi lebih terjamin. 1. Kelebihan Bahasa Pemrograman PHP Bahasa pemrograman PHP memiliki beberapa kelebihan antara lain : a) Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya. b) Web Server yang mendukung PHP dapat ditemukan di mana-mana dari mulai IIS sampai dengan Apache, dengan konfigurasi yang relatif mudah. c) Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan developer yang siap membantu dalam pengembangan. d) Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak.
38
e) PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (linux, unix, windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah sistem. f) PHP diterbitkan secara gratis dan dapat diambil oleh siapa saja. 2. Variabel Pada PHP Variabel dapat disebut sebagai sebuah tempat penyimpanan data bagi nilai numeris maupun non numeris, agar dapat digunakan pada bagian lain dari script program PHP. PHP mendukung berbagai jenis variabel yaitu: a. Integer (bilangan bulat) b. Bilangan floating point (presisi tunggal, ganda) c. Boolean d. Null (untuk variabel yang belum diset) e. String f. Array g. Object h. Resource Setiap variabel dalam PHP selalu dimulai dengan tanda dolar ("$") dan harus dimulai dengan huruf dan dapat diikuti oleh huruf dan angka. Variabel pada PHP peka terhadap perbedaan huruf kapital dan non kapital, sehingga sangat perlu diperhatikan dalam penulisannya. 2.6.2 Hypertext Markup Language (HTML) HTML merupakan singkatan dari Hypertext Markup Language, yang memiliki fungsi sebagai bahasa pemrograman yang lazim digunakan dalam
39
pembuatan halaman web. HTML digunakan oleh semua pembuat halaman web karena bersifat sederhana dan terbuka. HTML tidak tergantung pada perangkat lunak atau perangkat keras tertentu untuk membuat atau menjalankannya. 2.6.3 Cascading Style Sheet (CSS) CSS (cascading style sheet) adalah salah satu cara untuk mengontrol tampilan dari dokumen HTML anda dengan efisien dan terorganisir (Ichsan Taufik, 2008). Css memiliki fungsi mengatur tampilan dari halaman web yangakan dibuat. Dengan menggunakan css, maka halaman web dapat memiliki tampilan yang sesuai dengan yang dikehendaki dan format penulisannya pun cukup mudah. 2.6.4 JavaScript JavaScript adalah bahasa pemrograman yang membolehkan penambahan interaktivitas pada halaman web. Kerapkali javascript dianggap sebagai “scripting language”, dengan maksud entah bagaimana lebih mudah untuk membuat script daripada memprogram. 2.7 Basisdata Basisdata terdiri dai dua kata, basis dan data. Basis dapat diartikan sebagai markas, gudang, atau tempat berkumpul. Sedangkan data adalah repesentasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli dan lain-lain), barang dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau lainnya.
40
Dapat disimpulkan bahwa Basis Data merupakan kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudancy) yang tidak perlu, untuk memenuhi bebagai kebutuhan.
2.8 Database Management System (DBMS) Database Management System (DBMS) merupakan perantara bagi pemakai dengan basis data dalam disk. Cara berinteraksi atau berkomunikasi antara pemakai dengan dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu dapat kita sebut sebagai bahasa basis data yang terdiri atas sejumlah perintah (statement) ysng diformulasikan dan dapat diberikan user dan dikenali atau diproses oleh DBMS untuk melakukan suatu aksi atau pekerjaan tertentu. 2.9 Database MySQL MySQL merupakan software yang tergolong sebagai DBMS yang bersifat open source. Open Source menyatakan bahwa ini dilengkapi dengan source code (kode yang dipakai untuk membuat MySQL), selain itu tentu saja bentuk executable-nya atau kode yang dapay dijalankan secara langsung dalam sistem operasi. (Abdul Kadir, 2009) 2.9.1 Keistimewaan MySQL MySQL banyak memiliki keistimewaan, yaitu diantaranya sebagai berikut : a.
Portability, MySQL dapat berjalan stabil pada berbagai sistem operasi diantaranya seperti : Linux,Windows, Mac OS X server, Solaris, dan masih banyak lagi.
41
b.
Open Source, MySQL didistribusikan secara open source dibawah lisensi GPL sehingga dapat dipergunakan secara cuma-cuma.
c.
Multiuser, MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa banyak masalah atau konflik. Hal ini memungkinkan sebuah database server MySQL dapat diakses client secara bersamaan.
d.
Perfomance Tuning, MySQL memiliki kecepatan yang menkjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
e.
Column Types, MySQL memiiiki banyak kolom yang sangat kompieks, seperti : signed/unsigned integer, float, double, char, varchar, text, blob, date, time, datetime, timestamp, year, set serta enum.
f.
Command dan Functions, MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah SELECT dan WHERE dalam query.
2.10 Xampp XAMPP adalah perangkat lunak bebas yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program. Fungsinya dari Xammp adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis.
42
2.11 Blackbox Testing Metode uji coba blackbox memfokuskan pada keperluan fungsional dari software. Karena itu uji coba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Uji coba blackbox bukan merupakan alternatif dari uji coba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan metode whitebox.
43