Lokerwfh
  • Indonesia
  • Website
  • Hosting
  • Laravel
  • Development
  • Bisnis
No Result
View All Result
Lokerwfh
  • Indonesia
  • Website
  • Hosting
  • Laravel
  • Development
  • Bisnis
No Result
View All Result
Lokerwfh
No Result
View All Result
Home Database

Contoh Penggunaan Eloquent ORM di Laravel: Manajemen Database Lebih Efisien

Atticus Finch by Atticus Finch
June 21, 2025
in Database, Development, Efisiensi, Laravel, ORM
0
Share on FacebookShare on Twitter

Eloquent ORM (Object Relational Mapper) adalah salah satu fitur paling powerful dan banyak digunakan di framework Laravel. Bayangkan, alih-alih menulis query SQL yang rumit dan berpotensi menimbulkan kesalahan, Anda bisa berinteraksi dengan database menggunakan sintaks PHP yang intuitif dan mudah dibaca. Artikel ini akan membahas secara mendalam contoh penggunaan Eloquent ORM di Laravel dan bagaimana cara memanfaatkannya untuk manajemen database yang lebih efisien. Siap untuk menyederhanakan proses pengembangan aplikasi web Anda? Mari kita mulai!

Apa Itu Eloquent ORM dan Mengapa Penting dalam Laravel?

Sebelum membahas contoh penggunaan Eloquent ORM di Laravel, mari kita pahami dulu apa itu Eloquent dan mengapa dia begitu penting. Secara sederhana, Eloquent adalah ORM bawaan Laravel yang memungkinkan Anda untuk berinteraksi dengan database menggunakan objek PHP. Setiap tabel di database Anda direpresentasikan oleh sebuah “Model” Eloquent. Dengan model ini, Anda bisa melakukan operasi CRUD (Create, Read, Update, Delete) dengan mudah, tanpa perlu menulis query SQL secara manual.

Keuntungan Menggunakan Eloquent ORM:

  • Sederhana dan Intuitif: Eloquent menggunakan sintaks yang mirip dengan PHP biasa, sehingga lebih mudah dipelajari dan digunakan.
  • Abstraksi Database: Eloquent menyembunyikan kompleksitas query SQL dan memungkinkan Anda untuk fokus pada logika aplikasi.
  • Keamanan: Eloquent membantu mencegah SQL injection dengan secara otomatis melakukan escaping pada data yang dimasukkan ke database.
  • Reusable Code: Model Eloquent dapat digunakan kembali di seluruh aplikasi Anda, mengurangi duplikasi kode.
  • Relasi Antar Tabel: Eloquent menyediakan fitur untuk mendefinisikan relasi antar tabel (one-to-one, one-to-many, many-to-many) dengan mudah.
  • Maintenance Lebih Mudah: Ketika terjadi perubahan pada struktur database, perubahan yang diperlukan pada kode aplikasi lebih sedikit.

Persiapan Awal: Konfigurasi Database dan Membuat Model

Sebelum kita membahas contoh penggunaan Eloquent ORM di Laravel, ada beberapa persiapan awal yang perlu dilakukan:

Related Post

Hosting Gratis untuk Belajar Web Development: Pilihan Terbaik untuk Pemula

June 23, 2025

Package Laravel Terbaik untuk Development Cepat: Rekomendasi 2024

June 22, 2025

Migration Laravel: Cara Membuat dan Menjalankan Database Secara Otomatis

June 22, 2025

Laravel Passport untuk OAuth 2.0 Authentication: Integrasi Aplikasi Lebih Aman

June 22, 2025
  1. Konfigurasi Database: Pastikan Anda telah mengkonfigurasi koneksi database di file .env pada root project Laravel Anda. Contoh:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=nama_database_anda
    DB_USERNAME=username_database_anda
    DB_PASSWORD=password_database_anda
  2. Membuat Tabel Database: Buatlah tabel database yang akan Anda gunakan. Misalnya, kita akan membuat tabel posts dengan struktur berikut:

    CREATE TABLE posts (
        id INT AUTO_INCREMENT PRIMARY KEY,
        title VARCHAR(255) NOT NULL,
        content TEXT,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );
  3. Membuat Model Eloquent: Gunakan perintah Artisan untuk membuat model Eloquent. Contoh:

    php artisan make:model Post

    Perintah ini akan membuat file Post.php di direktori app/Models.

  4. Konfigurasi Model (Opsional): Di dalam file Post.php, Anda dapat mengkonfigurasi model Eloquent. Misalnya, untuk menentukan nama tabel yang berbeda dari default:

    <?php
    
    namespace AppModels;
    
    use IlluminateDatabaseEloquentFactoriesHasFactory;
    use IlluminateDatabaseEloquentModel;
    
    class Post extends Model
    {
        use HasFactory;
    
        protected $table = 'posts'; // Menentukan nama tabel
        protected $fillable = ['title', 'content']; // Atribut yang boleh diisi (mass assignment)
    }

Contoh Penggunaan Eloquent ORM: Melakukan Operasi CRUD

Setelah persiapan selesai, mari kita lihat contoh penggunaan Eloquent ORM di Laravel untuk melakukan operasi CRUD (Create, Read, Update, Delete).

1. Membuat Data Baru (Create)

Ada beberapa cara untuk membuat data baru menggunakan Eloquent:

  • Menggunakan Metode create():

    use AppModelsPost;
    
    $post = Post::create([
        'title' => 'Judul Artikel Baru',
        'content' => 'Isi artikel baru...'
    ]);
    
    // $post akan berisi instance dari model Post yang baru dibuat.

    Pastikan Anda telah mendefinisikan properti $fillable pada model Anda untuk mengizinkan atribut title dan content diisi melalui metode create(). Jika tidak, Anda akan mendapatkan error MassAssignmentException.

  • Membuat Instance Model dan Mengisi Atribut:

    use AppModelsPost;
    
    $post = new Post();
    $post->title = 'Judul Artikel Lain';
    $post->content = 'Isi artikel yang lain...';
    $post->save();
    
    // $post akan berisi instance dari model Post yang baru dibuat.

    Metode save() akan menyimpan data ke database.

2. Membaca Data (Read)

Eloquent menyediakan berbagai metode untuk membaca data dari database:

  • Menggunakan Metode all(): Mengambil semua data dari tabel.

    use AppModelsPost;
    
    $posts = Post::all();
    
    // $posts akan berisi koleksi (Collection) dari semua data di tabel 'posts'.
  • Menggunakan Metode find(): Mengambil data berdasarkan ID.

    use AppModelsPost;
    
    $post = Post::find(1); // Mengambil data dengan ID 1
    
    if ($post) {
        // Data ditemukan
        echo $post->title;
        echo $post->content;
    } else {
        // Data tidak ditemukan
        echo "Artikel tidak ditemukan";
    }
  • Menggunakan Metode first(): Mengambil data pertama yang sesuai dengan kondisi (biasanya digunakan dengan where()).

    use AppModelsPost;
    
    $post = Post::where('title', 'Judul Artikel Baru')->first();
    
    if ($post) {
        // Data ditemukan
        echo $post->title;
        echo $post->content;
    } else {
        // Data tidak ditemukan
        echo "Artikel tidak ditemukan";
    }
  • Menggunakan Query Builder (dengan Eloquent):

    use AppModelsPost;
    
    $posts = Post::where('title', 'like', '%artikel%')
                 ->orderBy('created_at', 'desc')
                 ->limit(10)
                 ->get();
    
    // $posts akan berisi koleksi artikel yang judulnya mengandung "artikel",
    // diurutkan berdasarkan tanggal pembuatan (terbaru ke terlama),
    // dan dibatasi hanya 10 data.

    Ini adalah contoh yang lebih kompleks yang menggabungkan where(), orderBy(), limit(), dan get() untuk mengambil data dengan kondisi tertentu.

3. Mengubah Data (Update)

Ada dua cara utama untuk memperbarui data menggunakan Eloquent:

  • Menggunakan Metode update():

    use AppModelsPost;
    
    $post = Post::find(1); // Cari artikel dengan ID 1
    
    if ($post) {
        $post->update([
            'title' => 'Judul Artikel yang Diperbarui',
            'content' => 'Isi artikel yang diperbarui...'
        ]);
    
        echo "Artikel berhasil diperbarui";
    } else {
        echo "Artikel tidak ditemukan";
    }
  • Mengubah Atribut dan Menggunakan Metode save():

    use AppModelsPost;
    
    $post = Post::find(1); // Cari artikel dengan ID 1
    
    if ($post) {
        $post->title = 'Judul Artikel yang Diperbarui (Cara Lain)';
        $post->content = 'Isi artikel yang diperbarui (cara lain)...';
        $post->save();
    
        echo "Artikel berhasil diperbarui (cara lain)";
    } else {
        echo "Artikel tidak ditemukan";
    }

4. Menghapus Data (Delete)

Sama seperti update, ada beberapa cara untuk menghapus data:

  • Menggunakan Metode delete():

    use AppModelsPost;
    
    $post = Post::find(1); // Cari artikel dengan ID 1
    
    if ($post) {
        $post->delete();
        echo "Artikel berhasil dihapus";
    } else {
        echo "Artikel tidak ditemukan";
    }
  • Menghapus Berdasarkan Query:

    use AppModelsPost;
    
    Post::where('title', 'Judul yang Ingin Dihapus')->delete();
    
    echo "Artikel berhasil dihapus (berdasarkan query)";

    Perhatikan bahwa metode ini akan menghapus semua data yang memenuhi kondisi where().

Relasi Antar Tabel dengan Eloquent ORM

Salah satu kekuatan Eloquent adalah kemampuannya untuk menangani relasi antar tabel dengan mudah. Laravel mendukung berbagai jenis relasi, termasuk:

  • One To One: Satu model terhubung ke satu model lainnya. Contoh: Satu User memiliki satu Profile.
  • One To Many: Satu model terhubung ke banyak model lainnya. Contoh: Satu Category memiliki banyak Post.
  • Many To Many: Banyak model terhubung ke banyak model lainnya. Contoh: Banyak Post memiliki banyak Tag.
  • Has One Through: Akses model melalui perantara relasi One To One.
  • Has Many Through: Akses model melalui perantara relasi One To Many.
  • Polymorphic Relations: Model dapat terhubung ke beberapa model lain menggunakan satu relasi.

Mari kita lihat contoh relasi One To Many antara Category dan Post.

1. Membuat Model Category:

php artisan make:model Category

2. Migrasi untuk Tabel categories:

<?php

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('categories');
    }
};

Jalankan migrasi: php artisan migrate

3. Definisi Relasi di Model Category:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Category extends Model
{
    use HasFactory;

    protected $fillable = ['name'];

    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

4. Tambahkan category_id pada Migrasi untuk Tabel posts:

<?php

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->unsignedBigInteger('category_id')->nullable(); //Tambahkan ini
            $table->timestamps();

            $table->foreign('category_id')->references('id')->on('categories')->onDelete('set null'); //Tambahkan ini
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('posts');
    }
};

Jalankan migrasi: php artisan migrate:fresh (ini akan menghapus semua tabel dan membuat ulang)

5. Definisi Relasi di Model Post:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Post extends Model
{
    use HasFactory;

    protected $fillable = ['title', 'content', 'category_id'];

    public function category()
    {
        return $this->belongsTo(Category::class);
    }
}

6. Menggunakan Relasi:

use AppModelsCategory;
use AppModelsPost;

// Mendapatkan semua post dari sebuah kategori
$category = Category::find(1);
$posts = $category->posts;

foreach ($posts as $post) {
    echo $post->title . "<br>";
}

// Mendapatkan kategori dari sebuah post
$post = Post::find(1);
$category = $post->category;

echo "Kategori: " . $category->name;

Eager Loading: Mengoptimalkan Query dengan Eloquent

Eager loading adalah teknik untuk memuat relasi bersama dengan model utama dalam satu query. Ini sangat berguna untuk menghindari masalah N+1 query, di mana Anda melakukan N query tambahan untuk memuat relasi untuk setiap model.

Contoh:

Tanpa eager loading:

$posts = Post::all();

foreach ($posts as $post) {
    echo $post->category->name . "<br>"; // Akan melakukan query tambahan untuk setiap post
}

Dengan eager loading:

$posts = Post::with('category')->get();

foreach ($posts as $post) {
    echo $post->category->name . "<br>"; // Tidak akan melakukan query tambahan
}

Metode with('category') akan memuat relasi category bersama dengan model Post, sehingga hanya satu query yang dijalankan. Ini dapat meningkatkan performa aplikasi Anda secara signifikan, terutama ketika Anda berurusan dengan banyak data dan relasi yang kompleks. Anda juga bisa melakukan eager loading dengan beberapa relasi sekaligus, contohnya: $posts = Post::with(['category', 'tags'])->get();

Menggunakan Accessor dan Mutator dalam Eloquent

Accessor dan mutator memungkinkan Anda untuk memodifikasi nilai atribut model saat membaca (accessor) atau menulis (mutator) ke database.

Accessor:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Post extends Model
{
    use HasFactory;

    protected $fillable = ['title', 'content', 'category_id'];

    public function category()
    {
        return $this->belongsTo(Category::class);
    }

    public function getTitleAttribute($value)
    {
        return strtoupper($value); // Mengubah judul menjadi huruf kapital
    }
}

Sekarang, setiap kali Anda mengakses atribut title, nilai yang dikembalikan akan selalu dalam huruf kapital. Contoh: $post->title; akan mengembalikan judul dalam huruf kapital.

Mutator:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Post extends Model
{
    use HasFactory;

    protected $fillable = ['title', 'content', 'category_id'];

    public function category()
    {
        return $this->belongsTo(Category::class);
    }

    public function setTitleAttribute($value)
    {
        $this->attributes['title'] = strtolower($value); // Menyimpan judul dalam huruf kecil
    }
}

Dengan mutator ini, setiap kali Anda mengatur nilai atribut title, nilai tersebut akan diubah menjadi huruf kecil sebelum disimpan ke database. Contoh: $post->title = 'Judul Baru'; akan menyimpan “judul baru” ke database.

Query Scopes: Mengelompokkan Logika Query yang Reusable

Query scopes memungkinkan Anda untuk mendefinisikan logika query yang reusable di dalam model Anda. Ini membantu menjaga kode Anda tetap DRY (Don’t Repeat Yourself) dan mudah dibaca.

Contoh:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Post extends Model
{
    use HasFactory;

    protected $fillable = ['title', 'content', 'category_id'];

    public function category()
    {
        return $this->belongsTo(Category::class);
    }

    public function scopePublished($query)
    {
        return $query->whereNotNull('published_at');
    }

    public function scopeSearch($query, $keyword)
    {
        return $query->where('title', 'like', '%' . $keyword . '%')
                     ->orWhere('content', 'like', '%' . $keyword . '%');
    }
}

Menggunakan Query Scopes:

use AppModelsPost;

// Mendapatkan semua post yang sudah dipublish
$publishedPosts = Post::published()->get();

// Mencari post berdasarkan keyword
$searchPosts = Post::search('keyword')->get();

Query scope published() akan mengembalikan query builder yang sudah difilter untuk hanya menampilkan post yang memiliki published_at. Query scope search() akan mengembalikan query builder yang sudah difilter untuk mencari post berdasarkan keyword di title atau content.

Mass Assignment Protection: Melindungi Aplikasi dari Vulnerability

Eloquent memiliki mekanisme perlindungan terhadap mass assignment, yang mencegah Anda dari mengisi atribut model secara tidak sengaja yang mungkin dapat menyebabkan kerentanan keamanan. Secara default, Eloquent tidak mengizinkan pengisian atribut model secara massal menggunakan metode create() atau update() kecuali jika Anda secara eksplisit menentukan atribut mana yang boleh diisi.

Anda dapat menentukan atribut yang boleh diisi dengan dua cara:

  • Menggunakan Properti $fillable:

    protected $fillable = ['title', 'content', 'category_id']; // Atribut yang boleh diisi
  • Menggunakan Properti $guarded:

    protected $guarded = ['id', 'created_at', 'updated_at']; // Atribut yang tidak boleh diisi

Sebaiknya gunakan $fillable dan tentukan secara eksplisit atribut mana yang boleh diisi. Hal ini lebih aman daripada menggunakan $guarded karena Anda secara eksplisit mengizinkan atribut yang ingin diisi dan mencegah kemungkinan kerentanan.

Kesimpulan: Eloquent ORM untuk Manajemen Database yang Efisien

Eloquent ORM adalah alat yang sangat powerful untuk manajemen database yang lebih efisien dalam aplikasi Laravel. Dengan Eloquent, Anda dapat berinteraksi dengan database menggunakan sintaks PHP yang intuitif, mengelola relasi antar tabel dengan mudah, mengoptimalkan query dengan eager loading, dan melindungi aplikasi Anda dari kerentanan mass assignment.

Dengan memahami contoh penggunaan Eloquent ORM di Laravel yang telah dibahas dalam artikel ini, Anda akan dapat mengembangkan aplikasi web yang lebih cepat, lebih mudah di-maintain, dan lebih aman. Jadi, jangan ragu untuk memanfaatkan Eloquent ORM dalam proyek Laravel Anda! Selamat mencoba dan semoga sukses!

Tags: CodeIgniterDatabaseDatabase ManagementEfficient DatabaseEloquent ORMLaravelORMphpQuery Builderweb development
Atticus Finch

Atticus Finch

Related Posts

Belajar

Hosting Gratis untuk Belajar Web Development: Pilihan Terbaik untuk Pemula

by Jasper Thorne
June 23, 2025
Development

Package Laravel Terbaik untuk Development Cepat: Rekomendasi 2024

by Seraphina Blackwood
June 22, 2025
Database

Migration Laravel: Cara Membuat dan Menjalankan Database Secara Otomatis

by Jasper Thorne
June 22, 2025
Next Post

Laravel Sanctum untuk Autentikasi API: Keamanan Website Tingkat Lanjut

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recommended

Contoh Project Laravel Sederhana dengan Database: Belajar Laravel dari Studi Kasus

March 27, 2025

Tutorial Menggunakan CRM untuk Manajemen Pelanggan Bahasa Indonesia: Panduan Praktis

April 7, 2025

Paket Laravel Terbaik untuk Pengembangan Aplikasi Web Kompleks: Rekomendasi Package

May 19, 2025

Cara Implementasi CRM yang Sukses dalam Perusahaan: Strategi dan Best Practices

May 24, 2025

Biaya Jasa Pembuatan Website Company Profile: Investasi Tepat Untuk Bisnismu!

June 29, 2025

Jasa Pembuatan Website Profesional di Jakarta: Website Impian Jadi Kenyataan!

June 29, 2025

Hosting Indonesia Dengan Uptime Terbaik: Website Selalu Online, Pelanggan Puas!

June 29, 2025

Hosting Yang Cocok Untuk Pemula Di Indonesia: Mudah Digunakan, Hasil Maksimal!

June 29, 2025

Lokerwfh

Our media platform offers reliable news and insightful articles. Stay informed with our comprehensive coverage and in-depth analysis on various topics.
Read more »

Recent Posts

  • Biaya Jasa Pembuatan Website Company Profile: Investasi Tepat Untuk Bisnismu!
  • Jasa Pembuatan Website Profesional di Jakarta: Website Impian Jadi Kenyataan!
  • Hosting Indonesia Dengan Uptime Terbaik: Website Selalu Online, Pelanggan Puas!

Categories

  • 2024
  • 24 Jam
  • Admin
  • AI
  • Akses
  • Alternatif
  • Analisis
  • Analytics
  • Android
  • Anggaran
  • API
  • Aplikasi
  • Artisan
  • Authentication
  • Authorization
  • Back-End
  • Backend
  • Backup
  • Bahasa
  • Bahasa Indonesia
  • Bandwidth
  • Belajar
  • Best Practices
  • Biaya
  • Bisnis
  • Blade
  • Blogger
  • Bootstrap
  • Brand
  • Business
  • Career
  • CDN
  • Cepat
  • Chatbot
  • ChatGPT
  • Cloud
  • Coding
  • Company
  • Computer Vision
  • cPanel
  • CRM
  • CRUD
  • CSS
  • Dampak
  • Data
  • Database
  • Deployment
  • Desain
  • Developer
  • Development
  • Disk Space
  • Diskusi
  • Domain
  • Download
  • Downtime
  • Dukungan
  • E-commerce
  • E-learning
  • Efektif
  • Efektivitas
  • Efisiensi
  • Email
  • Error generating categories
  • Etika
  • Excel
  • Fitur
  • Framework
  • Freelance
  • Front-End
  • Frontend
  • Full-Stack
  • Gambar
  • Google
  • Gratis
  • Hacker
  • Harga
  • Hasil
  • Hemat
  • Here are 5 categories derived from the article title "Cara Install Laravel di Windows dengan XAMPP: Panduan Mudah & Cepat": Laravel
  • Here are 5 categories derived from the article title "Hosting Murah dengan SSD untuk Website Cepat dan Stabil di Indonesia": Hosting
  • Here are 5 categories derived from the provided list: Hosting
  • Heroku
  • Hiburan
  • Hosting
  • HTML
  • Impian
  • Implementasi
  • Indonesia
  • Industri
  • Inovasi
  • Inspirasi
  • Instalasi
  • Integrasi
  • Interaktif
  • Interface
  • Investasi
  • iOS
  • Jakarta
  • JavaScript
  • Karir
  • Karyawan
  • Keamanan
  • Kebutuhan
  • Kecepatan
  • Kemudahan
  • Kesuksesan
  • Kolaborasi
  • Kompatibilitas
  • Komponen
  • Komunikasi
  • Komunitas
  • Konfigurasi
  • Konten
  • Kreatif
  • Kustomisasi
  • Laravel
  • Livewire
  • Lokal
  • Mahasiswa
  • Maintenance
  • Manajemen
  • Marketing
  • Memilih
  • Middleware
  • Migrasi
  • Mobile
  • Modern
  • Monitoring
  • Murah
  • MySQL
  • NVMe
  • Offline
  • Online
  • Open Source
  • Optimasi
  • ORM
  • Otomatis
  • Otomatisasi
  • Package
  • Panduan
  • Payment
  • Pelajar
  • Pelanggan
  • Pelatihan
  • Pemula
  • Pengguna
  • Penjualan
  • Perbandingan
  • Performa
  • Perusahaan
  • PHP
  • Portfolio
  • Praktis
  • Prediksi
  • Produktivitas
  • Profesional
  • Projects
  • Python
  • Ranking
  • React
  • Rekomendasi
  • Responsive
  • Retail
  • Review
  • Roadmap
  • Sales
  • SEO
  • Sertifikasi
  • Server
  • Shared
  • Sistem
  • Skalabilitas
  • Skills
  • Software
  • Solusi
  • Sosial
  • SSD
  • SSL
  • Strategi
  • Studi Kasus
  • Talent
  • Tanggung Jawab
  • Technology
  • Teknis
  • Teknologi
  • Teks
  • Template
  • TensorFlow
  • Terbaik
  • Terbaru
  • Terpercaya
  • Terukur
  • Tim
  • Tips
  • Tools
  • Transformasi
  • Trik
  • Troubleshooting
  • Tutorial
  • UMKM
  • Unlimited
  • Update
  • Uptime
  • Validasi
  • VPS
  • Vue.js
  • Waspada
  • Web
  • Web Development
  • Web Hosting
  • Website
  • Windows
  • WordPress
  • XAMPP

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 Lokerwfh.

No Result
View All Result
  • Indonesia
  • Website
  • Hosting
  • Laravel
  • Development
  • Bisnis

© 2024 Lokerwfh.