Akses kelas selamanya

Ambil Promo
flash sale
hamburger-menu

Tips Code

Meningkatkan skills menjadi 1% lebih baik

Kelas 10 Hal Dasar Yang Perlu Dipelajari Tentang Laravel di BuildWithAngga

10 Hal Dasar Yang Perlu Dipelajari Tentang Laravel

Laravel merupakan framework yang sangat populer dikalangan web developer. Laravel merupakan framework dari bahasa pemrograman PHP untuk memaksimalkan penggunaan dalam membangun website yang powerful. Laravel menjadi pilihan utama bagi kebutuhan industri maupun start-up yang ingin memiliki website yang lebih cepat dan dinamis. Laravel sudah dipakai oleh banyak perusahaan yaitu BBC, TourRadar, Pfizer, dan masih banyak lagi perusahaan yang menggunakan termasuk start-up. 10 Hal Dasar Perlu Yang Dipelajari Tentang Laravel Framework Laravel yang Dinamis Didalam laravel terdapat hal mendasar yang perlu dipelajari, dasar ini akan menjadi pondasi dalam menguasai laravel. Berikut adalah 10 hal mendasar yang perlu dipelajari dan kuasai di dalam laravel. 1. Routing Routing dalam laravel Routing merupakan proses menentukan dan mengontrol respon permintaan HTTP dari aplikasi anda berdasarkan URL atau URI yang mereka akses. Sangat penting untuk mengetahui bagaimana cara routing dalam menangani permintaan ke fungsi atau metode yang tepat. Dalam laravel routing dikonfigurasi dalam file routes/web.php untuk menangani permintaan HTTP biasa, dan routes/api.php untuk menangani permintaan terkait dengan API yang dipakai didalam aplikasi anda. Beberapa contoh definisi route di laravel yaitu: Basic Route use Illuminate\\Support\\Facades\\Route; Route::get('/greeting', function () { return 'Hello World'; }); Route with Parameter Route::get('/user/{id}', function (string $id) { return 'User '.$id; }); //Anda juga bisa mendefinisikan parameter lebih dari satu juga itu diperlukan Route::get('/posts/{post}/comments/{comment}', function (string $postId, string $commentId) { // ... }); Route With Method //Method yang ada di route Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback); //pada kasus tertentu anda mungkin perlu menggunakan lebih dari satu method //anda bisa menggunakan "match" method, method ini memungkinkan anda menggunakan lebih dari satu method Route::match(['get', 'post'], '/', function () { // ... }); Named Routes Named Route memungkinkan anda membuat URL yang lebih mudah untuk digunakan. Dengan menggunakan method name, anda bisa memberikan nama yang spesifik untuk route tersebut. Route::get('/user/profile', function () { // ... })->name('profile'); Route Groups Route Groups memungkinkan anda berbagi atribut route dalam waktu bersamaan tanpa harus mendefinisikan atribut disetiap route yang ada. Terdapat beberapa Route Groups yang tersedia di laravel, yaitu: #Middleware Untuk menggunakan middleware didalam route group, kamu bisa menggunakan method sebelum mendefinisikan grup. Untuk mengeksekusi middleware yang dipakai didalam route group, middleware perlu didefinisikan kedalam bentuk array sebagai berikut: Route::middleware(['first', 'second'])->group(function () { Route::get('/', function () { // Uses first & second middleware... }); Route::get('/user/profile', function () { // Uses first & second middleware... }); }); #Controllers Jika didalam sebuah route group itu memanfaatkan controller yang sama, kamu bisa menggunakan method controller untuk mendefinisikan controller yang dipakai untuk semua route yang ada di dalam grup, contohnya adalah sebagai berikut: use App\\Http\\Controllers\\OrderController; Route::controller(OrderController::class)->group(function () { Route::get('/orders/{id}', 'show'); Route::post('/orders', 'store'); }); #Route Prefixes Route Prefixes ini dapat memberikan sebuah inisialisasi pada didalam sebuah grup route, contohnya kita akan memberikan sebuah prefix admin kedalah sebuah route group dengan menggunakan method prefix: Route::prefix('admin')->group(function () { Route::get('/users', function () { // Matches The "/admin/users" URL }); }); Lalu kemudian ada yang dinamakan Route Name Prefixes, yang memberikan string pada sebuah prefix untuk setiap route yang ada didalam grup tersebut. Contohnya kita akan memberikan string admin untuk setiap route yang ada didalam grup, kemudian kita akan memberikan . sebagai trailing untuk karakter tersebut. Route::name('admin.')->group(function () { Route::get('/users', function () { // Route assigned name "admin.users"... })->name('users'); }); 2. Controllers Controller Laravel Controller dalam Laravel adalah kelas yang bertanggung jawab untuk mengelola logika aplikasi dan merespons permintaan dari pengguna. Mereka bertindak sebagai perantara antara routes dan views dalam aplikasi Anda. Ketika pengguna mengakses URL tertentu, controller akan menangani permintaan tersebut dengan melakukan tindakan yang sesuai dan mengembalikan respons yang tepat kepada pengguna. Dalam Laravel, Anda dapat membuat controller dengan mudah menggunakan perintah Artisan, seperti berikut: php artisan make:controller NamaController Perintah di atas akan membuat sebuah file controller baru dalam direktori app/Http/Controllers dengan nama NamaController.php. Sebagai contoh, mari kita buat controller yang sederhana: namespace App\\Http\\Controllers; use Illuminate\\Http\\Request; class ContohController extends Controller { public function index() { return view('halaman'); } public function proses(Request $request) { // Lakukan sesuatu dengan data yang dikirim oleh pengguna melalui form $nama = $request->input('nama'); // Lakukan operasi lain... // Kembalikan respons kepada pengguna return response("Halo, $nama! Permintaan Anda telah diproses."); } } Dalam contoh di atas, controller ContohController memiliki dua metode yaitu index() dan proses(). Metode index() akan mereturn tampilan (view) bernama "halaman" ke pengguna, sedangkan metode proses() akan merespons permintaan yang mengandung data dari pengguna. Controller memungkinkan Anda untuk mengorganisir logika aplikasi dengan baik, mengelompokkan tindakan terkait dalam satu kelas, dan membuat aplikasi lebih mudah untuk dipelihara. Mereka juga memisahkan logika aplikasi dari rute, sehingga meningkatkan struktur dan kejelasan kode Anda. Setiap kali Anda ingin menangani permintaan tertentu dalam Laravel, Anda perlu membuat rute yang terkait dengan metode yang sesuai dalam controller Anda. Controller menjadi komponen penting dalam arsitektur MVC (Model-View-Controller) yang digunakan oleh Laravel. 3. Blade Templating Template Blade dalam Laravel Blade Templating adalah view template dalam Laravel yang memungkinkan Anda untuk memisahkan logika dari tampilan dalam aplikasi web Anda. Dengan Blade, Anda dapat membuat tampilan yang dinamis dengan menyisipkan kode PHP ke dalam template. Blade menyediakan sintaks yang intuitif dan mudah digunakan untuk menyusun tampilan halaman web dengan efisien. Blade template file menggunakan .blade.php file extension dan tersimpan didalam folder resources/views. Fitur-fitur utama dari Blade Templating di Laravel adalah sebagai berikut: Struktur Layout: Anda dapat membuat layout utama (master layout) yang berisi elemen-elemen umum, seperti header, footer, atau sidebar, dan kemudian meng-extend layout ini ke tampilan-tampilan spesifik. Hal ini memungkinkan Anda untuk menghindari pengulangan kode yang tidak perlu dalam setiap halaman.Penyusunan Template: Blade menggunakan konvensi sintaks {{ }} untuk menyisipkan variabel dan objek ke dalam tampilan. Misalnya, {{ $nama }} akan menampilkan isi variabel $nama ke dalam tampilan.Looping: Blade menyediakan looping, seperti penggunaan @if, @else, @foreach, dan @while, yang memungkinkan Anda untuk melakukan logika percabangan dan perulangan dalam tampilan.Penggunaan Layout Partials: Anda dapat memecah tampilan menjadi bagian-bagian kecil (partials) dan menyertakan bagian-bagian ini ke dalam tampilan lain menggunakan sintaks @include. Ini membantu dalam organisasi dan penggunaan kembali kode.Komponen dan Slot: Laravel 7.0 dan versi selanjutnya memperkenalkan fitur komponen dan slot dalam Blade. Komponen memungkinkan Anda untuk mengelompokkan logika tampilan yang terkait dalam satu unit yang terpisah. Slot digunakan untuk mengisi konten dinamis ke dalam komponen. Misalnya @component('front.components.course-card-horizontal') memiliki beberapa @slot didalam slot tersebut kita akan mengisi dengan sebuah value, isi dari slot tersebut adalah @slot('nama', $param->nama)Komponen View: Blade juga memungkinkan Anda untuk membuat komponen view, yang merupakan tampilan reusable dengan logika dan tampilan yang tertanam dalam satu kelas. Contoh Penggunaan Blade Templating: File master layout (layouts/app.blade.php): <!DOCTYPE html> <html> <head> <title>{{ $title }}</title> </head> <body> @yield('content') </body> </html> File halaman (pages/home.blade.php): @extends('layouts.app') @section('content') <h1>Halo, {{ $nama }}</h1> @endsection Dalam contoh di atas, kita menggunakan layout utama app.blade.php dan menyisipkan konten dari halaman home.blade.php ke dalamnya menggunakan @yield dan @section. Variabel $nama disisipkan ke dalam tampilan menggunakan sintaks Blade {{ $nama }}. Blade Templating memudahkan Anda dalam menyusun tampilan yang dinamis dan efisien, serta membantu dalam memisahkan tampilan dari logika, sehingga meningkatkan struktur dan kejelasan kode Anda dalam pengembangan aplikasi Laravel. 4. Eloquent ORM Operasi Basis Data Menggunakan Laravel Eloquent ORM adalah fitur utama dalam Laravel yang menyediakan cara yang mudah dan ekspresif untuk berinteraksi dengan basis data dalam aplikasi Anda. "ORM" singkatan dari "Object-Relational Mapping," yang berarti Eloquent memungkinkan Anda untuk menggunakan objek-objek dalam bahasa pemrograman PHP untuk merepresentasikan tabel dan baris dalam basis data. Dengan Eloquent ORM, Anda tidak perlu menulis kueri SQL secara langsung ataupun memanipulasi basis data menggunakan kode kustom. Sebaliknya, Anda dapat menggunakan model Eloquent untuk mewakili tabel dalam basis data dan metode-metode yang terkait untuk melakukan operasi CRUD (Create, Read, Update, Delete) dengan mudah. Berikut adalah langkah-langkah untuk menggunakan Eloquent ORM dalam Laravel: Mendefinisikan Model Anda perlu membuat Model Class yang mewakili tabel dalam basis data. Model ini harus meng-extend kelas Illuminate\\Database\\Eloquent\\Model dan secara otomatis berisi informasi tentang tabel yang sesuai dengan nama model. Sebagai contoh, jika Anda memiliki tabel "users", maka Anda dapat membuat model dengan nama "User" seperti berikut: //buat dulu migrasi di laravel, dan laravel akan otomatis membuat migrasi dengan artisan console php artisan make:migration create_users_table //masuk kedalam **database/migrations/create_users_table**, kemudian modifikasi migrasi tersebut <?php use Illuminate\\Database\\Migrations\\Migration; use Illuminate\\Database\\Schema\\Blueprint; use Illuminate\\Support\\Facades\\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } }; //migrasikan *datatable* yang sudah dibuat kedalam database php artisan migrate //kemudian buat model yang berintegrasi dengan migrasi tersebut php artisan make:model User //Model yang sudah dibuat namespace App\\Models; use Illuminate\\Database\\Eloquent\\Model; class User extends Model { protected $table = 'users'; } Menggunakan Eloquent Querying Setelah Anda mendefinisikan model, Anda dapat menggunakan berbagai metode Eloquent untuk melakukan query ke dalam basis data. Misalnya, Anda dapat menggunakan metode all() untuk mengambil semua data dari tabel: $users = User::all(); Menyimpan Data Baru Untuk menyimpan data baru ke dalam basis data, Anda bisa membuat objek model baru dan mengisi atribut-atributnya sesuai data yang ingin disimpan, lalu panggil metode save(): $user = new User; $user->name = 'Akbar'; $user->email = '[email protected]'; $user->save(); Mengambil Data Berdasarkan Kriteria Anda dapat menggunakan berbagai metode untuk mengambil data berdasarkan kriteria tertentu, seperti where(), find(), first(), dan sebagainya: $user = User::where('name', 'Akbar')->first(); Melakukan Update Data Untuk melakukan update data, Anda dapat mengambil objek model yang sudah ada, mengubah atribut-atribut yang ingin diperbarui, dan panggil metode save(): $user = User::find(1); $user->name = 'Rabka'; $user->save(); Menghapus Data Untuk menghapus data, Anda dapat mengambil objek model yang sudah ada dan panggil metode delete(): $user = User::find(1); $user->delete(); Eloquent ORM menyediakan banyak fitur tambahan, seperti hubungan antar model (relationships), validasi data sebelum penyimpanan, peristiwa (events), dan banyak lagi. Fitur-fitur ini membantu Anda dalam mengelola basis data dengan lebih mudah dan efisien, serta memungkinkan Anda untuk fokus pada logika aplikasi daripada pengelolaan basis data secara langsung. Dan diatas hanyalah sebuah contoh sederhana bagaimana melakukan Eloquent ORM, Anda dapat melakukan variasi query yang biasa dilakukan menggunakan logika dari ORM. 5. Eloquent Relationship Membuat Relasi Database di Laravel Lebih Mudah Eloquent Relationship adalah fitur yang kuat dalam Laravel yang memungkinkan Anda mendefinisikan dan memanfaatkan hubungan antara model dalam basis data. Dalam istilah Eloquent, hubungan antara model disebut sebagai "Relationships." Hal ini memungkinkan Anda untuk menggambarkan interaksi antara tabel yang berbeda dalam basis data, seperti hubungan one-to-one, one-to-many, many-to-one, dan many-to-many. Ada beberapa jenis hubungan yang didukung oleh Eloquent: One-to-One: Pada Relationships One-to-One, setiap baris dalam model A berhubungan dengan satu baris dalam model B, dan sebaliknya. Misalnya, Anda memiliki tabel "users" dan "profiles", di mana setiap pengguna memiliki satu profil.One-to-Many: Pada Relationships One-to-Many, setiap baris dalam model A berhubungan dengan banyak baris dalam model B. Misalnya, pada hubungan antara tabel "users" dan "posts", di mana satu pengguna dapat memiliki banyak postingan.Many-to-One: Relationships Many-to-One adalah kebalikan dari hubungan One-to-Many. Setiap baris dalam model B berhubungan dengan satu baris dalam model A. Misalnya, pada hubungan antara tabel "comments" dan "posts", banyak komentar dapat terkait dengan satu postingan.Many-to-Many: Pada Relationships Many-to-Many, setiap baris dalam model A dapat berhubungan dengan banyak baris dalam model B, dan sebaliknya. Misalnya, pada hubungan antara tabel "users" dan "roles", di mana setiap pengguna dapat memiliki banyak peran, dan setiap peran dapat dimiliki oleh banyak pengguna. Untuk mendefinisikan Eloquent Relationship, Anda harus menambahkan metode-metode khusus dalam model Anda. Sebagai contoh, mari kita lihat Relationships One-to-One dan One-to-Many antara tabel "users" dan "profiles", yaitu: Model User: namespace App\\Models; use Illuminate\\Database\\Eloquent\\Model; class User extends Model { public function profile() { return $this->hasOne(Profile::class); } public function posts() { return $this->hasMany(Post::class); } } Model Profile: namespace App\\Models; use Illuminate\\Database\\Eloquent\\Model; class Profile extends Model { public function user() { return $this->belongsTo(User::class); } } Dalam contoh di atas, pada model User, kita mendefinisikan metode profile() dan posts(). Metode profile() mendefinisikan Relationships One-to-One dengan model Profile, sedangkan metode posts() mendefinisikan Relationships One-to-Many dengan model Post. Pada model Profile, kita mendefinisikan metode user(), yang merupakan inverse relationship dari Relationships One-to-One dengan model User. Setelah Anda mendefinisikan hubungan ini, Anda dapat dengan mudah mengakses data terkait melalui model, seperti: // Mendapatkan profil pengguna $user = User::find(1); $profile = $user->profile; // Mendapatkan postingan pengguna $posts = $user->posts; Dengan menggunakan hubungan Eloquent, Anda dapat dengan mudah mengelola interaksi antara model dalam basis data Anda, dan membantu menjaga struktur dan organisasi aplikasi Anda. 6. Migrations dan Seeders Migrations dan Seeders adalah dua fitur penting dalam Laravel yang digunakan untuk mengelola skema basis data dan data awal dalam aplikasi Anda. Migrations Migrations adalah mekanisme untuk mengelola perubahan skema basis data Anda secara terstruktur dan mudah diulang. Dengan menggunakan Migrations, Anda dapat membuat, mengubah, atau menghapus tabel dan kolom dalam basis data dengan bantuan kode PHP, tanpa perlu menulis SQL langsung. Migrations membantu Anda dan tim Anda untuk berkolaborasi dalam mengatur skema basis data dan memastikan bahwa setiap anggota tim memiliki versi skema basis data yang konsisten. Setiap migrasi adalah kelas PHP yang berisi dua metode utama: up() untuk menerapkan perubahan skema dan down() untuk mengembalikan perubahan jika diperlukan. Contoh sederhana migrasi untuk membuat tabel "users": php artisan make:migration create_users_table use Illuminate\\Database\\Migrations\\Migration; use Illuminate\\Database\\Schema\\Blueprint; use Illuminate\\Support\\Facades\\Schema; class CreateUsersTable extends Migration { public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); } } Setelah Anda membuat migrasi, Anda dapat menjalankannya dengan menggunakan perintah Artisan: php artisan migrate Perintah di atas akan mengeksekusi semua migrasi yang belum dijalankan sebelumnya. Seeders Seeders adalah fitur yang memungkinkan Anda untuk mengisi data awal ke dalam tabel basis data. Data ini dapat berupa data sampel atau data yang diperlukan untuk pengujian atau pengembangan aplikasi. Seeders biasanya digunakan untuk mengisi data awal untuk tabel yang perlu memiliki beberapa entri data sebelum aplikasi dijalankan. Setiap seeder adalah kelas PHP yang berisi metode run(). Contoh sederhana seeder untuk mengisi data awal ke dalam tabel "role": php artisan make:seed RoleSeeder use Illuminate\\Database\\Seeder; use Illuminate\\Support\\Facades\\DB; class RoleSeeder extends Seeder { public function run() { DB::table('roles')->insert([ ['name' => 'Admin'], ['name' => 'User'], ['name' => 'Editor'], ]); } } Anda dapat menjalankan seeder dengan menggunakan perintah Artisan: php artisan db:seed --class=RoleSeeder Perintah di atas akan menjalankan seeder "RolesTableSeeder" untuk mengisi data awal ke dalam tabel "role". Dengan menggabungkan Migrations dan Seeders, Anda dapat dengan mudah mengelola skema basis data dan data awal dalam aplikasi Laravel Anda dengan terstruktur dan efisien. Ini membantu Anda mempertahankan basis data dalam keadaan yang konsisten dan siap digunakan saat mengembangkan dan memelihara aplikasi. 7. Middleware Middleware adalah fitur penting dalam Laravel yang memungkinkan Anda melakukan tindakan tertentu di antara permintaan masuk dan respon yang dikirimkan oleh aplikasi web Anda. Middleware berada di tengah-tengah proses HTTP request dan response, dan memungkinkan Anda memodifikasi atau memeriksa permintaan sebelum sampai ke route handler, serta memodifikasi atau memeriksa response sebelum dikirimkan kembali ke pengguna. Contoh penggunaan middleware adalah untuk autentikasi pengguna, validasi data, log aktivitas, dan lain-lain. Dengan middleware, Anda dapat mengorganisir tindakan-tindakan ini dalam satu tempat dan menerapkannya pada beberapa route atau grup route tertentu. Setiap middleware adalah kelas PHP yang mengimplementasikan kontrak Illuminate\\Contracts\\Http\\Middleware\\Middleware dan menggunakan metode handle() untuk memproses permintaan. Middleware dapat diberi nama untuk identifikasi dan dapat ditempatkan dalam berbagai urutan sesuai kebutuhan. Contoh sederhana middleware untuk memeriksa apakah pengguna sudah terautentikasi: namespace App\\Http\\Middleware; use Closure; use Illuminate\\Http\\Request; class AuthenticateMiddleware { public function handle(Request $request, Closure $next) { if (!auth()->check()) { return redirect('/login'); } return $next($request); } } Dalam contoh di atas, middleware AuthenticateMiddleware memeriksa apakah pengguna sudah terautentikasi dengan menggunakan fungsi auth()->check(). Jika pengguna belum terautentikasi, maka middleware akan mengalihkan permintaan ke halaman login. Jika pengguna sudah terautentikasi, maka middleware akan melanjutkan permintaan ke route handler selanjutnya dengan menggunakan $next($request). Untuk menerapkan middleware pada route tertentu, Anda bisa menambahkannya ke dalam file app/Http/Kernel.php dalam grup routeMiddleware, dan memberikan alias untuk middleware tersebut: protected $routeMiddleware = [ 'auth' => \\App\\Http\\Middleware\\AuthenticateMiddleware::class, ]; Selanjutnya, Anda dapat menggunakan alias 'auth' pada route yang memerlukan autentikasi: Route::get('/dashboard', function () { // Hanya pengguna yang terautentikasi yang bisa mengakses halaman dashboard })->middleware('auth'); Middleware memungkinkan Anda untuk melakukan banyak tindakan secara modular dan terstruktur dalam aplikasi Laravel Anda. Hal ini membantu meningkatkan keamanan, pengelolaan, dan efisiensi dalam pengembangan aplikasi web. 8. Validation Validation adalah proses memeriksa data yang dikirimkan oleh pengguna untuk memastikan bahwa data tersebut memenuhi kriteria atau format yang diharapkan sebelum data tersebut diproses lebih lanjut oleh aplikasi. Dalam konteks aplikasi web, validasi biasanya dilakukan pada data yang dikirimkan melalui formulir oleh pengguna sebelum data tersebut disimpan dalam basis data atau digunakan untuk tindakan lain dalam aplikasi. Dalam Laravel, Validation dapat dilakukan dengan mudah menggunakan fitur bawaan yang disediakan oleh framework. Validation membantu Anda memastikan bahwa data yang masuk adalah data yang valid dan sesuai dengan aturan atau format tertentu sebelum diolah lebih lanjut. Jika data tidak valid, Anda dapat memberikan pesan error yang sesuai kepada pengguna agar mereka tahu bagaimana cara memperbaiki data yang salah. Berikut adalah contoh bagaimana Anda dapat melakukan validasi dalam Laravel: use Illuminate\\Http\\Request; use Illuminate\\Support\\Facades\\Validator; public function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|min:8|confirmed', ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } // Lanjutkan dengan menyimpan data atau melakukan tindakan lainnya jika data valid } Dalam contoh di atas, kita menggunakan fasilitas validasi dari Laravel dengan membuat validator menggunakan Validator::make(). Kemudian, kita mendefinisikan aturan validation untuk setiap data yang dikirimkan oleh pengguna dalam bentuk array assosiatif. Misalnya, name harus berupa string yang tidak boleh lebih dari 255 karakter, email harus berupa alamat email yang unik dalam tabel "users", dan password harus minimal 8 karakter dan harus dikonfirmasi dengan input lain bernama password_confirmation. Jika ada data yang tidak memenuhi aturan validation, $validator->fails() akan mengembalikan nilai true, dan Anda dapat mengalihkan pengguna kembali ke halaman sebelumnya dengan pesan error dan input sebelumnya yang masih diisi (untuk memudahkan pengguna memperbaiki data). Validation adalah fitur yang sangat penting untuk memastikan data yang masuk ke aplikasi Anda adalah data yang valid dan aman. Dengan menggunakan fitur validation yang disediakan oleh Laravel, Anda dapat lebih mudah dan efisien dalam mengelola data yang masuk dan menghindari potensi masalah keamanan dan kesalahan data. 9. Authentication dan Authorization Authentication dan Authorization adalah dua konsep penting dalam pengembangan aplikasi web yang berfokus pada keamanan dan kontrol akses pengguna. A. Autentikasi (Authentication): Authentication adalah proses verifikasi identitas pengguna untuk memastikan bahwa pengguna adalah orang yang memiliki akun tersebut. Dalam konteks aplikasi web, autentikasi biasanya melibatkan verifikasi username dan password atau metode lainnya yang dapat membuktikan identitas pengguna. Contoh Authentication: Misalnya, pada halaman login, pengguna diminta untuk memasukkan username dan password. Setelah mengirimkan formulir, aplikasi akan memeriksa apakah username dan password yang dimasukkan sesuai dengan yang ada dalam basis data pengguna. Jika sesuai, maka pengguna dianggap terautentikasi dan diizinkan untuk mengakses bagian dari aplikasi yang memerlukan autentikasi. public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { // Autentikasi berhasil, lakukan tindakan selanjutnya return redirect()->intended('/dashboard'); } else { // Autentikasi gagal, kembali ke halaman login dengan pesan error return redirect()->back()->withErrors(['email' => 'Email atau password salah.']); } } B. Otorisasi (Authorization): Authorization adalah proses yang dilakukan setelah autentikasi untuk menentukan apakah pengguna memiliki izin atau wewenang untuk mengakses sumber daya atau melakukan tindakan tertentu dalam aplikasi. Dengan kata lain, otorisasi menentukan apa yang diizinkan dan apa yang tidak diizinkan untuk dilakukan oleh pengguna terautentikasi. Contoh Authorization: Misalnya, dalam aplikasi forum, hanya pengguna yang membuat postingan tertentu yang diizinkan untuk mengedit atau menghapus postingan tersebut. Otorisasi akan memverifikasi apakah pengguna yang sedang login memiliki izin untuk mengakses fitur tersebut sebelum mengizinkan aksi tersebut dilakukan. public function update(Request $request, $id) { $post = Post::findOrFail($id); if ($post->user_id === auth()->user()->id) { // Pengguna yang sedang login adalah pemilik postingan, izinkan untuk mengedit $post->update($request->all()); return redirect()->route('posts.show', ['post' => $post])->with('success', 'Postingan berhasil diperbarui.'); } else { // Pengguna tidak memiliki izin untuk mengedit postingan return redirect()->route('posts.show', ['post' => $post])->with('error', 'Anda tidak diizinkan untuk mengedit postingan ini.'); } } Dalam contoh di atas, sebelum mengizinkan pengguna untuk mengedit postingan, kita memverifikasi apakah user_id dari postingan cocok dengan id pengguna yang sedang login. 10. Artisan Console Artisan Command Dalam Laravel Artisan Console adalah bagian dari kerangka kerja Laravel yang memungkinkan pengguna untuk berinteraksi dengan aplikasi melalui baris perintah. Artisan menyediakan berbagai perintah yang dapat digunakan untuk menjalankan tugas-tugas tertentu, seperti migrasi database, pembuatan model, pengaturan lingkungan, dll, jadi dapat disimpulkan Artisan Console berfungsi sebagai alat untuk mengelola berbagai tugas pada aplikasi Laravel. Berikut adalah beberapa aspek penting tentang Artisan Console di Laravel: Menjalankan Perintah: Artisan Console dapat diakses melalui terminal atau command prompt dengan menjalankan perintah php artisan. Ini akan menampilkan daftar perintah yang tersedia.Daftar Perintah Bawaan: Laravel sudah menyediakan banyak perintah bawaan, seperti:make:controller: Untuk membuat controller baru.make:model: Untuk membuat model baru.make:migration: Untuk membuat file migrasi database baru.migrate: Untuk menjalankan migrasi database.db:seed: Untuk memasukkan data awal ke dalam database.route:list: Untuk melihat daftar rute yang telah didefinisikan dalam aplikasi.Dan banyak lagi.Membuat Perintah Kustom: Selain perintah bawaan, pengguna juga dapat membuat perintah kustom mereka sendiri untuk tugas-tugas khusus yang dibutuhkan dalam aplikasi. Ini memungkinkan pengguna untuk mengotomatisasi tugas-tugas yang sering dilakukan.Argumen dan Opsi: Perintah Artisan dapat menerima argumen dan opsi. Argumen adalah nilai yang diperlukan oleh perintah untuk berfungsi, sedangkan opsi adalah argumen yang bersifat opsional. Misalnya, perintah untuk membuat model mungkin memerlukan argumen "nama model", tetapi opsi seperti "--table" untuk menentukan nama tabel yang digunakan oleh model.Menampilkan Output: Artisan Console memberikan output yang informatif saat menjalankan perintah, seperti pesan kesalahan jika ada, atau informasi tambahan tentang tugas yang dijalankan.Environment Configuration: Dalam beberapa perintah, Artisan dapat menggunakan environment untuk mempengaruhi perilaku perintah yang berjalan di lingkungan development atau production. Artisan Console adalah salah satu fitur kunci yang membuat Laravel menjadi framework yang kuat dan efisien dalam pengembangan aplikasi web. Dengan menggunakan Artisan, pengembang dapat mengotomatisasi banyak tugas repetitif, meningkatkan produktivitas, dan menjaga konsistensi kode dalam proyek mereka. Kesimpulan Dari artikel "10 Hal Dasar yang Perlu Dipelajari tentang Laravel" dapat disimpulkan bahwa Laravel adalah sebuah framework PHP yang sangat kuat dan populer untuk pengembangan aplikasi web. Artikel ini telah membahas sepuluh hal dasar yang perlu dipahami oleh pengembang pemula maupun yang berpengalaman dalam membangun proyek dengan menggunakan Laravel. Dengan memahami dan menguasai kesepuluh hal dasar tersebut, para pengembang dapat mengoptimalkan potensi Laravel dan membangun aplikasi web yang kuat, efisien, dan handal. Semangat belajar dan eksplorasi akan menjadi kunci kesuksesan dalam mengembangkan aplikasi dengan framework Laravel. Jadi tunggu apa lagi, di BWA kita juga menyediakan Bootcamp Membangun Sebuah Website Menggunakan Laravel bagi yang masih pemula dan ingin membangun jenjang karir sebagai Laravel Developer, atau bagi anda yang ingin lebih mendalami laravel bisa cek Kelas Mastering Laravel 8: Bikin Website jual Furniture. Dengan mengikuti kelas yang ada di BWA anda juga dapat menambah portofolio dan menambah ilmu untuk memulai karir Laravel Developer. Karena dari BuildWith Angga, #semuabisabelajar

Kelas 5 Package Vue JS Untuk Front End Developer di BuildWithAngga

5 Package Vue JS Untuk Front End Developer

Vue.js merupakan salah satu framework JavaScript yang telah memenangkan hati banyak pengembang web di seluruh dunia. Framework ini memudahkan pengembang dalam membangun interface pengguna yang interaktif dan aplikasi Single Page Application (SPA) dengan efisien. Sifatnya yang reaktif memungkinkan pengembang untuk membuat aplikasi yang responsif dan mudah dipahami. 5 Package Vue JS Untuk Front End Developer Dalam dunia Front End Development, pemilihan library atau package yang tepat sangat penting untuk mendukung proses pengembangan yang lebih efisien dan produktif. Jika Anda adalah developer yang menggunakan Vue.js, berikut adalah lima package atau pustaka yang direkomendasikan dan contoh implementasinya: 1. Vue Router Vue Router for Vue.js Vue Router adalah package resmi Vue.js yang digunakan untuk membuat aplikasi Single Page Application (SPA). Dengan Vue Router, Anda dapat mengatur navigasi antar halaman tanpa melakukan refresh halaman. Misalnya, kita dapat mengatur routing seperti ini: import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) const routes = [ { path: '/', component: Home }, { path: '/about', component: About }, ] const router = new VueRouter({ routes // short for `routes: routes` }) new Vue({ router, }).$mount('#app') Keuntungan: Mudah digunakan dan diintegrasikan dengan aplikasi Vue.js.Mendukung lazy loading dan dynamic routing.Dapat melakukan transisi halaman yang halus dengan efek transisi kustom. Kekurangan: Kurva belajar cukup tinggi untuk pemula.Konfigurasi bisa menjadi rumit untuk aplikasi dengan routing yang kompleks. 2. Vuex Vuex Development Cycle Vuex adalah library untuk state management di Vue.js. Dengan Vuex, Anda dapat mengatur state aplikasi yang dibutuhkan oleh banyak komponen dalam satu tempat. Contoh implementasi Vuex: import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } } }) Keuntungan: Menyediakan satu sumber kebenaran (single source of truth) untuk state aplikasi.Memudahkan pengelolaan state antara komponen.Mendukung plugin untuk log perubahan state dan integrasi dengan devtools. Kekurangan: Bisa menjadi overkill untuk aplikasi sederhana.Kurva belajar yang cukup tinggi, terutama untuk pemula. 3. Vuetify Vuetify Project Vuetify adalah library UI/UX yang menyediakan komponen UI yang siap pakai. Dengan Vuetify, Anda dapat membuat antarmuka pengguna yang indah dengan upaya minimal. Contoh penggunaan komponen Vuetify: <v-app> <v-main> <v-container> <v-btn color="primary">Primary Button</v-btn> </v-container> </v-main> </v-app> Keuntungan: Menyediakan berbagai komponen UI yang siap pakai.Mendukung Material Design.Responsif dan kompatibel dengan semua browser modern. Kekurangan: Customisasi tema bisa menjadi rumit.Ukuran library yang cukup besar bisa mempengaruhi performa aplikasi. 4. Vue CLI Vue CLI for Vue.js Vue CLI adalah alat Command Line Interface (CLI) resmi Vue.js yang membantu proses setup proyek baru, serta otomatisasi pengujian, linting, dan proses build lainnya. Untuk membuat proyek baru menggunakan Vue CLI, cukup jalankan command berikut di terminal: vue create my-project Dan untuk membuat proyek baru menggunakan Vue GUI serta mengelola proyek Vue.js yang ada, jalankan command berikut: vue ui Vue CLI Service Keuntungan: Mudah membuat proyek baru dengan setup yang fleksibel.Mendukung hot-reloading, linting, testing, dan banyak lagi.Plugin Vue CLI memperluas kemampuan Vue CLI. Kekurangan: Beberapa konfigurasi bisa menjadi rumit untuk pemula.Kurang fleksibel dibandingkan dengan setup manual. 5. Nuxt.js Nuxt.js Vue Framework Nuxt.js adalah framework berbasis Vue.js yang dirancang untuk membuat aplikasi Vue.js dengan server-side rendering, static site generation, dan single page app. Contoh membuat halaman baru di Nuxt.js cukup dengan membuat file .vue di direktori pages, misalnya: <template> <h1>About Us</h1> </template> Keuntungan: Mendukung server-side rendering, static site generation, dan single page app.Konfigurasi default yang kuat dan kerangka kerja yang terstruktur.Menyediakan fitur pre-rendering dan peningkatan SEO. Kekurangan: Kurva belajar cukup tinggi, terutama untuk pengguna Vue.js pemula.Konfigurasi bisa menjadi kompleks dan sulit dikelola untuk aplikasi skala besar. Semua package diatas bukan hanya memudahkan proses pengembangan, tetapi juga membantu developer untuk menghasilkan kode yang lebih rapi, terstruktur, dan mudah dipelihara. Oleh karena itu, sangat direkomendasikan bagi setiap Front End Developer yang menggunakan Vue.js untuk mengenal dan memanfaatkan package-package ini. Ada keuntungan dan kekurangan masing-masing dari masing-masing package, dan pemilihan package yang tepat akan bergantung pada kebutuhan spesifik proyek Anda. Memahami kekuatan dan kelemahan tiap package ini dapat membantu anda membuat keputusan yang lebih baik dalam memilih alat yang tepat untuk proyek Anda. Kesimpulan Memahami Vue.js sebagai salah satu framework JavaScript populer adalah langkah penting bagi setiap Front End Developer. Dengan sifatnya yang reaktif, dukungan untuk komponen, dan fleksibilitas yang tinggi, Vue.js dapat memudahkan dan mempercepat proses pengembangan web. Dengan dukungan dari komunitas yang kuat dan berkembang, Vue.js juga menawarkan beragam pustaka dan alat yang dapat membantu Anda dalam membangun aplikasi yang beragam dan kompleks. Setiap package yang telah kita bahas sebelumnya, seperti Vue Router, Vuex, Vuetify, Vue CLI, dan Nuxt.js, memberikan berbagai fungsionalitas yang dapat memudahkan proses pengembangan aplikasi Vue.js Anda. Namun, memilih package mana yang akan digunakan tergantung pada kebutuhan spesifik proyek Anda. Jika kalian masih penasaran dan ingin memperdalam Vue.js, buildwithangga.com telah menyediakan kelas gratis dan juga berbayar (premium) yang bisa kalian pelajari, seperti kelas Vue JavaScript Framework, Full-Stack Golang Vue NuxtJS: Website Crowdfunding, dan Full-Stack Web Developer: Toko Online, serta masih banyak lagi kelas lainnya. Dengan mengikuti kelas-kelas diatas anda akan dibekali portfolio yang sangat berkelas dan diajarkan dari awal hingga mahir. Semoga artikel ini membantu Anda dalam memahami Vue.js dan bagaimana package-package ini dapat memperkaya pengalaman pengembangan Anda. Selamat mencoba dan selamat mengembangkan aplikasi luar biasa dengan Vue.js!

Kelas Membuat Form Login Menggunakan Tailwind CSS di BuildWithAngga

Membuat Form Login Menggunakan Tailwind CSS

Jika kalian adalah seorang Front-end web developer atau sedang mengerjakan tampilan website, maka perlu mencoba framework CSS yang satu ini. Tailwind CSS adalah salah satu framework CSS populer yang bisa mempermudah developer untuk membangun tampilan website yang terlihat modern tanpa perlu membuat CSS sendiri dari awal. Pada Tailwind CSS sudah disediakan berbagai class utilities yang bisa kita gunakan secara langsung, dengan menggunakan class utilities yang sudah disediakan tersebut akan mempercepat dan mempermudah kita untuk membuat tampilan dari versi prototipe hingga versi rilis nanti. Membuat Form Login Menggunakan Tailwind CSS Login page adalah bagian dari website di mana pengguna diminta untuk memasukkan informasi akun yang berupa username atau email dan password, agar user bisa mengakses sebagian atau seluruh fitur dari website tersebut. Form login biasanya merupakan salah satu bagian website yang cukup sederhana dari segi tampilan, karena memang tidak banyak yang perlu kita buat dan juga untuk pengguna berinteraksi pada halaman tersebut. Pada artikel ini kita akan mencoba membuat form login menggunakan Tailwind CSS mulai dari instalasi Tailwind CSS dengan CDN hingga membuat tampilan website. tanpa berlama-lama lagi mari kita coba. Install Tailwind CSS Menggunakan CDN Cara ini adalah cara yang paling sederhana untuk bisa menggunakan Tailwind CSS pada proyek website kita dan sangat cocok jika kita hanya ingin mencoba atau hanya sekedar untuk tahap pengembangan. Yang perlu dilakukan cukup sederhana, kita siapkan terlebih dahulu file atau template HTML yang akan kita gunakan. lalu salin barisan kode berikut. <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <script src="<https://cdn.tailwindcss.com>"></script> </head> <body> <h1 class="text-3xl font-bold underline">Membuat Form Login Menggunakan Tailwind CSS</h1> </body> </html> Jika sudah dan berhasil menjalankan Tailwind CSS, maka tampilan website kita akan terlihat seperti berikut. Tampilan awal website setelah instalasi berhasil Membuat Kerangka HTML Untuk mempermudah kita melihat bagian-bagian yang akan kita beri style, kita akan membuat kerangkan HTML terlebih dahulu. Langkah ini akan memberikan kita gambaran seperti apa elemen-elemen tersebut akan kita susun dan diberi style. teman-teman bisa salin code berikut pada template HTML yang sudah ada, terdapat tambahan pada element body dan kita akan menggunakan icon dari google. <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link href="<https://fonts.googleapis.com/icon?family=Material+Icons>" rel="stylesheet" /> <script src="<https://cdn.tailwindcss.com>"></script> </head> <body> <div> <div id="Banner"> <div> <h2><i class="material-icons" style="font-size: 36px">map</i>TRAVELLING</h2> </div> <div> <p>TIME TO TRAVEL THE WORLD</p> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Non dignissimos nam optio eius delectus possimus nostrum dolores amet maiores corporis!</p> </div> </div> <div id="FormSection"> <h1><span>Welcome Back! </span><br />Journey Begins Here</h1> <div id="Forms"> <form> <div> <label for="email">Email</label> <input type="email" id="email" name="email" placeholder="Enter your email" required /> </div> <div> <label for="password">Password</label> <div> <input type="password" id="password" name="password" placeholder="Enter your password" required /> <i class="material-icons" style="font-size: 16px">visibility</i> </div> </div> <button type="submit">Login</button> </form> <div>or</div> <a href="#"><img src="ic_google.svg" alt="google" width="18px" /> Sign-in with Google</a> <div> <p>Don't have an account? <a href="#">Register here</a></p> </div> </div> </div> </div> </body> </html> Jika berhasil dan berjalan dengan baik, maka tampilan website kita akan terlihat seperti dibawah ini. setelah tahap ini kita akan memberikan style pada elemen yang ada dengan Tailwind CSS. Tampilan website tanpa style dari Tailwind CSS Styling Layout Menggunakan Tailwind CSS Setelah kita membuat kerangka HTML, kita perlu memberikan style dasar terlebih dahulu, langkah ini akan semakin memperjelas gambaran style seperti apa yang akan kita gunakan. Pada tahap ini kita akan berikan style pada elemen parent yang akan menentukan letak elemen kecil-kecil yang ada didalamnya. kita bisa salin code berikut pada elementnya masing-masing. Pertama, kita akan berikan class pada elemen parent utama dibawah elemen <body> dan pada elemen #banner. Pada #banner kita akan berikan background image, kita bisa menambahkannya dengan fitur arbitrary values bg-[url('FILE_PATH')]. Elemen #banner akan memliki lebar dengan ukuran 7/12, yang artinya jika kita ibaratkan dengan kolom maka #banner lebarnya 7 kolom, dan menggunakan flexbox dengan konten yang akan diberi jarak otomatis di antara setiap konten pada elemen #banner. <body> <div class="w-100 h-screen flex flex-row text-[#34364A]"> <div id="Banner" class="w-7/12 bg-[url('banner4.jpg')] bg-cover text-white flex flex-col justify-between font-sans"> Selanjutnya, kita berikan style pada elemen #FormSection. Mirip seperti elemen #banner, namun kali ini kita tidak menambahkan gambar dan lebarnya 5/12. <div id="FormSection" class="w-5/12 flex flex-col justify-center items-center"> Tampilannya akan terlihat seperti ini. Tampilan website setelah diberikan style dasar pada layoutnya Styling Elemen Dengan Tailwind CSS Selanjutnya, setelah elemen sudah pada posisinya. kira akan mulai dari elemen sebelah kiri yang ada pada #banner. Pada langkah ini kita akan mengubah style pada text yang ada dan memberikan padding, serta sedikit background gradien hitam pada text paling bawah agar lebih mudah dibaca dan ada efek terpisah dari background image. Kode pada elemen #banner akan menjadi seperti berikut. <div id="Banner" class="w-7/12 bg-[url('banner4.jpg')] bg-cover text-white flex flex-col justify-between font-sans"> <div class="px-8 pt-8"> <h2 class="text-3xl"><i class="material-icons" style="font-size: 36px">map</i>TRAVELLING</h2> </div> <div class="bg-gradient-to-t from-black pl-8 pb-8 pr-[25%]"> <p class="text-6xl mb-6 font-medium leading-[75px] tracking-wide">TIME TO TRAVEL THE WORLD</p> <p class="text-md text-slate-400">Lorem ipsum dolor sit amet consectetur adipisicing elit. Non dignissimos nam optio eius delectus possimus nostrum dolores amet maiores corporis!</p> </div> </div> Tampilannya akan menjadi seperti berikut. Tampilan website dengan bagian banner sudah diberi style Sekarang, kita akan masuk pada elemen #FormSection. Konten atau elemen child pada #FormSection akan kita buat berada di tengah dengan bantuan flexbox dan text align. Pertama, kita ubah bagian judul paling atas menjadi ke tengah dan berikan style pada font. <h1 class="text-center mb-8 text-3xl font-bold"><span class="text-xl">Welcome Back! </span><br />Journey Begins Here</h1> Selanjutnya, pada bagian form jika kita perhatikan input field masih berada dalam satu baris dengan labelnya, kita akan pisahkan pada baris masing-masing dengan bantuan flexkbox dan kita beri jarak. Pada bagian password kita akan tambahkan icon untuk fitur lihat password, karena kita menggunakan 2 elemen berbeda, maka kita akan membuat posisi icon menjadi absolute dan berapa di atas elemen input password. tidak lupa juga kita memberikan style pada elemen input dan button. <div id="Forms" class="flex flex-col gap-y-6 text-center w-7/12"> <form class="text-left font-medium flex flex-col gap-[16px]"> <div class="flex flex-col"> <label class="mb-2" for="email">Email</label> <input type="email" id="email" class="border rounded-md border-gray-400 hover:border-black focus:border-black p-[8px_10px]" name="email" placeholder="Enter your email" required /> </div> <div class="flex flex-col"> <label class="mb-2" for="password">Password</label> <div class="relative"> <input type="password" id="password" class="border rounded-md border-gray-400 hover:border-black focus:border-black p-[8px_10px] w-full" name="password" placeholder="Enter your password" required /> <i class="material-icons absolute top-[33%] right-[15px]" style="font-size: 16px">visibility</i> </div> </div> <button type="submit" class="text-center text-white p-[8px_10px] w-full bg-blue-700 rounded-md">Login</button> </form> <div>or</div> <a href="#" class="border rounded border-gray-400 hover:border-black focus:border-black p-[8px_10px]"><img src="ic_google.svg" alt="google" class="inline mr-[6px]" width="18px" /> Sign-in with Google</a> <div> <p>Don't have an account? <a href="#" class="text-blue-700">Register here</a></p> </div> </div> Jika semua sudah sesuai makan tampilan website kita akan terlihat seperti ini. Tampilan website akhir setelah seluruh style berhassil diaplikasikan Penutup Dalam artikel ini kita sudah mencoba untuk membuat form login dengan dua sisi tampilan, sebelah kiri berikan konten untuk mengisi ruang kosong dan bagian kanan terdapat form untuk login. Jika kita lihat kembali dari awal, kita tidak membuat custom CSS sendiri, baik pada file CSS terpisah maupun di dalam file HTML. Hal tersebut adalah keuntungan jika menggunakan framework CSS seperti Tailwind CSS. Jika teman-teman masih penasaran dengan Tailwind CSS, bisa mencoba kelas Tailwind CSS yang ada pada buildwithangga.com, seperti kelas CSS Tailwind Web Design dan Master Class: React JS dan Tailwind CSS Website Development, serta masih banyak lagi kelas lainnya.

Kelas [TELAH TERISI] Lowongan Magang Jr Frontend Vue JS Bandung di BuildWithAngga

[TELAH TERISI] Lowongan Magang Jr Frontend Vue JS Bandung

Goal Bekerja sama dengan designer dan developer di BuildWithAngga dalam mengembangkan platform belajar ui ux design dan software development secara online sehingga kita dapat membantu lebih banyak orang untuk upgrade skills mereka dengan mudah. Details Magang offline di Starbucks PVJ setiap hari Senin, Rabu, dan KamisSelasa dan Jumat magang dari rumah (online)Biaya Starbucks akan ditanggung oleh BuildWithAngga Responsibilities Menganalisa perkembangan teknologi website terbaruBelajar membuat fitur-fitur pada website BuildWithAnggaBelajar hal baru di dunia programming dengan resource dari BuildWithAngga Requirements Telah mengerjakan challenge sederhana yang tersedia di bawahSedang tidak bekerja full-time/part-time/freelancerSedang tidak sekolah SMA/SMKJika sedang kuliah maka minimal semester 4Fresh graduate (Sarjana/SMA) boleh applySudah mengikuti minimal 1 kelas Premium di BWATinggal di kota Bandung atau bisa pindah ke Bandung Benefits Free akses 1 kelas Premium bebas pilihMagang offline di Starbucks 3x per mingguBelajar hal baru pada sebuah real-world projectUang kompensansi/jajan bulanan Challenge Buatlah sebuah halaman katalog kelas sederhana (bisa contek punya BuildWithAngga) yang tersedia list kelas beserta dengan filter tipe kelas Starter, Freemium, dan Premium. Gunakan data dummy sehingga projek tersebut dapat digunakan secara interaktif untuk melakukan filtering kelas menggunakan Vue atau Nuxt JS. Jika sudah selesai, upload projek tersebut ke Netlify sehingga dapat diakses secara online dan untuk direview oleh tim BuildWithAngga. How to Apply Siapkan Resume (CV) & link Netlify (hasil test) dengan rapihIsi body email dengan hasil test di atasIsi subject email dengan Magang Frontend Vue Juli 2023Kirim lamaran ke email [email protected] semoga menjadi tercepat dan terbaik Lowongan dibuka pada tanggal 13 Juli 2023 dan ditutup ketika kami sudah mendapatkan beberapa kandidat yang cocok, Kami akan menambahkan informasi CLOSED pada judul loker apabila lowongan magang ini sudah ditutup dan kami sudah mendapatkan kandidat. Informasi selengkapnya bisa DM melalui Instagram kami BuildWith Angga. Terima kasih.

Kelas Lowongan Magang Jr Backend Laravel PHP 2023 di BuildWithAngga

Lowongan Magang Jr Backend Laravel PHP 2023

Goal Bekerja sama dengan designer dan developer di BuildWithAngga dalam mengembangkan platform belajar ui ux design dan software development secara online sehingga kita dapat membantu lebih banyak orang untuk upgrade skills mereka dengan mudah. Details Magang online dari rumahJam kerja 9 pagi s/d 5 sore Hari kerja Senin s/d JumatMagang selama 3-6 bulanSetelah magang berkesempatan kerja full-time Responsibilities Menganalisa perkembangan teknologi website terbaruBelajar membuat fitur-fitur pada website BuildWithAngga Requirements Telah mengerjakan challenge sederhana yang tersedia di bawahSedang tidak bekerja full-time/part-time/freelancerSedang tidak sekolah SMA/SMKJika sedang kuliah maka minimal semester 2Fresh graduate (Sarjana/SMA) boleh applySudah mengikuti minimal 1 kelas Premium di BWA Benefits Free akses 1 kelas Premium bebas pilihBelajar hal baru pada sebuah real-world projectUang kompensansi/jajan bulanan Challenge Buatlah ERD sederhana terkait projek website yang dapat membantu orang membeli tiket pesawat, tidak harus lengkap tapi fokus pada bagian utamanya saja. Simpan challenge ERD tersebut sebagai bentuk .PDF dan siapkan untuk dikirim melalui email di bawah ini. How to Apply Siapkan Resume (CV) & Hasil test dengan rapihIsi body email dengan hasil test di atasIsi subject email dengan Magang Backend Laravel 2023/2024Kirim lamaran ke email [email protected] semoga menjadi tercepat dan terbaik Lowongan dibuka pada tanggal 5 September 2023 dan ditutup ketika kami sudah mendapatkan beberapa kandidat yang cocok, Kami akan menambahkan informasi CLOSED pada judul loker apabila lowongan magang ini sudah ditutup dan kami sudah mendapatkan kandidat. Informasi selengkapnya bisa DM melalui Instagram kami BuildWith Angga. Terima kasih.

Kelas Proses Rendering Pada NextJS di BuildWithAngga

Proses Rendering Pada NextJS

NextJS merupakan salah satu framework yang populer digunakan untuk mengembangkan sebuah website. NextJS juga merupakan framework yang berbasis Javascript serta dibangun di atas library ReactJS. Salah satu keunggulan dari NextJS yaitu kemampuannya dalam membuat sebuah aplikasi website yang memiliki performa SEO (Search Engine Optimization) yang tinggi sehingga jika kamu membuat website menggunakan NextJS, website kamu akan lebih mudah untuk dikenali oleh mesin pencari Google. Proses Rendering Pada NextJS Saat mengakses sebuah website, pengguna akan melakukan sebuah permintaan untuk mengakses website tersebut. Permintaan tersebut akan dikrim ke dalam sebuah server dan server akan merespon permintaan pengguna dan akan mengirim balik respon tersebut ke pengguna. Seperti jika pengguna ingin mengakses tampilan dari sebuah website maka server akan mengirimkan data berupa file HTML, CSS, dan Javascript kepada pengguna sehingga pengguna dapat melihat visual dari website yang diakses. Proses untuk menampilkan dari kode HTML, CSS, dan Javascript menjadi tampilan visual itu disebut sebagai rendering. NextJS menyediakan rendering dapat dilakukan dalam dua sisi, yang pertama dari sisi klien/pengguna dan dari sisi server. Proses Rendering pada Sisi Klien Rendering pada sisi klien berarti proses rendering dilakukan pada sisi klien, artinya server hanya bertugas untuk mengirimkan file HTML dan Javascript dari suatu website ke perangkat client. Setelah kode tersebut diterima oleh browser klien, kode tersebut baru akan diproses sehingga klien bisa melihat visual dari website tersebut. Hal tersebut dapat memberikan keuntungan berupa website menjadi lebih interaktif terhadap pengguna dan menjadi lebih responsif. Jika sebuah website memiliki konten yang kompleks atau memiliki banyak interaksi karena proses rendering dilakukan di sisi klien sehingga server dapat lebih fokus untuk memproses pengolahan data dan memberikan data yang diperlukan. "use client" import React, { useEffect } from 'react' import { useState } from 'react'; import axios from 'axios'; export default function CsrPage() { const [dateTime, setDateTime] = useState(); const [loading, setLoading] = useState(true); useEffect(() => { const fetchData = async () => { try { const response = await axios .get('https://worldtimeapi.org/api/ip') .then((res) => { setDateTime(res.data.datetime); }) console.log(response.data.datetime); } catch (error) { console.error(error); } finally { setLoading(false); } } fetchData(); }, []); return ( <div> {loading ? ( <p>Loading...</p> ) : ( <div> <h1>{dateTime}</h1> </div> )} </div> ) } Pada kode tersebut menggunakan useEffect sebagai indikator bahwa program tersebut mengambil data dengan memprosesnya pada sisi klien. Jika program tersebut dijalankan maka ketika browser mencoba untuk mengambil data maka akan menampilkan tulisan loading selama beberapa detik baru browser akan menampilkan data dari suatu API. Proses Rendering di Sisi Server Berbeda dengan sebelumnya rendering pada sisi server memproses kode HTML dan Javascript. Jadi sebelum data dikirimkan ke klien server akn memproses terlebih dahulu kode berupa HTML dan Javascript dari website yang akan diakses. Setelah selesai maka server akan mengirimkan hasil proses tersebut ke sisi klien. Hal ini dapat memeberikan keuntungan berupa proses memuat tampilan website menjadi lebih cepat karena tampilan website telah diproses sebelumnya pada server. Selain itu mesin pencari juga dapat dengan mudah mengakses konten yang dihasilkan oleh server sehingga membuatnya menjadi SEO-friendly. import React from 'react' import axios from 'axios'; export default function SsrPage({dateTime} ) { return ( <div> <h2>{dateTime}</h2> </div> ) } export const getServerSideProps = async () => { const res = await axios.get('https://worldtimeapi.org/api/ip'); const dateTime = res.data.datetime; return { props: { dateTime }, }; }; Pada contoh di atas, fungsi getServerSideProps() adalah sebuah fungsi async yang digunakan untuk melakukan fetching data pada sisi server. Data diambil melalui permintaan ke endpoint API menggunakan Axios. Data yang telah diambil kemudian dikembalikan sebagai objek dengan properti props, dan properti tersebut akan menjadi properti yang dikirimkan ke komponen SsrPage untuk dirender dengan data yang telah diambil pada sisi server. Dengan menggunakan getServerSideProps(), proses fetching data akan dilakukan pada sisi server untuk setiap permintaan yang masuk, sehingga halaman dapat dirender dengan data yang selalu terbaru. Kesimpulan Dalam prakteknya, kombinasi dari rendering pada sisi klien dan rendering pada sisi server dapat digunakan untuk memanfaatkan keuntungan dari masing-masing pendekatan. Pendekatan ini dikenal sebagai Hydration, di mana rendering pada sisi server digunakan untuk tampilan awal yang cepat dan SEO-friendly, sementara rendering pada sisi klien mengambil alih untuk interaksi selanjutnya dan memperbarui tampilan secara dinamis di browser. Jika kamu tertarik untuk belajar pengembangan website, kamu bisa mengikuti kelas NextJS Basic bisa meggunakan NextJS kamu juga perlu pengetahuan dasar tentang Javascript dan ReactJS kamu bisa mempelajari hal tersebut di buildwithangga.com

Kelas Learn and Earn: Kelas Freelance Website Developer 2023 di BuildWithAngga

Learn and Earn: Kelas Freelance Website Developer 2023

Goals BuildWithAngga sedang meningkatkan kualitas belajar pada kelas gratis, oleh karena itu kami butuh bantuan Anda untuk memberikan feedback pada materi kelas Freelance Website Developer with WordPress Elementor. Tata Cara Selesaikan materi dan projek pada kelas berikut Freelance Website DeveloperDokumentasikan hasil belajar projek kelas tersebut, boleh berupa video di upload ke YouTube atau Live websiteTulis feedback dengan details terkait materi kelas tersebut tentang apa yang perlu ditingkatkan lagi oleh tiap mentor, semakin details semakin bagus.Lalu submit hasil challenge pada form berikut Form Submit Freelance WP Pemenang Kami akan memilih 5 pemenang dengan kriteria berikut: Sudah mengikuti minimal 1 kelas Premium di BuildWithAnggaMemberikan feedback yang details sehingga mudah dipahami oleh kamiMenyertakan nomor HP untuk kami berikan hadiah Rp 100.000 per orang Tanggal Dibuka pada tanggal 8 Juni dan ditutup pada tanggal 22 Juni 2023. Pemenang diumumkan melalui Instagram BuildWithAngga pada tanggal 1 Juli 2023.

Kelas Learn and Earn: Ebook HTML 5 Website Development di BuildWithAngga

Learn and Earn: Ebook HTML 5 Website Development

EVENT CLOSED. PEMENANG AKAN SEGERA DI-UPDATE. Goals BuildWithAngga ingin membantu mereka yang ingin belajar melalui teks dibandingkan video pada kelas Premium kami umumnya. Oleh karena itu kami membutuhkan bantuan kalian untuk mempelajari Ebook HTML5 Website Development buatan BuildWithAngga dan mengikuti step-by-step untuk memberikan feedback yang dapat meningkatkan kualitas ebook tersebut. Tata Cara Pelajari ebook berikut HTML 5 Website DevelopmentBuatlah .ZIP projek hasil belajar dari ebook tersebutIsi form feedback pada link berikut joinbwa.com/fbehtml Pemenang Kami akan memilih 10 pemenang dengan kriteria berikut: Sudah mengikuti minimal 1 kelas PremiumMemberikan feedback yang details sehingga mudah dipahami oleh kamiMenyertakan nomor HP untuk kami berikan saldo Rp 50.000 per orang Tanggal Dibuka pada tanggal 20 Mei dan ditutup pada tanggal 1 Juni 2023. Pemenang diumumkan melalui Instagram BuildWithAngga pada tanggal 10 Juni 2023.

Kelas Lowongan Kerja Full Time Backend PHP Laravel (Bandung) di BuildWithAngga

Lowongan Kerja Full Time Backend PHP Laravel (Bandung)

Goals Bekerja sama dengan designer dan quality assurance untuk membangun fitur menggunakan framework PHP Laravel sesuai kebutuhan pengguna website BuildWithAngga. Responsibilities Membuat fitur dengan LaravelMeningkatkan perfomance websiteMeningkatkan security pada websiteMendokumentasikan hasil pekerjaan dengan baik Requirements Minimal lulusan S1 IT atau SIMinimal pengalaman kerja backend 1 tahunKerja full time on site di BandungJika dari luar bandung bisa apply dan pindah ke bandungSedang tidak bekerja freelancer, part time, full timeBekerja dari rumah namun akan ada sesi kerja offline bersama-sama di Starbucks Bekerja di Starbucks Mall PVJ Bandung setiap hari Senin, Rabu, JumatHari Selasa dan Kamis bekerja dari rumahBiaya kopi starbucks akan ditanggung oleh BuildWithAnggaMinimal telah mengikuti 1 kelas Premium di BuildWith Angga (untuk memastikan bahwa kamu sudah mengenal cara belajar di BWA)Mengerjakan challenge sederhana yang tersedia di bawah Challenge Buatlah ERD sederhana untuk entity Teacher, Class, Student, dan My ClassBuatlah flowchart sederhana untuk alur Student mengikuti salah satu kelas gratis di BuildWithAngga Simpan hasil challenge sebagai bentuk format .PDF How to Apply Siapkan Resume (CV) & jawaban test pada file .PDFIsi subject email dengan Apply Backend 2023 BandungKirim lamaran ke email [email protected] Lowongan dibuka pada tanggal 26 April 2023 dan ditutup ketika kami sudah mendapatkan beberapa kandidat yang cocok. Informasi penerimaan akan diumumkan pada Instagram BuildWithAngga, stay tuned.

Kelas Tutorial Fundamental Python: Tipe Data Boolean di BuildWithAngga

Tutorial Fundamental Python: Tipe Data Boolean

Sebagai seorang programmer, kita membangun aplikasi atau website untuk membantu hidup masyarakat menjadi lebih mudah seperti membeli makanan, tiket kereta, baju baru, semuanya dilakukan secara online melalui laptop atau smartphone. Tipe data Boolean memiliki peran penting untuk mewujudkan hal terbesar itu, Boolean memiliki dua nilai yaitu adalah True dan False, kita sering menggunakan boolean apabila ingin membuat sebuah keputusan yang terkait dari alur pada aplikasi atau website tersebut. Contoh penerapan tipe data Boolean Misalnya kita bikin aplikasi beli tiket pesawat, hal pertama dilakukan pengguna adalah login terlebih dahulu kepada aplikasi tersebut. Jika pengguna belum login (atau False) maka diarahkan kepada halaman login atau sign up, jika sudah berhasil login (berubah jadi True) maka diarahkan kepada halaman browsing tiket pesawat. Well, kurang lebih seperti itu contoh penerapan tipe data boolean dalam mengatur flow dan user experience. Mari kita coba tuliskan kodingan contoh flow di atas dengan menggunakan bahasa pemrograman python, sehingga dapat kita bayangi lebih jauh lagi. # bikin variable dengan nilai boolean False hasUserLoggedIn = False # cek apakah user sudah login (True) atau belum (False) if hasUserLoggedIn == True: print('Pilih tiket tersedia di bawah ini: ....') else: print('Anda akan kami arahkan kepada halaman login/sign up') Boolean adalah tipe data primitive Boolean termasuk tipe data primitive yang artinya adalah sudah tersedia pada bahasa pemrograman python tanpa harus menggunakan library tambahan, boolean digunakan sebagai pondasi dari sederhana atau kompleksnya sebuah algoritma pada website atau aplikasi tersebut. Boolean operation Pada tipe data boolean tersedia built-in boolean operation seperti logical AND, logical OR, dan logical NOT yang dapat digunakan untuk mengatur logical operation pada projek aplikasi atau website. Mari kita coba tulis barisan kodingnya (AND) untuk memahami lebih jauh: # atur variable a dengan nilai True a = True # atur variable a dengan nilai False b = False # kita coba gabungkan True dengan False bandingkan = a and b # maka hasilnya adalah False print(bandingkan) # namun apabila keduanya memiliki nilai True # kita ubah variable b memiliki nilai True b = True # kita coba gabungkan True dengan True bandingkan = a and b print(bandingkan) # maka hasilnya menjadi True Comparison operators Tipe data boolean juga kita sering gunakan untuk memeriksa apakah orang tersebut memiliki uang dalam membeli produk secara online, contoh kodingan python toko online-nya seperti di bawah ini: # membuat variable saldo tipe data integer saldo = 500000 # membuat variable harga produk tipe data integer harga_produk = 2390494 # membuat variable dengan value boolean dari gabungan interget di atas # kita cek apakah nilai saldo lebih besar dari harga produk cek_hasil = saldo > harga_produk # kita cetak dan hasilnya adalah False # di sini kita sudah memiliki tipe data baru yaitu boolean print(cek_hasil) Kesimpulan penggunaan Boolean Boolean berperan penting mengatur flow sesuai dari business goals pada aplikasi dan website, pelajari lebih dalam tipe data ini untuk meningkatkan user experience yang baik sehingga pengguna betah menggunakan produk kita, good luck.