Showing posts with label Laravel. Show all posts
Showing posts with label Laravel. Show all posts

Wednesday, August 3, 2022

Membuat Paginasi Pada Laravel


Beriku adalah langkah-langkah membuat Paginasi pada Laravel :

1. Buatlah database pada phpmyadmi. Kemudian buat tabel karyawan, lalu isi bebarapa data minimal diatas 10 data, supaya biasa menjadi contoh.


2. Setelah itu,  buka file .env kemudian setting database :   DB_DATABASEDB_USERNAME dan DB_PASSWORD


3.  Buka terminal , masuk ke direktori projek dan buatlah sebuah controller,  menjalankan php artisan make:controller KaryawanController lalu bukalah file KaryawanController.php tersebut di  folde app/Http/Controllers. Isi file tersebut dengan script seperti di bawah ini.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

//untuk menggunakan query builder

use DB;

class PegawaiController extends Controller

{

    public function index(){

        //mengambil data karyawan dari database

        $data = DB::table('karyawan')->paginate(10);


        //mengirim data karyawan ke view karyawan

        return view('karyawan', ['karyawan' => $data]);

    }

}

Penjelasan:
use DB  digunakan untuk melakukan transaksi data ke database.
paginate(10) = digunakan untuk membuat paginasi, setiap halaman ditampilkan 10 data maksimal, data selanjutnya akan diampilkan pada page setelahnya.

4. Buat file nama karyawan.simple.php di dalam folder resources/views. Kemudian isi file tersebut :


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

    {{-- bootstrap  --}}

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"

integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

</head>

<body>

    <div class="container mt-4">

        <div class="card mb-3">

            {{-- membuat tabel  --}}

            <table class="table table-striped">

                <thead>

                    <tr>

                        <td>Nama</td>

                        <td>Jenis Kelamin</td>

                        <td>Alamat</td>

                    </tr>

                </thead>

                <tbody>

                    {{-- melakukan looping data  --}}

                    @foreach ($karyawan as $item)

                    <tr>

                        <td>{{ $item->nama }}</td>

                        <td>{{ $item->jk == '1' ? 'Laki-laki' : 'Perempuan' }}</td>

                        <td>{{ $item->alamat }}</td>

                    </tr>

                    @endforeach

                </tbody>

            </table>

        </div>

        {{-- membuat paginasii  --}}

        Current Page: {{ $karyawan->currentPage() }}<br>

        Jumlah Data: {{ $karyawan->total() }}<br>

        Data perhalaman: {{ $karyawan->perPage() }}<br>

        <br>

        {{ $karyawan->links() }}

    </div>

</body>

</html>


Penjelasan: 
{{ $karyawan->currentPage() }}  digunakan untuk menampilkan halaman ke berapa saat ini

{{ $karyawan->total() }}  digunakan untuk menampilkan total data

{{ $karyawan->perPage() }}  digunakan untuk menampilkan jumlah data perhalaman

{{ $karyawan->links() }}  digunakan untuk menampilkan paginasi dengan penomoran.
 

5. Buka file AppServiceProvider.php di folder app/Providers kemudian ubah script seperti yang di bawah

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

use Illuminate\Pagination\Paginator;

class AppServiceProvider extends ServiceProvider

{

    /**

     * Register any application services.

     *

     * @return void

     */

    public function register()

    {

        //

    }


    /**

     * Bootstrap any application services.

     *

     * @return void

     */

    public function boot()

    {

        Paginator::useBootstrap();

    }

}


6. Kemudian buka file web.php lalu tambahkan route. script di bawah 

Route::get('/pegawai', 'App\Http\Controllers\KaryawanController@index');


Setelah itu, Jalankan project,  dengan perintah php artisan serve pada terminal / cmd. Lalu buka http://127.0.0.1:8000/karyawan maka hasilnya 


Tuesday, August 2, 2022

Membuat CRUD Database Dengan Laravel - V [ Print ]


Disetiap program tentu membutuhkan laporan, apalagi juga program yang brkaitan dengan data. Pada Laravel membuat atau generate sebuah laporan sudah mudah dan biasa dipakai dalam generate sebuah laporan adalah bentuk Laporan PDF.

Berikut adalah langkah-langkah membuat laporan di Laravel : Nah, pada tutorial ini kita akan sama-sama belajar. bagaimana membuat laporan dalam bentuk PDF menggunakan laravel 7. kita akan memanfaatkan 

1. Download  package laravel-dompdf


kemudian install package tersebut dengan  perintah seperti berikut:

composer require barryvdh/laravel-dompdf

Setelah selesai install, maka buka routes/web.php lalu buat routing seperti berikut:

Route::get('/', function () {

    return view('index');

});

Pada sintak diatas akan membuat halaman awal web mengarah ke file index. Selanjutnya buat file index.simple.php pada resources\views . isikan kode html. dan tambahkan CDN Bootstrap pada bagian head seperti dibawah ini 

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" >

<script src="https://stackpath.boot

Kemudian bagian body tambahkan tabel yang akan digenerate menjadi PDF

<div class="container">

        <div class="row">

                <table class="table">

                        <thead class="thead-dark">

                          <tr>

                            <th scope="col">No</th>

                            <th scope="col">First Name</th>

                            <th scope="col">Last Name</th>

                            <th scope="col">Address</th>

                          </tr>

                        </thead>

                        <tbody>

                          <tr>

                            <th scope="row">1</th>

                            <td>Mark</td>

                            <td>Otto</td>

                            <td>Surabaya</td>

                          </tr>

                          <tr>

                            <th scope="row">2</th>

                            <td>Jacob</td>

                            <td>Thornton</td>

                            <td>Sidoarjo</td>

                          </tr>

                          <tr>

                            <th scope="row">3</th>

                            <td>Larry</td>

                            <td>the Bird</td>

                            <td>Mojokerto</td>

                          </tr>

                        </tbody>

                      </table>

        </div>

        <div class="row">

            <a href="{{ route('print')}}" class="btn btn-sm btn-danger"> Print</a>

        </div>

    </div>

Bagian bawah ditambahkan tombol untuk melakukan cetak atau print.  tampilan yang dibuat menjadi seperti gambar dibawah :


Lalu membuat sebuah controller, dengan perintah berikut:

Php artisan make:controller PdfController

Kemudian pada PdfController, buat fungsi untuk melakukan generate ke PDF seperti berikut:

use PDF; 

public function print()

{

    $pdf = PDF::loadview('index')->setPaper('A4','potrait');

    return $pdf->stream();

}

Setelah itu buat sebuah routing agar tombol print di klik maka akan melakukan export ke bentuk PDF

Route::get('/pdf', 'PdfController@pdf')->name('print');

Silahkan di jalankan dan lihat hasil dari laporan yang sudah digenerate ke Pdf.

Monday, August 1, 2022

Membuat CRUD Database Dengan Laravel - IV [ Delete ]


Buka FormController kemudian pada bagian destroy() ubah kode seperti dibawah.

public function destroy($id)

{

    $siswa = Siswa::find($id);

    if($siswa->delete()) {

        return redirect()->route('form.index')->with('message', 'Berhasil menghapus data siswa');

    } else {

        return redirect()->route('form.index')->with('message', 'Gagal menghapus data siswa');

    }

}

Kemudian jika ingin menghapus data siswa tertentu, klik Delete yang ada di tabel Daftar Data Siswa yang sudah dibuat sebelumnya, jika terhapus maka data akan hilang dari tabel dan akan menampilkan pesan Berhasil menghapus data siswa.



Membuat CRUD Database Dengan Laravel - III [ Update ]


1. Buka file FormController di bagian edit() kemudian buatkan method tersebut 

public function edit($id)

{

    $siswa = Siswa::find($id);

    return view('edit', compact('siswa'));

}


2. Buat file  edit.php di dalam folder resources/views kemudian isikan seperti dibawah.

@extends('layout')

@section('content')

<h1 style="text-align: center">Update Data</h1>

@if(session()->has('message'))

    <p>{{ session()->get('message') }}</p>

@endif

<form action="{{ route('form.update', $siswa->id) }}" method="POST">

    <input type="hidden" name="_token" value="{{ csrf_token() }}">

    <input type="hidden" name="_method" value="put">

    <div class="group">

        <label for="nis">NIS</label>

        <input type="number" id="nis" name="nis" value="{{ $siswa->nis }}">

        @if($errors->has('nis'))

            <small class="error">{{ $errors->first('nis') }}</small>

        @endif

    </div>

    <div class="group">

        <label for="nama">Nama</label>

        <input type="text" id="name" name="nama" value="{{ $siswa->nama }}">

        @if($errors->has('nama'))

            <small class="error">{{ $errors->first('nama') }}</small>

        @endif

    </div>

    <div class="group">

        <a href="{{ route('form.index') }}">Batal</a>

        <button class="save">Simpan</button>

    </div>

</form>

@endsection


3. Update  method update() yang ada difile FormController kemudian ubah menjadi seperti ini :

public function update(Request $request, $id)

{

    $request->validate([

        'nis' => 'required|numeric|digits_between:1,50|unique:siswas,nis,'. $id .',id',

        'nama' => 'required|string|min:1|max:100'

    ]);


    $siswa = Siswa::find($id);

    $siswa->nis = $request->nis;

    $siswa->nama = $request->nama;


    if($siswa->save()) {

        return redirect()->route('form.index')->with('message', 'Berhasil update data siswa');

    } else {

        return redirect()->back()->with('message', 'Gagal update data siswa');

    }

}

Setelah itu jika ingin mengubah data siswa,  klik Edit kemudian isikan data yang ingin update tersebut. Jika berhasil maka anda akan diarahkan ke halaman index dengan pesan Berhasil update data siswa. 


Membuat CRUD Database Dengan Laravel - II [ View ]


1. Buka file FormController, Kemudian dibagian index() ubah script tersebut seperti dibawah :

public function index()

{

    $siswas = Siswa::orderBy('created_at', 'DESC')->get();    

    return view('index', compact('siswas'));

}


2. Buat file index.php pada folder resources/views lkemudian isikan kode dibawah ini.

@extends('layout')

@section('content')

<h1 style="text-align: center">Daftar Data Siswa </h1>

@if(session()->has('message'))

    <p>{{ session()->get('message') }}</p>

@endif


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

<table width="100%" cellpading="0" cellspacing="0">

    <thead>

        <tr>

            <th width="10%">No</th>

            <th align="left" width="30%">NIS</th>

            <th align="left" width="30%">Nama</th>

            <th width="30%">Tindakan</th>

        </tr>

    </thead>

    <tbody>

        @if($siswas->count())

            @php($index = 1)

            @foreach($siswas as $siswa)

                <tr>

                    <td align="center">{{ $index++ }}</td>

                    <td>{{ $siswa->nis }}</td>

                    <td>{{ $siswa->nama }}</td>

                    <td align="center">

                        <a href="{{ route('form.edit', $siswa->id) }}">Edit</a> | <a onclick="document.getElementById('hapus-{{ $siswa->id }}').submit()" style="color: #ff0000; cursor: pointer;">Hapus</a>

                        <form action="{{ route('form.destroy', $siswa->id) }}" id="hapus-{{ $siswa->id }}" method="POST">

                            <input type="hidden" name="_token" value="{{ csrf_token() }}">

                            <input type="hidden" name="_method" value="delete">

                        </form>

                    </td>

                </tr>

            @endforeach

        @else

            <tr>

                <td align="center" colspan="4">Data tidak tersedia</td>

            </tr>

        @endif

    </tbody>

</table>

@endsection


Buka browser lalu ketik http://127.0.0.1:8000/form maka akan ditampilkan gambar dibawah ini


Membuat CRUD Database Dengan Laravel - I [ Insert ]

 

Laravel merupakan sebuah framework yang menggunakan library Eloquent untuk management database, dengan demikian memakai insert, update & delete data di Laravel sangat mudah dibandingkan melakukan dengan cara manual dengan  PHP procedural.

Sebelum melakukan proses CRUD, maka perlu membuat model lebih dulu, berikut langkah - langkahnya :

Buat sebuah model beserta migration :

php artisan make:model Siswa --migration

Kemudian buat beberapa field pada migration .

$table->string('nis', 50);

$table->string('nama', 100);

Jalankan migration tersebut biar table siswa beserta field yang dibuat pada database.

php artisan migrate

Maka secara otomatis database dan table sudah terbuat, selanjutnya bisa melakukan insert, update serta delete  data di laravel.


Insert Data ke Database

Buat tampilan form sederhana untuk menampilkan beberapa kolom input.

Sebelum itu, buat controller, jalankan command di terminal.

php artisan make:controller FormController --resource

Catatan : Sintak tersebut akan menciptakan / membuat sebuah controller dengan nama FormController beserta beberapa method seperti index()create()edit()update(), dan destroy(). Dengan demikian maka perlu membuat method-method CRUD, karena sudah disediakan / dibuatkan oleh perintah --resource tersebut.

Buka file route web.php yang berada di folder routes, lalu tambahkan kode seperti dibawah :

Route::resource('form', FormController::class);

Sintak diatas menjadikan halaman utama project adalah halaman formulir sederhana.

Setelah itu,  buat file layout.simple.php di folder resources/views dan tambahkan kode dibawah ini.

<html>

    <head>

        <title>Form Simple </title>

        <style>

            .container {

                position: relative;

                width: 80%;

                margin: 0 auto;

            }

            form .group {

                margin-bottom: 10px;

            }

            form .group input {

                border: 1px solid #cccccc;

                border-radius: 4px;

                display: block;

                width: 100%;

                padding: 10px;

            }

            form .group .error {

                display: inline-block;

                color: #ff0000;

                margin-top: 5px;

            }

            form .group button.save {

                background-color: #4169E1;

                border: 1px solid #325cdb;

                color: #ffffff;

                padding: 10px;

                cursor: pointer;

                border-radius: 4px;

            }

            

            form .group button.cancel {

                background-color: #4169E1;

                border: 1px solid #325cdb;

                color: #ffffff;

                padding: 10px;

                cursor: pointer;

                border-radius: 4px;

            }


            table {

                border: 1px solid #cccccc;

                margin-top: 10px;

            }

            table tr td,

            table tr th {

                border-left: 1px solid #cccccc;

                padding: 10px;

            }

            table tr td:first-child,

            table tr th:first-child {

                border-left: 0;

            }

            table tr td {

                border-top: 1px solid #cccccc;

            }

        </style>

    </head>

    <body>

        <div class="container">

            @yield('content')

        </div>

    </body>

</html>


Kemudian buat file create.simple.php di folder resources/views dan tambahkan kode dibawah ini.

@extends('layout')

@section('content')

<h1 style="text-align: center">Tambah Data</h1>

@if(session()->has('message'))

    <p>{{ session()->get('message') }}</p>

@endif

<form action="{{ route('form.store') }}" method="POST">

    <input type="hidden" name="_token" value="{{ csrf_token() }}">

    <div class="group">

        <label for="nis">NIS</label>

        <input type="number" id="nis" name="nis" value="{{ old('nis') }}">

        @if($errors->has('nis'))

            <small class="error">{{ $errors->first('nis') }}</small>

        @endif

    </div>

    <div class="group">

        <label for="nama">Nama</label>

        <input type="text" id="name" name="nama" value="{{ old('nama') }}">

        @if($errors->has('nama'))

            <small class="error">{{ $errors->first('nama') }}</small>

        @endif

    </div>

    <div class="group">

        <a href="{{ route('form.index') }}">Batal</a>

        <button class="save">Simpan</button>

    </div>

</form>

@endsection

Kemudian file FormController di folder app/Http/Controllers/FormController.php pada bagian method create()  tambahkan kode berikut .

return view('create');

Kemudian jalankan perintah .

php artisan server

Setelah dijalankan buka browser dengan url http://127.0.0.1:8000/form/create maka akan ditampilkaan gambar seperti dibawah.


Setelah itu buat proses insert data, proses insert berada di method store() dalam file FormController, lalu masukan model Siswa pada FormController,  menambahkan kode dibawah.

use App\Models\Siswa; berada dibawah kalimat : use Illuminate\Http\Request;

maka akan seperti ini :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Siswa;

class FormController extends Controller

{

    ..

}


Kemudian dibagian method store() buat :

public function store(Request $request)

{

    $request->validate([

        'nis' => 'required|numeric|digits_between:1,50|unique:siswas,nis,null,id',

        'nama' => 'required|string|min:1|max:100'

    ]);


    $siswa = new Siswa;

    $siswa->nis = $request->nis;

    $siswa->nama = $request->nama;


    if($siswa->save()) {

        return redirect()->route('form.index')->with('message', 'Data Siswa sudah ditambahkan ');

    } else {

        return redirect()->back()->with('message', 'Data Siswa Gagal Ditambahkan');

    }

}


Keterangan :

$request->validate() adalah untuk memvalidasi input form yang dikirim oleh user, dimana kedua form nis dan nama wajib, jika tidak di isi dengan benar akan menampilkan pesan error.


Penjelasan pada script dibawah adalah :

<meta charset="utf-8">'nis' => 'required|numeric|digits_between:1,50|unique:siswas,nis,null,id',

'nama' => 'required|string|min:1|max:100'

  • required,  field tersebut wajib di isi
  • numeric harus berupa angka numerik.
  • digits_between:1,50 digunakan untuk membatasi jumlah digit dari angka yang dimasukkan.
  • unique digunakan agar data yang ada didalam record database tidak sama.
  • string dimana kolom harus berupa string.
  • min dan max, untuk membatasi jumlah karakter yang dimasukkan user.

Apabila ada terjadi kesalahan proses submit, maka akan dikirim kembali ke halaman form dengan pesan Data Siswa Gagal Ditambahkan, jika berhasil kembali ke index form.

Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...