tutwuri
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis
No Result
View All Result
tutwuri
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis
No Result
View All Result
tutwuri
No Result
View All Result
Home Bahasa Indonesia

Laravel Nova Tutorial Bahasa Indonesia: Manajemen Data yang Mudah dan Efisien

Willow Emberwood by Willow Emberwood
November 10, 2025
in Bahasa Indonesia, Data, Laravel, Manajemen, Tutorial
0
Share on FacebookShare on Twitter

Laravel Nova adalah panel administrasi yang cantik dan kuat untuk aplikasi Laravel Anda. Jika Anda mencari cara untuk mengelola data Anda dengan mudah dan efisien menggunakan Laravel, maka tutorial ini tepat untuk Anda. Dalam artikel ini, kita akan membahas secara mendalam tentang Laravel Nova, mulai dari instalasi hingga kustomisasi, semuanya dalam Bahasa Indonesia yang mudah dipahami. Siap untuk memulai petualangan manajemen data yang mudah dan efisien? Yuk, simak!

1. Apa Itu Laravel Nova dan Mengapa Anda Membutuhkannya?

Laravel Nova, sederhananya, adalah dashboard administrasi yang sudah jadi (out-of-the-box) untuk aplikasi Laravel Anda. Bayangkan Anda harus membuat halaman admin untuk mengelola user, postingan blog, produk, atau data lainnya. Biasanya, Anda akan menghabiskan banyak waktu untuk membuat form, table, validasi, dan lain sebagainya. Laravel Nova hadir untuk mengatasi masalah ini.

Keuntungan menggunakan Laravel Nova:

  • Hemat Waktu dan Tenaga: Tidak perlu membangun dashboard dari awal.
  • Tampilan Profesional: Desain user interface (UI) yang modern dan responsif.
  • Mudah Dikustomisasi: Fleksibel untuk disesuaikan dengan kebutuhan aplikasi Anda.
  • Fitur Lengkap: Sudah dilengkapi dengan resource management, authorization, search, filters, dan banyak lagi.
  • Integrasi Mudah dengan Laravel: Karena dibangun di atas Laravel, integrasinya sangat mulus.

Jadi, jika Anda ingin fokus pada pengembangan inti aplikasi Anda dan menghemat waktu dalam membuat dashboard admin, Laravel Nova adalah pilihan yang sangat tepat. Dengan Laravel Nova Tutorial Bahasa Indonesia ini, Anda akan belajar cara memanfaatkan semua keunggulannya.

Related Post

Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan

June 5, 2026

Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda

June 5, 2026

Training CRM untuk Tim Sales dan Marketing: Tingkatkan Kompetensi dan Produktivitas

June 5, 2026

Harga Software CRM di Indonesia per Bulan: Perbandingan dan Pilihan Terbaik

June 5, 2026

2. Instalasi Laravel Nova: Langkah Demi Langkah

Sebelum kita mulai manajemen data yang mudah dan efisien, kita perlu memasang Laravel Nova terlebih dahulu. Proses instalasinya cukup sederhana, tetapi pastikan Anda memenuhi persyaratan berikut:

  • Laravel: Aplikasi Laravel yang sudah terinstal dan berjalan (disarankan versi terbaru).
  • PHP: Versi PHP 7.2 atau lebih tinggi.
  • Database: Database seperti MySQL, PostgreSQL, SQLite, atau SQL Server.
  • Composer: Package manager untuk PHP.
  • Akun Laravel Nova: Anda memerlukan lisensi berbayar untuk menggunakan Laravel Nova.

Berikut adalah langkah-langkah instalasinya:

  1. Beli Lisensi Laravel Nova: Kunjungi situs web Laravel Nova (https://nova.laravel.com/) dan beli lisensi yang sesuai dengan kebutuhan Anda.

  2. Tambahkan Kunci Lisensi ke composer.json: Setelah membeli lisensi, Anda akan mendapatkan kunci lisensi. Tambahkan kunci ini ke berkas composer.json di proyek Laravel Anda. Buka berkas composer.json dan tambahkan bagian repositories seperti berikut:

    {
        "repositories": [
            {
                "type": "composer",
                "url": "https://nova.laravel.com"
            }
        ],
        "require": {
            "laravel/nova": "*"
        }
    }
  3. Instal Laravel Nova melalui Composer: Jalankan perintah berikut di terminal:

    composer require laravel/nova
  4. Jalankan Perintah Instalasi Nova: Setelah instalasi selesai, jalankan perintah berikut:

    php artisan nova:install

    Perintah ini akan menginstal service provider dan mem-publish asset Laravel Nova.

  5. Konfigurasi Database: Pastikan konfigurasi database Anda sudah benar di berkas .env.

  6. Migrasi Database: Jalankan migrasi database:

    php artisan migrate
  7. Register Nova Service Provider: Pastikan NovaServiceProvider terdaftar di config/app.php. Biasanya, langkah ini sudah dilakukan secara otomatis oleh nova:install.

  8. Akses Laravel Nova: Buka browser Anda dan akses URL /nova (misalnya, http://localhost:8000/nova). Anda akan melihat halaman login Laravel Nova. Gunakan user Laravel Anda untuk login.

Selamat! Anda telah berhasil menginstal Laravel Nova. Sekarang, mari kita mulai dengan manajemen data yang mudah dan efisien.

3. Membuat dan Mengelola Resources dengan Laravel Nova

Resource adalah representasi dari model Eloquent Anda di Laravel Nova. Setiap resource akan memiliki fields (kolom) yang sesuai dengan atribut di model Anda. Dengan resource, Anda dapat melakukan operasi CRUD (Create, Read, Update, Delete) dengan mudah melalui interface Nova.

Langkah-langkah membuat resource:

  1. Buat Model Eloquent: Jika Anda belum memiliki model Eloquent untuk data yang ingin Anda kelola, buat model tersebut. Contoh:

    php artisan make:model Post
  2. Buat Migrasi Database: Buat migrasi database untuk membuat table yang sesuai dengan model Anda.

    php artisan make:migration create_posts_table

    Pastikan Anda mendefinisikan schema table yang benar di berkas migrasi.

  3. Buat Resource Nova: Jalankan perintah berikut untuk membuat resource Nova:

    php artisan nova:resource Post

    Perintah ini akan membuat berkas app/Nova/Post.php.

  4. Definisikan Fields di Resource: Buka berkas app/Nova/Post.php dan definisikan fields yang ingin Anda tampilkan dan kelola. Contoh:

    <?php
    
    namespace AppNova;
    
    use IlluminateHttpRequest;
    use LaravelNovaFieldsID;
    use LaravelNovaFieldsText;
    use LaravelNovaFieldsTextarea;
    use LaravelNovaFieldsBoolean;
    use LaravelNovaHttpRequestsNovaRequest;
    
    class Post extends Resource
    {
        /**
         * The model the resource corresponds to.
         *
         * @var string
         */
        public static $model = AppModelsPost::class;
    
        /**
         * The single value that should be used to represent the resource when being displayed.
         *
         * @var string
         */
        public static $title = 'title';
    
        /**
         * The columns that should be searched.
         *
         * @var array
         */
        public static $search = [
            'title', 'body',
        ];
    
        /**
         * Get the fields displayed by the resource.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function fields(Request $request)
        {
            return [
                ID::make()->sortable(),
    
                Text::make('Title')
                    ->sortable()
                    ->rules('required', 'max:255'),
    
                Textarea::make('Body')
                    ->rules('required'),
    
                Boolean::make('Published'),
    
                // ... tambahkan field lain sesuai kebutuhan
            ];
        }
    
        /**
         * Get the cards available for the request.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function cards(Request $request)
        {
            return [];
        }
    
        /**
         * Get the filters available for the resource.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function filters(Request $request)
        {
            return [];
        }
    
        /**
         * Get the lenses available for the resource.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function lenses(Request $request)
        {
            return [];
        }
    
        /**
         * Get the actions available for the resource.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function actions(Request $request)
        {
            return [];
        }
    }

    Pada contoh di atas, kita mendefinisikan fields ID, Title, Body, dan Published. Anda dapat menggunakan berbagai jenis fields yang disediakan oleh Laravel Nova, seperti Text, Textarea, Number, Boolean, Select, Date, dan masih banyak lagi.

  5. Register Resource di NovaServiceProvider: Buka berkas app/Providers/NovaServiceProvider.php dan tambahkan resource Anda ke method resources():

    <?php
    
    namespace AppProviders;
    
    use IlluminateSupportFacadesGate;
    use LaravelNovaNova;
    use LaravelNovaNovaApplicationServiceProvider;
    use AppNovaPost; // Import resource Post
    
    class NovaServiceProvider extends NovaApplicationServiceProvider
    {
        /**
         * Bootstrap any application services.
         *
         * @return void
         */
        public function boot()
        {
            parent::boot();
    
            Nova::routes()
                ->withAuthenticationRoutes()
                ->withPasswordResetRoutes()
                ->register();
        }
    
        /**
         * Register the Nova gate.
         *
         * This gate determines who can access Nova in general.
         *
         * @return void
         */
        protected function gate()
        {
            Gate::define('viewNova', function ($user) {
                return true; // Sesuaikan dengan kebutuhan authorization Anda
            });
        }
    
        /**
         * Get the tools that should be listed in the Nova sidebar.
         *
         * @return array
         */
        public function tools()
        {
            return [];
        }
    
        /**
         * Register the application's Nova resources.
         *
         * @return void
         */
        protected function resources()
        {
            Nova::resources([
                Post::class, // Daftarkan resource Post
            ]);
        }
    }

Sekarang, buka halaman Laravel Nova Anda dan Anda akan melihat resource Post di sidebar. Anda dapat menambahkan, mengedit, dan menghapus data Post melalui interface ini. Ini adalah langkah awal dalam manajemen data yang mudah dan efisien.

4. Kustomisasi Fields: Validasi, Tampilan, dan Lainnya

Laravel Nova memberikan fleksibilitas yang tinggi dalam mengkustomisasi fields. Anda dapat menambahkan validasi, mengubah tampilan, dan bahkan membuat custom field sesuai dengan kebutuhan Anda.

Validasi Fields:

Anda dapat menambahkan validasi ke fields Anda menggunakan rules. Pada contoh sebelumnya, kita sudah menambahkan validasi required dan max:255 ke field Title. Anda dapat menggunakan semua rules validasi yang tersedia di Laravel.

Text::make('Title')
    ->sortable()
    ->rules('required', 'max:255'),

Mengubah Tampilan Fields:

Anda dapat mengubah tampilan fields menggunakan berbagai method yang tersedia. Contoh:

  • ->hideFromIndex(): Menyembunyikan field dari index page.
  • ->hideFromDetail(): Menyembunyikan field dari detail page.
  • ->readonly(): Membuat field menjadi readonly.
  • ->help('Deskripsi field'): Menambahkan help text di bawah field.

Custom Fields:

Jika Anda membutuhkan field yang sangat spesifik, Anda dapat membuat custom field. Ini membutuhkan sedikit lebih banyak usaha, tetapi memberikan fleksibilitas yang tak terbatas. Anda perlu membuat component Vue.js untuk field Anda dan mendaftarkannya di Laravel Nova.

5. Authorization di Laravel Nova: Membatasi Akses

Keamanan adalah hal yang penting dalam aplikasi web. Laravel Nova menyediakan fitur authorization yang kuat untuk membatasi akses ke resource dan actions.

Anda dapat menggunakan gates dan policies Laravel untuk mengatur authorization di Laravel Nova. Gates adalah cara sederhana untuk menentukan apakah user tertentu memiliki izin untuk melakukan tindakan tertentu. Policies memberikan kontrol yang lebih detail dan terstruktur.

Contoh penggunaan gate:

Di NovaServiceProvider.php, Anda dapat mendefinisikan gate untuk menentukan siapa yang dapat mengakses Laravel Nova:

protected function gate()
{
    Gate::define('viewNova', function ($user) {
        return $user->is_admin; // Hanya admin yang bisa mengakses Nova
    });
}

Contoh penggunaan policy:

Buat policy untuk model Post:

php artisan make:policy PostPolicy --model=Post

Di PostPolicy.php, Anda dapat mendefinisikan methods seperti view, create, update, dan delete untuk mengatur izin.

<?php

namespace AppPolicies;

use AppModelsUser;
use AppModelsPost;
use IlluminateAuthAccessHandlesAuthorization;

class PostPolicy
{
    use HandlesAuthorization;

    /**
     * Determine whether the user can view any models.
     *
     * @param  AppModelsUser  $user
     * @return IlluminateAuthAccessResponse|bool
     */
    public function viewAny(User $user)
    {
        return true; // Semua user bisa melihat daftar postingan
    }

    /**
     * Determine whether the user can view the model.
     *
     * @param  AppModelsUser  $user
     * @param  AppModelsPost  $post
     * @return IlluminateAuthAccessResponse|bool
     */
    public function view(User $user, Post $post)
    {
        return true; // Semua user bisa melihat detail postingan
    }

    /**
     * Determine whether the user can create models.
     *
     * @param  AppModelsUser  $user
     * @return IlluminateAuthAccessResponse|bool
     */
    public function create(User $user)
    {
        return $user->is_admin; // Hanya admin yang bisa membuat postingan
    }

    /**
     * Determine whether the user can update the model.
     *
     * @param  AppModelsUser  $user
     * @param  AppModelsPost  $post
     * @return IlluminateAuthAccessResponse|bool
     */
    public function update(User $user, Post $post)
    {
        return $user->is_admin; // Hanya admin yang bisa mengedit postingan
    }

    /**
     * Determine whether the user can delete the model.
     *
     * @param  AppModelsUser  $user
     * @param  AppModelsPost  $post
     * @return IlluminateAuthAccessResponse|bool
     */
    public function delete(User $user, Post $post)
    {
        return $user->is_admin; // Hanya admin yang bisa menghapus postingan
    }

    /**
     * Determine whether the user can restore the model.
     *
     * @param  AppModelsUser  $user
     * @param  AppModelsPost  $post
     * @return IlluminateAuthAccessResponse|bool
     */
    public function restore(User $user, Post $post)
    {
        return $user->is_admin;
    }

    /**
     * Determine whether the user can permanently delete the model.
     *
     * @param  AppModelsUser  $user
     * @param  AppModelsPost  $post
     * @return IlluminateAuthAccessResponse|bool
     */
    public function forceDelete(User $user, Post $post)
    {
        return false;
    }
}

Daftarkan policy di AuthServiceProvider.php:

<?php

namespace AppProviders;

use IlluminateFoundationSupportProvidersAuthServiceProvider as ServiceProvider;
use IlluminateSupportFacadesGate;
use AppModelsPost;
use AppPoliciesPostPolicy;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        Post::class => PostPolicy::class,
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        //
    }
}

Dengan authorization, Anda dapat memastikan bahwa hanya user yang berwenang yang dapat mengakses dan memodifikasi data Anda. Ini adalah bagian penting dari manajemen data yang mudah dan efisien dan juga aman.

6. Actions: Menambah Fungsi Kustom ke Resource

Actions memungkinkan Anda untuk menambahkan fungsi kustom ke resource. Anda dapat membuat action untuk melakukan berbagai tugas, seperti mengirim email, memproses data, atau mengubah status.

Langkah-langkah membuat action:

  1. Buat Action Nova: Jalankan perintah berikut:

    php artisan nova:action SendEmail

    Perintah ini akan membuat berkas app/Nova/Actions/SendEmail.php.

  2. Definisikan Logic di Action: Buka berkas app/Nova/Actions/SendEmail.php dan definisikan logika action Anda. Contoh:

    <?php
    
    namespace AppNovaActions;
    
    use IlluminateBusQueueable;
    use IlluminateContractsQueueShouldQueue;
    use IlluminateQueueInteractsWithQueue;
    use IlluminateSupportCollection;
    use LaravelNovaActionsAction;
    use LaravelNovaFieldsActionFields;
    use AppModelsPost; // Import model Post
    use IlluminateSupportFacadesMail; // Import Mail facade
    
    class SendEmail extends Action
    {
        use InteractsWithQueue, Queueable;
    
        /**
         * Perform the action on the given models.
         *
         * @param  LaravelNovaFieldsActionFields  $fields
         * @param  IlluminateSupportCollection  $models
         * @return mixed
         */
        public function handle(ActionFields $fields, Collection $models)
        {
            foreach ($models as $post) {
                // Kirim email ke penulis postingan
                Mail::raw("Isi email", function ($message) use ($post) {
                    $message->to($post->author->email) // Asumsi ada relasi author
                            ->subject('Postingan Anda telah diproses');
                });
    
                // Logika lain yang ingin Anda lakukan
                $post->update(['status' => 'processed']);
            }
    
            return Action::message('Email berhasil dikirim!');
        }
    
        /**
         * Get the fields available on the action.
         *
         * @return array
         */
        public function fields()
        {
            return []; // Tidak ada field tambahan
        }
    }
  3. Register Action di Resource: Buka berkas app/Nova/Post.php dan tambahkan action Anda ke method actions():

    public function actions(Request $request)
    {
        return [
            new ActionsSendEmail, // Daftarkan action SendEmail
        ];
    }

Sekarang, Anda akan melihat action “Send Email” di index page dan detail page resource Post. Anda dapat memilih satu atau beberapa postingan dan menjalankan action tersebut.

7. Filters: Mempermudah Pencarian Data

Filters memungkinkan Anda untuk memfilter data berdasarkan kriteria tertentu. Ini sangat berguna untuk mencari data dengan cepat dan mudah.

Langkah-langkah membuat filter:

  1. Buat Filter Nova: Jalankan perintah berikut:

    php artisan nova:filter PublishedFilter

    Perintah ini akan membuat berkas app/Nova/Filters/PublishedFilter.php.

  2. Definisikan Logic di Filter: Buka berkas app/Nova/Filters/PublishedFilter.php dan definisikan logika filter Anda. Contoh:

    <?php
    
    namespace AppNovaFilters;
    
    use IlluminateHttpRequest;
    use LaravelNovaFiltersFilter;
    
    class PublishedFilter extends Filter
    {
        /**
         * The displayable name of the filter.
         *
         * @var string
         */
        public $name = 'Status Publikasi';
    
        /**
         * Apply the filter to the given query.
         *
         * @param  IlluminateHttpRequest  $request
         * @param  IlluminateDatabaseEloquentBuilder  $query
         * @param  mixed  $value
         * @return IlluminateDatabaseEloquentBuilder
         */
        public function apply(Request $request, $query, $value)
        {
            if ($value == 'published') {
                return $query->where('published', true);
            } elseif ($value == 'draft') {
                return $query->where('published', false);
            }
    
            return $query;
        }
    
        /**
         * Get the filter's available options.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function options(Request $request)
        {
            return [
                'Dipublikasikan' => 'published',
                'Draf' => 'draft',
            ];
        }
    }
  3. Register Filter di Resource: Buka berkas app/Nova/Post.php dan tambahkan filter Anda ke method filters():

    public function filters(Request $request)
    {
        return [
            new FiltersPublishedFilter, // Daftarkan filter PublishedFilter
        ];
    }

Sekarang, Anda akan melihat filter “Status Publikasi” di index page resource Post. Anda dapat memilih opsi “Dipublikasikan” atau “Draf” untuk memfilter postingan berdasarkan status publikasinya.

8. Lenses: Tampilan Data yang Lebih Spesifik

Lenses memberikan cara untuk menampilkan data dalam format yang berbeda. Anda dapat membuat lens untuk menampilkan data yang difilter, diurutkan, atau digabungkan dengan data dari table lain.

Langkah-langkah membuat lens:

  1. Buat Lens Nova: Jalankan perintah berikut:

    php artisan nova:lens PopularPosts

    Perintah ini akan membuat berkas app/Nova/Lenses/PopularPosts.php.

  2. Definisikan Logic di Lens: Buka berkas app/Nova/Lenses/PopularPosts.php dan definisikan logika lens Anda. Contoh:

    <?php
    
    namespace AppNovaLenses;
    
    use IlluminateHttpRequest;
    use LaravelNovaFieldsID;
    use LaravelNovaFieldsText;
    use LaravelNovaLensesLens;
    use IlluminateSupportFacadesDB; // Import DB facade
    
    class PopularPosts extends Lens
    {
        /**
         * Get the query for the lens.
         *
         * @param  IlluminateHttpRequest  $request
         * @param  IlluminateDatabaseEloquentBuilder  $query
         * @return IlluminateDatabaseEloquentBuilder
         */
        public static function query(Request $request, $query)
        {
            return $query->orderBy('views', 'desc'); // Urutkan berdasarkan jumlah views
        }
    
        /**
         * Get the fields available to the lens.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function fields(Request $request)
        {
            return [
                ID::make('ID', 'id'),
    
                Text::make('Title')
                    ->sortable(),
    
                // ... tambahkan field lain sesuai kebutuhan
            ];
        }
    
        /**
         * Get the cards available on the lens.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function cards(Request $request)
        {
            return [];
        }
    
        /**
         * Get the filters available for the lens.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function filters(Request $request)
        {
            return [];
        }
    
        /**
         * Get the actions available on the lens.
         *
         * @param  IlluminateHttpRequest  $request
         * @return array
         */
        public function actions(Request $request)
        {
            return parent::actions($request);
        }
    
        /**
         * Get the URI key for the lens.
         *
         * @return string
         */
        public static function uriKey()
        {
            return 'popular-posts';
        }
    }
  3. Register Lens di Resource: Buka berkas app/Nova/Post.php dan tambahkan lens Anda ke method lenses():

    public function lenses(Request $request)
    {
        return [
            new LensesPopularPosts, // Daftarkan lens PopularPosts
        ];
    }

Sekarang, Anda akan melihat lens “Popular Posts” di index page resource Post. Lens ini akan menampilkan postingan yang diurutkan berdasarkan jumlah views.

9. Relationship Fields: Mengelola Relasi Antar Model

Laravel Nova mendukung relationship fields, yang memungkinkan Anda untuk mengelola relasi antar model Eloquent dengan mudah.

Jenis relationship fields yang tersedia:

  • BelongsTo: Untuk relasi one-to-one atau many-to-one (misalnya, postingan memiliki seorang penulis).
  • HasMany: Untuk relasi one-to-many (misalnya, penulis memiliki banyak postingan).
  • BelongsToMany: Untuk relasi many-to-many (misalnya, postingan memiliki banyak tag).
  • HasOne: Untuk relasi one-to-one (misalnya, user memiliki satu profile).

Contoh penggunaan BelongsTo:

Asumsikan Anda memiliki model Post dan User dengan relasi BelongsTo (setiap postingan memiliki seorang penulis). Di app/Nova/Post.php, Anda dapat menambahkan field BelongsTo:

use LaravelNovaFieldsBelongsTo;

// ...

BelongsTo::make('Author', 'author', 'AppNovaUser'), // Relasi ke model User

Contoh penggunaan HasMany:

Di app/Nova/User.php, Anda dapat menambahkan field HasMany:

use LaravelNovaFieldsHasMany;

// ...

HasMany::make('Posts', 'posts', 'AppNovaPost'), // Relasi ke model Post

Dengan relationship fields, Anda dapat dengan mudah menavigasi dan mengelola relasi antar model di interface Laravel Nova.

10. Metrics: Menampilkan Data Statistik

Metrics memungkinkan Anda untuk menampilkan data statistik tentang aplikasi Anda di dashboard Laravel Nova. Anda dapat membuat metric untuk menampilkan jumlah user baru, jumlah postingan yang dipublikasikan, atau metrik lainnya yang relevan.

Jenis metrics yang tersedia:

  • Value: Menampilkan satu nilai (misalnya, total user).
  • Trend: Menampilkan tren data dari waktu ke waktu (misalnya, jumlah user baru per bulan).
  • Partition: Menampilkan data dalam bentuk pie chart (misalnya, distribusi user berdasarkan role).

Langkah-langkah membuat metric:

  1. Buat Metric Nova: Jalankan perintah berikut:

    php artisan nova:metric NewUsers

    Perintah ini akan membuat berkas app/Nova/Metrics/NewUsers.php.

  2. Definisikan Logic di Metric: Buka berkas app/Nova/Metrics/NewUsers.php dan definisikan logika metric Anda. Contoh (Value metric):

    <?php
    
    namespace AppNovaMetrics;
    
    use LaravelNovaMetricsValue;
    use AppModelsUser; // Import model User
    use IlluminateSupportCarbon; // Import Carbon
    
    class NewUsers extends Value
    {
        /**
         * Calculate the value of the metric.
         *
         * @param  IlluminateHttpRequest  $request
         * @return mixed
         */
        public function calculate(IlluminateHttpRequest $request)
        {
            return $this->count($request, User::class); // Hitung jumlah user
        }
    
        /**
         * Get the ranges available for the metric.
         *
         * @return array
         */
        public function ranges()
        {
            return [
                30 => '30 Hari',
                60 => '60 Hari',
                365 => '365 Hari',
                'MTD' => 'Bulan Ini',
                'YTD' => 'Tahun Ini',
            ];
        }
    
        /**
         * Determine for how many minutes the value / cache should be refreshed.
         *
         * @return  DateTimeInterface|int
         */
        public function cacheFor()
        {
            // return now()->addMinutes(5);
        }
    
        /**
         * Get the URI key for the metric.
         *
         * @return string
         */
        public function uriKey()
        {
            return 'new-users';
        }
    }
  3. Register Metric di Dashboard: Buka berkas app/Providers/NovaServiceProvider.php dan tambahkan metric Anda ke method cards():

    public function cards()
    {
        return [
            new MetricsNewUsers, // Daftarkan metric NewUsers
        ];
    }

Sekarang, Anda akan melihat metric “New Users” di dashboard Laravel Nova.

11. Searchable Resources: Memudahkan Pencarian Data secara Global

Selain filters, Laravel Nova juga menyediakan fitur searchable resources yang memungkinkan Anda untuk mencari data secara global di seluruh resource.

Langkah-langkah membuat resource searchable:

  1. Tentukan Field yang Ingin Dicari: Buka berkas resource Anda (misalnya, app/Nova/Post.php) dan tentukan fields mana yang ingin Anda gunakan untuk pencarian.

    public static $search = [
        'title', 'body', // Field yang akan dicari
    ];
  2. Pastikan Field Terindeks di Database: Untuk performa pencarian yang optimal, pastikan fields yang Anda gunakan untuk pencarian terindeks di database. Anda dapat menambahkan indeks ke table Anda menggunakan migrasi database.

Dengan searchable resources, user dapat dengan mudah mencari data di seluruh aplikasi Anda menggunakan search bar di header Laravel Nova. Ini adalah fitur yang sangat berguna untuk manajemen data yang mudah dan efisien, terutama jika Anda memiliki banyak data.

12. Tips dan Trik Laravel Nova untuk Pengembangan yang Lebih Cepat

Berikut beberapa tips dan trik untuk memaksimalkan penggunaan Laravel Nova:

  • Gunakan custom tools: Anda dapat membuat custom tools untuk menambahkan fungsi tambahan ke Laravel Nova yang tidak tersedia secara default.
  • Manfaatkan events Laravel: Laravel Nova memicu berbagai events yang dapat Anda gunakan untuk melakukan tindakan tertentu (misalnya, mengirim notifikasi setelah resource dibuat atau diperbarui).
  • Gunakan caching: Untuk aplikasi dengan data yang besar, gunakan caching untuk meningkatkan performa Laravel Nova.
  • Pelajari source code Laravel Nova: Mempelajari source code Laravel Nova dapat membantu Anda memahami cara kerja internalnya dan menyesuaikannya sesuai dengan kebutuhan Anda.
  • Bergabung dengan Komunitas Laravel Nova: Bergabunglah dengan komunitas Laravel Nova untuk mendapatkan bantuan, berbagi pengalaman, dan mempelajari tips dan trik dari developer lain.

Dengan Laravel Nova Tutorial Bahasa Indonesia ini, Anda telah mempelajari dasar-dasar penggunaan Laravel Nova untuk manajemen data yang mudah dan efisien. Selamat mencoba dan semoga berhasil! Ingatlah untuk selalu membaca dokumentasi resmi Laravel Nova untuk informasi lebih lanjut dan fitur-fitur terbaru.

Tags: Error generating tags
Willow Emberwood

Willow Emberwood

Related Posts

Error generating categories

Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan

by Lyra Silverbrook
June 5, 2026
Error generating categories

Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda

by Jasper Nightshade
June 5, 2026
Error generating categories

Training CRM untuk Tim Sales dan Marketing: Tingkatkan Kompetensi dan Produktivitas

by Elara Meadowlight
June 5, 2026
Next Post

Kursus AI Online Bersertifikat Bahasa Indonesia: Tingkatkan Skill di Era Digital

Leave a Reply Cancel reply

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

Recommended

Contoh Implementasi AI dalam Bisnis UKM: Studi Kasus dan Peluang Bisnis

June 20, 2025

Contoh Project Web Development Sederhana: Inspirasi dan Tutorial Lengkap

June 12, 2025

Cara Implementasi Authentication di Laravel: Keamanan Website Terjamin

August 1, 2025

Contoh Website Company Profile Sederhana dengan HTML CSS: Inspirasi Desain Modern

July 30, 2025

Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan

June 5, 2026

Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda

June 5, 2026

Training CRM untuk Tim Sales dan Marketing: Tingkatkan Kompetensi dan Produktivitas

June 5, 2026

Harga Software CRM di Indonesia per Bulan: Perbandingan dan Pilihan Terbaik

June 5, 2026

tutwuri

Our media platform offers reliable news and insightful articles. Stay informed with our comprehensive coverage and in-depth analysis on various topics.
Read more »

Recent Posts

  • Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan
  • Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda
  • Training CRM untuk Tim Sales dan Marketing: Tingkatkan Kompetensi dan Produktivitas

Categories

  • AI
  • Akuntansi
  • Algoritma
  • Alternatif
  • Analisis
  • and separated by commas: Hosting
  • API
  • Aplikasi
  • Asuransi
  • Authentication
  • Backend
  • Bahasa Indonesia
  • Belajar
  • Berita
  • Biaya
  • Bisnis
  • Blog
  • Bootstrap
  • Branding
  • Bulanan
  • Business
  • Cepat
  • Chatbot
  • ChatGPT
  • Cloud
  • CMS
  • Command
  • Contoh
  • CPanel
  • CRM
  • CRUD
  • CSS
  • Data
  • Database
  • Debugging
  • Deployment
  • Desain
  • Design
  • Developer
  • Development
  • Digital
  • Dokumentasi
  • Domain
  • Download
  • Dukungan
  • E-commerce
  • Efektif
  • Efektivitas
  • Efisiensi
  • Email
  • Error
  • Error generating categories
  • Etika
  • Event
  • Excel
  • Fashion
  • File
  • Fitur
  • Fleksibilitas
  • Framework
  • Freelance
  • Frontend
  • Fungsional
  • Gambar
  • Game
  • Garansi
  • Generatif
  • Google
  • Gratis
  • Harga
  • Here are 5 categories
  • Here are 5 categories based on the article titles
  • Hosting
  • HTML
  • Ide
  • Implementasi
  • Indonesia
  • Industri
  • Inovasi
  • Inspirasi
  • Integrasi
  • Investasi
  • Jakarta
  • JavaScript
  • Kapasitas
  • Karir
  • Kasus
  • Keamanan
  • Keandalan
  • Keberhasilan
  • Kebutuhan
  • Kecepatan
  • Kepuasan
  • Kerugian
  • Kesehatan
  • Kinerja
  • Kolaborasi
  • Komunikasi
  • Komunitas
  • Konfigurasi
  • Konstruksi
  • Konten
  • Kota
  • Kreativitas
  • Kualitas
  • Kustomisasi
  • Laporan
  • Laravel
  • Layanan
  • Lokasi
  • Machine Learning
  • Mahasiswa
  • Manajemen
  • Manajemen Proyek
  • Manfaat
  • Manufaktur
  • Marketing
  • Masa Depan
  • Masyarakat
  • Media Sosial
  • Migrasi
  • Migration
  • Mobile
  • Model
  • Monitoring
  • Murah
  • Negosiasi
  • Node JS
  • Online
  • Open Source
  • Optimasi
  • Otentikasi
  • Otomatis
  • Otomatisasi
  • Otomotif
  • Panduan
  • Pariwisata
  • Payment Gateway
  • Pekerjaan
  • Pelajar
  • Pelanggan
  • Pelatihan
  • Peluang
  • Pemasaran
  • Pemrograman
  • Pemula
  • Pendidikan
  • Pengambilan Keputusan
  • Pengembangan
  • Pengguna
  • Penggunaan
  • Penghasilan
  • Penipuan
  • Penjualan
  • Perbandingan
  • Perbedaan
  • Performa
  • Personalisasi
  • Pertumbuhan
  • Perubahan
  • PHP
  • Pilihan
  • Plugin
  • Portfolio
  • Prediksi
  • Produktivitas
  • Profesional
  • Programmer
  • Promo
  • Prospek
  • Python
  • Queue
  • Rekomendasi
  • Responsive
  • Retensi
  • Review
  • SEO
  • Sertifikat
  • Server
  • Sistem
  • Skalabilitas
  • Skill
  • Software
  • Solusi
  • SSD
  • SSL
  • Stabilitas
  • Startup
  • Strategi
  • Syarat
  • Tanggung Jawab
  • Tantangan
  • Technology
  • Teknologi
  • Template
  • Terbaik
  • Terbaru
  • Terpercaya
  • Testimoni
  • Tips
  • Tools
  • Traffic
  • Trafik
  • Tren
  • Troubleshooting
  • Tutorial
  • UI
  • UKM
  • Unlimited
  • Upload
  • Uptime
  • using one word per category: Software
  • using only one word from the list provided per category
  • Validasi
  • Video
  • VPS
  • Web
  • Website
  • WordPress

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 tutwuri.

No Result
View All Result
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis

© 2024 tutwuri.