Pengenalan Bahasa Pemrograman php


Laravel adalah framework PHP open-source yang dirancang untuk memudahkan pengembangan aplikasi web dengan struktur kode yang bersih, elegan, dan terorganisir. Laravel dibangun mengikuti prinsip MVC (Model-View-Controller) yang memisahkan logika aplikasi dari tampilan, sehingga memudahkan dalam proses pengembangan dan pemeliharaan.

Laravel memiliki berbagai fitur bawaan yang sangat membantu developer seperti sistem routing, otentikasi, migrasi database, ORM (Eloquent), template engine (Blade), validasi, session, middleware, dan masih banyak lagi.

Kenapa Memilih Laravel?
  • Struktur MVC: Memudahkan pengelolaan kode dan pemisahan logika.
  • Routing yang mudah: Menentukan URL dan logika dengan sederhana.
  • Eloquent ORM: Berinteraksi dengan database tanpa query SQL manual.
  • Blade Template: Menyediakan template engine ringan dan powerful.
  • Keamanan: Laravel memiliki fitur bawaan untuk menangkal XSS, CSRF, dan SQL Injection.
  • Community & Dokumentasi: Komunitas besar dan dokumentasi lengkap.
Struktur Folder Laravel

Setelah menginstal Laravel, kamu akan melihat struktur folder seperti:

  • app/ – Berisi logika aplikasi (controller, model, dll)
  • resources/views – Tempat file tampilan (Blade)
  • routes/web.php – Tempat mendefinisikan route aplikasi
  • public/ – Akses utama ke aplikasi (index.php, asset, dll)
  • config/ – Pengaturan aplikasi
Contoh Routing Sederhana

Contoh file routes/web.php:

<?php
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});
?>
Contoh Blade Template

File resources/views/welcome.blade.php:

<!DOCTYPE html>
<html>
<head>
  <title>Selamat Datang</title>
</head>
<body>
  <h1>Halo, Laravel!</h1>
</body>
</html>
Kesimpulan
  • Laravel adalah framework PHP modern yang memudahkan pengembangan aplikasi web.
  • Memiliki fitur lengkap mulai dari routing, template, hingga manajemen database.
  • Struktur folder Laravel sangat rapi dan mendukung pola MVC.
  • Sangat cocok digunakan oleh pemula hingga profesional karena dokumentasi dan komunitas yang aktif.

Cara Jalankan Laravel 11

Setelah menginstal Laravel, langkah selanjutnya adalah menjalankan aplikasinya di browser. Laravel memiliki built-in server bernama Artisan yang sangat berguna untuk pengembangan lokal tanpa harus mengatur server manual seperti Apache atau Nginx. Menjalankan Laravel dapat dilakukan dengan berbagai cara tergantung pada sistem operasi dan lingkungan kerja yang kamu gunakan, seperti XAMPP, Laravel Sail, atau Laravel Valet. Dalam tutorial ini, kita akan fokus pada cara paling umum dan mudah, yaitu menggunakan **Artisan CLI (Command Line Interface)** melalui terminal atau command prompt.

1. Menjalankan Laravel dengan Artisan

Setelah masuk ke folder project Laravel kamu melalui terminal, jalankan perintah berikut untuk memulai server:

php artisan serve

Setelah dijalankan, kamu akan melihat output seperti ini:

Starting Laravel development server: http://127.0.0.1:8000

Buka browser kamu dan akses http://127.0.0.1:8000 untuk melihat tampilan awal Laravel.

2. Menentukan Port Sendiri

Jika kamu ingin menjalankan Laravel di port yang berbeda (misalnya 8080), kamu bisa menambahkan parameter --port seperti berikut:

php artisan serve --port=8080

Lalu buka http://localhost:8080 di browser.

3. Menjalankan Laravel di XAMPP (opsional)

Jika kamu menggunakan XAMPP, kamu juga bisa menjalankan Laravel secara manual melalui Apache. Caranya:

  1. Pindahkan folder project Laravel ke dalam htdocs.
  2. Jalankan Apache dan MySQL dari XAMPP Control Panel.
  3. Buka browser dan akses http://localhost/namaproject/public.

Catatan: Jangan lupa mengatur .env dan konfigurasi base URL jika kamu tidak menggunakan Artisan Serve.

4. Cek Route dan View

Setelah server berjalan, kamu bisa mencoba mengubah route atau membuat view sendiri:

Contoh mengedit file routes/web.php:

Route::get('/halo', function () {
    return 'Halo, ini Laravel!';
});

Akses di browser: http://127.0.0.1:8000/halo

5. Menampilkan View

Kamu juga bisa menampilkan halaman HTML dari folder resources/views. Buat file home.blade.php seperti ini:

<!DOCTYPE html>
<html>
<head>
  <title>Halaman Home</title>
</head>
<body>
  <h1>Selamat Datang di Laravel</h1>
</body>
</html>

Edit route-nya di web.php:

Route::get('/home', function () {
    return view('home');
});

Cara Membuat Model


Dalam arsitektur Laravel, **Model** adalah bagian penting dari konsep MVC (Model-View-Controller). Model bertanggung jawab untuk berinteraksi dengan database, mewakili data dan logika bisnis aplikasi. Laravel menggunakan **Eloquent ORM** (Object Relational Mapper) yang memudahkan pengelolaan database menggunakan sintaks PHP yang bersih tanpa menulis query SQL secara manual.

Dengan model, kita dapat dengan mudah melakukan operasi CRUD (Create, Read, Update, Delete) terhadap tabel di database. Setiap model biasanya mewakili satu tabel, dan nama model mengikuti format singular (tunggal), sedangkan nama tabel bersifat plural (jamak).

1. Membuat Model dengan Artisan

Untuk membuat model, gunakan perintah Artisan berikut di terminal:

php artisan make:model NamaModel

Contoh membuat model Produk:

php artisan make:model Produk

Perintah ini akan membuat file app/Models/Produk.php secara otomatis. Model ini secara default akan mengacu ke tabel bernama produks (pakai huruf kecil dan jamak).

2. Isi Awal File Model

File model yang dibuat secara default akan berisi seperti berikut:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Produk extends Model
{
    //
}
3. Menentukan Tabel Secara Manual (Opsional)

Jika nama tabel berbeda dari aturan default, kita bisa mendefinisikan nama tabel secara eksplisit seperti ini:

class Produk extends Model
{
    protected $table = 'data_produk';
}
4. Mengatur Kolom yang Bisa Diisi (Mass Assignment)

Untuk keamanan, Laravel hanya memperbolehkan kolom yang ditentukan untuk diisi massal. Gunakan $fillable untuk mendefinisikan kolom yang diizinkan:

class Produk extends Model
{
    protected $fillable = ['nama', 'harga', 'stok'];
}
5. Contoh Menggunakan Model

Setelah membuat model, kamu bisa menggunakannya di controller atau langsung di route untuk mengambil data dari database.

Contoh: Menampilkan semua data dari tabel produk

use App\Models\Produk;

Route::get('/produk', function () {
    $data = Produk::all();
    return view('produk.index', ['produk' => $data]);
});

Contoh: Menambahkan data baru ke database:

Produk::create([
    'nama' => 'Laptop Asus',
    'harga' => 8500000,
    'stok' => 10
]);

Contoh: Mengupdate data berdasarkan ID:

$produk = Produk::find(1);
$produk->stok = 15;
$produk->save();

Contoh: Menghapus data berdasarkan ID:

Produk::destroy(1);

Cara Membuat Migrate


Migration adalah fitur di Laravel yang digunakan untuk mengelola struktur tabel di database menggunakan kode PHP. Dengan migration, kamu bisa membuat, mengubah, dan menghapus tabel atau kolom tanpa harus menulis SQL secara manual. Migration bekerja seperti sistem versioning untuk struktur database, memudahkan kolaborasi tim dan menjaga konsistensi antar lingkungan (development, staging, production).

Migration biasanya digunakan bersamaan dengan fitur Model dan Seeder di Laravel. Setiap kali kamu membuat migration, Laravel akan menghasilkan file PHP dengan fungsi-fungsi khusus yang bisa dijalankan dengan perintah artisan untuk membentuk atau memodifikasi tabel.

1. Membuat File Migration

Untuk membuat file migration, gunakan perintah berikut:

php artisan make:migration create_nama_tabel_table

Contoh membuat migration tabel produk:

php artisan make:migration create_produk_table

Perintah tersebut akan menghasilkan file di folder database/migrations dengan nama unik berdasarkan timestamp.

2. Menulis Struktur Tabel di Migration

Setelah membuat file migration, kamu bisa mengisi metode up() dengan struktur tabel yang diinginkan.

public function up()
{
    Schema::create('produk', function (Blueprint $table) {
        $table->id();
        $table->string('nama');
        $table->integer('stok');
        $table->decimal('harga', 10, 2);
        $table->timestamps();
    });
}
3. Menjalankan Migration

Setelah menulis struktur tabel, jalankan migration menggunakan perintah:

php artisan migrate

Laravel akan membaca semua file migration dan menjalankan fungsi up() untuk membuat tabel baru di database sesuai definisi.

4. Membatalkan atau Rollback Migration

Jika terjadi kesalahan atau kamu ingin menghapus tabel dari migration, gunakan perintah rollback:

php artisan migrate:rollback

Perintah ini akan menjalankan fungsi down() yang isinya biasanya adalah Schema::dropIfExists('nama_tabel').

5. Menambahkan Kolom Baru

Jika kamu ingin menambah kolom ke tabel yang sudah ada, kamu bisa membuat migration baru:

php artisan make:migration add_kategori_to_produk_table

Isi file-nya seperti ini:

public function up()
{
    Schema::table('produk', function (Blueprint $table) {
        $table->string('kategori')->nullable();
    });
}

Cara Menampilkan Data Dari Database


Untuk menampilkan data dari database di Laravel, kita biasanya menggunakan fitur Eloquent ORM (Object-Relational Mapping). Dengan Eloquent, kamu bisa mengakses data dari tabel secara mudah dan bersih menggunakan model. Prosesnya melibatkan beberapa langkah penting: membuat model, membuat controller, mengambil data dari database, dan mengirimkan data ke view untuk ditampilkan.

1. Buat Model dan Migration

Misalnya kita ingin menampilkan data dari tabel produk, kita perlu membuat model dan migrasinya:

php artisan make:model Produk -m

Lalu isi file migration-nya seperti ini:

Schema::create('produk', function (Blueprint $table) {
    $table->id();
    $table->string('nama');
    $table->integer('stok');
    $table->decimal('harga', 10, 2);
    $table->timestamps();
});

Lalu jalankan migration-nya:

php artisan migrate
2. Isi Data ke Database (Opsional)

Kamu bisa menggunakan phpMyAdmin, Tinker, atau Seeder untuk menambahkan data. Contoh pakai Tinker:

php artisan tinker

>>> \App\Models\Produk::create([
    'nama' => 'Laptop ASUS',
    'stok' => 10,
    'harga' => 7500000
]);
3. Buat Controller

Buat controller untuk mengambil data dari database dan mengirimkannya ke view:

php artisan make:controller ProdukController

Isi method index-nya:

public function index()
{
    $data = \App\Models\Produk::all();
    return view('produk.index', compact('data'));
}
4. Buat Route di web.php

Tambahkan route berikut:

Route::get('/produk', [ProdukController::class, 'index']);
5. Buat View untuk Menampilkan Data

Buat file di resources/views/produk/index.blade.php:

<h2>Daftar Produk</h2>
<table border="1" cellpadding="10">
  <tr>
    <th>Nama</th>
    <th>Stok</th>
    <th>Harga</th>
  </tr>
  @foreach ($data as $item)
  <tr>
    <td>{{ $item->nama }}</td>
    <td>{{ $item->stok }}</td>
    <td>Rp{{ number_format($item->harga, 0, ',', '.') }}</td>
  @endforeach
</table>
Kesimpulan
  • Gunakan model untuk berinteraksi dengan database secara otomatis di Laravel.
  • Gunakan controller untuk mengambil data dan mengirimkan ke view.
  • Gunakan view (Blade) untuk menampilkan data dalam format HTML.
  • Laravel memudahkan proses pengambilan dan penampilan data hanya dengan beberapa langkah.

Insert Data ke Dalam Database

Laravel menyediakan cara yang sangat efisien dan aman untuk memasukkan (insert) data ke dalam database menggunakan Eloquent ORM. Prosesnya melibatkan penggunaan form untuk input data, controller untuk memproses request, dan model untuk menyimpan ke database.

1. Buat Model dan Migration

Misalnya kita ingin menambahkan data ke tabel produk, kita bisa buat model dan migration-nya:

php artisan make:model Produk -m

Lalu isi struktur migration-nya:

Schema::create('produk', function (Blueprint $table) {
  $table->id();
  $table->string('nama');
  $table->integer('stok');
  $table->decimal('harga', 10, 2);
  $table->timestamps();
});

Setelah itu, jalankan migrasi:

php artisan migrate
2. Buat Form Input di Blade

Buat tampilan form untuk input data di resources/views/produk/create.blade.php:

<form action="/produk/store" method="POST">
  @csrf
  <label>Nama Produk</label><br>
  <input type="text" name="nama" required><br><br>

  <label>Stok</label><br>
  <input type="number" name="stok" required><br><br>

  <label>Harga</label><br>
  <input type="text" name="harga" required><br><br>

  <button type="submit">Simpan</button>
</form>
3. Buat Route di web.php

Tambahkan route untuk form dan proses penyimpanan data:

use App\Http\Controllers\ProdukController;

Route::get('/produk/create', [ProdukController::class, 'create']);
Route::post('/produk/store', [ProdukController::class, 'store']);
4. Buat Controller dan Method

Buat controller jika belum:

php artisan make:controller ProdukController

Isi method create dan store:

public function create()
{
  return view('produk.create');
}

public function store(Request $request)
{
  \App\Models\Produk::create([
    'nama' => $request->nama,
    'stok' => $request->stok,
    'harga' => $request->harga,
  ]);

  return redirect('/produk/create')->with('success', 'Data berhasil disimpan!');
}
5. Tambahkan fillable di Model

Agar field bisa diisi massal, tambahkan properti $fillable di model Produk.php:

protected $fillable = ['nama', 'stok', 'harga'];
Kesimpulan
  • Gunakan form HTML untuk menginput data dari user.
  • Gunakan method POST untuk mengirim data ke controller.
  • Gunakan Eloquent ORM untuk menyimpan data ke database secara otomatis.
  • Pastikan properti $fillable diisi agar data bisa disimpan dengan create().
  • Laravel membuat proses insert data jadi mudah, aman, dan efisien.

Menampilkan Detail Data By ID


Dalam aplikasi web, kita sering kali perlu menampilkan data secara detail berdasarkan ID, seperti saat melihat informasi lengkap dari suatu produk, pengguna, artikel, dan sebagainya. Di Laravel, kita bisa dengan mudah melakukan ini menggunakan route parameter dan Eloquent ORM.

1. Pastikan Tabel dan Model Sudah Ada

Misalnya kita memiliki tabel produk dengan model Produk. Pastikan model dan migrasinya sudah dibuat dan datanya sudah ada di database.

2. Tambahkan Route Detail

Buka file routes/web.php dan tambahkan route untuk menampilkan detail berdasarkan ID:

use App\Http\Controllers\ProdukController;

Route::get('/produk/{id}', [ProdukController::class, 'detail']);
3. Buat Method detail di Controller

Tambahkan method baru di ProdukController untuk mengambil data berdasarkan ID dan menampilkannya ke view.

public function detail($id)
{
  $produk = \App\Models\Produk::findOrFail($id);
  return view('produk.detail', compact('produk'));
}

Fungsi findOrFail() akan secara otomatis menampilkan halaman 404 jika ID tidak ditemukan di database.

4. Buat View detail.blade.php

Sekarang buat tampilan detail di resources/views/produk/detail.blade.php untuk menampilkan data produk:

<h4>Detail Produk</h4>

<p><strong>Nama:</strong> {{ $produk->nama }}</p>
<p><strong>Stok:</strong> {{ $produk->stok }}</p>
<p><strong>Harga:</strong> Rp{{ number_format($produk->harga, 0, ',', '.') }}</p>

<a href="/produk" class="btn btn-secondary">Kembali</a>

Pastikan field seperti nama, stok, dan harga sesuai dengan kolom tabel pada database kamu.

5. Contoh Link ke Halaman Detail

Jika kamu menampilkan daftar produk, kamu bisa menambahkan link untuk menuju halaman detail seperti berikut:

@foreach ($produk as $item)
  <tr>
    <td>{{ $item->nama }}</td>
    <td><a href="/produk/{{ $item->id }}" class="btn btn-sm btn-info">Lihat Detail</a></td>
  </tr>
@endforeach
Kesimpulan
  • Gunakan parameter ID pada route untuk menampilkan data spesifik.
  • Manfaatkan findOrFail() untuk penanganan otomatis jika data tidak ditemukan.
  • Gunakan compact() atau with() untuk mengirim data ke view.
  • Selalu tampilkan link kembali ke daftar utama.

Beri Dukungan untuk Update Materi Selanjutnya

Jika Anda merasa materi ini bermanfaat, bantu kami untuk terus mengembangkan konten pembelajaran yang berkualitas. Dukungan seikhlasnya dari Anda sangat berarti bagi kelangsungan proyek ini.

Donasi Sekarang