Postingan kali ini merupakan merupakan posting pertama dari bagian Membuat Restful Web APIs dengan Yii2. Jadi, silahkan persiapkan perlengkapan tempur yang dibutuhkan yaitu:
Oke, kita lanjutkan. Langkah selanjutnya adalah menginstal Yii2 via Composer dan membuat satu database MySQL via command line.
6. Install Yii2 basic template via Composer dengan nama "
barbek" (baca disini untuk cara instalasi Yii2:
http://www.yiiframework.com/doc-2.0/guide-start-installation.html)
7. Membuat database MySQL dengan nama "
barbek" (baca disini untuk cara membuat database baru di MySQL:
http://dev.mysql.com/doc/refman/5.7/en/creating-database.html)
Note :
Sebagai seorang developer tentu mengunjungi dan membaca halaman dokumentasi resmi dari software atau framework yang kita gunakan adalah hal yang wajib dilakukan karena disana kita dapat menemukan panduan dari mulai hal yang mendasar seperti petunjuk instalasi hingga dokumentasi detail mengenai kegunaan dari semua class beserta properties dan methods yang ada didalamnya (api/class reference).
Jadi, dalam tutorial ini saya tidak akan menjelasakan hal-hal dasar yang sudah terpampang nyata di halaman dokumentasi. Namun, jika kalian mengalami permasalahan saat mencoba mempraktikkan panduan yang ada dalam dokumentasi silahkan sampaikan di komentar.
Langkah selanjutnya, adalah membuat repository GitHub untuk me-manage source code yang kita buat, silahkan buat repository baru disini
https://github.com/new (pastikan kalian sudah punya akun dan login di GitHub). Untuk source code bagian pertama dari seri tutorial ini kita akan menamakannya "
barbek-restful-api".
Note :
seluruh source code yang saya buat akan saya push ke https://github.com/ydatech/barbek-restful-api
Jika kalian sudah membuat repository-nya, sekarang saatnya menghubungkannya dengan source code Yii2 yang sebelumnya telah kita install. Buka terminal atau command line kalian, dan silahkan masuk ke direktori dimana kalian menginstall Yii2 basic template dengan nama barbek tadi. Kemudian ketikkan perintah perintah berikut ini :
Konfirmasi apakah source code yang kita tambahkan tadi sudah berada di GitHub dengan mengujungi halaman repository yang kita buat.
Tips :
Anda sebaiknya memilih private repository jika projek yang anda buat bukan atau tidak akan dijadikan open source.
Sampai disini, kita sudah siap untuk
move on ketahap selanjutnya yaitu mulai melakukan development Restful Web APIs dari BarBek.
Kita mulai dari menentukan fitur apa saja yang akan ada di BarBek, berikut adalah fitur utama yang akan kita kembangkan dalam aplikasi BarBek kita.
1. Registrasi penjual (user)
2. Penjual (user) login dan logout
2. Pasang iklan barang bekas untuk penjual
3. Manage iklan barang bekas untuk penjual
4. Pencarian iklan berdasarkan kategori dan lokasi untuk pembeli (pengunjung/visitor)
5. Lihat detail iklan untuk pembeli (pengujung)
Aplikasi ini memiliki dua tipe pengguna yaitu penjual dan pembeli. selanjutnya
penjual akan kita sebut sebagai
user dan
pembeli sebagai
pengunjung (
visitor)
Berdasarkan gambaran fitur diatas, kita bisa mulai merancang database dari aplikasi BarBek ini. berikut adalah rancangan awal database aplikasi BarBek:
Desain database BarBek
Note:
Gambar diatas merupakan desain atau rancangan awal, dalam proses development kemungkinan perubahan selalu ada. Baik rancangan awal ataupun perubahan akan selalu kita buat melalui fitur database migration Yii2.
Langkah selanjutnya adalah mengimplementasikan rancangan database tersebut kedalam database MySQL
barbek yang sudah kita buat sebelumnya. Seperti yang sudah disebutkan, dalam tutorial ini kita akan menggunakan fitur database migration Yii2. Sebelum kita melakukan implementasi tersebut, kita harus mengkoneksikan aplikasi Yii2 kita dengan database
barbek. Silahkan edit database name yang ada di file
config/db.php menjadi
barbek, secara default Yii2 memberikan configurasi database untuk MySQL, namun jika kalian menggunakan database lain silahkan pelajari halaman dokumentasi ini:
http://www.yiiframework.com/doc-2.0/guide-db-dao.html. Jangan lupa edit juga username dan password sesuai dengan configurasi MySQL server kalian. Sebagai contoh, ini adalah configurasi database yang saya punya.
Langkan-langkah dibawah ini harus dilakukan sesuai nomor urutnya tidak boleh acak.
1. user
Pertama, kita akan membuat database migration untuk tabel user, silahkan buka terminal/cmd/powershell kemudian masuk ke direktori/folder dimana aplikasi BarBek kita berada, ketikkan perintah berikut ini:
Setelah kita menekan tombol enter dan mengkonfirmasi untuk membuat database migration tersebut maka sebuah file yaitu:
migrations/m[yymmdd_hhmmss]_create_user_table.php akan dibuat/digenerate
. Dimana
[yymmdd_hhmmss] merupakan informasi waktu saat kita membuat/men-generate file tersebut. Berikut adalah contoh file migration tabel user yang saya generate:
Jika kita lihat terdapat dua methods yang diimplementasikan yaitu
up() dan
down(). Dimana,
up() digunakan untuk melakukan perubahan pada struktur database, dan
down() digunakan untuk mengembalikan struktur database ke struktur sebelum perubahan pada
up() diimplementasikan. Misalkan, jika pada method
up() kita membuat tabel baru, maka pada method
down() kita menghapus tabel tersebut. Untuk informasi lengkap tentang database migration Yii2 silahkan kunjungi halaman dokumentasi ini:
http://www.yiiframework.com/doc-2.0/guide-db-migrations.html.
2. kontak
Berikutnya, kita akan membuat database migration untuk tabel kontak.
File migration yang digenerate:
Jika kita bandingkan kode yang digenerate sedikit berbeda dengan kode untuk table user, yaitu adanya tabel index dan foreign key yaitu
user_id.
3. provinsi
Untuk membuat database migration untuk tabel provinsi silahkan ketikkan perintah berikut:
Kali ini, kita akan melakukan modifikasi pada kode database migration hasil generate Yii2. Pertama, kita akan mengubah method yang diimplementasikan pada class migration untuk membuat tabel provinsi dari
up() menjadi
safeUp() dan
down() menjadi
safeDown(). Hal ini perlu dilakukan karena kita akan melakukan transaksi insert data-data provinsi secara langsung. Kedua, kita akan menambahkan bebarapa baris kode untuk insert data provinsi dari file csv ke tabel provinsi yang berada didatabase
barbek. Untuk data provinsi kita akan menggunakan data yang ada
disini. Simpan file tersebut pada folder
migrations dengan nama
provinsi.csv. untuk membaca file csv tersebut saya akan menggunakan sebuah library bernama
league/csv. Install library tersebut melalui composer dengan mengetikkan perintah berikut:
4. kota
Untuk membuat database migration untuk tabel kota silahkan ketikkan perintah berikut:
Sama halnya dengan
provinsi kita akan melakukan modifikasi dan transaksi insert data kota. Data kota yang digunakan ada
disini. Silahkan simpan dengan nama
kota.csv di folder
migrations .
Sampai disini kita sudah membuat 4 database migration untuk 4 tabel yaitu
user,
kontak,
provinsi, dan
kota. Kita bisa menerapkannya ke MySQL database BarBek dengan mengetikkan perintah berikut:
Ada tiga tabel lagi yang belum kita buat database migration-nya yaitu tabel
kategori,
subkategori,
dan
iklan. Kita akan lanjutkan lagi minggu depan sekalian dengan membuat model oke... takut kepanjangan..
NB: Jangan lupa
add, commit dan
push source code kalian ke repo github masing masing ya..
Terimakasih..
Selanjutnya,
Membuat Model Menggunakan Fitur Gii Console Command di Yii2
Comments
Post a Comment