Source Code Gratis Point of sales Versi Laravel versi 5.6 Schema database Siap pakai
Ditulis pada: September 13, 2018
Kami mengangkat studi kasus POS (Point of Sales) yang akan memungkinkan peserta untuk memahami bagaimana membuat sebuah aplikasi. Hal ini tentu saja dilatara belakangi, karena banyak orang yang tiada henti belajar bermain dasar namun tidak mampu merangkainya menjadi sebuah aplikasi. Namun, tidak harus dikesampingkan untuk tidak belajar dasar terlebih dahulu, yaitu saling berhubungan satu sama lain.Tahapan dalam membangun sebuah aplikasi adalah dengan melihat kasus-kasus yang akan diangkat menjadi masalah yang akan dipecah menjadi masalah-masalah kecil, kemudian diikuti dengan masalah-masalah kecil.Maka sebelum memulainya, mari kita lihat tulisan pertama: Point of Sales, yang berarti akan terjadi proses pencitraan transaksi, maka dari pencatatan transaksi tersebut terdapat data produk yang telah dikelompokkan berdasarkan kategori agar lebih rapi dan lebih mudah ditemukan, pelanggan data , operator data (admin) dan proses pencatatan antara pelanggan yang membeli produk apa saja kemudian.
Schema Diagram Database layout
Setalah kita mendapati gambaran aplikasi yang akan dibuat, maka mari kita coba mengkonversinya menjadi sebuah schema database yang nantinya akan digunakan untuk menyimpan semua data yang diperlukan.
Cara Membuat Migration Database
Sub topik ini sudah pernah dibahas dalam materi Migration, Fitur Ajaib di Laravel.
Tahap pertama, buat migration untuk table categories terlebih dahulu sekaligus dengan model-nya, jadi kita hanya perlu menggunakan command make::model kemudian diikuti dengan flag -m, yang berarti sekaligus akan meng-generate migration-nya.
Donwload disini
php artisan make:model Category -m
Buka file migration untuk category yang dapat kamu temukan pada direktori database/migrations, kemudian lakukan modifikasi menjadi seperti ini:
Buka file migration untuk category yang dapat kamu temukan pada direktori database/migrations, kemudian lakukan modifikasi menjadi seperti ini:
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('description')->nullable();
$table->timestamps();
});
}
Selanjutnya buat migration untuk products:
php artisan make:model Product -m
Kemudian modifikasi kembali migration untuk products:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('description')->nullable();
$table->string('stock');
$table->string('price');
$table->integer('category_id');
$table->timestamps();
});
}
Penjelasan: Terdapat field category_id yang nantinya akan digunakan untuk membuat relasi ke table categories
Karena table users secara default migration-nya sudah disediakan oleh Laravel dan untuk case kali ini, kita tidak akan melakukan perubahan untuk table users. Jadi, melangkah ke table selanjutnya, buat migration untuk table customers:
php artisan make:model Customer -m
Modifikasi migration untuk customers:
public function up()
{
Schema::create('customers', function (Blueprint $table) {
$table->increments('id');
$table->string('email')->unique();
$table->string('name');
$table->text('address');
$table->string('phone');
$table->timestamps();
});
}
Tabel selanjutnya adalah pesanan:
php artisan make: model Order -m
Migrasi-nya menjadi:
fungsi publik naik (){
Skema :: buat ('pesanan', fungsi (Blueprint $ table) {
$ table-> increment ('id');
Membuat Relasi Database
Seperti yang kamu lihat pada screenshoot sebelumnya, terdapat garis yang menghubungkan antara table yang berelasi. Sebenarnya, bisa saja kita sematkan pada migration sebelumnya. Namun, sengaja saya pisahkan agar lebih mudah menjelaskannya.
Buat migration baru dengan command:
php artisan make:migration add_relationships_to_products_table
Note: Sebenarnya nama migration-nya bebas, tapi sebaiknya mewakili apa yang akan dilakukan oleh migration tersebut agar lebih mudah diidentifikasi.
Method Up, modifikasi menjadi:
...
public function up()
{
Schema::table('products', function (Blueprint $table) {
$table->integer('category_id')->unsigned()->change();
$table->foreign('category_id')->references('id')->on('categories')
->onUpdate('cascade')->onDelete('cascade');
});
}
Kesimpulan
Mengakhiri sesi ini, kita telah menyelesaikan schema database
yang akan digunakan untuk membuat aplikasi Point of Sales,
maka dengan schema database kita sudah dapat
membayangkan dan juga mempetak-petakkan apa saja yang
harus kita selesaikan nantinya dalam proses development.