Final Project Pemrograman Berbasis Kerangka Kerja B

Nama : Kevin Nathanael Halim

NRP : 5025211140

Kelas : Pemrograman Berbasis Kerangka Kerja B

Tahun Ajaran : 2023/2024 (Semester Gasal)


Untuk Final Project Pemrograman Berbasis Kerangka Kerja kali ini, saya memilih sebuah paper terkait pembuatan sebuah Sistem Informasi berbasis Website untuk sebuah perusahaan penjual sepeda menggunakan kerangka kerja CodeIgniter. Paper tersebut ditulis oleh 4 penulis yakni Yeni Anggraini, Donaya Pasha, Damayanti Damayanti, dan Aan Setiawan. Berikut adalah tautan untuk membuka paper beserta sitasinya,

Link Paper : https://jim.teknokrat.ac.id/index.php/sisteminformasi/article/view/236

Sitasi : Anggraini, Y., Pasha, D. and Damayanti, D., 2020. Sistem Informasi Penjualan Sepeda Berbasis Web Menggunakan Framework Codeigniter. Jurnal Teknologi Dan Sistem Informasi, 1(2), pp.64-70.


1. Buatlah deskripsi studi kasus aplikasi ditinjau dari MVC nya

    Aplikasi yang akan dibuat adalah aplikasi berbasis website yakni Sistem Informasi untuk sebuah perusaahan penjualan sepeda. Sistem yang akan dibangun diharapkan dapat membantu perusahaan untuk memasarkan sepeda secara online tanpa harus bertemu secara langsung untuk melakukan transaksi sepeda. Aplikasi ini akan dibuat dengan menggunakan bahasa PHP serta memanfaatkan kerangka kerja CodeIgniter4. Kerangka kerja ini dipilih karena kesesuaiannya dengan paper yang dijadikan referensi serta kualitasnya yang mumpuni untuk digunakan membuat sebuah aplikasi fullstack berbasis website sehingga dapat membantu mempercepat serta mempermudah kerja developer dalam pembuatan aplikasi.

    Aplikasi akan dibangun dengan pola desain MVC (Model, View, Controller), sesuai pula dengan paper yang dijadikan referensi. Dengan MVC, maka memungkinkan pemisahan antara layer application-logic  dan  presentation.  Sehingga,  dalam  sebuah pengembangan web, seorang programmer bisa berkonsentrasi pada core-system. Adapun alur program aplikasi dengan MVC dapat dilihat pada gambar di bawah ini,



    Untuk struktur dari MVC pada aplikasi sendiri kurang lebih akan seperti berikut,

    - Model : Model dalam aplikasi ini berfungsi sebagai penanggung jawab terhadap segala hal yang terkait dengan data, baik yang berhubungan dengan pengguna seperti registrasi dan juga login, penyimpanan daftar sepeda yang tersedia termasuk dengan ketersediaan stok terkini secara real time, maupun segala transaksi sepeda yang terjadi pada sistem. Model akan berinteraksi dengan Controller untuk mengirimkan segala jenis data yang dibutuhkan.

    - View : View dalam aplikasi ini berfungsi sebagai tampilan antarmuka yang akan berinteraksi secara langsung dengan pengguna saat membuka aplikasi. Segala jenis tampilan termasuk halaman registrasi serta login pengguna, katalog sepeda, detail sepeda, daftar sepeda pada keranjang, pembelian serta konfirmasi transaksi, riwayat transaksi, dan bahkan dashboard admin merupakan bagian dari View. View akan berkenaan langsung dengan Controller untuk segala logika yang menunjang pengalaman pengguna ketika sedang menggunakan aplikasi beserta segala fitur di dalamnya.

    - Controller : Controller dalam aplikasi ini berfungsi sebagai penengah / core dari segala jenis fitur atau logika bisnis yang ada pada aplikasi. Bagian ini bertanggung jawab untuk memastikan segala mekanisme dari aplikasi dapat berjalan dengan baik, yakni dengan mengintegrasikan bagian View dan juga Model dari setiap fitur yang tersedia pada aplikasi. Tujuannya tentu agar setiap fungsionalitas dari aplikasi dapat berjalan dengan baik dan digunakan oleh pengguna dengan lancar. Nantinya, Controller akan mengirimkan data yang Ia dapatkan dari Model untuk ditampilkan pada View sehingga pengguna dapat melihat segala tampilan yang tersedia.


2. Buatlah rancangan umum arsitektur atau fitur yang ada dalam aplikasi

   Pada aplikasi, terdapat fitur autentikasi yang memungkinkan orang yang membuka aplikasi untuk mendaftarkan diri dan kemudian melakukan login dengan kredensial yang sudah Ia gunakan untuk mendaftar. Setelah itu, bagian utama dari aplikasi akan terdiri dari 2 sisi, yakni sisi pengguna dan juga  sisi admin. 

    Dari sisi pengguna sendiri, halaman awal yang akan ditampilkan adalah landing page yang merupakan halaman utama dengan katalog berisikan seluruh sepeda yang tersedia di perusahaan. Setiap sepeda mempunyai halaman detilnya masing-masing yang dapat menampilkan berbagai atribut mulai dari nama, merk, kategori, harga, stok, gambar, dan lain-lain. Di sana pula, pengguna dapat melakukan pembelian dengan memasukkannya ke dalam keranjang yang tentunya berbeda untuk setiap pengguna. Halaman keranjang sendiri berisikan segala macam sepeda yang telah dimasukkan pengguna ke dalam keranjang dimana pengguna juga bisa melakukan penambahan ataupun pengurangan terhadap jumlah setiap itemnya. Kemudian, terdapat halaman transaksi dimana bisa dilakukan proses pembelian dan pembayaran terhadap seluruh barang di keranjang. Terakhir, terdapat halaman riwayat transaksi yang menampilkan segala transaksi yang pernah dilakukan pengguna serta detil transaksi untuk melihat secara spesifik isi dari setiap transaksi. List dari segala fitur pengguna sendiri sebagai berikut,

    - Landing Page

    - Melihat Katalog Sepeda

    - Melihat Detil Sepeda

    - Memasukkan ke dalam Keranjang

    - Melihat isi Keranjang

    - Menambahkan / Mengurangi jumlah setiap sepeda pada Keranjang

    - Menghapus Sepeda dari Keranjang

    - Melakukan Pembelian / Transaksi (Stok sepeda akan otomatis ter-update)

    - Melihat Riwayat Transaksi Pengguna

    - Melihat Detil Transaksi

    Sementara itu, pada sisi admin, halaman utamanya adalah halaman kelola sepeda dimana akan ditampilkan semua sepeda yang tersedia dalam bentuk tabel agar lebih mudah dibaca. Dari sana, admin dapat melakukan penambahan jenis sepeda yang dijual, melakukan edit terhadap sepeda yang sudah tersedia, dan menghapus sepeda yang sudah tidak ingin ditampilkan pada katalog. Pada dasarnya, fitur dari admin berkaitan dengan CRUD terhadap sepeda dan melihat transaksi yang bila dituliskan menjadi sebagai berikut,

    - Melihat Katalog Sepeda

    - Menambahkan sepeda baru

    - Mengubah informasi / atribut dari sepeda yang tersedia

    - Menghapus sepeda dari katalog

    - Melihat Penjualan (Transaksi) dan Detailnya


3. Rancang desain databasenya

    Database untuk mengakomodasi aplikasi Sistem Informasi penjualan sepeda ini berisikan 5 entitas yakni Pengguna (Users), Sepeda (Bikes), Barang_Keranjang (Cart_Products), Keranjang (Cart), dan juga Transaksi (Transactions). Berikut adalah CDM dan juga PDM dari database untuk aplikasi,

Gambar CDM

Gambar PDM

Catatan : Pada aplikasi sendiri, keranjang akan berupa sebuah entitas bayangan yang tidak dibuat secara fisik karena hanya digunakan konsepnya saja.


4. Buat desain front end

    Berikut adalah desain bayangan secara kurang lebih untuk halaman-halaman View yang akan menjadi sisi Front-end dari aplikasi nantinya,


Gambar Halaman Registrasi


Gambar Halaman Login




Gambar Halaman Katalog Sepeda



Gambar Halaman Detil Sepeda



Gambar Halaman Keranjang



Gambar Halaman Transaksi


Gambar Halaman Riwayat Transaksi



Gambar Dashboard Admin

5. Tentukan Control yang akan mengandle logika back end.

    Untuk Controller-controller yang akan menangani mekanisme maupun alur dari fitur atau logika bisnis dari aplikasi sebagai berikut,

    - UserController : Controller yang bertanggung jawab atas semua mekanisme berkaitan dengan pengguna seperti Registrasi, Login, Edit Data Pengguna, dan Hapus Pengguna. Controller ini berkaitan langsung dengan model Users (Pengguna).

    - BikeController : Controller yang bertanggung jawab atas semua mekanisme berkaitan dengan sepeda yang merupakan produk utama di aplikasi seperti Menampilkan Katalog Sepeda dan Detail Sepeda. Controller ini berkaitan langsung dengan model Bikes (Sepeda).

    - CartController : Controller yang bertanggung jawab atas semua mekanisme berkaitan dengan keranjang seperti Memasukkan ke dalam keranjang, Melihat isi keranjang, Menambahkan / Mengurangi jumlah sepeda dalam keranjang, dan Menghapus isi keranjang. Controller ini berkaitan langsung dengan model Cart_Products (Barang_Keranjang).

    - TransactionController : Controller yang bertanggung jawab atas semua mekanisme berkaitan dengan transaksi seperti Melakukan Pembelian / Transaksi (Checkout), Melihat Riwayat Transaksi Pengguna, dan Melihat Detil Riwayat Transaksi. Controller ini berkaitan langsung dengan model Transactions (Transaksi).

    - AdminController : Controller yang bertanggung jawab atas semua mekanisme di sisi admin seperti Menambahkan Sepeda, Edit Sepeda, dan Menghapus Sepeda yang berkaitan dengan sepeda. Selain itu, juga menangani mekanisme fitur Melihat Sales dan Detail Sales yang mengarah ke transaksi.


6. Implementasikan rancangan yang sudah dibuat menggunakan Framework NET, CI ataupun Framework Google

    Hasil implementasi menggunakan kerangka kerja CodeIgniter4 dapat dilihat pada repository GitHub yang tautannya saya cantumkan sebagai berikut,

    Link GitHub : https://github.com/zetsux/codeigniter4-bicycle-shop


7. Buat video presentasinya, upload di youtube, dan didokumentasikan di blog.

    Video presentasi untuk aplikasi yang telah kami buat dapat diakses melalui platform YouTube sebagai berikut,

Comments