Analisis dan Desain Berorientasi Objek (Object Oriented Analysis and Design) adalah cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep. Dasar pembuatannya sendiri adalah objek yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas. Alasan mengapa harus memakai metode berorientasi objek yaitu karena perangkat lunak itu sendiri yang bersifat dinamis, di mana hal ini disebabkan karena kebutuhan pengguna berubah dengan cepat[24].
Selain itu bertujuan untuk menghilangkan kompleksitas transisi antar tahap pada pengembangan perangkat lunak, karena pada pendekatan berorientasi objek, notasi yang digunakan pada tahap analisis perancangan dan implementasi relatif sama tidak seperti pendekatan konvensional yang dikarenakan notasi yang digunakan pada tahap analisanya berbeda-beda. Hal itu menyebabkan transisi antar tahap pengembangan menjadi kompleks[24].
Di samping itu dengan pendekatan berorientasi objek membawa pengguna kepada abstraksi atau istilah yang lebih dekat dengan dunia nyata, karena di dunia nyata itu sendiri yang sering pengguna lihat adalah objeknya bukan fungsinya. Beda ceritanya dengan pendekatan terstruktur yang hanya mendukung abstraksi pada level fungsional. Adapun dalam pemrograman berorientasi objek menekankan berbagai konsep seperti: Class, Object, Abstract, Encapsulation, Polymorphism, Inheritance dan tentunya UML (Unified Modeling Language)[24].
UML (Unified Modeling Language) sendiri merupakan salah satu alat bantu yang dapat digunakan dalam Bahasa pemrograman berorientasi objek. Selain itu UML merupakan standard modeling language yang terdiri dari kumpulan-kumpulan diagram, dikembangkan untuk membantu para pengembang sistem dan software agar bias menyelesaikan tugas-tugas seperti: Spesifikasi, Visualisasi, Desain Arsitektur, Konstruksi, Simulasi dan Testing. Dapat disimpulkan bahwa UML (Unified Modeling Language) adalah sebuah Bahasa yang berdasarkan grafik atau gambar untuk memvisualisasikan, melakukan
spesifikasi, membangun dan pendokumentasian dari sebuah sistem pengembangan perangkat lunak berbasis objek (Object Oriented Programming).
Dokumentasi UML menyediakan 10 macam diagram untuk membuat model aplikasi berorientasi objek yang 5 di antaranya sebagai berikut.
1. Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Di dalam use case diagram ini sendiri lebih ditekankan kepada apa yang diperbuat sistem dan bagaimana sebuah sistem itu bekerja. Sebuah use case merepresentasikan sebuah interaksi antara actor dengan sistem. Use case merupakan bentuk dari sebuah pekerjaan tertentu, misalnya login ke dalam sistem, cetak document dan sebagainya, sedangkan seorang actor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu[25]. Contoh use case dapat dilihat pada Gambar 2.2-15.
Simbol yang digunakan pada use case diagram dapat dilihat pada Tabel 2.2-11. Tabel 2.2-11 Simbol pada use case diagram
Simbol Nama Simbol Keterangan
Actor
Menggambarkan suatu entitas yang berkaitan dengan sistem tapi bukan dari bagian dalam sistem itu sendiri. Actor berada di luar sistem namun berkaitan erat dengan fungsionalitas di dalamnya.
Actor memiliki hubungan secara langsung terhadap fungsi utama baik terhadap salah satu atau semua fungsionalitas utama. Actor juga dapat dibagi terhadap berbagai jenis atau tingkatan dengan cara digeneralisasi atau dispesifikasi tergantung kebutuhan sistemnya. Actor biasanya dapat berupa pengguna atau database yang secara pandang berada dalam suatu ruang lingkup sistem
Use case
Gambaran umum dari fungsi atau proses utama yang menggambarkan tentang salah satu perilaku sistem. Perilaku sistem ini terdefinisi dari proses bisnis sistem yang akan dimodelkan. Tidak semua proses bisnis digambarkan secara fungsional pada use case, tetapi yang digambarkan hanya fungsionalitas utama yang berkaitan dengan sistem. Use case menitik-beratkan bagaimana suatu sistem dapat berinteraksi baik antar sistem maupun di luar sistem.
Asosiasi Menghubungkan keterkaitan antara
aktor dengan use case
Include
Relasi use case di mana proses bersangkutan akan dilanjutkan ke proses yang dituju
Extend
Relasi use case tambahan ke sebuah use
case yang ditambahkan dapat berdiri
sendiri walau tanpa use case tambahan itu
Generalisasi
Sebuah relasi di mana fungsi yang satu adalah fungsi yang umum dari yang lainnya
2. Use Case Scenario
Sebuah diagram yang menunjukkan use case dan aktor mungkin menjadi titik awal yang bagus, tetapi tidak memberikan detail yang cukup untuk desainer sistem untuk benar-benar memahami persis bagaimana sistem dapat
terpenuhi. Cara terbaik untuk mengungkapkan informasi penting ini adalah dalam bentuk penggunaan use case scenario berbasis teks per use case-nya[25]. [25]. Dasar format penulisan use case scenario dapat di lihat pada Tabel 2.2-12.
Tabel 2.2-12 Format Penulisan Use Case Scenario
Use Case Name Berisi nama use case
Related Requirement Berisi kode kebutuhan yang terkait dengan skenario
Goal in Context Tujuan yang ingin dicapai use case
Precondition Kondisi sistem ketika akan dilangsungkannya skenario use case
Successful End Condition Kondisi jika use case berhasil terpenuhi
Failed End Condition Kondisi jika use case gagal terpenuhi
Primary Actor Aktor utama yang berasosiasi dengan use case
Secondary Actor Aktor selain aktor utama yang berasosiasi dengan
use case
Trigger Aktivitas yang dilakukan untuk mengawali use case
Included Cases Use case yang di-include
Main Flow Step Action
1 Langkah-langkah aksi dari aktivitas use
case
2
Extension Step Branching Action
2.1 Langkah-langkah aksi lain selain aktivitas utama dari use case
2.2
3. Activity Diagram
Activity Diagram adalah sebuah tahapan yang lebih fokus kepada menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses. Di mana biasanya dipakai pada bisnis modeling untuk memperlihatkan urutan aktivitas proses bisnis. Activity diagram ini sendiri memiliki struktur yang mirip dengan flowchart atau data flow diagram pada perancangan terstruktur. Activity diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram[25]. Contoh activity diagram dapat dilihat pada Gambar 2.2-16.
Gambar 2.2-16 Contoh Aktivity Diagram
Simbol yang digunakan dalam aktivity diagram dapat dilihat pada Tabel 2.2-13. Tabel 2.2-13 Simbol Aktivity Diagram
Simbol Nama Simbol Keterangan
Start State
Menggambarkan entitas eksternal yang berhubungan dengan sistem
Stop State
Menggambarkan proses yang ada dalam suatu sistem
State
Menggambarkan aktivitas yang terjadi
State Condition
Menerangkan kondisi proses yang sedang berlangsung
State Transition
Menggambarkan perubahan dari state satu ke state lainnya
4. Sequence Diagram
Sequence diagram digunakan untuk menggambarkan perilaku pada sebuah scenario. Diagram jenis ini memberikan kejelasan sejumlah objek dan pesan-pesan yang diletakkan di antaranya di dalam sebuah use case. Komponen utamanya adalah objek yang digambarkan dengan kotak segi empat atau bulat, message yang digambarkan dengan gari putus dan waktu yang ditunjukkan dengan progress vertical. Manfaat dari sequence diagram adalah
memberikan gambaran detail dari setiap use case diagram yang dibuat sebelumnya[25]. Contoh sequence diagram dapat dilihat pada Gambar 2.2-17.
Gambar 2.2-17 Contoh sequence diagram Simbol sequence diagram dapat dilihat pada Tabel 2.2-14.
Tabel 2.2-14 Simbol Sequence Diagram
Simbol Nama Simbol Keterangan
Actor
Menggambarkan pihak yang berhubungan dengan sistem.
Object
Object merupakan instance dari sebuah class dan dituliskan tersusun secara horizontal.
Object yang dimaksud dapat berupa boundary, control, dan entity.
LifeLine
Mengindikasikan keberadaan sebuah object dalam basis waktu. Notasi untuk lifeline adalah garis putus-putus vertikal yang ditarik dari sebuah object.
Message
Spesifikasi dari komunikasi antar object yang memuat berbagai informasi tentang aktifitas yang terjadi
Simbol Nama Simbol Keterangan
Activation Activation dinotasikan sebagai sebuah kotak
segi empat yang digambar pada sebuah
lifeline. Mengindikasikan sebuah object yang
akan melakukan sebuah aksi.
5. Class Diagram
Class diagram adalah sebuah class yang menggambarkan struktur dan penjelasan class, paket dan objek serta hubungan satu sama lain. Class diagram juga menjelaskan hubungan antar class secara keseluruhan di dalam sebuah sistem yang sedang dibuat dan bagaimana caranya agar mereka saling berkolaborasi untuk mencapai sebuah tujuan[25]. Contoh class diagram dapat dilihat pada Gambar 2.2-18.
Gambar 2.2-18 Contoh class diagram Simbol class diagram dapat dilihat pada Tabel 2.2-15.
Tabel 2.2-15 Simbol Class Diagram
Simbol Nama Simbol Keterangan
Generalization
Hubungan di mana objek anak
(descendent) berbagi perilaku dan
struktur data dari object yang ada di atasnya object induk (ancestor).
Simbol Nama Simbol Keterangan Nama Class +atribut +atribut +atribut +method +method Class
Class adalah blok - blok pembangun
pada pemrograman berorientasi
object. Sebuah Class digambarkan
sebagai sebuah kotak yang terbagi atas 3 bagian. Bagian atas adalah bagian nama dari class. Bagian tengah mendefinisikan properti atau atribut class. Bagian akhir mendefinisikan berbagai method dari sebuah class.
Dependency
Salah satu jenis relasi class diagram yang lemah di mana objek dalam suatu class akan bekerja sangat singkat dengan objek yang ada pada
class lain
(work briefly)
Association
Salah satu jenis relasi class diagram yang lemah di mana objek dalam suatu class akan bekerja dengan jumlah waktu yang lama terhadap objek yang ada pada class lain. Garis ini bisa melambangkan tipe-tipe relationship dan juga dapat menampilkan hukum-hukum
multiplicity pada sebuah relationship.
(Contoh: One-to-one, one-to-many,
many-to-many). Aggregation
Jenis relasi class di mana ketika satu
class di share atau direferensikan
kepada objek yang ada di class lain.
Composition
Jenis relasi class diagram yang kuat di mana jika sebuah class tidak bisa berdiri sendiri dan harus merupakan bagian dari class yang lain, maka
class tersebut memiliki relasi
Composition terhadap classtempat
dia bergantung tersebut. Sebuah relationship composition
digambarkan sebagai garis dengan ujung berbentuk jajaran genjang berisi/solid.
2.2.8 PHP
PHP adalah salah satu bahasa Server-side yang didesain khusus untuk aplikasi web. PHP dapat disisipkan di antara struktur HTML dan karena bahasa Server side, maka bahasa PHP akan dieksekusi di server, sehingga dikirimkan ke
browser adalah “hasil jadi” dalam bentuk HTML, dan kode PHP Anda tidak akan terlihat. PHP termasuk dalam bahasa Open Source. Jadi Anda dapat mengubah source code dan mendistribusikan secara bebas[26].
Adapun kelebihan-kelebihan dari bahasa pemrograman PHP yaitu sebagai berikut.
1. PHP mudah dibuat dan kecepatan akses tinggi.
2. PHP dapat berjalan dalam web server yang berada dan dalam system operasi yang berbeda pula. PHP dapat berjalan disistem operasi UNIX, Windows98, Windows NT dan Macintosh.
3. PHP diterbitkan secara gratis
4. PHP juga dapat berjalan pada web server Microsoft Personal Web Server, Apache, IIS, Xitami dan sebagainya.
5. PHP adalah termasuk bahasa yang embedded (bisa ditempel atau diletakkan dalam tag HTML).
6. PHP termasuk server-side programming.
7. Sistem database yang didukung oleh PHP seperti Oracle, Sybase, mSQL, MySQL, Solid, Generic ODBC, Postgres SQL.
2.2.9 Laravel
Laravel adalah sebuah framework PHP yang dirilis di bawah lisensi MIT, dibangun dengan konsep MVC (model view controller). Laravel adalah pengembangan website berbasis MVP yang ditulis dalam PHP yang dirancang untuk meningkatkan kualitas perangkat lunak dengan mengurangi biaya pengembangan awal dan biaya pemeliharaan, dan untuk meningkatkan pengalaman bekerja dengan aplikasi dengan menyediakan syntax yang ekspresif, jelas dan menghemat waktu[27].
MVC adalah sebuah pendekatan perangkat lunak yang memisahkan aplikasi logika dari presentasi. MVC memisahkan aplikasi berdasarkan komponen- komponen aplikasi, seperti : manipulasi data, controller, dan user interface.
1. Model → Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
2. View → View adalah bagian yang mengatur tampilan ke pengguna. Bisa dikatakan berupa halaman web.
3. Controller → Controller merupakan bagian yang menjembatani model dan view.