Kolom

Belajar dari Kerja Praktik: Coding Terbaik Adalah yang Mampu Menyelesaikan Masalah Nyata

Belajar dari Kerja Praktik: Coding Terbaik Adalah yang Mampu Menyelesaikan Masalah Nyata
Mahasiswa Sedang menjelaskan projectnya. (Dok. Pribadi)

Saya bukan programmer jagoan. Semester awal kuliah, membuat aplikasi CRUD sederhana saja sudah membuat keringat dingin. Error satu muncul, selesai. Error berikutnya datang lagi. Kadang satu bug bisa membuat saya duduk berjam-jam di depan laptop cuma buat mencari titik salahnya. Waktu itu saya sering berpikir, "Apa benar saya cocok di dunia pemrograman?"

Tapi semua mulai berubah ketika saya menjalani Kerja Praktik (KP).

Tempat KP saya adalah Thalia Bahan Kue, sebuah toko bahan baking yang berlokasi di Beji, Depok. Sekilas, toko ini terlihat seperti toko pada umumnya. Pelanggannya ramai, transaksi berlangsung setiap hari, dan produk yang dijual cukup banyak. Namun setelah saya mengamati proses bisnisnya, saya menyadari hampir semua aktivitas masih dilakukan secara manual.

Pencatatan stok masih menggunakan buku tulis. Penjualan dicatat menggunakan nota kertas. Ketika pemilik ingin mengetahui stok suatu barang, mereka harus membuka catatan satu per satu. Saat ingin melihat produk yang paling laris, mereka harus mencari dan menghitung dari tumpukan nota. Proses ini memakan waktu, rawan kesalahan, dan semakin sulit ketika transaksi terus bertambah setiap harinya.

Saat melihat kondisi tersebut, saya berpikir, "Masalah seperti ini seharusnya bisa diselesaikan dengan teknologi."

Dari situlah ide untuk membuat RetailPro ERP lahir.

Empat Fitur Utama RetailPro ERP

Saya membangun aplikasi ini menggunakan React.js dan TypeScript untuk frontend, Laravel sebagai backend, serta MySQL sebagai database. Saya memilih teknologi tersebut karena memiliki dokumentasi yang lengkap, komunitas yang besar, dan sangat cocok untuk dipelajari sekaligus diterapkan pada proyek nyata. Selain itu, saya juga ingin menantang diri sendiri untuk menggunakan teknologi yang memang banyak dipakai di industri.

RetailPro ERP saya rancang agar benar-benar membantu operasional toko sehari-hari, bukan sekadar menjadi tugas kuliah.

Point of Sale (POS): Kasir cukup memilih produk yang dibeli pelanggan, memasukkan jumlahnya, memilih metode pembayaran, lalu menyelesaikan transaksi. Setelah transaksi selesai, sistem otomatis mengurangi stok barang dan mencetak struk pembelian. Tidak perlu lagi menghitung stok secara manual setiap selesai berjualan.

Manajemen Inventaris: Seluruh data produk tersimpan dalam satu sistem. Pemilik toko dapat melihat jumlah stok, melakukan penambahan atau pengurangan barang, serta memantau stok yang mulai menipis. Jika nantinya memiliki lebih dari satu cabang, stok setiap cabang juga dapat dipantau melalui dashboard.

Role-Based Access Control: Setiap pengguna memiliki hak akses yang berbeda sesuai tugasnya. Kasir hanya dapat melakukan transaksi penjualan, manajer dapat melihat laporan penjualan dan performa toko, sedangkan admin memiliki akses penuh untuk mengelola seluruh sistem. Dengan cara ini keamanan data menjadi lebih terjaga.

Dashboard Analitik: Dashboard menampilkan informasi penting secara real-time, seperti total penjualan hari ini, jumlah transaksi, produk terlaris, omzet, hingga daftar stok yang hampir habis. Dengan data tersebut, pemilik toko bisa mengambil keputusan bisnis dengan lebih cepat tanpa harus menghitung semuanya secara manual.

Tantangan Teknis hingga Proses Deployment

Tentunya perjalanan membangun aplikasi ini tidak selalu berjalan mulus.

Saya berkali-kali menghadapi error yang membuat frustrasi. Mulai dari masalah CORS yang membuat frontend tidak bisa terhubung ke backend, konfigurasi autentikasi yang sering gagal, hingga query database yang tidak berjalan sesuai harapan. Ada kalanya saya menghabiskan waktu berjam-jam hanya untuk menemukan satu kesalahan kecil berupa titik koma atau typo.

Bagian yang paling menantang adalah ketika harus mendesain struktur database. Saya membuat sekitar 14 tabel yang saling berhubungan menggunakan foreign key. Saya harus memastikan hubungan antar-data tetap konsisten, tidak terjadi duplikasi, dan tetap mudah dikembangkan jika suatu saat ada fitur baru.

Setelah aplikasi selesai dibuat di localhost, tantangan berikutnya adalah proses deployment ke server online. Ternyata aplikasi yang berjalan lancar di komputer sendiri belum tentu langsung berjalan di server. Saya harus menyesuaikan konfigurasi environment, database, permission folder, hingga memastikan API dapat diakses dengan baik dari frontend. Proses ini memberikan banyak pengalaman baru yang sebelumnya belum pernah saya pelajari di kelas.

Semua proses tersebut mengajarkan saya satu hal penting: membangun software bukan hanya soal menulis kode, tetapi juga memahami kebutuhan pengguna, menyelesaikan masalah nyata, dan terus belajar ketika menghadapi hambatan.

Pada akhirnya, hasil yang saya dapatkan benar-benar terasa sepadan dengan usaha yang dilakukan. RetailPro ERP bukan hanya menjadi proyek Kerja Praktik atau sekadar syarat kelulusan. Sistem ini benar-benar dapat digunakan oleh toko ritel skala kecil hingga menengah yang masih menjalankan proses bisnis secara manual. Melihat aplikasi yang saya buat bisa memberikan manfaat bagi orang lain menjadi kepuasan tersendiri.

Kalau ada pesan untuk teman-teman yang sedang atau akan menjalani Kerja Praktik, mungkin ini yang ingin saya sampaikan.

Jangan langsung berpikir membuat aplikasi yang rumit atau menggunakan teknologi paling canggih. Mulailah dengan mengamati lingkungan sekitar. Datangi tempat KP kalian, perhatikan bagaimana mereka bekerja, lalu tanyakan kepada pemilik atau karyawannya, "Bagian mana yang paling sering bikin repot?"

Sering kali, jawaban dari pertanyaan sederhana itu adalah ide proyek terbaik.

Jangan takut mencoba framework modern seperti React, Laravel, Next.js, atau teknologi lainnya. Di era sekarang, dokumentasi, tutorial, dan komunitas sudah sangat banyak. Yang paling penting bukan seberapa cepat kita menguasainya, tetapi seberapa konsisten kita mau belajar dan mencoba.

Karena pada akhirnya, coding yang paling bermakna bukanlah coding yang paling rumit atau menggunakan teknologi paling keren. Coding yang benar-benar bernilai adalah coding yang mampu menyelesaikan masalah nyata dan memberikan manfaat bagi orang lain.

    Tulisan ini merupakan kiriman dari member Yoursay. Isi dan foto artikel ini sepenuhnya merupakan tanggung jawab pengirim.

    Komentar

    Rekomendasi

    Dapatkan informasi terkini dan terbaru yang dikirimkan langsung ke Inbox anda