Muhammad Wahfiuddin
Proyek ini bertujuan untuk membuat backend API sebuah platform penyedia layanan pemesanan jasa teknisi berbasis REST API menggunakan framework Flask dengan menggunakan dua jenis database yakni MySQL dan MongoDB. Beberapa fitur yang ditangani dalam API ini antara lain booking teknisi, pembayaran layanan, dan penjadwalan teknisi yang seluruh proses dikendalikan melalui endpoint API. Dengan pendekatan ini, diharapkan sistem mampu menyimulasikan proses pemesanan teknisi di dunia nyata dengan alur yang jelas dan data yang konsisten.
STUDI KASUS
Pak Amba merupakan seorang teknisi professional asal Medan yang sudah menempuh pendidikan hingga ke Pakistan dan skillnya tidak diragukan lagi karena ia hampir bisa memperbaiki apapun mulai dari AC, kulkas, TV, pompa, masalah kelistrikan bahkan mobil. Namun, kehebatan yang ia miliki tidak dapat membuatnya kaya raya, karena belum banyak orang yang mengetahui skill yang ia miliki. Sehingga Pak Amba hanya menerima jasa perbaikan dari tetangga tetangganya saja dan karena kehebatannya dan kerjanya yang professional dan berintegritas membuat barang barang yang ia perbaiki sangat rentan dari kerusakan dan malah menjadi malapetaka karena tidak ada lagi yang membutuhkan jasanya.
Memiliki banyak skill seperti Pak Amba memang penting namun bagaimana cara kita menyalurkan dan mempromosikan skill yang kita miliki kepada orang lain jauh lebih penting apalagi jika skill tersebut digunakan sebagai sumber penghasilan utama. Namun, untuk mempromosikan skill yang kita miliki memang memliki banyak tantangan salah satunya adalah membangun kredibilitas ditengah banyaknya kasus kasus penipuan, pencurian, bahkan perusakan yang dilakukan oleh oknum teknisi yang disewa untuk memperbaiki sesuatu di rumah customernya membuat banyak orang yang meragukan jasa jasa teknisi saat ini sehingga sulit bagi customer untuk mencari teknisi yang benar benar professional dan berintegritas. Oleh karena itu, dibutuhkan platform yang menjadi wadah bagi para teknisi yang telah terjamin keahlian dan integritasnya untuk menawarkan jasanya kepada customer yang lebih luas, sehingga baik customer maupun teknisi dapat merasakan manfaatnya.
METODE
Untuk menjawab permasalahan pada studi kasus, saya telah membuat sebuah platform penyedia layanan pemesanan teknisi untuk datang ke rumah customer. Platform ini sementara dirancang dalam bentuk sistem backend berbasis REST API menggunakan framework Flask, yang memungkinkan pelanggan melakukan pemesanan layanan teknisi secara online, melihat jadwal teknisi, serta melakukan pembayaran layanan.
Sistem ini menggunakan dua jenis basis data yang disinkronkan secara real-time, yaitu MySQL sebagai relational database untuk menyimpan data yang bersifat terstruktur dan berskema tetap, serta MongoDB sebagai document-oriented database yang menyimpan data dalam format fleksibel. Setiap transaksi yang dilakukan, seperti pemesanan atau pembayaran, akan secara otomatis disimpan ke kedua basis data untuk menjaga konsistensi dan ketahanan data.
Fitur utama dari platform ini meliputi:
Seluruh proses dikendalikan melalui endpoint API yang dikelompokkan ke dalam file modular seperti controller, route, service, dan index, agar mudah dikembangkan dan diperbaiki. Dengan pendekatan ini, sistem mampu mensimulasikan proses pemesanan teknisi di dunia nyata dengan alur yang jelas dan data yang konsisten.
File route.py
File index.py
File controller.py
File service.py
HASIL UJI API DENGAN POSTMAN
a. Booking
Berikut adalah hasil uji API dengan method POST yang digunakan untuk menginput data pemesanan baru
Dapat dilihat bahwa data pemesanan baru berhasil tersimpan baik pada table booking di MySQL maupun document booking di MongoDB
Setelah data pemesanan baru berhasil disimpan, sistem secara otomatis menginput jadwal baru untuk teknisi yang tersimpan di table schedule MySQL dan document schedule MongoDB.
b. Payment
Berikut adalah hasil uji API dengan method POST yang digunakan untuk menginput data pembayaran layanan.
Dapat dilihat bahwa data pemesanan baru berhasil tersimpan baik pada table payment di MySQL maupun document payment di MongoDB
Berikut adalah hasil uji API dengan method GET yang digunakan untuk menampilkan riwayat pembayaran layanan dari customer tertentu. Pada pengujian ini, saya menggunakan customer dengan id 2 yang hasilnya sesuai dengan jadwal yang tersimpan di kedua database.
c. Schedule
Berikut adalah hasil uji API dengan method GET yang digunakan untuk menampilkan jadwal dari teknisi tertentu. Pada pengujian ini, saya menggunakan teknisi dengan id 2 yang hasilnya sesuai dengan jadwal yang tersimpan di kedua database.