Perangkat lunak yang dibahas disini adalah sebuah website yaitu takequest.com. Website ini merupakan website yang dirancang sebagai pencarian pekerjaan non-formal dengan mengimplementasikan konsep gamification. Dimana user bisa kita ibaratkan sebagai pemain. User dapat membuat permintaan(quest) dan mengambil quest tersedia yang dibuat oleh user lain. User pembuat quest dapat mengonfirmasi user lain yang mengambil permintaanya. Jika permintaan diselesaikan, user yang mengambil quest akan mendapatkan experience point setelah dikonfirmasi dulu oleh pemilik quest.
Takequest dibangun dengan menggunakan framework Codeigniter. Design Pattern yang digunakan diimplementasikan oleh Codeigniter. Di Codeigniter sendiri ada banyak design pattern yang diimplementasikan, tapi disini saya akan menjelaskan pemakaian singleton pattern.
Singleton sendiri dimaksudkan untuk membuat agar class memiliki satu instance dan meneyediakan hak akses global untuk mengaksesnya, dan hanya diinisialisasi saat di awal, jadi tidak perlu mengakses objek dan tidak perlu instansiasi lagi jika sudah pernah mengakses sebelumnya . di Singleton juga membuat class yang bertanggungjawab untuk inisialisasi, akses dan enforcement. Mendeklarasikan instance sebagai private static data member. Menyediakan public function static member yang merangkum inisialisasi dan akses ke instance.
Menurut sumber lain dikatakan juga bahwa MVC di Codeigniter adalah sebuah design pattern juga. MVC pattern sendiri tidak termasuk GoF namun, beberapa pendapat mengatakan bahwa MVC merupakan design pattern jika dilihat dari sudut pandang yang berbeda. Jadi di sini saya akan menjelaskan juga Design Pattern - MVC pattern.
Singleton sendiri dimaksudkan untuk membuat agar class memiliki satu instance dan meneyediakan hak akses global untuk mengaksesnya, dan hanya diinisialisasi saat di awal, jadi tidak perlu mengakses objek dan tidak perlu instansiasi lagi jika sudah pernah mengakses sebelumnya . di Singleton juga membuat class yang bertanggungjawab untuk inisialisasi, akses dan enforcement. Mendeklarasikan instance sebagai private static data member. Menyediakan public function static member yang merangkum inisialisasi dan akses ke instance.
Menurut sumber lain dikatakan juga bahwa MVC di Codeigniter adalah sebuah design pattern juga. MVC pattern sendiri tidak termasuk GoF namun, beberapa pendapat mengatakan bahwa MVC merupakan design pattern jika dilihat dari sudut pandang yang berbeda. Jadi di sini saya akan menjelaskan juga Design Pattern - MVC pattern.
Berikut penjelasan mengenai Design Pattern - MVC pattern yang bersumber dari tutorialspoint.com
MVC Pattern adalah kepanjangan dari Model-View-Controller Pattern. Pattern ini digunakan untuk memisahkan bagian kepentingan dari aplikasi.
Model - Model menggambarkan objek yang membawa data. Dia juga memiliki logic untuk mengupdate kondisi di controller.
View - menampilkan visualisasi dan juga data yang telah diambil dari model.
Controller - Controller mengontrol aliran data dari/ke model dan memperbaharuinya di view kapanpun terjadi perubahan. Dia menjadi penengah antara keduanya(model dan view).
Gambaran Umum MVC pattern
gambaran umum MVC-Pattern
Prototype Implementasi System
- Use Case Diagram
- CRC-card
- Class Diagram
- Class Realization
- Sequence Diagram
- sign in
- sign up
- lihat quest
- drop_quest
- konfirmasi quest berhasil
- konfirmasi pengambilan
- konfirmasi quest gagal
- delete quest
- create quest
- take quest
- Component Diagram
- Deployment Diagram
- Activity Diagram
Class Diagram
Implementasi Design Pattern pada Class
Singleton Pattern
Salah satu pattern yang digunakan adalah singleton pattern. Singleton pattern terlihat saat pemanggilan objek. Namun Codeigniter sendiri memiliki singleton pattern yang sedikit berbeda. Jika biasanya pemanggilan di php seperti ini
return $className::instance();
Untuk codeigniter sendiri adalah seperti ini
$this->load->view('homepage/home_head');
$this->load->model('main_model');
$this->load->view('userpage/user_nav',$data2);
Dengan kegunaan yang sama. Loader akan melakukan pemeriksaan untuk melihat apakah kelas telah dimuat sebelumnya dengan memeriksa registri kelas dimuat. Diam-diam mengabaikan permintaan dengan entri log debug jika telah dimuat. Instansiasi kelas dengan apa pun parameter yang ditetapkan, membuat referensi ke objek yang dalam framework (singleton) objek dinamai kelas, atau nama kustom apa pun yang telah di passing. Menyimpan referensi, mengabaikan upaya selanjutnya untuk memuat jika sudah dimuat sebelumnya.
Pemakaiannya digunakan saat pemanggilan class Main_model yang hanya di instansiasi di awal oleh loader dan bisa diakses global oleh class Core.
MVC Pattern
Singleton Pattern
Salah satu pattern yang digunakan adalah singleton pattern. Singleton pattern terlihat saat pemanggilan objek. Namun Codeigniter sendiri memiliki singleton pattern yang sedikit berbeda. Jika biasanya pemanggilan di php seperti ini
return $className::instance();
Untuk codeigniter sendiri adalah seperti ini
$this->load->view('homepage/home_head');
$this->load->model('main_model');
$this->load->view('userpage/user_nav',$data2);
Dengan kegunaan yang sama. Loader akan melakukan pemeriksaan untuk melihat apakah kelas telah dimuat sebelumnya dengan memeriksa registri kelas dimuat. Diam-diam mengabaikan permintaan dengan entri log debug jika telah dimuat. Instansiasi kelas dengan apa pun parameter yang ditetapkan, membuat referensi ke objek yang dalam framework (singleton) objek dinamai kelas, atau nama kustom apa pun yang telah di passing. Menyimpan referensi, mengabaikan upaya selanjutnya untuk memuat jika sudah dimuat sebelumnya.
Pemakaiannya digunakan saat pemanggilan class Main_model yang hanya di instansiasi di awal oleh loader dan bisa diakses global oleh class Core.
MVC Pattern
MVC pattern digunakan di model, view dan controllernya. Terlihat pada gambar diatas yang merupakan bagian dari class diagram. Controller core menjadi pemisah antara model dan view. Main_model yang menjadi model beriksi logika yang dapat mengupdate kondisi di controller sesuai dengan objek yang berisi data. Kemudian melalui controller core yang telah diperbaharui akan menampilkan visualisasi dari data yang telah didapat dari model main_model ke view.
4. Class Realization
5. Sequence Diagram
Sign up
Lihat quest
Drop quest
Konfirmasi quest berhasil
Konfirmasi quest gagal
Konfirmasi pengambilan quest
Delete quest
Create quest
Take quest
Sign in
Sign up
Lihat quest
Drop quest
Konfirmasi quest berhasil
Konfirmasi quest gagal
Konfirmasi pengambilan quest
Delete quest
Create quest
Take quest
6. Component Diagram
8. Activity Diagram
Tampilan web:
Link Website : takequest.com
source code : https://github.com/yaukings/TakeQuest
referensi:
https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
https://www.tutorialspoint.com/design_pattern/singleton_pattern.htm
http://stackoverflow.com/questions/14619642/codeigniter-design-patterns
https://forum.codeigniter.com/thread-39688.html
http://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern
https://www.quora.com/Is-MVC-a-design-pattern-Why
activity diagram 1
activity diagram 2
activity diagram 3
activity diagram 4
Link Website : takequest.com
source code : https://github.com/yaukings/TakeQuest
referensi:
https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
https://www.tutorialspoint.com/design_pattern/singleton_pattern.htm
http://stackoverflow.com/questions/14619642/codeigniter-design-patterns
https://forum.codeigniter.com/thread-39688.html
http://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern
https://www.quora.com/Is-MVC-a-design-pattern-Why