Cara Menampilkan Data di Laravel dengan Join Table, dengan Menggunakan Query Builder

Share:
Halo semuanya, kembali lagi di sahretech. Baiklah pada artikel tutorial kali ini kita akan membahas join table di laravel menggunakan query builder. Bagi kalian yang terbiasa menggunakan perintah query di php native, kalian juga bisa menggunakan query builder untuk terhubung ke database. Penasaran?, ayo ikuti tutorialnya berikut ini.


Query Builder

Query builder adalah perintah atau antarmuka yang disediakan oleh laravel untuk terhubung ke database. Query builder dapat digunakan untuk menjalankan berbagai operasi database seperti CRUD, dan termasuk juga join table. Query builder dibuat menggunakan parameter PDO untuk melindungi aplikasi kalian dari serangan SQL injeksi. Query builder menjadi salah satu pilihan yang bisa kalian gunakan jika perintah eloquent masih membingungkan.


Cara Membuat Join Table dengan Query Builder

Persiapan awal sebelum masuk ke inti tutorial adalah kalian harus menginstall laravel terlebih dahulu. Untuk versinya silahkan install laravel versi 6 atau 7. Dan untuk destinasi folder projectnya sendiri bebas.

Bagi kalian yang baru pertama menggunakan laravel silahkan membaca artikel berikut ini https://www.sahretech.com/2019/10/cara-install-laravel-di-localhost-server.html
Dan bagi kalian yang sudah mengerti dasar-dasar laravel dan hanya ingin belajar fitur join table dengan menggunakan query builder silahkan langsung ke step 4 di bawah ini.


1. Membuat Database

Setelah kalian berhasil menginstall fresh laravel, selanjuntya buat sebuah database baru dengan nama laravel. Langkahnya, pertama kalian hidupkan apache dan mysql terlebih dahulu, lalu akses localhost/phpmyadmin dan buat sebuah database baru dengan nama laravel.

sahretech
Database laravel



Ok, project laravel dan database kalian sudah selesai dibuat. Selanjutnya buka folder project dengan web editor kalian dan jalankan fresh laravel yang baru diinstall dengan menggunakan perintah php artisan serve dengan menggunakn cmd. Dan jangan lupa sebelum menjalankan perintah php artisan pastikan kalian berada di dalam folder project tersebut.

2. Membuat Tabel

Ok, selanjuntya kita akan membuat 2 tabel yang akan saling terhubung. Pertama buatlah migration dengan nama barang. Buka cmd lalu jalankan perintah di bawah ini untuk membuat migration.



php artisan make:migration create_barang_table

Setelah migration baru sukses dibuat. Selanjutnya buka file migrasi yang baru kita buat sebelumnya. Buka Folder database/migrations lalu cari file create_barang_table, kemudian ganti script yang ada di dalam file tersebut dengan script yang ada di bawah ini.



public function up() { Schema::create('barang', function (Blueprint $table) { $table->bigIncrements('id_barang'); $table->string('nama_barang'); $table->string('jenis_barang'); $table->string('harga_barang'); $table->timestamps(); }); }

Selanjuntya buat sebuah migration baru dengan nama detail barang. Buka cmd lalu jalankan perintah di bawah ini untuk membuat migration.



php artisan make:migration create_detail_barang_table

Setelah migration sukses dibuat. Selanjutnya buka migration yang telah kita buat sebelumnya. Buka database/migration lalu cari file create_detail_barang_table yang kita buat sebelumnya, kemudian ganti script yang ada di dalamnya dengan script yang ada di bawah ini.



public function up() { Schema::create('detail_barang', function (Blueprint $table) { $table->bigIncrements('id_detail_barang'); $table->integer('id_barang'); $table->string('berat'); $table->string('pabrik'); $table->string('alamat_pabrik'); $table->string('supplier'); $table->text('keterangan'); $table->timestamps(); }); }


3. Melakukan Migrasi

Selanjutnya jalankan perintah di bawah ini untuk membuat tabel baru di dalam database. 



php artisan migrate

Jika perintah di atas berhasil dijalankan, maka semua file migration yang ada di dalam project laravel akan dibuat menjadi tabel ke dalam database. Selanjutnya kita isi data dummy ke dalam tabel barang dan tabel detail barang contohnya seperti gambar di bawah ini.

sahretech
Data dummy table barang



sahretech
Data dummy detail_barang


4. Membuat Controller

Selanjuntya kita akan membuat controller untuk menampung logic dari aplikasi yang kita buat. Jika kalian hanya membutuhkan cara melakukan join di laravel maka tahap ini adalah tahap yang penting bagi kalian. Jalankan perintah berikut ini untuk membuat controller baru dengan nama BarangController



php artisan make:controller BarangController

Selanjutnya buka BarangController.php yang telah kita buat sebelumnya di dalam folder app/Http/Controllers dan ganti script yang ada di dalamnya dengan script di bawah ini. Perhatikan juga komentar yang berada di samping kanan dan atas untuk mengetahui fungsi setiap bari code.



<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; //import fungsi query builder class BarangController extends Controller { public function index(){ //mengambil data darri database menggunakan db::table() dan disimpan ke dalam $data //menggunakan ->join() untuk menggabungkan tabel lainnya //diakhir get() untuk mengambil data array //diakhir first() jika hanya satu data yang diambil $data = DB::table('barang') ->join('detail_barang', 'detail_barang.id_barang', '=', 'barang.id_barang') ->get(); //tampilkan view barang dan kirim datanya ke view tersebut return view('barang')->with('data', $data); } }

Dengan menggunakan query builder maka kita tidak membutuhkan model lagi, karena kita bisa mengambil data tabel mananpun, dan query builder ini juga dapat digunakan di dalam blade view. 


5. Membuat View

Untuk menampilkan data yang kita kirim dari controller, kita membutuhkan sebuah view. Masuk ke folder resources/views lalu buat sebuah file baru dengan nama barang.blade.php. Buatlah struktur kodinangannya seperti script di bawah ini.



<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> {{-- import bootstrap untuk memberikan style --}} <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> <title>Latihan Query Builder</title> </head> <body> <br> <div class="container jumbotron text-center"> <h1>Latihan Menampilkan 2 Tabel Relasi degan Query Builder</h1> <br><br> <table class="table table-striped"> <tr> <th>No</th> <th>Barang</th> <th>Jenis</th> <th>Harga</th> <th>Berat</th> <th>Dibuat</th> <th>Alamat Pembuatan</th> <th>Supplier</th> <th>Keterangan</th> </tr> {{-- $data adalah variabel yang dikirmkan dari controller dan diinisialisasi sebagai $item --}} {{-- sedangkan $k adalah index dari tiap data --}} @foreach ($data as $k => $item) <tr> {{-- karena index dimulai dari 0 maka kita perlu menambahkan angka 1 --}} <td>{{$k+1}}</td> <td>{{$item->nama_barang}}</td> <td>{{$item->jenis_barang}}</td> <td>{{$item->harga_barang}}</td> <td>{{$item->berat}}</td> <td>{{$item->pabrik}}</td> <td>{{$item->alamat_pabrik}}</td> <td>{{$item->supplier}}</td> <td>{{$item->keterangan}}</td> </tr> @endforeach </table> </div> </body> </html>


6. Membuat Route

Langkah terakhir, buatlah sebuah route baru di dalam web.php. Buka folder routes lalu buka file web.php tambahkan baris code ini bagian paling bawah.



Route::get('/barang', 'BarangController@index');

Baiklah, setelah kalian mengikuti step by step tutorial di atas selanjutnya jalankan project laravel ini di browser dengan menggunakan php artisan serve, lalu buka alamat ini http://127.0.0.1:8000/barang. Jika step by stepnya benar maka hasilnya akan tampak seperti gambar di bawah ini.

sahretech
Hasil penggabungkan 2 buah tabel



Sekian tutorial cara membuat join table di laravel dengan menggunakan query builder. Semoga artikel ini bermanfaat bagi para pembaca sekalian, kurang lebihnya saya mohon maaf dan apabila ada script yang kurang dimengerti silahkan tinggalkan pertanyaan kalian di kolom komentar di bawah ini. Sampai jumpa di tutorial pemrograman keren lainnya. Happy Coding 😀

2 comments:

  1. Infonya sangat bermanfaat sekali kak 👌🏻

    ReplyDelete
    Replies
    1. alhamdulillah terima kasih banyak mas kunjungannya :)

      Delete

Jangan lupa kasih komentar ya!. Karena komentar kalian membantu kami menyediakan informasi yang lebih baik