Tag: pemrograman

  • 10 Tips Sederhana Membuat Program dengan Laravel untuk Pemula

    10 Tips Sederhana Membuat Program dengan Laravel untuk Pemula

    Laravel adalah kerangka kerja (framework) PHP yang membuat pembuatan aplikasi web jauh lebih rapi dan cepat. Saya memakainya untuk membangun aplikasi sekolah, seperti sistem informasi akademik untuk mengelola data siswa, nilai, dan jadwal.

    Dari pengalaman itu, saya belajar bahwa program yang baik tidak harus rumit. Yang penting rapi, mudah dirawat, dan bisa dikembangkan bertahap. Berikut sepuluh tips sederhana yang saya pakai sehari-hari. Tips ini cocok untuk guru, mahasiswa, atau siapa saja yang baru mulai belajar Laravel.

    Sebelum mulai, pastikan komputer sudah terpasang PHP, Composer, dan database (misalnya MySQL). Cara memasangnya bisa dilihat di dokumentasi resmi Laravel di laravel.com/docs.

    1. Rancang data di kertas dulu, baru menulis kode

    Sebelum membuka laptop, tulis dulu data apa saja yang akan dikelola dan bagaimana hubungannya. Contoh untuk aplikasi nilai sekolah: satu kelas punya banyak siswa, dan satu siswa punya banyak nilai.

    Coretan sederhana ini akan menjadi tabel di database. Lima belas menit merancang di kertas bisa menghemat berjam-jam membongkar kode di kemudian hari.

    2. Biarkan Artisan membuatkan file untuk Anda

    Laravel punya asisten baris perintah bernama Artisan. Daripada membuat file satu per satu, cukup satu perintah:

    php artisan make:model Siswa -mcr

    Perintah itu langsung membuat empat hal sekaligus: model Siswa, file migration untuk tabelnya (-m), controller (-c), dan isi controller berupa fungsi standar tambah–lihat–ubah–hapus (-r). Lebih cepat dan nama filenya pasti seragam.

    3. Kelola tabel lewat migration, bukan lewat phpMyAdmin

    Migration adalah “resep” pembuatan tabel yang ditulis dalam kode. Contoh:

    Schema::create('siswas', function (Blueprint $table) {
        $table->id();
        $table->string('nama');
        $table->string('nisn', 10)->unique();
        $table->foreignId('kelas_id')->constrained('kelas');
        $table->timestamps();
    });

    Lalu jalankan:

    php artisan migrate

    Keuntungannya, susunan tabel tersimpan bersama kode. Saat aplikasi dipindah ke komputer lain atau ke hosting, tabel bisa dibuat ulang persis sama hanya dengan satu perintah.

    Satu catatan untuk nama tabel berbahasa Indonesia: Laravel menebak nama tabel dengan aturan bahasa Inggris, sehingga model Siswa menjadi tabel siswas. Untuk kata yang tebakannya bisa meleset, seperti Kelas, sebutkan nama tabelnya secara jelas, misalnya constrained('kelas') di migration dan protected $table = 'kelas'; di model.

    4. Gunakan route resource dan beri nama setiap route

    Untuk fitur tambah–lihat–ubah–hapus, tidak perlu menulis tujuh baris route. Cukup:

    Route::resource('siswa', SiswaController::class);

    Laravel otomatis memberi nama pada setiap route, misalnya siswa.index dan siswa.create. Di tampilan, panggil route dengan namanya:

    <a href="{{ route('siswa.create') }}">Tambah Siswa</a>

    Jika suatu hari alamat URL berubah, tautan di seluruh aplikasi tetap berfungsi tanpa perlu diubah satu per satu.

    5. Jangan pernah percaya isian formulir: selalu validasi

    Pengguna bisa salah ketik, mengosongkan kolom, atau sengaja memasukkan data aneh. Laravel membuat pemeriksaan data sangat mudah:

    public function store(Request $request)
    {
        $data = $request->validate([
            'nama'     => 'required|max:100',
            'nisn'     => 'required|digits:10|unique:siswas',
            'kelas_id' => 'required|exists:kelas,id',
        ]);
    
        Siswa::create($data);
    
        return redirect()->route('siswa.index')
            ->with('pesan', 'Data siswa berhasil disimpan.');
    }

    Jika ada isian yang tidak sesuai, Laravel otomatis mengembalikan pengguna ke formulir beserta pesan kesalahannya. Jangan lupa isi $fillable di model agar hanya kolom yang diizinkan yang bisa disimpan.

    6. Manfaatkan relasi Eloquent, dan hindari query berulang

    Tuliskan hubungan antartabel di model:

    // app/Models/Kelas.php
    public function siswa()
    {
        return $this->hasMany(Siswa::class);
    }
    
    // app/Models/Siswa.php
    public function kelas()
    {
        return $this->belongsTo(Kelas::class);
    }

    Setelah itu, nama kelas seorang siswa cukup dipanggil dengan $siswa->kelas->nama.

    Satu jebakan yang sering terjadi: saat menampilkan 300 siswa beserta kelasnya, aplikasi diam-diam menjalankan 301 query ke database. Halaman jadi lambat. Solusinya, ambil relasinya sekaligus dengan with():

    $siswa = Siswa::with('kelas')->orderBy('nama')->paginate(25);

    Dengan paginate(), data juga otomatis dibagi per halaman sehingga tetap ringan meski siswanya ribuan.

    7. Buat satu layout Blade, lalu pakai berulang

    Kepala halaman, menu, dan bagian bawah biasanya sama di semua halaman. Simpan di satu file layout, misalnya resources/views/layouts/app.blade.php:

    <!doctype html>
    <html lang="id">
    <head><title>@yield('judul') | Aplikasi Sekolah</title></head>
    <body>
        @include('partials.menu')
        <main>@yield('isi')</main>
    </body>
    </html>

    Setiap halaman cukup “menumpang” pada layout tersebut:

    @extends('layouts.app')
    @section('judul', 'Daftar Siswa')
    @section('isi')
        {{-- isi halaman di sini --}}
    @endsection

    Ingin mengganti menu? Cukup ubah satu file, dan semua halaman ikut berubah.

    8. Isi data contoh dengan seeder

    Mengetik puluhan data uji coba secara manual itu melelahkan. Buat seeder, lalu isi data contoh dengan satu perintah:

    php artisan make:seeder KelasSeeder
    php artisan db:seed

    Saat database perlu dikosongkan dan diisi ulang dari awal, gunakan php artisan migrate:fresh --seed. Perintah ini menghapus semua isi tabel, jadi hanya pakai di komputer sendiri, jangan di server yang sudah berisi data asli.

    9. Simpan rahasia di .env dan catat perubahan dengan Git

    Password database, kunci API, dan pengaturan email disimpan di file .env, bukan di dalam kode. File ini jangan pernah dibagikan atau diunggah ke GitHub. Laravel sudah memasukkannya ke .gitignore secara bawaan.

    Biasakan juga mencatat setiap perubahan dengan Git:

    git add .
    git commit -m "Menambah fitur input nilai siswa"

    Git ibarat buku catatan perjalanan kode. Jika fitur baru membuat aplikasi rusak, kita bisa kembali ke versi sebelumnya yang masih berjalan.

    10. Kenali alat bantu mencari kesalahan

    Error adalah bagian biasa dari belajar. Beberapa alat yang membantu:

    • dd($variabel) untuk melihat isi data lalu menghentikan program di titik itu.
    • File storage/logs/laravel.log untuk membaca catatan kesalahan yang terjadi.
    • php artisan route:list untuk melihat semua alamat (route) yang tersedia.
    • php artisan tinker untuk mencoba perintah Eloquent langsung, tanpa membuat halaman.

    Saat aplikasi sudah dipakai orang lain, pastikan APP_DEBUG=false di file .env server. Dengan begitu, detail kesalahan dan informasi sensitif tidak tampil ke pengunjung.

    Penutup

    Membuat program itu mirip mengajar: mulai dari yang sederhana, rapi sejak awal, lalu dikembangkan sedikit demi sedikit. Tidak perlu menguasai semua fitur Laravel sekaligus. Kuasai sepuluh kebiasaan di atas, dan Anda sudah bisa membangun aplikasi sekolah yang berguna, misalnya untuk data siswa, absensi, atau rekap nilai.

    Punya pertanyaan, atau sekolah Anda butuh aplikasi sendiri? Silakan tinggalkan komentar atau hubungi saya lewat halaman kontak di pakyendi.com.