# Belajar Laravel dari Dasar: Tutorial Lengkap untuk Pemula Bahasa Indonesia
Selamat datang para calon programmer hebat! Ingin membangun aplikasi web modern dan powerful? Laravel adalah jawabannya! Framework PHP yang elegan dan populer ini akan mempermudah proses pengembangan web Anda. Jangan khawatir jika Anda masih pemula, artikel ini akan memandu Anda **belajar Laravel dari dasar** langkah demi langkah. Tutorial ini dirancang khusus untuk pemula berbahasa Indonesia, sehingga Anda dapat memahami Laravel dengan mudah dan cepat. Siap memulai petualangan coding Anda? Ayo kita mulai!
## Daftar Isi
1. [Apa Itu Laravel dan Mengapa Anda Harus Belajar Laravel dari Dasar?](#apa-itu-laravel)
2. [Persiapan Lingkungan Pengembangan Laravel (Instalasi XAMPP/Composer)](#persiapan-lingkungan)
3. [Instalasi Laravel: Langkah Demi Langkah untuk Pemula](#instalasi-laravel)
4. [Struktur Direktori Laravel: Memahami Arsitektur Proyek Anda](#struktur-direktori)
5. [Routing di Laravel: Mengatur Alur Aplikasi Web Anda](#routing)
6. [Controller di Laravel: Logika Aplikasi di Balik Layar](#controller)
7. [View di Laravel: Menampilkan Data dengan Indah](#view)
8. [Blade Templating Engine: Membuat Tampilan Lebih Efisien](#blade)
9. [Eloquent ORM: Berinteraksi dengan Database dengan Mudah](#eloquent-orm)
10. [Migrations dan Seeders: Mengelola Database dengan Terstruktur](#migrations-seeders)
11. [Form Handling dan Validasi: Mengamankan Input Pengguna](#form-handling)
12. [Tips dan Trik: Meningkatkan Kemampuan Laravel Anda](#tips-trik)
<a name="apa-itu-laravel"></a>
## 1. Apa Itu Laravel dan Mengapa Anda Harus Belajar Laravel dari Dasar?
Sebelum kita mulai **belajar Laravel dari dasar**, mari kita pahami dulu apa itu Laravel. Laravel adalah framework PHP open-source yang dirancang untuk membuat aplikasi web dengan sintaks yang elegan dan ekspresif. Bayangkan Laravel sebagai sebuah toolkit lengkap yang menyediakan berbagai fitur dan alat bantu untuk mempercepat dan mempermudah proses pengembangan web Anda.
**Mengapa Harus Belajar Laravel?**
* **Kemudahan Penggunaan:** Laravel menggunakan sintaks yang bersih dan mudah dibaca, sehingga proses coding menjadi lebih menyenangkan.
* **Fitur Lengkap:** Laravel menyediakan berbagai fitur bawaan seperti routing, templating engine, ORM (Object-Relational Mapping), otentikasi, dan banyak lagi.
* **Komunitas Besar dan Aktif:** Laravel memiliki komunitas yang besar dan aktif, sehingga Anda dapat dengan mudah menemukan bantuan dan dukungan jika mengalami masalah.
* **Keamanan:** Laravel memiliki fitur keamanan yang kuat untuk melindungi aplikasi Anda dari serangan.
* **Peluang Karir:** Permintaan developer Laravel terus meningkat, sehingga **belajar Laravel dari dasar** dapat membuka peluang karir yang menjanjikan.
* **Skalabilitas:** Laravel dirancang untuk menangani aplikasi web dengan skala besar.
Dengan **belajar Laravel dari dasar**, Anda akan memiliki dasar yang kuat untuk membangun aplikasi web yang kompleks dan profesional.
<a name="persiapan-lingkungan"></a>
## 2. Persiapan Lingkungan Pengembangan Laravel (Instalasi XAMPP/Composer)
Sebelum kita mulai **belajar Laravel dari dasar**, kita perlu menyiapkan lingkungan pengembangan terlebih dahulu. Ada beberapa cara untuk melakukan ini, tetapi cara yang paling umum adalah dengan menggunakan XAMPP atau Laragon (khusus Windows). Dalam tutorial ini, kita akan membahas penggunaan XAMPP.
**Apa itu XAMPP?**
XAMPP adalah paket software gratis yang berisi Apache web server, MySQL database, PHP, dan Perl. Dengan XAMPP, Anda dapat dengan mudah menjalankan aplikasi web PHP di komputer Anda.
**Langkah-langkah Instalasi XAMPP:**
1. **Download XAMPP:** Kunjungi website resmi Apache Friends ([https://www.apachefriends.org/index.html](https://www.apachefriends.org/index.html)) dan download versi XAMPP yang sesuai dengan sistem operasi Anda.
2. **Instal XAMPP:** Ikuti instruksi instalasi yang diberikan. Biasanya, Anda hanya perlu mengklik tombol "Next" beberapa kali.
3. **Jalankan XAMPP Control Panel:** Setelah instalasi selesai, jalankan XAMPP Control Panel.
4. **Start Apache dan MySQL:** Klik tombol "Start" pada modul Apache dan MySQL. Pastikan kedua modul tersebut berjalan tanpa error.
**Apa itu Composer?**
Composer adalah dependency manager untuk PHP. Dengan Composer, Anda dapat dengan mudah menginstal dan mengelola library dan package PHP yang dibutuhkan oleh aplikasi Anda. Laravel sangat bergantung pada Composer, jadi Anda perlu menginstalnya sebelum **belajar Laravel dari dasar**.
**Langkah-langkah Instalasi Composer:**
1. **Download Composer:** Kunjungi website resmi Composer ([https://getcomposer.org/download/](https://getcomposer.org/download/)) dan download installer Composer.
2. **Instal Composer:** Jalankan installer Composer dan ikuti instruksi yang diberikan. Pastikan Anda memilih PHP executable yang benar (biasanya terletak di direktori XAMPP/php).
3. **Verifikasi Instalasi Composer:** Buka command prompt atau terminal dan ketik `composer`. Jika Composer berhasil terinstal, Anda akan melihat daftar perintah Composer.
Dengan XAMPP dan Composer terinstal, Anda sudah siap untuk **belajar Laravel dari dasar**!
<a name="instalasi-laravel"></a>
## 3. Instalasi Laravel: Langkah Demi Langkah untuk Pemula
Sekarang, mari kita instal Laravel! Ada beberapa cara untuk menginstal Laravel, tetapi cara yang paling umum adalah dengan menggunakan Composer.
**Langkah-langkah Instalasi Laravel menggunakan Composer:**
1. **Buka Command Prompt/Terminal:** Buka command prompt atau terminal Anda.
2. **Navigasi ke Direktori Proyek:** Pindah ke direktori di mana Anda ingin menyimpan proyek Laravel Anda. Misalnya, `cd C:xampphtdocs`.
3. **Jalankan Perintah Instalasi Laravel:** Ketik perintah berikut dan tekan Enter:
```bash
composer create-project --prefer-dist laravel/laravel nama-proyek
Ganti `nama-proyek` dengan nama proyek Laravel Anda. Misalnya, `composer create-project --prefer-dist laravel/laravel blog`.
-
Tunggu Proses Instalasi Selesai: Composer akan mendownload dan menginstal semua dependency yang dibutuhkan oleh Laravel. Proses ini mungkin memakan waktu beberapa menit, tergantung pada kecepatan koneksi internet Anda.
-
Masuk ke Direktori Proyek: Setelah instalasi selesai, masuk ke direktori proyek Anda:
cd nama-proyekMisalnya,
cd blog. -
Jalankan Server Pengembangan Laravel: Ketik perintah berikut dan tekan Enter:
php artisan servePerintah ini akan menjalankan server pengembangan Laravel di alamat
http://localhost:8000. -
Buka Browser: Buka browser Anda dan ketik
http://localhost:8000di address bar. Jika instalasi berhasil, Anda akan melihat halaman default Laravel.
Selamat! Anda telah berhasil menginstal Laravel. Sekarang Anda siap untuk belajar Laravel dari dasar dan membangun aplikasi web impian Anda.
4. Struktur Direktori Laravel: Memahami Arsitektur Proyek Anda
Sebelum kita melangkah lebih jauh, penting untuk memahami struktur direktori Laravel. Memahami struktur direktori ini akan membantu Anda menavigasi proyek Anda dan menemukan file yang Anda butuhkan. Berikut adalah penjelasan singkat tentang direktori-direktori utama di Laravel:
app/: Direktori ini berisi kode aplikasi Anda, termasuk controller, model, middleware, dan providers. Ini adalah jantung dari aplikasi Laravel Anda.bootstrap/: Direktori ini berisi file-file yang digunakan untuk memulai aplikasi Laravel.config/: Direktori ini berisi file konfigurasi untuk berbagai aspek aplikasi Anda, seperti database, email, dan session.database/: Direktori ini berisi migrations dan seeders untuk database Anda.public/: Direktori ini berisi file-file publik seperti CSS, JavaScript, dan gambar. Ini adalah direktori yang diakses oleh web server.resources/: Direktori ini berisi view, language files, dan assets lainnya.routes/: Direktori ini berisi file-file yang mendefinisikan routes aplikasi Anda.storage/: Direktori ini digunakan untuk menyimpan file-file yang diupload oleh pengguna.tests/: Direktori ini berisi file-file untuk melakukan testing aplikasi Anda.vendor/: Direktori ini berisi library dan package PHP yang diinstal menggunakan Composer.
Memahami struktur direktori ini akan sangat membantu saat Anda belajar Laravel dari dasar.
5. Routing di Laravel: Mengatur Alur Aplikasi Web Anda
Routing adalah proses memetakan URL ke controller atau closure yang sesuai. Dengan routing, Anda dapat mengatur alur aplikasi web Anda dan menentukan bagaimana aplikasi merespons permintaan dari pengguna.
Cara Mendefinisikan Route di Laravel:
Route didefinisikan di file routes/web.php. Berikut adalah beberapa contoh cara mendefinisikan route:
-
Route Dasar:
Route::get('/', function () { return 'Selamat datang di Laravel!'; });Route ini memetakan URL
/ke closure yang mengembalikan string “Selamat datang di Laravel!”. -
Route dengan Parameter:
Route::get('/user/{id}', function ($id) { return 'User ID: ' . $id; });Route ini memetakan URL
/user/{id}ke closure yang menerima parameter$id. -
Route ke Controller:
Route::get('/users', 'UserController@index');Route ini memetakan URL
/userske methodindexdi controllerUserController.
Jenis-jenis Route HTTP:
Laravel mendukung berbagai jenis route HTTP, seperti:
GET: Digunakan untuk mengambil data.POST: Digunakan untuk mengirim data.PUT: Digunakan untuk memperbarui data.DELETE: Digunakan untuk menghapus data.PATCH: Digunakan untuk memperbarui sebagian data.
Dengan memahami routing, Anda dapat mengatur bagaimana aplikasi web Anda merespons permintaan dari pengguna. Ini adalah konsep penting saat Anda belajar Laravel dari dasar.
6. Controller di Laravel: Logika Aplikasi di Balik Layar
Controller adalah kelas yang berisi logika aplikasi Anda. Controller menerima permintaan dari pengguna, memproses data, dan mengembalikan response.
Cara Membuat Controller:
Anda dapat membuat controller menggunakan perintah Artisan:
php artisan make:controller NamaController
Misalnya, php artisan make:controller UserController.
Perintah ini akan membuat file app/Http/Controllers/NamaController.php.
Contoh Controller:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class UserController extends Controller
{
public function index()
{
$users = [
['id' => 1, 'name' => 'John Doe'],
['id' => 2, 'name' => 'Jane Doe'],
];
return view('users.index', ['users' => $users]);
}
}
Controller ini memiliki method index yang mengambil data pengguna dan mengembalikan view users.index.
Routing ke Controller:
Seperti yang telah dijelaskan sebelumnya, Anda dapat memetakan route ke controller menggunakan sintaks berikut:
Route::get('/users', 'UserController@index');
Dengan menggunakan controller, Anda dapat memisahkan logika aplikasi dari route dan view, sehingga kode Anda menjadi lebih terstruktur dan mudah dikelola. Pemahaman tentang controller sangat penting saat belajar Laravel dari dasar.
7. View di Laravel: Menampilkan Data dengan Indah
View adalah file yang berisi kode HTML dan PHP yang digunakan untuk menampilkan data kepada pengguna. View memisahkan presentasi dari logika aplikasi, sehingga kode Anda menjadi lebih terstruktur dan mudah dipelihara.
Cara Membuat View:
View disimpan di direktori resources/views. Anda dapat membuat file view dengan ekstensi .blade.php.
Contoh View:
<!-- resources/views/users/index.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>Daftar Pengguna</title>
</head>
<body>
<h1>Daftar Pengguna</h1>
<ul>
@foreach ($users as $user)
<li>{{ $user['name'] }}</li>
@endforeach
</ul>
</body>
</html>
View ini menampilkan daftar pengguna yang dikirim dari controller.
Mengirim Data ke View:
Anda dapat mengirim data ke view menggunakan method view() di controller:
return view('users.index', ['users' => $users]);
Variabel $users akan tersedia di view dengan nama yang sama.
Blade Templating Engine:
Laravel menggunakan Blade templating engine untuk membuat view. Blade menyediakan sintaks yang sederhana dan ekspresif untuk mencetak data, menggunakan conditional statements, dan melakukan looping. Kita akan membahas Blade lebih detail di bagian selanjutnya.
View adalah komponen penting dalam aplikasi Laravel. Dengan menggunakan view, Anda dapat menampilkan data kepada pengguna dengan cara yang terstruktur dan menarik. Pemahaman tentang view sangat penting saat belajar Laravel dari dasar.
8. Blade Templating Engine: Membuat Tampilan Lebih Efisien
Blade adalah templating engine bawaan Laravel yang memungkinkan Anda untuk menulis view dengan sintaks yang lebih bersih dan ringkas. Blade menyediakan berbagai direktif yang memudahkan Anda untuk melakukan tugas-tugas umum seperti mencetak data, menggunakan conditional statements, dan melakukan looping.
Contoh Penggunaan Blade:
-
Mencetak Data:
<h1>{{ $title }}</h1>Direktif
{{ $title }}akan mencetak nilai variabel$title. -
Conditional Statements:
@if ($user->isAdmin()) <p>Anda adalah administrator.</p> @else <p>Anda bukan administrator.</p> @endifDirektif
@ifdan@elsememungkinkan Anda untuk membuat conditional statements. -
Looping:
@foreach ($users as $user) <li>{{ $user->name }}</li> @endforeachDirektif
@foreachmemungkinkan Anda untuk melakukan looping melalui array atau collection. -
Extending Layouts:
Blade memungkinkan Anda untuk membuat layout dasar dan kemudian mengextend layout tersebut di view-view lain. Ini membantu Anda untuk menghindari duplikasi kode dan membuat kode Anda lebih terstruktur.
Contoh Layout (resources/views/layouts/app.blade.php):
<!DOCTYPE html> <html> <head> <title>@yield('title')</title> </head> <body> @yield('content') </body> </html>Contoh View yang Mengextend Layout (resources/views/users/index.blade.php):
@extends('layouts.app') @section('title', 'Daftar Pengguna') @section('content') <h1>Daftar Pengguna</h1> <ul> @foreach ($users as $user) <li>{{ $user->name }}</li> @endforeach </ul> @endsection
Blade membuat proses pembuatan view menjadi lebih mudah dan efisien. Dengan belajar Laravel dari dasar dan memahami Blade, Anda dapat membuat tampilan aplikasi web yang menarik dan profesional.
9. Eloquent ORM: Berinteraksi dengan Database dengan Mudah
Eloquent ORM (Object-Relational Mapping) adalah cara yang elegan dan mudah untuk berinteraksi dengan database di Laravel. Dengan Eloquent, Anda dapat berinteraksi dengan tabel database sebagai objek PHP. Ini membuat kode Anda lebih mudah dibaca dan dikelola.
Cara Membuat Model:
Anda dapat membuat model menggunakan perintah Artisan:
php artisan make:model NamaModel
Misalnya, php artisan make:model User.
Perintah ini akan membuat file app/NamaModel.php.
Contoh Model:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class User extends Model
{
// Nama tabel (jika berbeda dengan nama model dalam bentuk jamak)
// protected $table = 'nama_tabel';
// Kolom yang boleh diisi (mass assignment)
protected $fillable = ['name', 'email', 'password'];
// Kolom yang disembunyikan dari output JSON
protected $hidden = ['password', 'remember_token'];
// Mutator untuk mengenkripsi password sebelum disimpan ke database
public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}
}
Cara Menggunakan Eloquent:
-
Mengambil Data:
$users = User::all(); // Mengambil semua data dari tabel users $user = User::find(1); // Mengambil data dengan ID 1 $users = User::where('email', 'like', '%@example.com%')->get(); // Mengambil data dengan email yang mengandung @example.com -
Menyimpan Data:
$user = new User(); $user->name = 'John Doe'; $user->email = '[email protected]'; $user->password = 'password'; $user->save(); -
Mengupdate Data:
$user = User::find(1); $user->name = 'Jane Doe'; $user->save(); -
Menghapus Data:
$user = User::find(1); $user->delete();
Eloquent ORM sangat mempermudah interaksi dengan database di Laravel. Dengan belajar Laravel dari dasar dan memahami Eloquent, Anda dapat dengan mudah mengelola data dalam aplikasi web Anda.
10. Migrations dan Seeders: Mengelola Database dengan Terstruktur
Migrations dan Seeders adalah fitur penting dalam Laravel yang membantu Anda untuk mengelola database Anda dengan cara yang terstruktur dan terorganisir.
Migrations:
Migrations memungkinkan Anda untuk membuat dan memodifikasi struktur database Anda menggunakan kode PHP. Dengan Migrations, Anda dapat dengan mudah membuat tabel, menambahkan kolom, dan mengubah tipe data tanpa harus menggunakan SQL secara manual.
Cara Membuat Migration:
Anda dapat membuat migration menggunakan perintah Artisan:
php artisan make:migration create_users_table
Perintah ini akan membuat file migration di direktori database/migrations.
Contoh Migration:
<?php
use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;
class CreateUsersTable 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');
}
}
Menjalankan Migrations:
Anda dapat menjalankan migrations menggunakan perintah Artisan:
php artisan migrate
Perintah ini akan menjalankan semua migration yang belum dijalankan.
Seeders:
Seeders memungkinkan Anda untuk mengisi database Anda dengan data dummy. Ini berguna untuk menguji aplikasi Anda atau untuk menyediakan data awal untuk pengguna.
Cara Membuat Seeder:
Anda dapat membuat seeder menggunakan perintah Artisan:
php artisan make:seeder UsersTableSeeder
Perintah ini akan membuat file seeder di direktori database/seeders.
Contoh Seeder:
<?php
namespace DatabaseSeeders;
use IlluminateDatabaseSeeder;
use IlluminateSupportFacadesDB;
use IlluminateSupportFacadesHash;
use IlluminateSupportStr;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
'name' => Str::random(10),
'email' => Str::random(10).'@gmail.com',
'password' => Hash::make('password'),
]);
}
}
Menjalankan Seeders:
Anda dapat menjalankan seeders menggunakan perintah Artisan:
php artisan db:seed
Atau, Anda dapat menjalankan seeder tertentu menggunakan perintah:
php artisan db:seed --class=UsersTableSeeder
Migrations dan Seeders adalah alat yang sangat berguna untuk mengelola database Anda dalam Laravel. Dengan belajar Laravel dari dasar dan memahami Migrations dan Seeders, Anda dapat memastikan bahwa database Anda terstruktur dengan baik dan memiliki data yang konsisten.
11. Form Handling dan Validasi: Mengamankan Input Pengguna
Form handling dan validasi adalah bagian penting dari pengembangan web. Laravel menyediakan fitur-fitur yang kuat untuk mempermudah proses form handling dan memastikan bahwa data yang dimasukkan oleh pengguna valid dan aman.
Membuat Form:
Anda dapat membuat form menggunakan HTML dan Blade. Contoh:
<form method="POST" action="/users">
@csrf
<label for="name">Nama:</label><br>
<input type="text" id="name" name="name"><br><br>
<label for="email">Email:</label><br>
<input type="email" id="email" name="email"><br><br>
<label for="password">Password:</label><br>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Submit">
</form>
Perhatikan direktif @csrf yang digunakan untuk melindungi form dari serangan CSRF (Cross-Site Request Forgery).
Menerima Data Form di Controller:
Anda dapat menerima data form di controller menggunakan objek Request:
public function store(Request $request)
{
// Mengakses data form
$name = $request->input('name');
$email = $request->input('email');
$password = $request->input('password');
// ... Simpan data ke database ...
}
Validasi Data:
Laravel menyediakan berbagai cara untuk melakukan validasi data. Cara yang paling umum adalah dengan menggunakan method validate() di controller:
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|min:8',
]);
// ... Simpan data ke database ...
}
Method validate() akan melempar exception IlluminateValidationValidationException jika validasi gagal. Anda dapat menangkap exception ini dan menampilkan pesan error kepada pengguna.
Menampilkan Pesan Error:
Laravel secara otomatis menyediakan variabel $errors di view yang berisi pesan error dari validasi. Anda dapat menggunakan variabel ini untuk menampilkan pesan error kepada pengguna:
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Form handling dan validasi adalah bagian penting dari pengembangan aplikasi web yang aman dan handal. Dengan belajar Laravel dari dasar dan memahami form handling dan validasi, Anda dapat memastikan bahwa data yang dimasukkan oleh pengguna valid dan aman.
12. Tips dan Trik: Meningkatkan Kemampuan Laravel Anda
Selamat! Anda telah mempelajari dasar-dasar Laravel. Berikut adalah beberapa tips dan trik untuk meningkatkan kemampuan Laravel Anda:
- Pelajari Dokumentasi Resmi: Dokumentasi resmi Laravel adalah sumber informasi terbaik untuk belajar Laravel dari dasar dan memahami fitur-fitur Laravel secara mendalam.
- Bergabung dengan Komunitas: Bergabunglah dengan komunitas Laravel di forum, grup Facebook, atau Slack untuk bertanya, berbagi pengetahuan, dan mendapatkan bantuan dari developer lain.
- Ikuti Tutorial dan Kursus Online: Ada banyak tutorial dan kursus online gratis maupun berbayar yang dapat membantu Anda untuk belajar Laravel dari dasar dan meningkatkan kemampuan Anda.
- Bangun Proyek: Cara terbaik untuk belajar Laravel dari dasar adalah dengan membangun proyek. Mulailah dengan proyek sederhana dan kemudian tingkatkan kompleksitasnya secara bertahap.
- Gunakan Tools Debugging: Laravel menyediakan berbagai tools debugging yang dapat membantu Anda untuk menemukan dan memperbaiki bug dalam kode Anda.
- Optimalkan Kode Anda: Perhatikan performa kode Anda dan optimalkan kode Anda agar aplikasi Anda berjalan dengan cepat dan efisien.
- Pelajari Tentang Security: Laravel menyediakan fitur keamanan yang kuat, tetapi penting untuk memahami prinsip-prinsip keamanan web dan menerapkan praktik terbaik untuk melindungi aplikasi Anda dari serangan.
- Terus Belajar: Dunia pengembangan web terus berkembang, jadi penting untuk terus belajar dan mengikuti perkembangan terbaru dalam Laravel dan teknologi web lainnya.
Dengan mengikuti tips dan trik ini, Anda dapat meningkatkan kemampuan Laravel Anda dan menjadi developer Laravel yang handal. Selamat belajar Laravel dari dasar dan semoga sukses!





