gociwidey
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Development
  • Bisnis
No Result
View All Result
gociwidey
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Development
  • Bisnis
No Result
View All Result
gociwidey
No Result
View All Result
Home API

Cara Membuat API dengan Laravel dan JWT: Keamanan dan Autentikasi Data

Atticus Finch by Atticus Finch
November 15, 2025
in API, Authentication, Data, Keamanan, Laravel
0
Share on FacebookShare on Twitter

Membuat API (Application Programming Interface) yang aman dan terotentikasi adalah kunci penting dalam pengembangan aplikasi modern. Laravel, sebuah framework PHP yang populer, menyediakan alat dan struktur yang kuat untuk mempermudah proses ini. Dalam artikel ini, kita akan membahas secara mendalam cara membuat API dengan Laravel dan JWT (JSON Web Token), fokus pada keamanan dan autentikasi data.

1. Mengapa Laravel dan JWT untuk API? Memahami Keunggulan

Sebelum kita menyelam ke dalam proses pembuatan API, mari kita pahami terlebih dahulu mengapa Laravel dan JWT menjadi pilihan yang populer:

  • Laravel: Laravel menyediakan sintaks yang elegan, fitur bawaan yang lengkap (seperti routing, middleware, dan ORM), dan komunitas yang besar. Ini mempercepat pengembangan dan membuat kode Anda lebih terstruktur.
  • JWT: JWT adalah standar terbuka yang digunakan untuk mentransmisikan informasi antara pihak-pihak sebagai objek JSON yang aman. JWT sangat cocok untuk autentikasi API karena ukurannya yang kecil, stateless (tidak memerlukan sesi di server), dan dapat ditandatangani secara digital untuk memastikan integritas data.

Kombinasi keduanya memungkinkan Anda membangun API yang kuat, aman, dan mudah dikelola.

2. Persiapan Awal: Instalasi Laravel dan Konfigurasi Dasar

Langkah pertama adalah memastikan Anda telah menginstal Laravel di sistem Anda. Jika belum, ikuti langkah-langkah berikut:

Related Post

Laravel Tutorial: Panduan Lengkap untuk Pemula dan Tingkat Lanjut

November 30, 2025

Web Development Framework: Pilihan Terbaik untuk Proyek Anda

November 30, 2025

Laravel Livewire: Membuat Tampilan Interaktif dengan Mudah

November 30, 2025

Pembuatan Website: Estimasi Biaya dan Tips Terbaik untuk Keberhasilan Online Anda

November 30, 2025
  1. Instal Composer: Composer adalah manajer dependensi PHP yang dibutuhkan untuk menginstal Laravel. Anda dapat mengunduhnya dari https://getcomposer.org/.

  2. Buat Proyek Laravel Baru: Buka terminal dan jalankan perintah berikut:

    composer create-project --prefer-dist laravel/laravel nama-proyek-api
    cd nama-proyek-api

    Ganti nama-proyek-api dengan nama proyek yang Anda inginkan.

  3. Konfigurasi Database: Buat database baru dan konfigurasikan koneksi database di file .env proyek Laravel Anda. Ubah nilai-nilai berikut sesuai dengan konfigurasi database Anda:

    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
  4. Generate Key Aplikasi: Jalankan perintah berikut untuk menghasilkan key aplikasi Laravel:

    php artisan key:generate

    Key ini digunakan untuk mengenkripsi data sensitif.

3. Instalasi dan Konfigurasi Library JWT (tymon/jwt-auth)

Untuk mengimplementasikan JWT, kita akan menggunakan library tymon/jwt-auth. Ikuti langkah-langkah berikut:

  1. Instal Library: Jalankan perintah berikut di terminal:

    composer require tymon/jwt-auth
  2. Publikasikan Konfigurasi: Publikasikan file konfigurasi JWT:

    php artisan vendor:publish --provider="TymonJWTAuthProvidersLaravelServiceProvider"
  3. Generate Secret Key: Generate secret key JWT:

    php artisan jwt:secret

    Perintah ini akan memperbarui file .env Anda dengan nilai JWT_SECRET.

  4. Konfigurasi Model User: Buka model AppModelsUser (atau AppUser jika Anda menggunakan Laravel versi lama) dan implementasikan interface TymonJWTAuthContractsJWTSubject. Tambahkan method berikut:

    <?php
    
    namespace AppModels;
    
    use IlluminateContractsAuthMustVerifyEmail;
    use IlluminateDatabaseEloquentFactoriesHasFactory;
    use IlluminateFoundationAuthUser as Authenticatable;
    use IlluminateNotificationsNotifiable;
    use LaravelSanctumHasApiTokens;
    use TymonJWTAuthContractsJWTSubject;
    
    class User extends Authenticatable implements JWTSubject
    {
        use HasApiTokens, HasFactory, Notifiable;
    
        /**
         * The attributes that are mass assignable.
         *
         * @var array<int, string>
         */
        protected $fillable = [
            'name',
            'email',
            'password',
        ];
    
        /**
         * The attributes that should be hidden for serialization.
         *
         * @var array<int, string>
         */
        protected $hidden = [
            'password',
            'remember_token',
        ];
    
        /**
         * The attributes that should be cast.
         *
         * @var array<string, string>
         */
        protected $casts = [
            'email_verified_at' => 'datetime',
            'password' => 'hashed',
        ];
    
        /**
         * Get the identifier that will be stored in the subject claim of the JWT.
         *
         * @return mixed
         */
        public function getJWTIdentifier()
        {
            return $this->getKey();
        }
    
        /**
         * Return a key value array, containing any custom claims to be added to the JWT.
         *
         * @return array
         */
        public function getJWTCustomClaims()
        {
            return [];
        }
    }
  5. Migrasi Database: Jalankan perintah migrasi untuk membuat tabel users (jika belum ada)

   php artisan migrate

4. Membuat API Endpoint untuk Registrasi dan Login dengan JWT

Sekarang kita akan membuat endpoint API untuk registrasi dan login menggunakan JWT.

  1. Buat Controller Autentikasi: Jalankan perintah berikut untuk membuat controller autentikasi:

    php artisan make:controller AuthController
  2. Kode Controller Autentikasi (AuthController.php):

    <?php
    
    namespace AppHttpControllers;
    
    use AppModelsUser;
    use IlluminateHttpRequest;
    use IlluminateSupportFacadesAuth;
    use IlluminateSupportFacadesHash;
    use IlluminateSupportFacadesValidator;
    use TymonJWTAuthFacadesJWTAuth;
    use TymonJWTAuthExceptionsJWTException;
    
    class AuthController extends Controller
    {
        /**
         * Register a User.
         *
         * @return IlluminateHttpJsonResponse
         */
        public function register(Request $request)
        {
            $validator = Validator::make($request->all(), [
                'name' => 'required|string|between:2,100',
                'email' => 'required|string|email|max:100|unique:users',
                'password' => 'required|string|confirmed|min:6',
            ]);
    
            if ($validator->fails()) {
                return response()->json($validator->errors()->toJson(), 400);
            }
    
            $user = User::create([
                'name' => $request->name,
                'email' => $request->email,
                'password' => Hash::make($request->password),
            ]);
    
            $token = JWTAuth::fromUser($user);
    
            return response()->json([
                'message' => 'User successfully registered',
                'user' => $user,
                'token' => $token,
            ], 201);
        }
    
        /**
         * Log the user in
         * @param Request $request
         * @return IlluminateHttpJsonResponse
         */
        public function login(Request $request)
        {
            $credentials = $request->only('email', 'password');
    
            try {
                if (! $token = JWTAuth::attempt($credentials)) {
                    return response()->json(['error' => 'Invalid credentials'], 400);
                }
            } catch (JWTException $e) {
                return response()->json(['error' => 'Could not create token'], 500);
            }
    
            return response()->json([
                'token' => $token,
                'token_type' => 'bearer',
                'expires_in' => JWTAuth::factory()->getTTL() * 60
            ]);
        }
    
        /**
         * Get the authenticated User.
         *
         * @return IlluminateHttpJsonResponse
         */
        public function profile()
        {
            return response()->json(auth()->user());
        }
    
        /**
         * Log the user out (Invalidate the token).
         *
         * @return IlluminateHttpJsonResponse
         */
        public function logout()
        {
            auth()->logout();
    
            return response()->json(['message' => 'User successfully signed out']);
        }
    
        /**
         * Refresh a token.
         *
         * @return IlluminateHttpJsonResponse
         */
        public function refresh()
        {
            return $this->createNewToken(auth()->refresh());
        }
    
        /**
         * Get the token array structure.
         *
         * @param  string $token
         *
         * @return IlluminateHttpJsonResponse
         */
        protected function createNewToken($token)
        {
            return response()->json([
                'access_token' => $token,
                'token_type' => 'bearer',
                'expires_in' => JWTAuth::factory()->getTTL() * 60,
                'user' => auth()->user()
            ]);
        }
    }
  3. Definisikan Route API (routes/api.php):

    <?php
    
    use IlluminateHttpRequest;
    use IlluminateSupportFacadesRoute;
    use AppHttpControllersAuthController;
    
    Route::post('/register', [AuthController::class, 'register']);
    Route::post('/login', [AuthController::class, 'login']);
    Route::post('/logout', [AuthController::class, 'logout']);
    Route::post('/refresh', [AuthController::class, 'refresh']);
    Route::get('/profile', [AuthController::class, 'profile']);
    

5. Membuat Middleware untuk Proteksi Route API dengan JWT

Middleware digunakan untuk memvalidasi token JWT sebelum mengizinkan akses ke route API yang dilindungi. Laravel sudah memiliki middleware auth:api, tetapi kita perlu mengkonfigurasinya untuk menggunakan JWT.

  1. Register Middleware: Buka file app/Http/Kernel.php dan tambahkan middleware auth:api ke array $routeMiddleware.

     protected $routeMiddleware = [
         'auth:api' => AppHttpMiddlewareAuthenticate::class, //Ganti ini
     ];
    
    //Menjadi ini
     protected $routeMiddleware = [
         'auth:api' => TymonJWTAuthHttpMiddlewareAuthenticate::class,
         //...middleware yang lain
     ];
  2. Gunakan Middleware pada Route: Tambahkan middleware auth:api ke route yang ingin Anda lindungi. Contoh:

     Route::get('/profile', [AuthController::class, 'profile'])->middleware('auth:api');

    Sekarang, hanya pengguna yang memiliki token JWT valid yang dapat mengakses route /profile.

6. Pengujian API: Registrasi, Login, dan Akses Route Terlindungi

Anda dapat menggunakan tools seperti Postman atau Insomnia untuk menguji API Anda.

  1. Registrasi: Kirim permintaan POST ke /api/register dengan data berikut:

    {
        "name": "Nama Pengguna",
        "email": "[email protected]",
        "password": "password",
        "password_confirmation": "password"
    }

    Anda akan menerima respons JSON yang berisi token JWT.

  2. Login: Kirim permintaan POST ke /api/login dengan data berikut:

    {
        "email": "[email protected]",
        "password": "password"
    }

    Anda akan menerima respons JSON yang berisi token JWT.

  3. Akses Route Terlindungi: Kirim permintaan GET ke /api/profile dengan header Authorization: Bearer <token_jwt_anda>. Ganti <token_jwt_anda> dengan token JWT yang Anda peroleh dari proses login atau registrasi.

    Anda akan menerima respons JSON yang berisi informasi profil pengguna yang terautentikasi. Jika token tidak valid, Anda akan menerima respons error.

7. Refresh Token: Menjaga Sesi Aktif dengan JWT

Token JWT memiliki masa berlaku. Setelah masa berlaku habis, pengguna harus melakukan login ulang. Untuk menghindari hal ini, kita dapat menggunakan fitur refresh token. Endpoint /api/refresh yang sudah kita buat memungkinkan pengguna untuk memperbarui token mereka sebelum masa berlakunya habis.

  1. Cara Kerja Refresh Token: Aplikasi Anda (misalnya, aplikasi frontend) perlu memantau masa berlaku token JWT. Beberapa saat sebelum token kedaluwarsa, kirim permintaan POST ke /api/refresh dengan header Authorization: Bearer <token_jwt_anda>.

  2. Respons Refresh Token: Jika token lama valid, server akan menghasilkan token JWT baru dan mengirimkannya kembali ke aplikasi. Aplikasi kemudian harus menyimpan token baru dan menggunakannya untuk permintaan API selanjutnya.

8. Implementasi Keamanan Lanjutan: Rate Limiting dan CORS

Untuk meningkatkan keamanan API Anda, pertimbangkan untuk menerapkan langkah-langkah berikut:

  • Rate Limiting: Batasi jumlah permintaan yang dapat dibuat oleh pengguna atau alamat IP dalam jangka waktu tertentu. Laravel menyediakan fitur throttling yang dapat Anda gunakan. Anda dapat menggunakan middleware throttle:api (atau membuat middleware custom). Contoh:

    Route::middleware('throttle:60,1')->group(function () {
        Route::get('/data', function () {
            // Route ini dibatasi hingga 60 permintaan per menit
        });
    });
  • CORS (Cross-Origin Resource Sharing): Konfigurasi CORS untuk mengizinkan permintaan hanya dari domain yang Anda izinkan. Anda dapat menggunakan package fruitcake/laravel-cors atau mengkonfigurasi CORS secara manual di file config/cors.php. Contoh penggunaan package fruitcake/laravel-cors:

    1. Instal package: composer require fruitcake/laravel-cors
    2. Aktifkan middleware CORS di file app/Http/Kernel.php di bagian $middleware.
    3. Konfigurasikan CORS di file config/cors.php.

9. Validasi Input: Memastikan Data yang Valid dan Aman

Validasi input adalah langkah penting untuk mencegah serangan seperti SQL Injection dan XSS. Laravel menyediakan fitur validasi yang kuat. Gunakan Validator class untuk memvalidasi data yang dikirim oleh pengguna. Contohnya sudah kita lihat di AuthController::register(). Pastikan untuk selalu memvalidasi semua data yang masuk ke aplikasi Anda.

10. Logging dan Monitoring: Memantau Kesehatan dan Keamanan API

Implementasikan logging dan monitoring untuk memantau kesehatan API Anda dan mendeteksi potensi masalah keamanan. Laravel menyediakan fitur logging bawaan. Anda juga dapat menggunakan tools pihak ketiga seperti Sentry atau Bugsnag. Pantau log secara teratur untuk mengidentifikasi anomali dan potensi serangan.

11. Dokumentasi API: Mempermudah Penggunaan API untuk Pengembang Lain

Dokumentasi yang baik sangat penting untuk mempermudah penggunaan API Anda oleh pengembang lain. Gunakan tools seperti Swagger atau OpenAPI untuk membuat dokumentasi API yang interaktif dan mudah dipahami. Dokumentasi harus mencakup informasi tentang endpoint, parameter, respons, dan contoh penggunaan.

12. Kesimpulan: API yang Aman dan Skalabel dengan Laravel dan JWT

Dengan mengikuti langkah-langkah di atas, Anda dapat membuat API dengan Laravel dan JWT yang aman, terotentikasi, dan mudah dikelola. Fokus pada keamanan dan autentikasi data adalah kunci untuk membangun aplikasi yang kuat dan andal. Ingatlah untuk selalu memperbarui pengetahuan Anda tentang praktik keamanan terbaik dan terus meningkatkan keamanan API Anda seiring dengan perkembangan teknologi. Selamat mencoba!

Tags: APIAPI DevelopmentAuthenticationdata securityJSON Web TokenJWTLaravelPHPSecurityweb development
Atticus Finch

Atticus Finch

Related Posts

Laravel

Laravel Tutorial: Panduan Lengkap untuk Pemula dan Tingkat Lanjut

by Willow Grey
November 30, 2025
Development

Web Development Framework: Pilihan Terbaik untuk Proyek Anda

by Jasper Blackwood
November 30, 2025
Development

Laravel Livewire: Membuat Tampilan Interaktif dengan Mudah

by Atticus Finch
November 30, 2025
Next Post

Implementasi Authentication dan Authorization di Laravel: Lindungi Aplikasi Anda

Leave a Reply Cancel reply

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

Recommended

Harga Jasa Pembuatan Website E-Commerce di Jakarta: Investasi Terbaik untuk Bisnis

May 29, 2025

Harga Software CRM di Indonesia Terbaru: Perbandingan Harga & Fitur Lengkap

October 21, 2025

Kursus Web Development Online Bersertifikat: Investasi Terbaik untuk Karir Anda

October 24, 2025

Integrasi Laravel dengan Payment Gateway Indonesia: Transaksi Aman & Mudah

October 17, 2025

Hosting Domain Gratis dan SSL Murah Indonesia: Hemat Budget, Website Aman

December 15, 2025

Hosting SSD Tercepat untuk Website Toko Online Indonesia: Tingkatkan Penjualan!

December 15, 2025

Hosting WordPress dengan Dukungan Teknis 24 Jam Indonesia: Bebas Khawatir!

December 15, 2025

Hosting Unlimited Bandwidth dan Disk Space Indonesia: Solusi Tepat untuk Website Anda

December 14, 2025

gociwidey

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

  • Hosting Domain Gratis dan SSL Murah Indonesia: Hemat Budget, Website Aman
  • Hosting SSD Tercepat untuk Website Toko Online Indonesia: Tingkatkan Penjualan!
  • Hosting WordPress dengan Dukungan Teknis 24 Jam Indonesia: Bebas Khawatir!

Categories

  • Admin
  • Adopsi
  • Afiliasi
  • Agency
  • AI
  • Akses
  • Aktif
  • Akuntansi
  • Akurat
  • Alasan
  • Algoritma
  • Alternatif
  • Aman
  • Analisis
  • Analytics
  • Andal
  • Android
  • Animasi
  • Anti
  • API
  • Aplikasi
  • Arsitektur
  • Artikel
  • Artisan
  • Asset
  • Authentication
  • Authorization
  • Back-End
  • Backend
  • Background
  • Backup
  • Bahasa
  • Bandwidth
  • Based on the article title "Cara Menggunakan Vue.js dengan Laravel: Membuat Interface Interaktif"
  • Batasan
  • Belajar
  • Berbagi
  • Berbayar
  • Best Practices
  • Biaya
  • Bisnis
  • Blade
  • Blog
  • Bootstrap
  • Brand
  • Budget
  • Bukti
  • Bulanan
  • CDN
  • Cepat
  • Chatbot
  • ChatGPT
  • Cloud
  • Coding
  • Command Line
  • Company Profile
  • Complete
  • Composer
  • Contoh
  • cPanel
  • CRM
  • CRUD
  • CSS
  • Custom
  • Customer Service
  • Dampak
  • Dasar
  • Dashboard
  • Data
  • Database
  • Debugging
  • Dedicated Server
  • Dependency
  • Deployment
  • Desain
  • Deteksi
  • Developer
  • Development
  • Diagnosis
  • Digital
  • Digital Marketing
  • Digitalisasi
  • Disk Space
  • Diskon
  • Diskusi
  • Dokumentasi
  • Domain
  • Download
  • Downtime
  • Dukungan
  • E-Commerce
  • Edit
  • Efektivitas
  • Efisiensi
  • Ekonomis
  • Eloquent
  • Email
  • Engagement
  • Enterprise
  • Error
  • Error generating categories
  • Estimasi
  • Etika
  • Events
  • Excel
  • Extension
  • Filesystem
  • Fitur
  • Fleksibilitas
  • Form
  • Forum
  • Foto
  • Framework
  • Freelance
  • Front-End
  • Full-Stack
  • Fungsi
  • Fungsionalitas
  • Gambar
  • Game
  • Garansi
  • Gateway
  • Git
  • Google
  • Gratis
  • Hacker
  • Harga
  • Hemat
  • Here are 5 categories based on the article title "Harga Software CRM dan Biaya Implementasi: Investasi yang Tepat untuk Bisnis Anda": CRM
  • Here are 5 categories based on the article title "Hosting Indonesia Murah dengan Fitur Lengkap: Solusi Tepat untuk Bisnismu": Hosting
  • Here are 5 categories based on the provided title: Hosting
  • Here are 5 categories based on the provided title: Rekomendasi Hosting Murah untuk Toko Online dengan Bandwidth Besar: Sukseskan Bisnismu! Hosting
  • Here are 5 categories based on the title "Tips Optimasi Performa Aplikasi Laravel agar Lebih Cepat: Website Anti Lemot": **Laravel
  • here are 5 categories: Laravel
  • Hosting
  • HTML
  • Hubungan
  • Ide
  • Iklan
  • Implementasi
  • Implikasi
  • Indonesia
  • Industri
  • Informasi
  • Inovasi
  • Input
  • Insight
  • Inspirasi
  • Instalasi
  • Install
  • Integrasi
  • Interaktif
  • Interface
  • Interview
  • Investasi
  • Jakarta
  • Jasa
  • JavaScript
  • Joomla
  • Kampanye
  • Kapasitas
  • Karier
  • Karir
  • Karyawan
  • Keamanan
  • Kebutuhan
  • Kecepatan
  • Kehidupan
  • Kekurangan
  • Kelebihan
  • Kemudahan
  • Kepuasan
  • Kerja
  • Kesehatan
  • Keuangan
  • Keunggulan
  • Keuntungan
  • Kode
  • Kompleks
  • Komunikasi
  • Komunitas
  • Konfigurasi
  • Konsep
  • Konsultan
  • Konten
  • Kontrol
  • Konversi
  • Kreatif
  • Kualitas
  • Kursus
  • Langkah
  • Laporan
  • Laravel
  • Layanan
  • Lengkap
  • Lingkungan
  • Linux
  • Livewire
  • Logika
  • Logistik
  • Logo
  • Lokal
  • Loyalitas
  • Mac
  • Machine Learning
  • Mahasiswa
  • Mahir
  • Maintenance
  • Management
  • Manajemen
  • Manfaat
  • Marketing
  • Masa Depan
  • Masyarakat
  • Media Sosial
  • Mesin Pencari
  • Middleware
  • Migrasi
  • Migration
  • Mitos
  • Mobile
  • Mobilitas
  • Model
  • Modern
  • Monitoring
  • Mudah
  • Murah
  • MySQL
  • Nilai
  • OAuth2
  • Online
  • Open Source
  • Opini
  • Optimal
  • Optimasi
  • ORM
  • Otomatis
  • Otomatisasi
  • Otorisasi
  • Output
  • Package
  • Panduan
  • Payment
  • PDF
  • Pekerjaan
  • Pelanggan
  • Pelatihan
  • Peluang
  • Pemahaman
  • Pemanfaatan
  • Pemasaran
  • Pembandingan
  • Pembelajaran
  • Pembuatan
  • Pemesanan
  • Pemilihan
  • Pemrograman
  • Pemula
  • Pemulihan
  • Pendidikan
  • Penerapan
  • Pengalaman
  • Pengambilan Keputusan
  • Pengembangan
  • Pengenalan
  • Pengertian
  • Pengguna
  • Penggunaan
  • Penghasilan
  • Pengobatan
  • Pengolahan
  • Pengujian
  • Peningkatan
  • Penipuan
  • Penjelasan
  • Penjualan
  • Penyimpanan
  • Peran
  • Perangkat
  • Perbandingan
  • Performa
  • Performance
  • Perkembangan
  • Personalisasi
  • Pertanian
  • Pertimbangan
  • Pertumbuhan
  • Perusahaan
  • Petani
  • PHP
  • Pilihan
  • Plagiarisme
  • Platform
  • Plugin
  • Pondasi
  • Portofolio
  • Potensi
  • Praktis
  • Prediksi
  • Premium
  • Presentasi
  • Pribadi
  • Produktivitas
  • Profesional
  • Profitabilitas
  • Programmer
  • Project
  • Promo
  • Proses
  • Proteksi
  • Proyek
  • Python
  • Queues
  • Ranking
  • React
  • Realita
  • Redis
  • Referensi
  • Rekomendasi
  • Relationship
  • Reputasi
  • Responsif
  • Responsive
  • RESTful
  • Restoran
  • Retail
  • Retensi
  • Review
  • Risiko
  • ROI
  • Saham
  • Sales
  • Scheduler
  • Search
  • Sederhana
  • Seeder
  • Sehari-hari
  • Selamanya
  • SEO
  • Sertifikasi
  • Server
  • Sinkronisasi
  • Sistem
  • Sistem Operasi
  • Siswa
  • Skalabilitas
  • Skill
  • Software
  • Solusi
  • Sosial
  • Space Disk
  • Spesifikasi
  • SSD
  • SSL
  • Stabil
  • Staging
  • Startup
  • Step-by-Step
  • Storage
  • Strategi
  • Studi Kasus
  • Subdomain
  • Sukses
  • Sumber Daya
  • Support
  • Surabaya
  • Syarat
  • Tahapan
  • Tambahan
  • Tampilan
  • Tanggung Jawab
  • Tantangan
  • Target
  • Teknis
  • Teknologi
  • Teks
  • Template
  • Templating
  • Terbaik
  • Terbaru
  • Terjangkau
  • Terjemahan
  • Terpercaya
  • Testimoni
  • Testing
  • Tim
  • Tingkat Lanjut
  • Tips
  • Toko Online
  • Tools
  • Traffic
  • Training
  • Transaksi
  • Tren
  • Trik
  • Troubleshooting
  • Tugas
  • Tutorial
  • UKM
  • UMKM
  • Undangan
  • Unlimited
  • Upgrade
  • Upload
  • Uptime
  • User
  • User-Friendly
  • Validasi
  • Video
  • Visual
  • VPS
  • Vue.js
  • Waktu
  • Web
  • Web Development
  • Website
  • WhatsApp
  • Windows
  • WordPress
  • XAMPP

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 gociwidey.

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

© 2024 gociwidey.