Minggu, 10 Maret 2019

Edit & Delete Data with DB

Hallo-hallooo, kembali lagi nih di blog aku hihii. Kali ini aku mau bahas Edit & Delete Data with DB , ummm.. Masih di laravel yaa! Semoga informasi ini dapat bermanfaat selalu bagi para pembaca, dan dapat menginspirasi kalian untuk ngoding whehehe. Langsung ajaa yu kitaa mulaiiii 😊

STUDI KASUS 1
Fungsi function update dan destroy?

Function Update
$rule = [
            'nama_kelas' => 'required',
            'jurusan' => 'required',
            'lokasi_ruangan' => 'required',
            'nama_wali_kelas' => 'required',
        ];
- Digunakan untuk membuat array asosiatif yang didalamnya berisi key yang berupa nama field yang ada pada form dan value yang berisi string valiadasinya.

$this->validate($request, $rule);
- Digunakan untuk memvalidasi input sesuai request dan rule yang diharapkan.

$input = $request->all();
- Digunakan untuk menangkap seluruh request yang dikirim dari view form.

unset($input['_token']);
- Digunakan untuk menghapus data dengan key _token pada array asosiatif $input karena data tersebut tidak ada didalam tabel (tidak akan di-insert)

$status = \DB::table('t_kelas')->where('id', $id)->update($input);
- Digunakan untuk melakukan update (perubahan) data ke tabel t_kelas, dimana datanya berasal dari array $input.

if ($status) {
            return redirect('/kelas')->with('success', 'Data berhasil diubah!');
        } else {
            return redirect('/kelas/create')->with('error', 'Data gagal diubah');
        }
- Baris diatas memeriksa apakah update data berhasil atau tidak.
  • Jika berhasil maka arahkan tampilan kembali ke alamat /kelas (Menampilkan Tabel Data Kelas) dengan membawa session success dengan pesan ‘Data berhasil ditambahkan’.
  • Jika gagal maka arahkan tampilan kembali ke alamat /kelas/create (Menampilkan kembali form input data kelas) dengan membawa session error dengan pesan ‘Data gagal ditambahkan’
Function Destroy

$status = \DB::table('t_kelas')->where('id', $id)->update($input);
- Digunakan untuk melakukan delete (penghapusan) data dari tabel t_kelas, dimana datanya berasal dari array $input.

if ($status) {
            return redirect('/kelas')->with('success', 'Data berhasil diubah!');
        } else {
            return redirect('/kelas/create')->with('error', 'Data gagal diubah');
        }
- Baris diatas memeriksa apakah delte data berhasil atau tidak.
  • Jika berhasil maka arahkan tampilan kembali ke alamat /kelas (Menampilkan Tabel Data Kelas) dengan membawa session success dengan pesan ‘Data berhasil ditambahkan’.
  • Jika gagal maka arahkan tampilan kembali ke alamat /kelas/create (Menampilkan kembali form input data kelas) dengan membawa session error dengan pesan ‘Data gagal ditambahkan’

STUDI KASUS 2

- Tambahkan fungsi edit & delete pada tabel kelas
Ditambahkan pada kelas.blade.php

Ditambahkan pada web.php

Ditambahkan pada KelasController.php

Ubah pada form.blade.php

Hasilnya :
[EDIT]
Klik edit

Masuk ke form

Misalnya kita ingin melakukan perubahan pada wali kelas, kita ubah menjadi 'Aldi' saja. Kemudian klik simpan.

Muncul pesan session success, dan data terganti

[ DELETE ]
Misalnya kita akan menghapus kelas XI MM, klik button delete.

Muncul pesan session success, dan data kelas XI MM terhapus.
Nah sekian saja informasi yang dapat saya bagikan, semogaa selalu bermanfaat bagi teman-teman. Keep Happy & Stay Healthy guyss!💕💕

Minggu, 03 Maret 2019

[ CREATE DATA WITH DB , VALIDATION, OLD INPUT ] | SESI 4

Hallo teman-temanku, kembali lagi nih sama saya di blog tercinta ini hihi. Kali ini saya bakal membagikan informasi mengenai Create Data with Database Facade, Validation, dan Old Input pada Laravel. Sebelumnya, jangan lupa kunjungin halaman blog saya agar dapat mengikuti pembahasan kali ini, khususnya mengenai Laravel! Pada penasaran ga? Pasti penasaran dong kan ya, kalau gitu kita sama sama simak penjelasannya dulu yuu!

STUDI KASUS 1 

Create Data with Database Facade

1. Buka file resources/views/kelas.blade.php, tambahkan link menuju form add

- url : Digunakan untuk menciptakan URL menuju URL tertentu. URL yang diciptakan akan ditambahkan base_url dari project anda.

note: url(‘/kelas/create’), maka yang akan muncul di HTML nya adalah http://localhost/laravel/public/kelas/create

2. Buka file routes/web.php, tambahkan route create

- Perintah tersebut akan mengarahkan route /kelas/create ke function create pada controller KelasController

3. Buka file app/Http/Controllers/KelasController.php

-  Digunakan untuk menampilkan view dengan nama form yang terdapat pada folder kelas

4. Buat file resources/views/kelas/form.blade.php
@csrf
- csrf_token() = Digunakan untuk membuat csrf token
- csrf_field() = Digunakan untuk membuat input hidden _token beserta token nya
  <input type=“hidden” name=“_token” value=“xxxxxxxxx”
- @csrf = Fitur dari blade, sama dengan csrf_field, namun tidak perlu menggunakan bracket ( {{ }} ) untuk menampilkannya di HTML.
  • Setiap request yang memiliki method selain GET (POST, PUT, PATCH, DELETE), syntax diatas wajib digunakan didalam form sebagai fungsi keamanan dari serangan CSRF.
  • CSRF (Cross-Site Request Forgery) merupakan bentuk eksploitasi website yang dieksekusi atas wewenang korban, tanpa dikehendakinya. CSRF menipu web site melalui request dari user yang dipercaya. Serangan bekerja melalui link atau script pada halaman site yang diakses user
5. Buka file routes/web.php, tambahkan route post

- Perintah tersebut akan mengarahkan route /kelas dengan method request POST ke function store pada controller KelasController

6. Buka file app/Http/Controllers/KelasController.php, tambahkan fungsi store

@input = $request->all();
- Digunakan untuk menangkap seluruh request yang dikirim dari view form.

unset($input['_token']);
- Digunakan untuk menghapus data dengan key _token pada array asosiatif $input karena data tersebut tidak ada didalam tabel (tidak akan di-insert).

$status = \DB::table('t_kelas')->insert($input);
- Untuk melakukan insert data ke tabel t_kelas dimana datanya berasal dari array $input

if ($status) {
    return redirect('/kelas')->with('success', 'Data berhasil ditambahkan!');
    } else {
    return redirect('/kelas/create')->with('error', 'Data gagal ditambahkan!');
    }
- Baris diatas memeriksa apakah input data berhasil atau tidak.
- Jika berhasil maka arahkan tampilan kembali ke alamat /kelas (Menampilkan Tabel Data Kelas) dengan membawa session success dengan pesan ‘Data berhasil ditambahkan’
- Jika gagal maka arahkan tampilan kembali ke alamat /kelas/create (Menampilkan kembali form input data kelas) dengan membawa session error dengan pesan ‘Data gagal ditambahkan’

run: localhost/laravel/public/kelas





SUCCESS / ERROR MESSAGE FEEDBACK

1. Buka file resources/views/kelas.blade.php

@if
- Digunakan untuk menampilkan suatu bagian pada HTML ketika kondisi pada PHP terpenuhi.

@if(session(‘success’))
- Pada contoh diatas, tampilkan div dengan class success jika session(‘success’) tidak kosong. Div tersebut berisikan data/pesan yang ada pada session(‘success’) tersebut.

note : Perhatikan penempatan blok @endif



Setelah berhasil menambahkan data, akan diarahkan ke tampilan ini dengan menampilkan pesan Data Berhasil Ditambahkan

Input Validation

Validasi input menggunakan validation
- Untuk melakukan validasi input agar sesuai dengan yang diharapkan, Laravel sudah menyediakan fiturnya yaitu dengan menggunakan Facades Validator atau function validate.

1. Buka file app/Http/Controllers/KelasController.php, perhatikan code ini pada fungsi store

- Cara menulis rule adalah dengan membuat array asosiatif yang didalamnya berisi key yang berupa nama field yang ada pada form dan value yang berisi string valiadasinya.
- Jika terdapat lebih dari 2 validasi, gunakan simbol |
- Jika string validasi memerlukan parameter, gunakan simbol titik dua :
 Contoh Array Asosiatif untuk Validasi NIS:
 ‘nis’ => ‘max:10’
Artinya: Validasi NIS hanya boleh memiliki panjang maksimal 10 karakter

2. Buka file resources/views/kelas/form.blade.php, tambahkan di paling atas
Disini juga saya menggunakan Bootstrap
- Sama dengan if pada percobaan sebelumnya, if disini artinya menampilkan error dari validasi jika variabel $errors lebih dari 1.
- Variabel $errors berasal dari hasil validasi pada sintaks di Controller => $this->validate()

Hasil :


Akan menampilkan error jika field yang diisi belum sesuai dengan yang ada di rule
DISPLAYING USER’S OLD VALUE







Ketika form tidak lengkap atau tidak sesuai dengan rules, seharusnya form yang sudah diisi oleh user yang sebelumnya harus tetap muncul



1. Buka file resources/views/kelas/form.blade.php, tambahkan code berikut


STUDI KASUS 2

- Bug yang saya temukan adalah ketika kita menginput nis yang sama data masih berhasil dimasukkan. Padahal seharusnya sebagai primary key, nis tidak boleh sama karna nilainya unik.

- Perbaikan : Tambahkan validasi di SiswaController

Sebelumnya saya sudah memasukkan nis '1718117171', mari kita masukkan kembali saat menginput. Apakah berhasil atau tidak?


Gagal! Jadi user tidak dapat memasukkan nis yang sama pada data siswa.


STUDI KASUS 3

→ Fungsi Old pada Radio Button dan Select Option
note: ini ada pada form siswa (jenkel & goldar)
Tambahkan pada resources/views/siswa/form.blade.php
Hasilnya seperti inii
Nah sekian saja yang dapat saya bagikan kepada teman-teman kali ini, mohon maaf apabila banyak sekali kekurangan. Keep happy and stay healthy guys💕💕 Wassalamualaikum.wr.wb💪💪

Selasa, 26 Februari 2019

Controllers & Interacting With DB - Sesi 3 | Nassya Putri R


Assalamualaikum kawan-kawanku dari berbagai belahan dunia, eaaa. Apa kabar nih kalian semua? Semoga selalu dalam keadaan sehat wal'afiat dan selalu dalam lindungan-Nya ya. Kali ini pada penasaran ga, saya mau kasih informasi tentang apa? Oke oke, sama kaya di judul blognya, saya mau kasih tau kawan kawan nih mengenai Controller dan Interaksi dengan Database, masih pada laravel yaa. Langsung aja yuk kita mulai!!!

Controller?
  • Pada Konsep MVC, Controller adalah yang bertugas untuk menghubungkan Model dengan View.
  • Biasanya, satu buah Controller untuk sebuah modul. Misalnya kita memiliki SiswaController, didalamnya terdapat fungsi-fungsi yang berhubungan dengan entitas/modul.
Membuat Controller
  • Buka CMD, masuk ke folder root project laravel anda, jalankan perintah:
php artisan make:controller (NamaController)

Nama controller harus berbentuk PascalCase, setiap kata pertama adalah huruf kapital. Contoh: SiswaController, KelasController, GuruController, dsb.

Study Kasus 1
- Pindahkan 3 route yang sebelumnya anda buat di routes ke SiswaController

SiswaController

web.php
Nama fungsi pada controller sebetulnya bebas, tidak ada aturan khusus. Namun pada umumnya setiap controller memiliki fungsi index, create, store, edit, update dan show yang nantinya berhubungan dengan CRUD.
* Nama fungsi harus berbentuk camelCase.

Study Kasus 2
- Isi data dummy untuk tabel t_kelas dengan data kelas XI di SMK Negeri 4 Bandung (Semua jurusan, 13 kelas)
-Buatlah controller dan modifikasi view nya untuk menampilkan data dari t_kelas

Isi Data t_kelas
Membuat KelasController
Buat function kelas yang berfungsi untuk mengambil data dari t_kelas
Panggil route tersebut di web.php
Buat kelas.blade.php untuk menampilkan data

Facade DB :
  1. DB merukapan facade dari Laravel untuk berinteraksi dengan Database. Facade itu sendiri adalah hasil dari implementasi class dengan method static, sehingga programmer dapat dengan mudah mengaksesnya hanya dengan memanggil nama class dan fungsinya secara static (Facades Pattern).
  2. DB digunakan untuk berinteraksi dengan tabel-tabel pada database namun belum berbasis objek (Belum menggunakan Eloquent ORM), tetapi sudah menggunakan fungsi-fungsi yang disediakan oleh Laravel.
Template Blade :
@foreach
Digunakan untuk melakukan looping data yang terdapat pada array atau object. Bentuk umum nya sama seperti penggunaan foreach pada php.

foreach ($object/array as $item)

@endforeach
Digunakan untuk menutup blok foreach yang sudah didefinisikan di awal. Setiap blok foreach harus ditutup dengan endforeach.

Hasilnya

Study Kasus 3
Lakukan beberapa query dibawah ini untuk menampilkan data pada t_kelas
1. Tampilkan data dari t_kelas, diurutkan berdasarkan lokasi ruangan
2. Tampilkan data dari t_kelas yang memiliki nama wali kelas diawali huruf A saja
3. Tampilkan data dari t_kelas diurutkan berdasarkan jurusan dan nama_kelas
4. Tampilkan data dari t_kelas hanya data jurusan Audio Video saja

Jawab :

1. Tampilkan data dari t_kelas, diurutkan berdasarkan lokasi ruangan 



2. Tampilkan data dari t_kelas yang memiliki nama wali kelas diawali huruf A saja 



3. Tampilkan data dari t_kelas diurutkan berdasarkan jurusan dan nama_kelas 



4. Tampilkan data dari t_kelas hanya data jurusan Audio Video saja



Nah teman-teman, segitu sajaa informasi dan analisis yang saya lakukan. Semoga dapat bermanfaat bagi teman-teman sekalian. Mohon maap apabila masih banyak kekurangan Keep Happy and Stay Healthy guys!❤👀 Wassalamualaikum wr.wb.

INTRODUCING ELOQUENT

Assalamualaikum teman-teman yang sedang melihat blog saya kali ini hihi! Apa kabar semuanya? Semoga selalu dalam keadaan sehat wal'afiat...