## IMPLEMENTASI FRAMEWORK MVC PADA SISTEM INFORMASI AKADEMIK DI STMIK YADIKA BANGIL
Wildan Mualim 1) , Gema Ulama Putra 2)
Program Studi D-3 Manajemen Informatika STMIK YADIKA Bangil Email: wildan_m@stmik-yadika.ac.id

## ABSTRAK
In web application development, there are no principal rules or standards. This caused a problem when the application is developed by  more than one programmer as because it  will be difficult  when integrating the whole project together or for further development. Just as in Academic Information Systems in STMIK Yadika Bangil, which is built from scratch without following any architectural standards. It's neccessary to implement an MVC  framework  to  the  systems  to  make  the  code  maintainable  and  ease  the  integration  and  database management. The implementation of MVC framework can ease development process and increase development speed by reducing repetitive tasks.
Keywords : Framework, MVC, Website

## 1. PENDAHULUAN
1.1 Latar Belakang
Pada  pemrograman  web  memang  tidak diwajibkan mengikuti standar-standar pola pengembangan tertentu, sehingga memungkinkan untuk  project-project  skala  kecil  dikembangkan oleh  satu  pengembang  memiliki  struktur  yang berbeda dengan pengembang lain.
Pada  sistem  informasi  akademik  yang ada di STMIK Yadika Bangil, masih menggunakan code from scratch tanpa menggunakan  standar  arsitektur  sehingga  sulit untuk pengembangan lebih lanjut.
Oleh karena itu, perlu diimplementasikan sebuah framework yaitu  framework  MVC pada sistem  informasi  akademik  di  STMIK  Yadika Bangil untuk lebih meningkatkan fleksibilitas dan memudahkan  dalam  pengembangan  project, memudahkan integrasi sistem dan mempermudah pengelolaan database dan pembuatan aplikasi.

## 1.2 Tujuan
Mengimplementasikan  framework  MVC pada aplikasi sistem informasi akademik.
Memanfaatkan teknologi arsitektur MVC untuk  pengelolaan  database dan  meminimalisir pengulangan dalam proses pembuatan aplikasi.

## 2. LANDASAN TEORI
2.1

## Implementasi
Dalam  Kamus  Besar  Bahasa  Indonesia (KBBI), implementasi berarti
penerapan/pelaksanaan. Implementasi dapat
diartikan sebagai suatu tindakan atau pelaksanaan dari  sebuah  rencana  yang  sudah  disusun  secara matang  dan  terperinci[1].  Implementasi  biasanya dilakukan setelah perencanaaan selesai dilakukan dan sudah dianggap final.
Jika dihubungkan dengan aplikasi, implementasi  adalah  penerapan  dari  sebuah desain  aplikasi  yang  telah  dirancang  dengan lengkap  pada  sebuah  pemrograman  komputer. Dari  implementasi  ini  akan  dihasilkan  sebuah aplikasi  komputer  yang  dapat  berjalan  sesuai rancangan yang telah dibuat.

## 2.2 Pengertian Framework
Framework  secara  sederhana  dapat diartikan  kumpulan  dari  fungsi-fungsi/prosedur- prosedur  dan  class-class  untuk  tujuan  tertentu yang  sudah  siap  digunakan  sehingga  bisa  lebih mempermudah  dan  mempercepat  pekerjaan seorang  programmer,  tanpa  harus  membuat fungsi atau class dari awal. [3]
Framework juga dapat di artikan sebagai kumpulan  script  (terutama  class  dan  function yang  dapat  membantu  developer/  programmer dalam  menagani  berbagai  masalah-masalah dalam pemrograman seperti koneksi ke database, pemanggilan  variabel,  dan  file.  Sehingga developer lebih fokus dan lebih cepat membangun aplikasi. [2]

## 2.3 Aplikasi Web
Dalam  rekayasa  perangkat  lunak,  suatu aplikasi  web  (bahasa  Inggris:  web  application atau  sering  disingkat  webapp)  adalah  suatu aplikasi  yang  diakses  menggunakan  penjelajah
web  melalui  suatu  jaringan  seperti  Internet  atau intranet.  Ia  juga  merupakan  suatu  aplikasi perangkat lunak komputer yang dikodekan dalam bahasa  yang  didukung  penjelajah  web  (seperti HTML,  JavaScript,  AJAX,  Java,  dll)  dan bergantung  pada  penjelajah  tersebut  untuk menampilkan aplikasi[4].

## 2.4 Framework Aplikasi Web
Aplikasi berbasis web mempunyai asrsitektur yang berbeda dengan aplikasi berbasis desktop, begitu juga dengan cara pengembangannya.  Biasanya  aplikasi  berbasis desktop  dibangun  dengan  menggunakan  satu bahasa  pemrograman  dan  untuk  tambahan  dapat menggunakan satu bahasa query untuk mengakses  basis  data.  Dengan  demikian  untuk membuat  kode  yang  dapat  digunakan  berulang kali  (reusable)  tidak  terdapat  kesulitan,  yaitu cukup dengan menggunakan teknik pemrograman  berorientasi  objek  yang  spesifik untuk bahasa pemrograman yang digunakan.
2.5 Model-View-Controller (MVC) Model-View-Controller atau MVC
adalah  sebuah  metode  untuk  membuat  sebuah aplikasi  dengan  memisahkan  data  (Model)  dari tampilan (View) dan cara bagaimana memprosesnya (Controller).
Gambar 1. Model-View-Controller
Dalam implementasi kebanyakan framework  dalam  aplikasi    web  adalah  berbasis arsitektur  MVC (Model-View-Control) (Gambar 1).

## 3. ANALISA DAN PERANCANGAN

## 3.1 Analisa Sistem Saat Ini
Sistem  informasi  akademik  yang  ada  di STMIK Yadika Bangil berupa aplikasi web (Web
App)  yang  dibuat  dengan  menggunakan  bahasa pemrograman  PHP  versi  5,  Apache  sebagai webservernya dan MySQL sebagai databasenya.
Aplikasi sistem informasi sistem informasi  akademik  tersebut  dibangun  dari  awal (build  from  scratch)  sehingga  struktur  penulisan kode  dan  pendefinisian  fungsi  dan  relasi  antar komponen  tergantung  dari  programmer  yang membuatnya. Seperti  pada  struktur  file  dan direktori, koneksi database, dan routing.
File-file  program  dipisahkan  dalam direktori-direktori  berdasarkan  Hak  akses.  Tiap- tiap fungsi dipecah menjadi file-file dan dinamai sesuai dengan fungsinya seperti pada gambar 2.
Gambar 2. Struktur File Sistem Saat Ini
Database yang digunakan adalah database  MySQL.  Dan  sistem  konekftifitas database menggunakan fungsi native mysql yang disimpan  dalam  file  yang  mana  nantinya  file tersebut  di-include  oleh  file-file  lain  yang memerlukan koneksi database.
Terdapat  lebih  dari  sebuah  file  koneksi yang  berbeda  di  lokasi  yang  berbeda-beda, dimana hal tersebut dapat menyulitkan pengembang  untuk  mengetahui  dan  menentukan mana file koneksi yang benar-benar digunakan
Aplikasi  sistem  informasi  akademik STMIK Yadika Bangil tidak menerapkan routing untuk  URL  (Uniform  Resource  Locator).  Setiap komponen  di rujuk  menggunakan  path  relative secara  langsung.  Hal  ini  dapat  memudahkan orang lain untuk membaca struktur direktori pada aplikasi.

## 3.2 Analisa Sistem
Dari permasalahan yang ada pada analisa sistem  saat  ini,  diimplementasikan  framework MVC    Yii2  untuk  dapat  memperbaiki  masalah struktur dan organisasi file, database, dan routing kedalam bentuk class-class php.
Struktur dan organisasi file dan direktori sudah  ditentukan  oleh  aturan  framework  itu sendiri.  Untuk  organisasi  file  dari  sistem  yang akan diteliti mengikuti aturan dari framework.
Koneksi  database  yang  akan  digunakan adalah  menggunakan  library  ActiveRecord  dari Yii2 yang berbasis pada PDO (Php Data Object).
Query  database  pada  framework  Yii2 ditangani  oleh  class  model,  yang  merupakan perwakilan  dari  struktur  data  dari  database. Termasuk  aktifitas  CRUD  (Create  Read  Update Delete)  ditangani  oleh  class  model  dan  nantinya class  controller  hanya  perlu  berinteraksi  dengan class  model  tersebut  untuk  membaca  dan melakukan manipulasi data.
Route (rute) URL berdasarkan pada nama controller  dan  method  dari  controller.  Dan nantinya  controller  akan  memanggil  view  yang bersangkutan.
Class-class  untuk  MVC  dibuat  secara auto-generate  dengan  fitur  Gii  dari  Yii2  setelah struktur database dibuat. Karena Model View dan Controller dibuat berdasarkan pada struktur tabel dari database yang dipilih.

## 3.3 Perancangan
Dari  analisa  sistem  yang  akan  dibuat, dibuatlah  rancangan  database,  class-class  dan antarmuka  pengguna  yang  untuk  kemudian diimplementasikan kedalam bentuk sebuah aplikasi.
Perancangan  database  dilakukan  dengan membuat  diagram  EERD  (Enhanched  Entity Relationship  Diagram) pada  Gambar  3 yang kemudian  dirubah  kedalam  bentuk  file  migrasi Yii2  seperti  struktur  database  dosen  dan mahasiswa.
Gambar 3. Struktur Database Dosen dan Mahasiswa
Perancangan class disajikan dalam bentuk  diagram  class  untuk  memodelkan  object, class,  attribut  dan  komponen  framework  MVC. Seperti  pada  class  diagram  jurusan  (Gambar  4), seluruh proses pengolahan data jurusan dilakukan oleh  class  JurusanController  yang  meng-extend dari  class  Controller  Yii2.  Dimana  Controller tersebut memanggil class Jurusan yang merupakan  sebuah  class  model  yang  mewakili data  pada  tabel  jurusan  di  database.  Meliputi operasi pengambilan data, penyimpanan data, dan penghapusan  data.  Class  Jurusan  meng-extend
class  ActiveRecord  dari  Yii2  untuk  dapat berinteraksi  dengan  record  database.  Dan memanggil  class  JurusanSearch  untuk  pencarian data  dan  class  JurusanQuery  untuk  melakukan query  ke  database  dimana  class  JurusanQuery meng-extend  dari  ActiveQuery  yang  berisi method-method untuk operasi query database.
Class  JurusanController  selaku  sebuah controller class juga bertugas untuk menampilkan view berdasarkan request dari user. Standar view pada  yii2  untuk  operasi  CRUD  terdiri  dari  4 bagian yaitu view, index, update, dan create.

## Gambar 4. Class Diagram Jurusan
Sedangkan  untuk  antarmuka  pengguna dibuat  menggunakan  template AdminLTE  yang berbasis dari twitter bootstrap.

## 4. Implementasi
Program  atau  aplikasi  ini  dibuat  dengan menggunakan  Framework  MVC  Yii2  yang menggunakan bahasa pemrograman PHP, Javascript,  dan  HTML.  Selain  itu,  aplikasi  ini juga menggunakan MySQL sebagai aplikasi basis data.

## 4.1 Instalasi Framework Yii2
Instalasi  framework  Yii2  dilakukan menggunakan  aplikasi  manajer  dependensi  php yaitu composer yang dijalankan melalui terminal command  line.  File  instalasi  yii2  beserta kebutuhan-kebutuhannya  akan  di  download  dari internet  dan  kemudian  diterapkan  kedalam direktori  tujuan. Untuk tema  tampilan  yang digunakan,  yaitu  Admin  LTE  juga  ditambahkan kedalam project melalui dependensi manager.

## 4.2 Implementasi migrasi basis data
Rancangan basis data diimplementasikan dalam  bentuk  class  migrasi  /  migration  dan  di pisah berdasarkan tabel kecuali untuk prodi, mata kuliah  dan  jurusan. File  migrasi  sendiri  di generate  secara  otomatis  menggunakan  tool utility dari  Yii2  berdasarkan  struktur  tabel-tabel yang sudah dibuat dalam database.

## 4.3 Pembuatan Class MVC
Setelah  struktur  database  dibuat,  class- class untuk  model,  view  dan  controller  dapat dibuat  secara  auto-generate  menggunakan  tool Gii dari Yii2.
Class  model  dapat  dibuat  dengan memanfaatkan  code  generator  Gii  (Gambar  5). Dengan  memasukkan  beberapa  parameter  yaitu nama tabel, nama model, dan kemudian Gii akan menganalisa  struktur  tabel  dan  membuat  class model berdasarkan tabel yang dibuat.
Gambar 5. Class Generator Gii
model yaitu class model utama yang mendefinisikan  dan  juga  berfungsi  sebagai perwakilan  data  pada  tabel  database,  class  query yang  berguna  untuk  melakukan  query  database, dan  class  search  yang  berguna  untuk  melakukan pencarian data.
Setelah  class  model  selesai  dibuat, langkah  selanjutnya  yaitu  membuat  class controller  dan  view.  Sama  seperti  class  model, class  controller  dan  view  dibuat  dengan menggunakan fitur  CRUD  Generator  dari Gii. Dan  dihasilkan  sebuah  file  controller  dan beberapa  view.  Dan  dihasilkan  sistem  CRUD yang terdiri dari tampilan dan proses penambahan  data, pembaruan  data  (Gambar  6), pembacaan  data (Gambar  7),  dan  penghapusan data.
Gambar 6. Tampilan Update Data Prodi

## Gambar 7. Tampilan List Data Prodi

## 5. Evaluasi
Dari  implementasi  framework  MVC pada  bab  sebelumnya,  dapat  dilihat  bahwa instalasi framework  sudah  tidak  perlu  dilakukan secara  manual.  Hanya  perlu  melakukan  instalasi melalui dependensi manager dan segala kebutuhan yang akan digunakan dalam pengembangan di-download dan diorganisir oleh dependensi manager. Hal ini dapat mempermudah  pengembang  untuk  memulai sebuah  project  karena  pengembang  hanya  perlu melakukan analisa kebutuhan sistem.
Pembuatan  file-file class migrasi  basis data juga  ditangani  oleh  tool utility sehingga pengembang  hanya  perlu  membuat  tabel-tabel pada database dan melakukan beberapa perubahan  pada  file  migrasi  hasil auto-generasi sesuai  kebutuhan.  Konsep  migrasi  ini  dapat mempermudah  pengelolaan  database  karena memuat setiap perubahan pada database sehingga apabila terjadi kesalahan maka database dapat di- revert ke migrasi sebelumnya.
Dalam  pembuatan  file-file  class  MVC juga  dipermudah  dengan  adanya  autogenerate yang  menghasilkan  kode  yang  terstruktur  rapi dan  mudah  dipahami.  Sehingga  mempercepat dalam  proses  pembuatan.  Dan  dengan  adanya standar  bahasa,  maka  mempermudah  dalam pemahaman  kode  dan  mempermudah  dalam merubah-rubah kode untuk menyesuaikan kebutuhan.  Pengembang  selanjutnya  pun  dapat mengetahui  fungsi  masing-masing  kode  dengan merujuk pada dokumentasi dari framework Yii 2 itu sendiri.

## 6. Kesimpulan
Dari  hasil  implementasi  dan  analisa sebelumnya,  dapat  diambil  kesimpulan  sebagai bahwa framework dapat mempermudah pengembangan aplikasi secara terus menerus oleh beberapa  karena  pada  framework  ditetapkan standar-standar  tertentu  sehingga  struktur  kode lebih  rapi,  mudah  dipahami  dan  mudah  untuk disesuaikan  dengan  kebutuhan  di  masa  depan. Dengan adanya fitur autogenerate, dapat mempercepat  proses  pengembangan  dengan
mengurangi  tugas  yang  berulang-ulang. Dan dengan  adanya  migrasi,  perpindahan  server menjadi  lebih  mudah  dan  mengurangi  resiko error pada program.

## 7. Daftar Pustaka
[1] Depdiknas.  2013.  Kamus  Besar  Bahasa Indonesia. Depdiknas.
[2] Dewi  Rosmala,  Dkk.  2011.  “Komparasi Framework
MVC(Codeigniter, Dan Cakephp)  Pada  Aplikasi  Berbasis  Web”. Jurnal  Informatika  Vol  2 No  2.  Teknik
Informatika  Institut  Teknologi  Nasional Bandung. Bandung.
[3] Koespradono,  dkk.  2013.  “Sistem  Informasi
Pengolahan  Data  Pertumbuhan  Ekonomi Dan  Ketimpangan  Di  Kabupaten  Klaten (Tahun 2003-2012) Menggunakan Framework  Codeigniter”.  Jurnal  SCRIPT Vol 1  No  1.  Teknik  Informatika,  institut Sains & Teknologi AKPRIND. Yogyakarta. [4] Wikipedia. Aplikasi
web. (Online).(https://id.wikipedia.org/wiki/Aplik
asi_web)