Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

Tutorial Laravel #6 Membuat Counter Sidebar Menu Tanpa jQuery dan Ajax

3 min read

Tutorial Belajar Framework Laravel

Turorial Cara Membuat Counter Data Sidebar Menu Tanpa jQuery dan Ajax di Laravel. Sempat terpikir oleh saya bagaimana cara menampilkan jumlah data dari suatu module di sidebar. Para pecinta backend pasti sering menangani hal seperti itu. Biar lebih jelas, saya coba lampirkan gambarnya:

Laravel Counter

Nah, value 20 di gambar itu berasal dari database. Jika Anda yang membuatnya, biasanya akan kepikiran:

  1. Bikin variabel di setia function untuk menampilkan count di sidebar (Ribet)
  2. Bikin jQuery / ajax untuk mendapatkan jumlah data lalu dikirim ke sidebar (Biasa)
  3. Buat dengan cara lain yang lebih efisien (Mantap)

Nah tutorial kali ini akan membahas point ke 3 dengan cara yang berbeda menggunakan Laravel.

Sudah siap?

Saya jelaskan dulu projectnya…

Cara Membuat Counter Sidebar Menu di Laravel

Tutorial kali ini menggunakan Laravel. Jadi, silahkan buat project / install Laravel terlebih dahulu…

composer create-project laravel/laravel laravel_counter

Module yang saya gunakan adalah modul Student. Oleh sebab itu, silahkan Anda buat:

1# Model dan Migration

php artisan make:model Student --migration

2# Modifikasi Table Student

 Schema::create('students', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('name');
    $table->string('email');
    $table->enum('gender', ['Pria', 'Wanita']);
    $table->timestamps();
}); 

3# Buat Data Dummy

Project membutuhkan sebanyak 20 data untuk contoh. Coba buat file StudentFactory.php di direktori database/factories, kemudian ketik script berikut untuk menggenerate data:

 <?php

/** @var \Illuminate\Database\Eloquent\Factory $factory */

use App\Student;
use Illuminate\Support\Str;
use Faker\Generator as Faker;

$factory->define(Student::class, function (Faker $faker) {
    return [
        'name' => $faker->name, 
        'email' => $faker->unique()->safeEmail, 
        'gender' => 'Pria', 
    ];
});

Sekarang coba Anda buka file DatabaseSeeder.php di direktori database/seeds. Tambahkan pada function run:

// Tambahkan di atas nama class DatabaseSeeder
use App\Student;
// Tambahkan di dalam function run()
factory(Student::class, 20)->create(); 

4# Buat Database dan Konfigurasinya

Buat database laravel_counter di app server favorit Anda. Misalnya di XAMPP.

Kemudian modifikasi file .env menjadi:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_counter
DB_USERNAME=root
DB_PASSWORD=

Sekarang Anda sudah bisa menjalankan command:

php artisan migrate

dan …

php artisan db:seed

Setelah berhasil, maka data akan masuk ke dalam database. Anda bisa melihat gambar di bawah ini:

Laravel Counter

5# Menyiapkan Template

Saya sengaja menggunakan template AdminLTE karena themplate ini GRATIS dan banyak digunakan para programmer.

Silahkan download di themplate AdminLTE di situs resminya.

Setelah download silahkan extract dan simpan di direktori laravel_counter/public.

Rename dengan nama adminlte.

Structurnya Seperti Ini:

Laravel Counter

6# Modifikasi Model Student

Sebelumnya kita sudah membuat model Student.php. Kita tinggal modifikasi saja seperti kode di bawah ini:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Student extends Model
{
    protected $table = "students";

    protected $fillable = [
        'name', 'email', 'gender'
    ];

    public static function totalStudent() {
        return Student::count();
    }
}

Inti dari menghitung jumlah data dari database adalah pada function totalStudent() ini dan diletakan di model. Bukan dengan ajax maupun jQuery dan membutuhkan 2 kali kerja. Kita cukup membuat function ini, lalu memanggilnya di sidebar.

Penasaran?

Lanjutkan bacanya ya …

6# Membuat Controller

Masih menggunakan artisan, silahkan ketik command berikut:

php artisan make:controller StudentController

Modifikasi isi StudentController.php menjadi:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Student;

class StudentController extends Controller
{
    public function index(Request $request)
    {
        $paginate = 10;
        $data['students'] = Student::paginate($paginate);
        return view('student.index', $data)->with('i', ($request->input('page', 1) - 1) * $paginate);
    }
}

7# Membuat View

View di sini menggunakan template adminlte pecahan dari starter.html. Saya tidak memecahnya menjadi beberapa bagian (header, sidebar, content dan footer) karena butuh waktu lama.

Silahkan buat folder bernama student dan di dalamnya buat file bernama index.blade.php

Oke, karena script viewnya cukup panjang, saya akan melampirkannya melalui pastebin.

Berikut linknya: https://pastebin.com/smpGvrnP

Anda bisa melihat bagaimana saya menampilkan jumlah data di sidebar menu pada baris ke 185.

8# Membuat Route

Buka web.php pada direktori routes/web.php

Tambahkan kode berikut:

 Route::get('student', 'StudentController@index'); 

9# Testing

Jalankan project dengan ketik command:

php artisan serve

Kemudian ketik ini di URL browser Anda:

http://127.0.0.1:8000/student

Hasilnya:

Penutup

Alhamdulillah, setelah menyelesaikan tutorial ini akhirnya lega.

Tapi … jangan puas dulu. Karena mungkin masih ada yang perlu Anda pelajari.

Misalnya:

  1. Cara Install Laravel 6
  2. Membuat CRUD dengan SQLite
  3. Upload Image dengan CKeditor dan Mysql
  4. Kirim email dengan SMTP Gmail
  5. dan lain-lain …

Semangat belajar Laravel …

Download Source Code

Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

Leave a Reply

Your email address will not be published. Required fields are marked *

Jika terbantu dengan artikel ini, silahkan share, beri komentar dan "klik" 1 kali pada iklan ya.