DEV Community

Hilmi Hidayat
Hilmi Hidayat

Posted on • Originally published at divisidev.com on

Tutorial Membuat Barcode Generator di Laravel 9

Laravel Barcode Generator - Hello Devs 👋 Pada kesempatan kali ini, saya akan share saya membuat barcode generator menggunakan barcode package dari Milon di Laravel 9. Barcode pada umumnya dapat kita jumpai pada kemasan produk seperti kopi, mie, snack dan produk-produk lainnya. Barcode biasanya digunakan oleh kasir untuk mendapatkan informasi dari produk tersebut yang tidak dimuat pada kemasan seperti harga, stok dan informasi-informasi yang lainnya.

Nah, pada kesempatan kali ini, saya akan mengimplementasikan dengan membuat barcode untuk mengetahui harga dari suatu produk. Langkah-langkah yang akan saya jelaskan pada artikel kali ini cukup simple saja, yaitu mulai dari install laravel, barcode package, generate dummy data, hingga menampilkan data product beserta barcode.

Oke, mari kita langsung saja ke langkah-langkahnya 👇

Step 1: Install Laravel

//via Laravel Installer
composer global require laravel/installer
laravel new laravel-barcode

//via Composer
composer create-project laravel/laravel laravel-barcode
Enter fullscreen mode Exit fullscreen mode

Langkah yang pertama yaitu kita akan mulai dari install laravel project baru. Untuk menginstall laravel, teman-teman dapat menggunakan cara via laravel installer, composer atau cara lainnya yang disediakan oleh laravel. Untuk project latihan kali ini, saya akan memberikan nama laravel-barcode.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_barcode
DB_USERNAME=root
DB_PASSWORD=
Enter fullscreen mode Exit fullscreen mode

Jika proses installasi laravel sudah selesai, jangan lupa untuk membuat database baru dan menyesuaikan value pada variable di file .env dengan nama database yang baru saja dibuat.

Step 2: Install Laravel Barcode Package

composer require milon/barcode
Enter fullscreen mode Exit fullscreen mode

Seperti yang telah saya sebutkan di awal, untuk membuat barcode di laravel, kita dapat menggunakan barcode package dari Milon. Untuk installasinya, kita hanya tinggal menjalankan perintah installasi via composer dengan perintah seperti di atas.

config/app.php

'providers' => [
    // ...
    Milon\Barcode\BarcodeServiceProvider::class,
]
Enter fullscreen mode Exit fullscreen mode

Jika proses installasi barcode package sudah selesai, silahkan buka file config/app.php lalu tambahkan item Milon\Barcode\BarcodeServiceProvider::class, di dalam array providers seperti contoh di atas.

'aliases' => Facade::defaultAliases()->merge([
    // 'ExampleClass' => App\Example\ExampleClass::class,
    'DNS1D' => Milon\Barcode\Facades\DNS1DFacade::class,
    'DNS2D' => Milon\Barcode\Facades\DNS2DFacade::class,
])->toArray(),
Enter fullscreen mode Exit fullscreen mode

Kemudian, tambahkan juga pada aliases seperti contoh kode di atas.

Step 3: Setup Migration & Factory

php artisan make:model Product -mf
Enter fullscreen mode Exit fullscreen mode

Dan seperti yang telah saya sebutkan di awal, pada artikel ini saya akan mengimplementasikan barcode untuk mendeteksi harga dari product tersebut. Untuk itu, disini kita memerlukan model sekaligus table product beserta datanya. Silahkan jalankan perintah artisan seperti di atas untuk generate Product model beserta migration dan file ProductFactory.

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('slug');
        $table->text('description');
        $table->decimal('price', 8, 2);
        $table->timestamps();
    });
}
Enter fullscreen mode Exit fullscreen mode

Selanjutnya, buka file {timestamp} _create_products_table.php dan sesuaikan kode pada function up menjadi seperti di atas. Sebagai contoh, disini kita hanya memerlukan fields name, slug, description dan price.

public function definition()
{
    $name = $this->faker->name();
    $slug = \Str::slug($name);
    return [
        'name' => $name,
        'slug' => $slug,
        'description' => $this->faker->text(),
        'price' => $this->faker->randomFloat(2, 0, 100),
    ];
}
Enter fullscreen mode Exit fullscreen mode

Selesai setup file migration, kita lanjutkan untuk membuat dummy data menggunakan factory. Silahkan buka file di database/factories/ProductFactory.php, sesuaikan kode yang ada pada function definition() menjadi seperti di atas.

Disclaimer: Untuk nama produk dummy, disini menggunakan method name dari facker. Mungkin hasilnya akan terlihat aneh, karena disini kita inginnya membuat nama-nama produk, namun yang dihasilkan dari factory ini nanti merupakan nama-nama orang. Karena ini hanya untuk dummy data dan untuk latihan, saya rasa tidak terlalu bermasalah.

Step 4: Setup Route

Route::get('/', function () {
    return view('welcome',[
        'products' => App\Models\Product::all()
    ]);
});
Enter fullscreen mode Exit fullscreen mode

Oke, kita lanjutkan pada step keempat yaitu melakukan setup pada route. Tidak banyak yang kita lakukan pada step ini, kita hanya menambahkan variable $products beserta data dari table products pada route bawaan dari Laravel.

Step 5: Setup View

<!doctype html>
<html lang="en">
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- Bootstrap CSS -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
        <title>Laravel Barcode Generator</title>
    </head>
    <body>
        <div class="container py-5">
            <div class="row justify-content-center">
                <div class="col-md-12">
                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th scope="col">#</th>
                                <th scope="col">Barcode</th>
                                <th scope="col">Name</th>
                                <th scope="col">Description</th>
                            </tr>
                        </thead>
                        <tbody>
                            @forelse ($products as $key => $product)
                            <tr>
                                <th scope="row">{{ ++$key }}</th>
                                <td>{!! DNS1D::getBarcodeHTML('$ '. $product->price, 'C39') !!}</td>
                                <td>{{ $product->name }}</td>
                                <td>{{ Str::limit($product->description, 50, '...') }}</td>
                            </tr>
                            @empty
                            <tr>
                                <td colspan="7" class="text-center">No data available</td>
                            </tr>
                            @endforelse
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
    </body>
</html>
Enter fullscreen mode Exit fullscreen mode

Oke, sampai dipenghujung artikel. Pada step yang terakhir ini, kita akan melakukan setup view dengan mengubah kode pada file welcome.blade.php menjadi seperti di atas. Disini kita akan menggunakan component table dari bootstrap, dimana dalam table tersebut, kita akan menampilkan barcode dengan varian C39.

Untuk varian barcode yang lainnya, teman-teman bisa cek di official repository. 👈

Step 6: Testing

laravel barcode generator

Setelah menyelesaikan langkah-langkah yang telah saya jelaskan di atas, sekarang kita bisa mencoba fitur barcode yang telah kita buat di laravel 9 ini. Silahkan jalankan laravel project, lalu buka project pada browser teman-teman. Cobalah dengan melakukan scan pada salah satu barcode yang ada menggunakan scanner di gadget atau device lainnya. Jika barcode sukses terbaca, maka akan menampilkan informasi harga dari product tersebut.

Cukup sekian artikel tentang cara membuat barcode generator di laravel 9 ini, semoga artikel ini dapat membantu teman-teman dan sampai jumpa di artikel berikutnya. 👋 👨‍💻

📖 Full Documentation: Laravel Barcode Package

Credit: Work illustrations by Storyset

Top comments (0)