{"id":246,"date":"2025-06-17T21:15:21","date_gmt":"2025-06-17T21:15:21","guid":{"rendered":"https:\/\/indahsyah.infokand23.my.id\/blog\/?p=246"},"modified":"2025-06-18T01:04:18","modified_gmt":"2025-06-18T01:04:18","slug":"crud-restful-api","status":"publish","type":"post","link":"https:\/\/indahsyah.infokand23.my.id\/blog\/crud-restful-api\/","title":{"rendered":"MONEY TRACKER: API CRUD SEDERHANA DENGAN LARAVEL DAN POSTMAN #T11"},"content":{"rendered":"\n<p>Ohayou gozaimasu, mina-san!<\/p>\n\n\n\n<p>Kali ini, saya diberikan tugas untuk membuat API CRUD sederhana menggunakan Framework Laravel dan Testing API menggunakan POSTMAN sekaligus memaparkan tutorialnya. Teman malam mingguan kalau kata Pak Nur (Dosen Pemrograman Web saya). \ud83d\ude42<\/p>\n\n\n\n<p>Sebelum itu, kita perlu tau dulu sedikit banyaknya mengenai API, bukan api yang panas dan membakar ya:D Tapi, jembatan atau bahkan diibaratkan seperti <em>waitress<\/em> di restoran. Yap, API (<em>Application Programming Interface<\/em>) adalah media berkomunikasi dan penghubung antara aplikasi yang berbeda.<br><br>Dalam era digital saat ini, hampir semua aplikasi modern menggunakan API untuk:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Memungkinkan microservices architecture<\/li>\n\n\n\n<li>Integrasi dengan layanan pihak ketiga<\/li>\n\n\n\n<li>Memisahkan frontend dan backend<\/li>\n\n\n\n<li>Mendukung multiple platform (web, mobile, desktop)<\/li>\n<\/ol>\n\n\n\n<p>Kali ini, saya punya ide untuk bikin money tracker (sekalian bisa dipake biar ga boros-boros amat :&#8217;)) menggunakan API POSTMAN. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SETUP PROJECT<\/h2>\n\n\n\n<p>Untuk membuat proyek folder baru, kita bisa menggunakan Cmder untuk mengetikkan prompt. Unduh Cmder melalui <a href=\"https:\/\/cmder.app\/\">tautan ini<\/a>. <\/p>\n\n\n\n<p>Selanjutnya, jika diperlukan, kita dapat memindahkan atau menentukan jalur\/path folder dengan perintah seperti berikut.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"405\" height=\"96\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-70.png\" alt=\"\" class=\"wp-image-252\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-70.png 405w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-70-300x71.png 300w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><\/figure>\n\n\n\n<p>Setelah itu, kita bisa mengetik perintah <strong>composer create-project laravel\/laravel api-projec<\/strong>t untuk membuat proyek folder laravel baru dengan nama api-project.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"696\" height=\"1024\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-71-696x1024.png\" alt=\"\" class=\"wp-image-253\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-71-696x1024.png 696w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-71-204x300.png 204w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-71-768x1130.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-71.png 903w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/figure>\n\n\n\n<p>Jika berhasil, maka akan tampil folder baru seperti ini.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"384\" height=\"991\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-72.png\" alt=\"\" class=\"wp-image-254\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-72.png 384w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-72-116x300.png 116w\" sizes=\"auto, (max-width: 384px) 100vw, 384px\" \/><\/figure>\n\n\n\n<p>Lanjut, kita dapat mengetik <strong>cd api-project<\/strong> untuk berpindah ke jalur spesifik, yakni ke file latihan yang akan kita buat.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"107\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-73.png\" alt=\"\" class=\"wp-image-255\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-73.png 829w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-73-300x39.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-73-768x99.png 768w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/figure>\n\n\n\n<p>Kita dapat memulai server lokal di browser web dengan perintah <strong>php artisan serve<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"262\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-74-1024x262.png\" alt=\"\" class=\"wp-image-256\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-74-1024x262.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-74-300x77.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-74-768x196.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-74-1536x393.png 1536w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-74.png 1595w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"183\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-75.png\" alt=\"\" class=\"wp-image-257\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-75.png 799w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-75-300x69.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-75-768x176.png 768w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/figure>\n\n\n\n<p>Jika sudah seperti ini, maka server sudah dimulai dan bisa dicek di browser web.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DATABASE &amp; MIGRATION<\/h2>\n\n\n\n<p>Selanjutnya, buat migration dengan perintah <strong>php artisan make:migration create_transaction_table<\/strong> dan <strong>php artisan make:migration create_users_table <\/strong> seperti berikut. Ini gunanya untuk membuat file migrasi database, yaitu instruksi struktur tabel (seperti <code>transactions<\/code> dan <code>users<\/code>) yang akan digunakan dalam CRUD API sederhana di Laravel, agar data bisa disimpan, dibaca, diubah, dan dihapus melalui Postman.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"244\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-76-1024x244.png\" alt=\"\" class=\"wp-image-258\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-76-1024x244.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-76-300x71.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-76-768x183.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-76.png 1242w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"112\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-77-1024x112.png\" alt=\"\" class=\"wp-image-259\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-77-1024x112.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-77-300x33.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-77-768x84.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-77.png 1233w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Lalu, isi file users table yang telah dibuat tersebut seperti berikut untuk membuat struktur tabel <code>users<\/code> di database, yang menyimpan data pengguna seperti nama, email, dan password agar aplikasi API CRUD sederhana di Laravel dapat mengelola data user (misalnya: register, login, dan relasi data transaksi jika dikembangkan lebih lanjut).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"789\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85-1024x789.png\" alt=\"\" class=\"wp-image-267\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85-1024x789.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85-300x231.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85-768x592.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85.png 1040w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Transactions table berikut berfungsi untuk membuat struktur tabel transactions di database yang menyimpan data transaksi seperti id, kategori, deskripsi, jumlah uang, dan tanggal transaksi, agar API CRUD sederhana di Laravel bisa menyimpan, menampilkan, mengubah, dan menghapus data transaksi melalui Postman.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"681\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86-1024x681.png\" alt=\"\" class=\"wp-image-268\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86-1024x681.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86-300x200.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86-768x511.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86.png 1100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Lalu, ketik<strong> php artisan migrate:fresh <\/strong>untuk menghapus semua tabel di database lalu menjalankan ulang seluruh migrasi dari awal, agar struktur tabel dalam API CRUD sederhana di Laravel tetap bersih dan sesuai saat diuji atau dikembangkan.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"420\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-80-1024x420.png\" alt=\"\" class=\"wp-image-262\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-80-1024x420.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-80-300x123.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-80-768x315.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-80.png 1203w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Untuk melihat database, bisa ke localhost, jika berhasil, tampilan databasenya akan seperti ini.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"252\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-109-1024x252.png\" alt=\"\" class=\"wp-image-294\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-109-1024x252.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-109-300x74.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-109-768x189.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-109.png 1498w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Bagian .env nya juga disesuaikan seperti ini.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"238\" height=\"264\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-110.png\" alt=\"\" class=\"wp-image-296\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">MODEL<\/h2>\n\n\n\n<p>Kemudian, kita perlu membuat <strong>php artisan make:model Transaction<\/strong> untuk membuat file model <code>Transaction<\/code>, yang merepresentasikan tabel <code>transactions<\/code> di database dan digunakan Laravel untuk berinteraksi dengan data transaksi dalam proses CRUD API, seperti menyimpan, mengambil, memperbarui, dan menghapus data lewat controller.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"169\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81-1024x169.png\" alt=\"\" class=\"wp-image-263\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81-1024x169.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81-300x49.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81-768x127.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81.png 1225w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Models\/Transaction.php berfungsi untuk membuat model Transaction yang merepresentasikan tabel transactions, sehingga Laravel dapat mengelola data transaksi (create, read, update, delete) dalam API CRUD sederhana, termasuk relasinya dengan tabel users, dan dapat digunakan saat menguji lewat Postman.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"893\" height=\"772\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-87.png\" alt=\"\" class=\"wp-image-269\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-87.png 893w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-87-300x259.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-87-768x664.png 768w\" sizes=\"auto, (max-width: 893px) 100vw, 893px\" \/><\/figure>\n\n\n\n<p>User.php berguna untuk membuat model User yang merepresentasikan tabel users, agar Laravel dapat mengelola data pengguna seperti nama, email, dan password, serta menangani autentikasi jika diperlukan dalam API CRUD sederhana yang diuji nantinya.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"584\" height=\"1024\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-88-584x1024.png\" alt=\"\" class=\"wp-image-270\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-88-584x1024.png 584w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-88-171x300.png 171w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-88.png 592w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">API ROUTES<\/h2>\n\n\n\n<p>Selanjutnya adalah api.php. Kode ini berfungsi untuk mendefinisikan rute-rute API yang menghubungkan URL dengan fungsi di TransactionController, agar aplikasi Laravel dapat menangani permintaan CRUD transaksi (tampil, tambah, lihat detail, ubah, hapus) melalui Postman.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"908\" height=\"332\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-89.png\" alt=\"\" class=\"wp-image-271\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-89.png 908w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-89-300x110.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-89-768x281.png 768w\" sizes=\"auto, (max-width: 908px) 100vw, 908px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">API CONTROLLER<\/h2>\n\n\n\n<p>Setelah dibuat menggunakan php artisan:makecontroller. TransactionController berfungsi sebagai controller TransactionController yang menangani semua logika CRUD transaksi, seperti menampilkan semua data, menyimpan data baru, menampilkan detail, mengubah, dan menghapus transaksi, agar API Laravel dapat merespons permintaan dari Postman dengan benar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"88\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-90-1024x88.png\" alt=\"\" class=\"wp-image-272\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-90-1024x88.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-90-300x26.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-90-768x66.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-90.png 1130w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"1024\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-107-829x1024.png\" alt=\"\" class=\"wp-image-289\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-107-829x1024.png 829w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-107-243x300.png 243w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-107-768x948.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-107.png 979w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">API RESOURCES\/TRANSFORM DATA<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"110\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91-1024x110.png\" alt=\"\" class=\"wp-image-273\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91-1024x110.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91-300x32.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91-768x82.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91.png 1112w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Transaction Resource ini berfungsi untuk mengatur format respon JSON dari data transaksi, agar saat data ditampilkan melalui API Laravel di Postman, tampilannya menjadi lebih rapi dan terstruktur, seperti format tanggal dan jumlah uang.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"400\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-94-1024x400.png\" alt=\"\" class=\"wp-image-276\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-94-1024x400.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-94-300x117.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-94-768x300.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-94.png 1043w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Validasi dan Error Handling<br>Form Request Validation<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"186\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-92-1024x186.png\" alt=\"\" class=\"wp-image-274\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-92-1024x186.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-92-300x55.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-92-768x140.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-92.png 1128w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"719\" height=\"795\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-95.png\" alt=\"\" class=\"wp-image-277\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-95.png 719w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-95-271x300.png 271w\" sizes=\"auto, (max-width: 719px) 100vw, 719px\" \/><\/figure>\n\n\n\n<p>Kedua kode di atas berfungsi untuk memvalidasi input data transaksi saat proses menyimpan (StoreTransactionRequest) dan mengubah (UpdateTransactionRequest), agar data yang dikirim ke API Laravel melalui Postman sesuai aturan yang ditentukan dan menampilkan pesan error yang jelas jika terjadi kesalahan.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"1024\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-98-547x1024.png\" alt=\"\" class=\"wp-image-280\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-98-547x1024.png 547w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-98-160x300.png 160w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-98.png 649w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><\/figure>\n\n\n\n<p>Kode <code>H<\/code>andler.php di atas ini berfungsi untuk menangani dan menyesuaikan tampilan pesan error agar API Laravel merespons dalam format JSON yang rapi dan jelas, saat terjadi error seperti:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>422<\/strong>: Validasi gagal<\/li>\n\n\n\n<li><strong>404<\/strong>: Data atau endpoint tidak ditemukan<\/li>\n\n\n\n<li><strong>401<\/strong>: Tidak terautentikasi<\/li>\n\n\n\n<li><strong>500<\/strong>: Error server lainnya<\/li>\n<\/ul>\n\n\n\n<p>Sehingga ketika diuji melalui Postman, pengguna API akan menerima respon error yang sesuai standar REST API, bukan halaman HTML.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PROVIDERS<\/h2>\n\n\n\n<p>Next, ada AppServiceProvider.php, berfungsi untuk mendaftarkan dan menjalankan konfigurasi global aplikasi, seperti binding service, pengaturan default database, atau pengaturan tambahan lain saat aplikasi Laravel dijalankan.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"687\" height=\"836\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-99.png\" alt=\"\" class=\"wp-image-281\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-99.png 687w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-99-247x300.png 247w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/figure>\n\n\n\n<p>Sedangkan kode di bawah ini adalah RouteServiceProvider.php untuk mengatur rute API dan web, memastikan bahwa semua rute di file routes\/api.php menggunakan prefix \/api, dan rute di routes\/web.php menggunakan middleware web.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"759\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-100-1024x759.png\" alt=\"\" class=\"wp-image-282\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-100-1024x759.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-100-300x222.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-100-768x569.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-100.png 1111w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Server dicoba untuk dimulai kembali agar berjalan optimal dan pembaruan diikutsertakan.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"422\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97-1024x422.png\" alt=\"\" class=\"wp-image-279\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97-1024x422.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97-300x124.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97-768x316.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97.png 1153w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">UJI COBA POSTMAN<\/h2>\n\n\n\n<p>Saatnya mengujicobakan kode laravel ke Postman. Jika belum memiliki aplikasi, bisa diunduh <a href=\"https:\/\/www.postman.com\/downloads\/\">di sini<\/a>.<\/p>\n\n\n\n<p>Awalnya, kita bisa buat proyek baru. Tersedia beberapa tutorial dan template di Postman ini untuk memudahkan. Nah, karena prosesnya adalah CRUD, maka ada 4 action, POST, PUT, GET, dan DELETE.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>POST<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"323\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-101-1024x323.png\" alt=\"\" class=\"wp-image-283\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-101-1024x323.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-101-300x95.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-101-768x243.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-101.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Post sama dengan upload data baru. Kita bisa memasukkan URL server yang dijalankan, lalu isi headers sesuai gambar di atas, tekan body, pilih raw untuk memasukkan data dan json untuk melihat hasilnya.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"770\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-102-1024x770.png\" alt=\"\" class=\"wp-image-284\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-102-1024x770.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-102-300x226.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-102-768x578.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-102.png 1502w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Di sini, terlihat bahwa sambungan ke Postman berhasil dan data berhasil diinputkan.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"718\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-103-1024x718.png\" alt=\"\" class=\"wp-image-285\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-103-1024x718.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-103-300x210.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-103-768x539.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-103.png 1501w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Namun, input kategori hanya bisa pemasukan\/pengeluaran. Selain itu, akan muncul peringatan untuk memperbaiki inputan.<\/p>\n\n\n\n<p>2. GET<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"724\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-104-1024x724.png\" alt=\"\" class=\"wp-image-286\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-104-1024x724.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-104-300x212.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-104-768x543.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-104.png 1509w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Get adalah aksi untuk mengambil data tertentu. Kita bisa memasukkan URL server yang dijalankan, lalu tambahkan <strong>\/(data berapa yang mau kita ambil)<\/strong>, misal \/1, serta pilih json untuk melihat hasilnya.<\/p>\n\n\n\n<p>3. PUT<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"745\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-105-1024x745.png\" alt=\"\" class=\"wp-image-287\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-105-1024x745.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-105-300x218.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-105-768x559.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-105.png 1493w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Put adalah update, yakni memperbarui data yang sudah ada. Kita bisa memasukkan URL server yang dijalankan, lalu isi headers sesuai gambar di atas, masukkan data mana yang ingin diupdate, tekan body, pilih raw untuk memasukkan data dan json untuk melihat hasilnya. Jika sesuai, maka data akan diperbarui.<\/p>\n\n\n\n<p>4. DELETE<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"657\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-106-1024x657.png\" alt=\"\" class=\"wp-image-288\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-106-1024x657.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-106-300x193.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-106-768x493.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-106.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Delete adalah hapus, menghapus data yang sudah ada. Kita bisa memasukkan URL server yang dijalankan, memasukkan data mana yang ingin dihapus, tekan body, pilih json untuk melihat hasilnya.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"677\" src=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-108-1024x677.png\" alt=\"\" class=\"wp-image-290\" srcset=\"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-108-1024x677.png 1024w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-108-300x198.png 300w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-108-768x508.png 768w, https:\/\/indahsyah.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-108.png 1487w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Jika data ada yang telah dihapus dan ingin diambil kembali, maka akan muncul warning yang memberitahu bahwa data dengan id tertentu yang telah dihapus tidak dapat ditemukan.<\/p>\n\n\n\n<p>Sekian pembahasan mengenai tugas malam minggu membuat money tracker saya, proyek lengkap dapat dilihat di <a href=\"https:\/\/github.com\/ethereins\/PemrogramanWeb\/blob\/main\/api-projectt.zip\">Github saya<\/a> berikut.<\/p>\n\n\n\n<p>Leave a comment, please! Thank you^^<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ohayou gozaimasu, mina-san! Kali ini, saya diberikan tugas untuk membuat API CRUD sederhana menggunakan Framework Laravel dan Testing API menggunakan [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-246","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/posts\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":8,"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":300,"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/posts\/246\/revisions\/300"}],"wp:attachment":[{"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/indahsyah.infokand23.my.id\/blog\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}