tutwuri
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis
No Result
View All Result
tutwuri
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis
No Result
View All Result
tutwuri
No Result
View All Result
Home API

Cara Membuat API dengan Laravel dan Passport: Membangun API yang Aman dan Terukur

Jasper Nightshade by Jasper Nightshade
August 11, 2025
in API, Keamanan, Laravel, Otentikasi, Pengembangan
0
Share on FacebookShare on Twitter

Membuat Application Programming Interface (API) menjadi kebutuhan penting di era digital ini. API memungkinkan aplikasi yang berbeda untuk berkomunikasi dan bertukar data satu sama lain. Laravel, framework PHP yang populer, menyediakan alat yang ampuh untuk membuat API dengan mudah. Dan dengan bantuan Laravel Passport, kita bisa mengamankan API kita dengan otentikasi OAuth2 yang kuat. Artikel ini akan membahas secara mendalam cara membuat API dengan Laravel dan Passport: Membangun API yang Aman dan Terukur. Siap memulai petualangan membangun API? Yuk, kita mulai!

1. Mengapa Memilih Laravel dan Passport untuk API Anda?

Sebelum kita terjun ke implementasi, mari kita pahami dulu mengapa Laravel dan Passport menjadi pilihan yang tepat untuk membangun API.

  • Laravel: Framework yang Cepat dan Efisien: Laravel menyediakan struktur yang terorganisir, komponen yang siap pakai, dan sintaks yang elegan. Ini mempercepat proses pengembangan dan mengurangi boilerplate code.
  • Passport: Keamanan OAuth2 yang Mudah: Laravel Passport menyederhanakan implementasi OAuth2, protokol otentikasi yang banyak digunakan untuk mengamankan API. Passport menangani hal-hal rumit seperti token generation, refresh token, dan manajemen akses.
  • Skalabilitas yang Baik: Laravel dirancang untuk menangani beban kerja yang besar. Dengan arsitektur yang baik, API yang dibangun dengan Laravel dapat dengan mudah di-scale untuk memenuhi kebutuhan yang terus berkembang.
  • Komunitas yang Besar dan Aktif: Laravel memiliki komunitas yang besar dan aktif. Ini berarti Anda akan mudah menemukan bantuan, tutorial, dan paket pihak ketiga yang dapat mempercepat pengembangan API Anda.
  • Dokumentasi yang Lengkap: Laravel memiliki dokumentasi yang lengkap dan mudah dipahami, sehingga memudahkan pengembang untuk mempelajari dan menggunakan framework ini.

Dengan keuntungan-keuntungan ini, Laravel dan Passport menjadi kombinasi yang sangat kuat untuk membuat API yang aman dan terukur.

2. Persiapan Awal: Instalasi Laravel dan Konfigurasi Dasar

Langkah pertama dalam cara membuat API dengan Laravel dan Passport adalah menyiapkan lingkungan pengembangan kita. Ini melibatkan instalasi Laravel dan konfigurasi dasar.

Related Post

Contoh Project Laravel Open Source: Inspirasi & Referensi Kode

November 30, 2025

Komunitas Laravel Developer Indonesia: Bergabung & Belajar Bersama!

November 30, 2025

Cara Deploy Aplikasi Laravel ke Server: Panduan Lengkap Hingga Website Online

November 30, 2025

Laravel Eloquent Relationship Tutorial Indonesia: Hubungan Antar Tabel dengan Mudah

November 30, 2025
  1. Instalasi Laravel: Pastikan Anda telah menginstal PHP dan Composer di sistem Anda. Gunakan Composer untuk membuat proyek Laravel baru.

    composer create-project --prefer-dist laravel/laravel nama-proyek-api
    cd nama-proyek-api
  2. Konfigurasi Database: Konfigurasikan koneksi database Anda di file .env. Sesuaikan variabel DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, dan DB_PASSWORD sesuai dengan konfigurasi database Anda.

  3. Migrasi Database Awal: Jalankan perintah migrasi untuk membuat tabel-tabel dasar yang dibutuhkan oleh Laravel.

    php artisan migrate
  4. Konfigurasi App Key: Generate app key.

    php artisan key:generate
  5. Serve Aplikasi: Jalankan server pengembangan Laravel.

    php artisan serve

Setelah langkah-langkah ini selesai, Anda telah berhasil menyiapkan proyek Laravel dasar Anda.

3. Instalasi dan Konfigurasi Laravel Passport: Mengamankan API Anda

Setelah Laravel terinstal, langkah selanjutnya adalah menginstal dan mengkonfigurasi Laravel Passport. Ini adalah kunci untuk membangun API yang aman.

  1. Instalasi Passport: Gunakan Composer untuk menginstal Laravel Passport.

    composer require laravel/passport
  2. Konfigurasi Passport: Jalankan perintah instalasi Passport untuk menyiapkan tabel-tabel database dan kunci enkripsi yang dibutuhkan.

    php artisan passport:install

    Perintah ini akan membuat tabel-tabel yang diperlukan di database Anda dan menghasilkan kunci enkripsi yang akan digunakan oleh Passport.

  3. Menambahkan Trait HasApiTokens ke Model User: Tambahkan trait HasApiTokens ke model AppModelsUser.

    <?php
    
    namespace AppModels;
    
    use IlluminateContractsAuthMustVerifyEmail;
    use IlluminateDatabaseEloquentFactoriesHasFactory;
    use IlluminateFoundationAuthUser as Authenticatable;
    use IlluminateNotificationsNotifiable;
    use LaravelPassportHasApiTokens; // Tambahkan ini
    
    class User extends Authenticatable
    {
        use HasApiTokens, HasFactory, Notifiable;
    
        // ...
    }
  4. Konfigurasi AuthServiceProvider: Di dalam method boot di AppProvidersAuthServiceProvider, panggil method Passport::routes().

    <?php
    
    namespace AppProviders;
    
    use IlluminateFoundationSupportProvidersAuthServiceProvider as ServiceProvider;
    use IlluminateSupportFacadesGate;
    use LaravelPassportPassport; // Tambahkan ini
    
    class AuthServiceProvider extends ServiceProvider
    {
        /**
         * The policy mappings for the application.
         *
         * @var array
         */
        protected $policies = [
            // 'AppModelsModel' => 'AppPoliciesModelPolicy',
        ];
    
        /**
         * Register any authentication / authorization services.
         *
         * @return void
         */
        public function boot()
        {
            $this->registerPolicies();
    
            Passport::routes(); // Tambahkan ini
        }
    }
  5. Konfigurasi Driver Authentikasi: Pastikan driver authentikasi di config/auth.php diatur ke passport.

    'guards' => [
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],

Setelah langkah-langkah ini, Laravel Passport sudah terkonfigurasi dan siap digunakan untuk mengamankan API Anda.

4. Membuat API Endpoint Sederhana: Contoh CRUD untuk Data Produk

Sekarang, mari kita buat API endpoint sederhana untuk mengelola data produk. Kita akan membuat endpoint untuk create, read, update, dan delete (CRUD) data produk.

  1. Membuat Model dan Migrasi Produk: Buat model Product dan migrasinya.

    php artisan make:model Product -m

    Edit file migrasi (database/migrations/xxxx_create_products_table.php) untuk mendefinisikan struktur tabel produk. Contoh:

    <?php
    
    use IlluminateDatabaseMigrationsMigration;
    use IlluminateDatabaseSchemaBlueprint;
    use IlluminateSupportFacadesSchema;
    
    class CreateProductsTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('products', function (Blueprint $table) {
                $table->id();
                $table->string('name');
                $table->text('description')->nullable();
                $table->decimal('price', 10, 2);
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('products');
        }
    }

    Jalankan migrasi:

    php artisan migrate
  2. Membuat Controller Produk: Buat controller ProductController untuk menangani logika API.

    php artisan make:controller ProductController --resource

    Ini akan membuat controller dengan method-method standar untuk CRUD operations.

  3. Implementasi Method CRUD di Controller: Implementasikan logic untuk setiap method di ProductController:

    • index: Menampilkan daftar produk.
    • store: Membuat produk baru.
    • show: Menampilkan detail produk.
    • update: Mengupdate produk yang ada.
    • destroy: Menghapus produk.

    Contoh (beberapa method):

    <?php
    
    namespace AppHttpControllers;
    
    use AppModelsProduct;
    use IlluminateHttpRequest;
    
    class ProductController extends Controller
    {
        /**
         * Display a listing of the resource.
         *
         * @return IlluminateHttpResponse
         */
        public function index()
        {
            $products = Product::all();
            return response()->json($products);
        }
    
        /**
         * Store a newly created resource in storage.
         *
         * @param  IlluminateHttpRequest  $request
         * @return IlluminateHttpResponse
         */
        public function store(Request $request)
        {
            $product = Product::create($request->all());
            return response()->json($product, 201); // 201 Created
        }
    
        /**
         * Display the specified resource.
         *
         * @param  AppModelsProduct  $product
         * @return IlluminateHttpResponse
         */
        public function show(Product $product)
        {
            return response()->json($product);
        }
    
        // ... implementasikan update dan destroy
    }
  4. Mendefinisikan Routes API: Definisikan routes API di routes/api.php.

    <?php
    
    use IlluminateHttpRequest;
    use IlluminateSupportFacadesRoute;
    use AppHttpControllersProductController;
    
    Route::middleware('auth:api')->get('/user', function (Request $request) {
        return $request->user();
    });
    
    Route::apiResource('products', ProductController::class);

    Route::apiResource secara otomatis membuat routes untuk semua method CRUD di ProductController.

Sekarang, Anda sudah memiliki API endpoint sederhana untuk mengelola data produk. Namun, endpoint ini belum diamankan. Mari kita amankan dengan Passport.

5. Mengamankan API Endpoint dengan Passport: Otentikasi dan Otorisasi

Langkah penting selanjutnya adalah mengamankan API endpoint dengan Passport. Ini melibatkan otentikasi pengguna dan otorisasi akses.

  1. Membuat Client OAuth2: Buat client OAuth2 yang akan digunakan oleh aplikasi yang mengakses API. Jalankan perintah berikut:

    php artisan passport:client --personal

    Perintah ini akan membuat client personal access token. Catat client_id dan client_secret yang dihasilkan.

  2. Mendaftarkan Pengguna: Aplikasi yang mengakses API harus mendaftarkan pengguna terlebih dahulu. Buat endpoint untuk registrasi pengguna (jika belum ada). Contoh:

    use AppModelsUser;
    use IlluminateSupportFacadesHash;
    
    Route::post('/register', function (Request $request) {
        $request->validate([
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6',
        ]);
    
        $user = User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => Hash::make($request->password),
        ]);
    
        $token = $user->createToken('MyApp')->accessToken; // Generate access token
    
        return response()->json(['token' => $token], 201);
    });
  3. Meminta Access Token: Setelah pengguna terdaftar, mereka dapat meminta access token dengan mengirimkan request ke endpoint /oauth/token (endpoint ini otomatis disediakan oleh Passport) dengan kredensial mereka (username/password dan client_id dan client_secret yang Anda dapatkan sebelumnya).

  4. Melindungi Routes dengan Middleware auth:api: Lindungi API endpoint yang ingin Anda amankan dengan middleware auth:api. Contoh:

    Route::middleware('auth:api')->group(function () {
        Route::apiResource('products', ProductController::class);
    });

    Sekarang, hanya pengguna yang memiliki access token yang valid yang dapat mengakses endpoint /products.

  5. Mengirimkan Access Token: Aplikasi yang mengakses API harus mengirimkan access token di header Authorization dengan format Bearer <access_token>.

Dengan langkah-langkah ini, API endpoint Anda sudah aman dan hanya dapat diakses oleh pengguna yang terotentikasi.

6. Validasi Data dan Error Handling: Memastikan Kualitas API

Validasi data dan error handling sangat penting untuk memastikan kualitas API.

  1. Validasi Request: Gunakan request validation untuk memastikan data yang dikirim oleh pengguna valid. Anda dapat menggunakan request validation rules yang disediakan oleh Laravel. Contoh:

    // Di ProductController method store
    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required|max:255',
            'description' => 'nullable',
            'price' => 'required|numeric|min:0',
        ]);
    
        $product = Product::create($validatedData);
        return response()->json($product, 201);
    }
  2. Custom Error Handling: Tangani error dengan baik dan kembalikan response yang informatif ke client. Anda bisa menggunakan exception handling yang disediakan oleh Laravel. Buat custom exception handler jika diperlukan.

  3. Standardisasi Response: Konsisten dalam format response API. Gunakan format JSON yang terstruktur dengan baik. Sertakan pesan error yang jelas dan kode status HTTP yang sesuai.

7. Pagination dan Filtering: Mengelola Data dalam Jumlah Besar

Ketika API Anda berurusan dengan data dalam jumlah besar, pagination dan filtering menjadi penting untuk mengelola data dengan efisien.

  1. Pagination: Gunakan pagination bawaan Laravel untuk membagi data menjadi halaman-halaman kecil. Contoh:

    public function index()
    {
        $products = Product::paginate(10); // Menampilkan 10 produk per halaman
        return response()->json($products);
    }

    Client dapat menggunakan parameter page di URL untuk menavigasi antar halaman.

  2. Filtering: Izinkan client untuk memfilter data berdasarkan kriteria tertentu. Anda dapat menggunakan query parameters untuk menentukan filter. Contoh:

    public function index(Request $request)
    {
        $query = Product::query();
    
        if ($request->has('name')) {
            $query->where('name', 'like', '%' . $request->input('name') . '%');
        }
    
        if ($request->has('price_min')) {
            $query->where('price', '>=', $request->input('price_min'));
        }
    
        $products = $query->paginate(10);
        return response()->json($products);
    }

    Client dapat memfilter produk berdasarkan nama dan harga minimum dengan mengirimkan request seperti /products?name=keyboard&price_min=50.

8. Caching: Meningkatkan Performa API

Caching adalah teknik yang sangat efektif untuk meningkatkan performa API.

  1. Caching Response: Simpan response API di cache untuk sementara waktu. Ketika request yang sama diterima, kembalikan response dari cache daripada menghitungnya lagi. Laravel menyediakan berbagai driver cache, seperti Redis dan Memcached.

    use IlluminateSupportFacadesCache;
    
    public function index()
    {
        $products = Cache::remember('products', 60, function () { // Cache selama 60 detik
            return Product::all();
        });
    
        return response()->json($products);
    }
  2. Caching Query: Simpan hasil query database di cache. Ini dapat mengurangi beban database dan mempercepat response time.

9. Testing API: Memastikan API Berfungsi dengan Baik

Testing API sangat penting untuk memastikan API berfungsi dengan baik dan sesuai dengan spesifikasi.

  1. Unit Testing: Uji setiap unit kode secara individual. Pastikan setiap method di controller berfungsi seperti yang diharapkan.

  2. Integration Testing: Uji interaksi antara berbagai komponen API. Pastikan data mengalir dengan benar antara controller, model, dan database.

  3. API Testing: Uji seluruh API endpoint. Pastikan endpoint mengembalikan response yang benar dengan kode status HTTP yang sesuai. Anda dapat menggunakan alat seperti Postman atau Insomnia untuk melakukan API testing.

Laravel menyediakan alat yang kuat untuk testing, termasuk PHPUnit. Gunakan testing untuk mengidentifikasi dan memperbaiki bug sebelum API Anda diluncurkan.

10. Dokumentasi API: Memudahkan Penggunaan API oleh Pengembang Lain

Dokumentasi API yang baik sangat penting untuk memudahkan penggunaan API oleh pengembang lain.

  1. Gunakan Alat Dokumentasi API: Gunakan alat dokumentasi API seperti Swagger/OpenAPI untuk menghasilkan dokumentasi API secara otomatis berdasarkan kode Anda.

  2. Sertakan Informasi Lengkap: Sertakan informasi lengkap tentang setiap endpoint, termasuk:

    • Deskripsi endpoint
    • Method HTTP (GET, POST, PUT, DELETE)
    • Parameter yang dibutuhkan
    • Format request body
    • Contoh response
    • Kode status HTTP yang mungkin dikembalikan
    • Autentikasi yang dibutuhkan
  3. Jaga Dokumentasi Tetap Up-to-Date: Pastikan dokumentasi API selalu up-to-date dengan perubahan kode.

11. Deployment API: Meluncurkan API Anda ke Publik

Setelah API Anda diuji dan didokumentasikan, saatnya untuk meluncurkan API Anda ke publik.

  1. Pilih Platform Deployment: Pilih platform deployment yang sesuai dengan kebutuhan Anda. Beberapa opsi populer termasuk:

    • Shared hosting
    • Virtual Private Server (VPS)
    • Cloud platform (AWS, Google Cloud, Azure)
  2. Konfigurasikan Server: Konfigurasikan server Anda untuk menjalankan aplikasi Laravel Anda. Pastikan PHP, web server (Apache atau Nginx), dan database sudah terinstal dan terkonfigurasi dengan benar.

  3. Deployment Kode: Deploy kode API Anda ke server. Anda dapat menggunakan Git, FTP, atau alat deployment otomatis seperti Deployer.

  4. Konfigurasi Environment: Konfigurasikan environment variables (di .env file) di server. Pastikan database credentials, API keys, dan konfigurasi lainnya sudah benar.

  5. Setup Domain dan SSL: Arahkan domain Anda ke server Anda dan konfigurasi SSL untuk mengamankan koneksi.

  6. Monitoring: Pantau API Anda secara teratur untuk memastikan performa dan ketersediaan yang baik. Gunakan alat monitoring seperti New Relic atau Sentry.

12. Tips Tambahan untuk Membuat API yang Lebih Baik

Selain langkah-langkah di atas, berikut adalah beberapa tips tambahan untuk membuat API yang lebih baik:

  • Gunakan RESTful API design principles: Ikuti prinsip-prinsip RESTful API untuk membuat API yang konsisten, mudah dipahami, dan mudah digunakan.
  • Gunakan versioning API: Gunakan versioning API (misalnya, /api/v1/products) untuk memungkinkan perubahan API tanpa merusak aplikasi yang sudah ada.
  • Rate limiting: Implementasikan rate limiting untuk mencegah penyalahgunaan API dan melindungi server Anda dari overload.
  • Logging: Log semua request dan response API untuk debugging dan auditing.
  • Security best practices: Ikuti security best practices untuk melindungi API Anda dari serangan.

Dengan mengikuti panduan ini, Anda dapat membuat API dengan Laravel dan Passport yang aman, terukur, dan mudah digunakan. Selamat mencoba!

Tags: APIAPI DevelopmentAPI TutorialAuthenticationLaravelOAuthPassportPHPScalable APISecurity
Jasper Nightshade

Jasper Nightshade

Related Posts

Contoh

Contoh Project Laravel Open Source: Inspirasi & Referensi Kode

by Elara Meadowlight
November 30, 2025
Belajar

Komunitas Laravel Developer Indonesia: Bergabung & Belajar Bersama!

by Elara Meadowlight
November 30, 2025
Deployment

Cara Deploy Aplikasi Laravel ke Server: Panduan Lengkap Hingga Website Online

by Jasper Nightshade
November 30, 2025
Next Post

CRUD Laravel dengan Eloquent dan Migration: Manajemen Database yang Mudah dan Efisien

Leave a Reply Cancel reply

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

Recommended

Contoh Implementasi AI dalam Bisnis UKM: Studi Kasus dan Peluang Bisnis

June 20, 2025

Cara Implementasi Authentication di Laravel: Keamanan Website Terjamin

August 1, 2025

Contoh Website Company Profile Sederhana dengan HTML CSS: Inspirasi Desain Modern

July 30, 2025

Contoh Project Web Development Sederhana: Inspirasi dan Tutorial Lengkap

June 12, 2025

Cara Meningkatkan Penjualan dengan CRM: Strategi Efektif untuk Pertumbuhan Bisnis

June 5, 2026

Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan

June 5, 2026

Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda

June 5, 2026

Training CRM untuk Tim Sales dan Marketing: Tingkatkan Kompetensi dan Produktivitas

June 5, 2026

tutwuri

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

  • Cara Meningkatkan Penjualan dengan CRM: Strategi Efektif untuk Pertumbuhan Bisnis
  • Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan
  • Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda

Categories

  • AI
  • Akuntansi
  • Algoritma
  • Alternatif
  • Analisis
  • and separated by commas: Hosting
  • API
  • Aplikasi
  • Asuransi
  • Authentication
  • Backend
  • Bahasa Indonesia
  • Belajar
  • Berita
  • Biaya
  • Bisnis
  • Blog
  • Bootstrap
  • Branding
  • Bulanan
  • Business
  • Cepat
  • Chatbot
  • ChatGPT
  • Cloud
  • CMS
  • Command
  • Contoh
  • CPanel
  • CRM
  • CRUD
  • CSS
  • Data
  • Database
  • Debugging
  • Deployment
  • Desain
  • Design
  • Developer
  • Development
  • Digital
  • Dokumentasi
  • Domain
  • Download
  • Dukungan
  • E-commerce
  • Efektif
  • Efektivitas
  • Efisiensi
  • Email
  • Error
  • Error generating categories
  • Etika
  • Event
  • Excel
  • Fashion
  • File
  • Fitur
  • Fleksibilitas
  • Framework
  • Freelance
  • Frontend
  • Fungsional
  • Gambar
  • Game
  • Garansi
  • Generatif
  • Google
  • Gratis
  • Harga
  • Here are 5 categories
  • Here are 5 categories based on the article titles
  • Hosting
  • HTML
  • Ide
  • Implementasi
  • Indonesia
  • Industri
  • Inovasi
  • Inspirasi
  • Integrasi
  • Investasi
  • Jakarta
  • JavaScript
  • Kapasitas
  • Karir
  • Kasus
  • Keamanan
  • Keandalan
  • Keberhasilan
  • Kebutuhan
  • Kecepatan
  • Kepuasan
  • Kerugian
  • Kesehatan
  • Kinerja
  • Kolaborasi
  • Komunikasi
  • Komunitas
  • Konfigurasi
  • Konstruksi
  • Konten
  • Kota
  • Kreativitas
  • Kualitas
  • Kustomisasi
  • Laporan
  • Laravel
  • Layanan
  • Lokasi
  • Machine Learning
  • Mahasiswa
  • Manajemen
  • Manajemen Proyek
  • Manfaat
  • Manufaktur
  • Marketing
  • Masa Depan
  • Masyarakat
  • Media Sosial
  • Migrasi
  • Migration
  • Mobile
  • Model
  • Monitoring
  • Murah
  • Negosiasi
  • Node JS
  • Online
  • Open Source
  • Optimasi
  • Otentikasi
  • Otomatis
  • Otomatisasi
  • Otomotif
  • Panduan
  • Pariwisata
  • Payment Gateway
  • Pekerjaan
  • Pelajar
  • Pelanggan
  • Pelatihan
  • Peluang
  • Pemasaran
  • Pemrograman
  • Pemula
  • Pendidikan
  • Pengambilan Keputusan
  • Pengembangan
  • Pengguna
  • Penggunaan
  • Penghasilan
  • Penipuan
  • Penjualan
  • Perbandingan
  • Perbedaan
  • Performa
  • Personalisasi
  • Pertumbuhan
  • Perubahan
  • PHP
  • Pilihan
  • Plugin
  • Portfolio
  • Prediksi
  • Produktivitas
  • Profesional
  • Programmer
  • Promo
  • Prospek
  • Python
  • Queue
  • Rekomendasi
  • Responsive
  • Retensi
  • Review
  • SEO
  • Sertifikat
  • Server
  • Sistem
  • Skalabilitas
  • Skill
  • Software
  • Solusi
  • SSD
  • SSL
  • Stabilitas
  • Startup
  • Strategi
  • Syarat
  • Tanggung Jawab
  • Tantangan
  • Technology
  • Teknologi
  • Template
  • Terbaik
  • Terbaru
  • Terpercaya
  • Testimoni
  • Tips
  • Tools
  • Traffic
  • Trafik
  • Tren
  • Troubleshooting
  • Tutorial
  • UI
  • UKM
  • Unlimited
  • Upload
  • Uptime
  • using one word per category: Software
  • using only one word from the list provided per category
  • Validasi
  • Video
  • VPS
  • Web
  • Website
  • WordPress

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 tutwuri.

No Result
View All Result
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis

© 2024 tutwuri.