Membuat RestAPI dengan Nodejs-Mysql-Sequelize

Atrem13
7 min readJun 7, 2020

--

Hei hei…. halo merta disini kembali untuk membuang waktu kalian dengan tulisannya yang sebenernya engga berguna bagi kalian tapi kalau mau silahkan dinikmati karena siapa tau kalian menemukan hal yang sebelumnya tidak kalian ketahui. Makin lama makin jarang update nih aku wkwkkwk, efek dapet kerjaan yang tidak membuahkan rupiah :” tapi mau ga mau harus diambil karena udah jadi kewajiban v:

Sebenernya aku lagi ga pengen nulis minggu ini tapi karena udah jadi rule untuk post satu artikel tiap minggu jadi aku usahakan untuk melawan kemageran ini wkwkwkk. ok kali ini aku pengen ngebahas tentang cara pembuatan RestAPI dengan Nodejs-Mysql-Sequelize. anggep aja ini adalah materi lanjutan dari tulisan ku sebelumnya di

https://medium.com/@atrem13/membuat-restapi-dengan-nodejs-mysql-8852f762849a

bagi yang belom baca mohon dibaca dulu ya biar bisa relate ama tulisan kali ini. bagi kalian yang sebelumnya pernah belajar make laravel pasti gampang banget deh ikuti materi kali ini karena cara kerja sequelize yang bakal kita pake nanti mirip banget ama laravel. alasan aku nulis tentang materi ini juga karena aku rindu sama kenikmatan laravel :) ( maklum aku dari laravel pindah ke node v: ). kalau di tulisan sebelumnya kita lumayan banyak ngoding maka di tulisan kali ini script yang perlu kita tulis sendiri bakal berkurang cukup banyak dan itulah alasan aku suka pakai sequelize ini wkwkwk. ok biar ga lama yuk lanjut ke materi.

Photo by Jakob Owens on Unsplash

PERSIAPAN

pertama tama kalian bikin project express terlebih dahulu, kita bakal bikinnya pake express generator, silahkan jalankan perintah berikut (beberapa script ga aku jelasin lagi karena udah aku jelasin di tulisan sebelumnya, jadi kalau belum baca bisa tolong dibaca dulu biar lebih mudah paham)

express nodejs-mysql-sequelize-restapi-try1 — no-view

ok project express dengan nama nodejs-mysql-sequelize-restapi-try1 udah selesai dibuat. jangan lupa masuk ke project yang baru kalian buat terus jalanin perintah

npm install

selanjutnya kalian perlu install beberapa hal lagi tapi sebelumnya silahkan install sequelize secara global dengan menjalankan perintah

npm install -g sequelize-cli

kenapa kalian harus install sequelize secara global? simpelnya biar gampang wkwkkwkw. intinya itu ya temen-temen, biar kerja kalian gampang :)

sekarang install lagi beberapa hal yang bakal kalian pake nanti, silahkan jalankan perintah berikut

npm install express sequelize mysql2 cors — save

kode diatas berarti kalian install express(biar lebih mudah make nodejs), sequelize (biar kode lebih rapi, mudah dan ada rasa-rasa laravelnya), mysql2(biar sequelize kalian bisa manipulasi database mysql), cors(biar nantinya RestAPI yang kalian buat bisa nerima data dari frontend/client).

karena kalian udah install sequelize dan udah install sequelize-cli secara global, silahkan jalankan perintah berikut agar konfigurasi awal sequelize kalian dibuatkan secara instan

Sequelize init

oh iya silahkan install nodemon juga ya biar kalian ga perlu repot repot restart server nantinya. untuk itu jalankan perintah berikut

npm install nodemon — save-dev

ok kayaknya persiapan yang diperluin udah semua deh. yuk lanjut ke kode editor tercinta kalian ~

Photo by Martin Péchy on Unsplash

MULAI NGODING

source code bisa dilihat di

https://github.com/atrem13/medium/tree/master/nodejs-mysql-sequelize-restapi-try1

yah kira kira tampilan package.json kalian bakal jadi kayak gini

sekarang kita atur atur dulu dikit project express kita, ubah file app.js pada root folder menjadi seperti ini

kita baru pasangin cors aja ya disini (karena yang lain udah dibuat express generator, makasi express generator wkwkwk)

sekarang kita setting dulu sequelize agar sesuai dengan database kita, silahkan edit file config/config.json menjadi seperti berikut

ingat sesuaikan username, password dan database sesuai milik kalian

next kita bikin model sequelize, model ini adalah blueprint atau bisa dibilang rancangan tabel pada database kalian (mirip laravel kan v:)

silahkan jalankan perintah berikut

sequelize model:generate — name mahasiswa — attributes nama:String,prodi:String

perintah diatas akan membuat model baru dengan nama mahasiswa, nah model mahasiswa ini punya 2 atribut yaitu nama dan prodi yang bertipe string. simpelnya sih kita ngerancang tabel baru dengan nama mahasiswa lalu tabel itu punya kolom nama dan prodi yang bertipe string. oh iya dengan perintah diatas kita langsung dibuatin file migration untuk model mahasiswa oleh sequelize-cli (sekali lagi mirip laravel migration, makasi sequelize-cli v:)

coba cek dulu file model/mahasiswa.js kalian, pastikan udah kayak gini ya

karena kita baru belajar basic jadi biarin aku ga bikin yang terlalu ribet, cukup simpel aja dulu. penjelasan code udah aku kasi dalam bentuk komentar ya. source code ada di link diatas ya.

sekarang coba cek dulu file migration dari model mahasiswa, cocokin ya sama yang dibawah ini

penjelasan code bisa diliat di comment code ss diatas

ok karena config, migration dan model udah ready sekarang kita akan jalankan perintah untuk membuat database barunya (kalau kalian udah bikin database bisa skip ini)

sequelize db:create

baik setelah database udah kebuat waktunya kita migrate model mahasiswa, jalankan perintah berikut

sequelize db:migrate

perintah diatas akan mengeksekusi file migrate yang artinya tabel dengan nama mahasiswas yang kita liat tadi akan dibuat oleh sequelize

kalau kalian ga ada salah saat mengikuti langkah langkah diatas harusnya sekarang database dengan tabel mahasiswas udah terbentuk, kalau belum tolong cek lagi langkah langkah diatas

tiba saatnya untuk kita bikin controller untuk membantu kita memanipulasi isi dari tabel mahasiswas yang tadi kita buat, pada root folder tambahkan satu folder dengan nama controllers dan didalamnya tambahkan file dengan nama mahasiswa.controller.js (jadinya rootFolderKalian/ controllers/ mahasiswa.controller.js)

btw biar nanti makin dikit ngodingnya tambahin juga folder function dan didalamnya isi file dengan nama rr_function.js lalu folder function ini letakan didalam folder controllers.

nanti strukturnya bakal jadi kayak gini

edit file controllers/function/rr_function.js menjadi seperti berikut

alasan kenapa kita perlu file ini adalah….. karena aku males ngetik hal sama untuk tiap fungsi di controller ku nanti wkwkwk. penjelasan singkat ada di ss

ok balik lagi ke controller sekarang ubah file controller/ mahasiswa.controller.js menjadi seperti berikut

kalo kalian bandingin ama kode di tulisan sebelumnya keliatan banget perbedaannya kan, JAUHHHHH lebih simpel wkwkwkk. penjelasan kode udah aku kasi komentar di atas ya

karena controller udah jadi terakhir kita siapin routes untuk manggil controller ketika si client akses suatu link. tambahin file mahasiswa.routes.js di folder routes (file lainnya di folder routes hapus aja)

lalu tambahkan kode berikut di file routes/mahasiswa.routes.js

untuk routes sama aja kayak sebelumnya, yang belum paham bisa cek di tulisan sebelumnya karena aku agak mager ngulang materi yang sama :D

terakhir kita update file app.js pada root folder, disini kita cuma ngeinclude file routes yang tadi kita buat

Photo by Dayne Topkin on Unsplash

WAKTUNYA UJI COBA

karena semua udah kelar yuk uji coba dulu berhasil ga ya code kita

jalanin dulu servernya dengan menjalankan perintah

nodemon

untuk uji coba kita pake postman aja ya

Create Success

Get All Data Success

Get Data Base On Id Success

Update Data Base On Id Success

Delete Data Base On Id Success

Photo by Radu Florin on Unsplash

AKHIRNYA LESE WOI WKWKKWKWKWKWK, ngantuk banget aku v: gara gara baru bikin ni tutorial jam 12 malem (sebelumnya ada urusan lain yang lebih mendesak) gimana enak kan pake sequelize v: ? saking enaknya aku jadi rindu ama kenikmatan laravel wkwkkwkw. btw aku yakin kalo kalian langsung nyoba ikutin tutorial ini tanpa basic / baca tulisan sebelumnya pasti bakal kebingungan v: . kalo boleh kusaranin belajar itu step by step, jangan lompat jauh wkwkwk, ya syukur kalo bisa tapi kalo engga kan susah jadinya.

anyway aku seneng bisa tetep commit untuk keluarin tutorial tiap minggu :D , meski udah mager banget tadi tapi syukur selesai juga sesi kali ini. untuk topik berikutnya masih agak bingung sih mau bahas apa. belakangan ini aku kurang dapet explore karena sibuk nyari barang ke toko toko tapi pada sold out. kalo kalian ada saran bisa dong dikasi tau di kolom komentar (btw barusan kakak ku tiba tiba ketuk pintu nyuruh aku tidur dan itu bikin aku kanget banget anjir v:)

link source code bisa dilihat di :

https://github.com/atrem13/medium/tree/master/nodejs-mysql-sequelize-restapi-try1

ok deh seperti biasa ini Cuma basic, masih banyak yang bisa kalian explore diluar sana. Kalau ada yang punya pendapat lain atau mungkin kurang setuju ama yang aku tulis bisa kita diskusi di kolom komentar ya. Kalau ada salah kata atau sejenisnya mohon dimaafkan dan kalau bisa dikoreksi agar aku bisa lebih baik lagi kedepannya.

Oke itu dulu untuk seri kali ini, saya Merta pamit undur diri dan ingat untuk ‘Haus akan ilmu baru’ :)

--

--

Atrem13
Atrem13

No responses yet