Minggu, 14 Juni 2020

Praktikum 44 : Introducing Eloquent

Assalamu'alaikum warrahmatullahi wabarakatuh.

Kembali lagi di postingan berikutnya, kali ini akan memperkenalkan eloquent.

Pertama buat file Siswa.php di folder app.

$table adalah variabel untuk menentukan nama tabel pada database untuk model ini.

$fillable adalah variabel untuk menentukan field apa saja yang akan di fill atau di insert ke tabel pada model ini. Biasanya digunakan untuk mass-assignment.

Modifikasilah function index pada file SiswaController.php seperti berikut ini.

Seluruh method yang dipanggil setelah inisialisasi Eloquent sama dengan penggunaan DB Facades.

Modifikasi function store nya.

Modifikasi function update.

Method find hanya ada pada Eloquent Model, digunakan untuk mencari data pada model berdasarkan primary key. Biasanya primary key yang dicari adalah id. Selain id Anda dapat mengaturnya pada model dengan meng-override variabel public $primaryKey.

Jika dalam query SQL, fungsi di atas akan menciptakan query sebagai berikut:

SELECT * FROM t_siswa WHERE id = '$id'

Sekarang modifikasi juga function destroy.

ORM Eloquent for Inserting Data

ORM Eloquent for Updating Data

Sekian saja postingan kali ini. Terimakasih sudah berkunjung.

Wasslamu'alaikum warrahmatullahi wabarakatuh.

Praktikum 43 : Edit & Delete Data with DB

Assalamu'alaikum warrahmatullahi wabarakatuh

Sudah lama saya tidak mengupload postingan baru. Kali ini saya membawa materi baru tentang edit dan delete data menggunakan database.

Pertama buka file belajar.blade,php dan tambahkan kolom baru untuk aksi edit.

Lalu buka file web.php dan tambahkan route edit.

{id} adalah parameter yang harus ada pada url nya dan parameter tersebut akan dilempar ke controller.

Buka file SiswaController.php dan tambahkan function edit.

Fungsi FIND() PADA \DB::table adalah untuk mencari data pada t_siswa berdasarkan id atau primary key nya, sehingga return dari pemanggilan fungsi tersebut berupa objek.

Buka file form.blade.php dan edit sebagai berikut.

Lalu tambahkan function update di file SiswaController.php

Lalu buka file web.php dan tambahkan route untuk update.

Setelah itu buka file belajar.blade.php dan tambahkan kolom baru untuk delete.

Tambahkan route edit pada file web.php

Terakhir tambahkan function destroy pada file SiswaController.php

Sekian untuk postingan kali ini. Terimakasih sudah berkunjung~

Wassalamu'alaikum warrahmatullahi wabarakatuh.

Sabtu, 04 April 2020

Praktium 42 : Create Data with Database Facade, Validation, dan Old Input

Assalamu'alaikum warrahmatulahi wabarakatuh.

Kembali lagi di postingan baru, kali ini akan membahas tentang create menggunakan DB Facade, validasi dan old input.

Langsung ke studi kasus yang pertama, yaitu:

Lakukan create data with DB Facade, validation dan old input pada tabel t_kelas. Buatlah tampilan form untuk menambahkan data kelas.

Implementasikan validasi untuk tabel t_kelas.

Pertama, buka file tugas.blade.php dan tambahkan link menuju form.



URL digunakan menciptakan URL menuju url tertentu. URL yang diciptakan akan ditambahkan base_url dari project kita.

Selanjutnya buka file web.php dan tambahkn route create.


Buka file KelasController.php dan tambahkan function create untuk menampilkan view dengan nama form yang terdapat pada folder kelas.


Buat file formkelas.blade.php yang disimpan di folder kelas. Jika belum ada foldernya maka dibuat terlebih dahulu foldernya.


CSRF (Cross-Site Request Forgery) merupakan bentuk eksploitasi website yang dieksekusi atas wewenang korban, tanpa dikehendakinya. CSRF menipu website melalui request dari user yang dipercaya. Serangan bekerja melalui link atau script pada halaman site yang bisa diakses user.

csrf_token() digunakan untuk membuat csrf token.

csrf_field() digunakan untuk membuat input hidden_token beserta tokennya.

@csrf merupakan 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.

Selanjutnya buka lagi file web.php dan tambahkan route post.


Buka file KelasController.php dan tambahkan function store.



Coba buka di browser dan hasilnya seperti ini.

Lalu klik Tambah Data Kelas

Isi form nya.

Lalu klik Simpan dan data baru akan ditambahkan.

Selanjutnya adalah menampilkan feedback pesan sukses/error. Buka file tugas.blade.php dan tambahkan kode berikut diatas URL.


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

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

Perhatikan penempatan blok @endif

Buka di browser untuk melihat hasilnya sebagai berikut.


Selanjutnya adalah 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.

Buka file KelasController.php dan tambahkan code di function store sebagai berikut.


Buka file formkelas.blade.php dan tambahkan code berikut di paling atas.


Buka di browser. Akan menampilkan error jika field yang diisi belum sesuai dengan yang ada di rule.


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 validasinya.

Jika terdapat lebih dari 2 validasi, gunakan simbol |

Jika string validasi memerlukan parameter, gunakan simbol titik dua :

Selanjutnya adalah menggunakan fungsi old untuk menampilkan value sebelumnya. Ketika form tidak lengkap atau tidak sesuai dengan rules seharusnya form yang sudah diisi oleh user yang sebelumnya harus tetap muncul.

Buka file formkelas.blade.php dan tambahkan value sebagai berikut.


Dan hasilnya begini.


Lalu studi kasus kedua adalah sebagai berikut.

Di tutorial ini terdapat BUG, temukan BUG nya dan pecahkan solusi dari BUG tersebut!

Dari apa yang saya temukan adalah BUG nya terletak pada bagian create data dimana pada file SiswaController.php ketika menambahkan function store. Pada bagian if, return nya diisi ('/siswa') yang mana harusnya adalah ('/belajar') karena itu yang menjadi index atau tampilan utama dari tabelnya. Pada file web.php juga harusnya membuat route dengan ('/belajar').

Terakhir studi kasus ketiga, yaitu:

Implementasikan fungsi old untuk field berjenis radio button dan field berjenis select option pada form siswa (field jenkel dan goldar).



Sepertinya sekian saja postingan untuk kali ini.

Terimakasih sudah berkunjung dan mohon maaf atas banyak kekurangannya.

Wassalamu'alaikum warrahmatullahi wabarakatuh.

Rabu, 18 Maret 2020

Praktikum 41 : Laravel Controllers & Interacting with Database

Assalamu'alaikum warrahmatullahi wabarakatuh

Di postingan kali ini saya akan membahas tentang controller dan interaksi dengan database.

Saya akan menjelaskan studi kasusnya saja yaitu sebagai berikut isinya.





Pertama buka cmd dan jalankan perintah php artisan make:controller KelasController




Sebelum itu isi terlebih dahulu tabel kelas pada database.


Buka file KelasController dan edit sebagai berikut.


Buat file blade baru untuk menampilkan view dari tabel kelas. Contoh beri nama tugas.blade.php dan isi sebagai berikut.


Begini tampilannya ketika di run.


Pertama tampilkan tabel diurutkan berdasarkan lokasi ruangan. Tambahkan kode sebagai berikut di file KelasController.


Jalankan di browser dan hasilnya seperti ini.


Kedua tampilkan tabel dengan nama walikelas yang berawalan huruf A. Karena di tabel saya tidak ada yang berawalan A maka saya ganti menjadi awalan K. Ubah kode pada Kelas Controller seperti ini.


Begini hasilnya.


Ketiga menampilkan tabel dengan mengurutkan jurusan dan nama kelas, edit pada KelasController sebagai berikut.


Berikut hasilnya.


Terakhir menampilkan data hanya dari jurusan TEAV saja. Ubah file KelasController sebagai berikut.


Berikut hasilnya.


Sekian untuk postingan kali ini. Terimakasih sudah berkunjung.

Wassalamu'alaikum warrahmatullahi wabarakatuh.

Selasa, 17 Maret 2020

Praktikum 40 : Database Migration

Assalamu'alaikum warrahmatullahi wabarakatuh

Untuk kali ini saya hanya akan menjelaskan tentang studi kasus yang saya kerjakan untuk materi database migration menggunakan laravel.

Yang pertama adalah membuat satu tabel percobaan dan membuat 15 field/kolom secara bebas.


Lalu isi field pada file t_percobaan sebagai berikut.


Buka lagi cmd dan jalankan perintah migrate.


Lalu periksa di database apakah tabel sudah muncul atau belum.


Selanjutnya studi kasus yang kedua adalah sebagai berikut.

Pertama buka cmd dan jalankan perintah php artisan make:migration create_t_kelas lalu setelah itu buka file t_kelas dan tambahkan field nama_kelas dan jurusan. Setelah itu buka lagi cmd dan jalankan perintah php artisan migrate lalu lihat di database apakah sudah muncul atau tidak. Saya tidak sempat mengscreenshot database yang ini karena tidak ingat dan langsung mengerjakan ke tahap berikutnya.

Setelahnya untuk menambahkan field baru yaitu field lokasi_ruangan. Pertama buka lagi cmd dan jalankan perintah php artisan make:migration add_lokasi_ruangan_t_kelas lalu buka file lokasi_ruangan dan edit sebagai berikut.


Lalu jangan lupa save terlebih dahulu baru buka kembali cmd dan jalankan perintah php artisan migrate dan cek pada database untuk melihat field sudah ditambahkan atau belum. Saya juga tidak sempat screenshot dan langsung mengerjakan poin berikutnya yaitu mengubah panjang field nama_kelas menjadi 50. Yang dilakukan adalah menjalankan perintah php artisan migrate:rollback seperti ini.


Lalu ubah panjang field nama_kelas pada file nama_kelas setelahnya buka kembali cmd dan jalankan perintah php artisan migrate.


Lalu cek pada database untuk memastikan perubahannya.


Selanjutnya adalah menambahkan field nama_wakel pada tabel, buka cmd dan jalankan perintah php artisan make:migration add_nama_wakel_t_kelas lalu buka file nama_wakel dan masukkan nama dan panjang field sebagai berikut.


Setelah itu save dan jalankan perintah php artisan migrate dan lihat perubahannya pada database.


Dan terakhir adalah mengubah nama field menjadi nama_walikelas. Pertama buka lagi cmd dan jalankan perintah php artisan make:migration change_nama_walikelas_t_kelas lalu lakukan perubahan nama field di file change_nama_walikelas sebagai berikut.


Setelahnya lihat di database untuk melihat perubahannya.


Saya rasa sekian saja untuk postingan kali ini. Terimakasih sudah berkunjung.

Wassalamu'alaikum warrahmatullahi wabarakatuh.

Selasa, 10 Maret 2020

Praktikum 39 : Framework Laravel

Assalamu'alaikum warrahmatullahi wabarakatuh

Bertemu lagi di postingan baru, kali ini saya akan membahas tentang Framework. Apa sih Framework?

Framework (kerangka kerja) adalah sebuah software untuk memudahkan para programmer membuat aplikasi atau web yang isinya adalah berbagai fungsi, plugin, dan konsep sehingga membentuk suatu sistem tertentu. Dengan menggunakan framework, sebuah aplikasi akan tersusun dan terstruktur dengan rapi. Singkatnya, framework adalah sebuah standar.

Framework ini menggunakan konsep MVC. MVC atau Model-View-Controller ini adalah sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework dalam aplikasi website adalah berbasis arsitektur MVC. MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web.

Framework yang saya gunakan dan akan saya jelaskan disini adalah Laravel.

Laravel

Laravel adalah framework PHP MVC yang dikembangkan oleh Taylor Otwell pada tahun 2011. Berikut adalah beberapa fitur pada Laravel Framework.

  • RESTful Routing
RESTful adalah cara baru dalam mengelola request seperti GET, POST, PUT, PATCH, DELETE, dan STORE.
  • Composer
Composer adalah Depedency Management PHP yang membantu programmer untuk menggunakan library. Semua dependency ini di host di packagist.org
  • Command Line Tools (Artisan)
Fitur command line ini untuk memudahkan programmer melakukan beberapa pekerjaan, misalnya membuat database migration, server application, database seeding, creating controller & model dan masih banyak yang lainna.
  • Beautiful Template Engine
Laravel dilengkapi dengan template engine dengan nama Blade Template Engine untuk memudahkan penggabungan kode PHP pada HTML.
  • Eloquent ORM
Fitur Eloquent ORM (Object Relational Model) memungkinkan penulisan kode yang berhubungan dengan objek (Entitas/Tabel pada Database) dioperasikan menggunakan konsep OOP.
  • Database Migration
Fitur ini untuk menjaga histori migrasi database (CREATE, ALTER, DROP), mengaplikasikan migrasi baru ataupun mengembalikannya.


Struktur Folder Laravel

Folder utama laravel atau disebut dengan ROOT FOLDER
  • .env
File konfigurasi yang hanya berlaku untuk environment local saja atau dimana file ini berada.
  • composer.json
File yang berisi kumpulan dependency yang digunakan di project ini. Kita dapat menambahkannya dengan perintah composer require atau langsung menulisnya di dalam file ini.
  •  app
Tempat menyimpan seluruh file yang berhubungan dengan aplikasi yang akan dibangun dan tempat menyimpan file Model.
  • app/Http/Controllers
Tempat menyimpan file Controller.
  • config
Tempat menyimpan seluruh file yang berhubungan dengan konfigurasi aplikasi Laravel yang akan dibangun, mulai dari database, tempat menyimpan file hasil upload, konfigurasi untuk melakukan pengiriman email, dan sebagainya.
  • database
Tempat menyimpan seluruh file yang berhubungan dengan database migration dan database seeder.
  • public
Tempat menyimpan seluruh file yang nantinya dapat diakses secara publik oleh pengguna. 
  • resources
Tempat menyimpan seluruh file views dari aplikasi yang akan dibangun. Views menggunakan template engine bernama blade sehingga setiap kali kita membuat file untuk view, maka harus ditambahkan ekstensi .blade
  • web.php
File yang berisi kumpulan route dari sistem yang akan dibangung. Route ini yang nantinya diakses oleh pengguna dan diarahkan sesuai dengan kode yang kita ketik.

Sekarang coba buka file web.php dan lakukan perubahan sebagai berikut.


Dan buka pada browser maka begini hasilnya.

Bentuk umum mendefinisikan Route pada file web.php


Menulis nama-rute tidak boleh menggunakan simbol (!@#$%^&*()~`/,.;:'")

nama-rute tidak boleh mengandung spasi, sebaiknya spasi diganti menggunakan dash(-)

Memanggil View (1)

Buat file baru di resources/views/belajar.blade.php

Contohnya isi seperti ini:


Lalu selanjutnya, yaitu ubah file routes/web.php


view('nama_view') adalah fungsi bawaan laravel untuk memanggil view.

return view artinya mengembalikan (return) view yang telah dipanggil ke pengguna yang memanggil alamat tersebut.

Begiini hasil keluarannya.


Mengirim Data Ke View

Cara 1 : Menggabungkan data dalam satu variabel array sosiatif, sehingga data yang dikirim ke view hanya 1 saja.


Cara 2 : Membuat variabel masing-masing untuk data yang akan dikirim ke view, gunakan compact untuk mengirimkan data ke view nya.

Dalam bentuk teks biasa

Menampikan data yang sudah dikirim menggunakan blade template.


Berikut hasilnya.


Dalam bentuk tabel

Menampilkan data yang sudah dikirim menggunakan blade template.


Berikut hasilnya.
Jadi, apa perbedaan antara cara 1 dan 2 mengirim data ke view? Apa kekurangan dan kelebihan masing-masing cara tersebut?

Perbedaannya ialah, cara 1 menggunakan array sosiatif untuk menggabungkan data dalam satu variabel saja. Sedangkan cara 2 membuat variabel masing-masing untuk setiap data yang akan dikirim ke view dan menggunakan fungsi compact untuk mengirimkan data ke view.

Menurut saya, secara penulisan code lebih baik menggunakan cara ke 1 karena lebih efektif dan singkat dalam menuliskan variabel di return view yakni cukup menuliskan satu variabel saja meski ada banyak data yang dikirim. Dibandingkan cara ke 2 yang mengharuskan mengetik kembali nama-nama variabel di dalam compact.

Cukup sekian saja saya rasa untuk postingan kali ini. Maaf masih banyak kekurangannya dan terimakasih sudah berkunjung.

Wassalamu'alaikum warrahmatullahi wabarakatuh.

Senin, 24 Februari 2020

Praktikum 38 : OOP-PHP Overloading

Assalamu'alaikum warrahmatullahi wabarakatuh

Ketemu lagi di postingan baru, kali ini membahas soal overloadin pada OOP-PHP.

Overloading

Overloading di PHP menyediakan cara agar properti dan method dapat dibuat secara dinamis. Entitas dinamis ini diproses melalui method ajaib yang dapat dibangun di class untuk berbagai jenis tindakan.

Method overloading dipanggil saat berinteraksi dengan propertu atau method yang belum dideklarasikan atau tidak terlihat dalam baris program. Sisa dari bagian ini akan menggunakan istilah properti dan method yang tidak dapat diakses untuk merujuk pada kombinasi deklarasi dan visibilitas tersebut.

Semua method overloading harus didefinisikan sebagai public.

Berikut merupakan contoh pertama.


Dan ini adalah contoh kedua.


Kiranya sekian saja untuk postingan kali ini.

Mohon maaf karena banyak kekurangan dan terimakasih sudah berkunjung.

Wassalamu'alaikum warrahmatullahi wabarakatuh.