Konsep MVC

Web Development merupakan istilah yang sering digunakan dalam pengembangan sebuah sistem informasi dalam bentuk digital yang bisa diakses melalui suatu halaman HTTP. Web Development berkembang dengan pesat yang dapat dilihat dari perkembangan bahasa yang digunakan dalam pembuatannya.

Pada tahap awal pengembangan Web bertujuan menampilkan informasi yang bersifat statis menggunakan HTML saja. Sesuai dengan perkembangan dari permintaan, ada keinginan dari user yang membutuhkan informasi yang ditampilkan dinamis dan berubah-ubah. Ada proses input dan output terhadap sebuah informasi yang ditampilkan hingga Web Development membutuhkan Database sebagai tempat penyimpanan data yang bersifat dinamis. Pembuatan Web Statis ini melibatkan PHP sebagai penghubung antara client dengan server Database.

Pada tahap ini, pembuatan Web bersifat dinamis dengan menggunakan Database sangat terkenal. Hal ini dapat dilihat dengan pencampuran penggunaan antara HTML, CSS, dan PHP dalam satu sistem Web. PHP sendiri biasanya menjadi kode sisipan dalam HTML dan CSS berbentuk variabel yang memiliki isi berubah-ubah sesuai state di Database. PHP dapat membantu untuk mengembangkan aplikasi Web yang cukup kompleks, handal, dan cepat.

Dengan pencampuran HTML, CSS, dan PHP menjadikan pemrograman web menjadi lebih kompleks. Dengan konsep pemrograman tradisional dimana UI, Logic dan data aplikasi ditulis dalam bentuk satu file sehingga menjadi tidak dapat di mantain dengan baik, tidak dapat di test sehingga menjadi terlalu kompleks. Akibat terlalu kompleks, menjadikan adanya proses repeat untuk sebuah hal detail dalam pengerjaan dan memberikan effort yang besar pada Programmer. Hal ini terjadi ketika mereka memiliki Project yang sudah selesai dan selanjutnya memiliki Project lain yang hampir sama gambarannya dengan yang sebelumnya, namun mereka harus mengerjakan Project tersebut dimulai dari awal (from-scratch). Dimana effort yang diberikan sebenarnya bisa dikurangi. Dari hal tersebut muncul ide yang disebut dengan konsep MVC (Model-View-Controller)

Bagan Kerangka MVC

Konsep MVC memberikan pembedaan pada aspek logika aplikasi seperti input, bisnis, dan output. Menggunakan MVC telah diberikan pembeda untuk setiap logika. Terkait output terhadap user berupa user interface (UI) terdapat pada bagian View. Logika untuk input terdapat pada bagian Controller, sedangkan logika bisnis terdapat pada Model. Dengan memberikan pembagian tersebut maka akan dapat membantu dalam mengelola kompleksitas pada pembuatan aplikasi web sehingga programmer dapat fokus pada salah satu aspek dalam proses implementasi. Contohnya adalah programmer dapat fokus pada bagian View tanpa ada ketergantungan dengan logika flow bisnis yang diinginkan.

Komponen dari Konsep Kerangka MVC:

  • Models. Model merupakan bagian dari aplikasi yang merupakan implementasi dari domain data. Model berfungsi sebagai sebuah state untuk menampilkan, menerima, dan menyimpan data kedalam database. Model bisa juga merepresentasikan tabel yang ada pada Database dengan relasionalnya.
  • Views. View merupakan komponen yang menampilkan interface user. Biasanya UI berisi kerangka-kerangka tampilan yang telah digabungkan dengan data dari komponen Model.
  • Controllers. Controller adalah komponen yang menangani interaksi pengguna. Controller berisi logika pemrograman dari sisi backend dengan menggunakan Model sebagai data dan melakukan pemilihan view untuk dirender dan ditampilkan ke User.

Konsep MVC telah banyak diterapkan oleh ahli IT dalam mengembangkan aplikasi. Hal ini dilakukan untuk mempermudah pengembangan perangkat web maupun aplikasi dengan arsitektur MVC. Konsep berbanding jauh dengan pengembangan tradisional terkait dengan keuntungan dalam proses penggunaan kembali kode (reusable code), pengembangan simultan dan lainnya. MVC Framework sudah tersedia dalam pengembangan berbagai platform seperti PHP, .Net, Java. Banyak open source yang menggunakan MVC seperti Laravel, Yii, Code Igniter dan lainnya.

Kliknklin Journal Summary

PT. Kliknklin Digital Nusantara is the company that I’ve been working from end of 2016 until now. The start-up digital company which focusing their business on the demanding laundry services. They have a vision to digitalize the process of conventional laundry outlet using recent technology. Though the business concept is slowly adapting, changing and growing by pivoting regards to flow business, profit reports and financial statement. The startup still focusing on how to ease and deliver the process of the laundry. Strengthened their internal and external infrastructure and operation.

I’ve been recruited from 3 October 2016 as a Software Engineer, after the MVP of the product emerged. The MVPs are web and mobile consumer apps that fulfill the demand of people with high mobility in the city. I Do a front and back end job and API for mobile developers. I’ve been following every change of business process in order to create required product that needed by the users of the products. Below are some short history of business and bullet list of work I have finished in the company

On the very first time, Kliknklin using both Web and Mobile Application technologies in order to fulfil the customer demand on the laundry with an internal couriers as an employee. The Web Apps is already running with a simple scheduled pickup and delivery of laundry. At this moment, the concept of laundry is still using kilos on the apps. Simple flow with just using kilo laundry from customer order, then the system will find matched outlet to be assigned. The outlet couriers later will pick, process and deliver the items. For the courier we are using Telegram Bot Technology for the courier to get update of new task schedule and location address to ship the laundry items. We are working using Laravel Framework and PHP for the Back and use CSS, HTML, Javascript and JQuery on the front as the core function. For the Database, the company use MySQL. My work on the project is listed sequentially below.

  • Creating analytics page for investors/shareholders. I’ve working on summary of orders by real time of each status and creating a graphic performance of orders on all outlets weekly and monthly.
  • Assigned to make a complete booking form of laundry. Working on using google maps API for pin point customer location. Then scheduling of pickup and delivery using the items.
  • Creating a booking history page of customer orders on the page.
  • Designing and implementing a welcome landing page for customers.
  • Implementing a marketing features of Membership concept and designed by business development team.
  • Working on an internal dashboard needs based on requirement from the customer services, finance, business development and operational team.

By the year 2017. The company decide to expand the business. The plan is to give solution to existing laundry or Micro small and medium enterprises (UMKM). So, the company decide to create a Point of Sales mobile application on android tablet as a solution for existing laundry on Indonesia especially on Jabodetabek. This project is like a whole new level because the product team working on this apps from zero to complete used. I work on this project as a team of 3 with system analyst and mobile engineer. The big picture of work I’ve done are:

  • Working on the Database Design Concept together with the team. I am implement the Database and migrate it.
  • Working on Back end and Front end of the Web. Both for external party and internal company. External party (UMKM) can login and register and manage all of their outlet needs on the apps. Then for Internal for operations.
  • Providing API for Mobile Engineer to implement the mobile applications.
  • Features available on the Web for external party: Manage Outlets, Items, Staffs, Attendances, Customers, Transactions, FAQ and Apps Download.

Mid 2017, the core online digital business that require customer apps and courier bot telegram has changed. The business expand from just kilo laundry to the premium units item laundry. The company proposed a big changes by remodelling the apps and database completely to the new one. Migrating all the data and design. The product team have to create 2 Mobile and Web Applications. One for the customer endpoint and the other for partner endpoint.

On the customers application, we apply a marketplace concept by providing all the laundries nearby on the apps sorted by ratings, reviews and item availability. Later customer can choose which laundry outlet services they want based on their current or picked location. For partner application, we defined partner as UMKM and internal laundry defined by the company as Laundryklin. By using the partner apps, they can manage all things on the outlet start from online transaction, operational time, employee, and items.

The product team have to create new applications for laundry UMKM and internal laundry called Laundryklin, the company call them “partners”. So, the company provide an apps for the courier and staff of the laundry in order to manage the order to change the status and scheduled deliveries. This will benefit the customer by giving a real time status of order and easy order information for partners.

Working on 2 apps mobile and 2 web internal customer and partner gave me exquisite work load. Like usual I was working on web front and back end, while providing an API back end for Mobile Apps. The difficulty on the project is to managing the work load. This projects launch in the early 2018 and still have rooms for development. We, the product team, still creating many features such as promos, memberships and fix the performance issues.

Mid 2018, the company put a concept to merge the Point-of-Sales Apps that serve conventional laundry to the Partner Apps. This concept will give an ease to the customer because all transaction records both triggered on consumer and partner apps can be monitor directly. This concept called offline-to-online datas. We merge the data by using unique customer identity [email, and mobile phone], so later there will be golden record of data customers. No duplicates of consumer data for every orders. The apps has launched at the end of 2019 and running and we the product team still developing and plan on scale the apps.