Cuma 100K Siap pakai tinggal install di Dashbord

Untuk konsepnya sudah disediakan Widget, jadi tidak perlu mengerti masalah Coding. Cukup Klik yang Ingin diganti, dan Selesai. Landing page sudah siap tayang.

Apakah Anda sedang mencari cara mudah untuk memiliki website profesional dengan tampilan modern tanpa harus membayar jasa web developer mahal? Jika ya, maka solusi terbaiknya adalah menggunakan template landing page Blogspot siap pakai. Hanya dengan satu kali install di dashboard Blogspot Anda, landing page Anda langsung bisa tayang seperti profesional.

HANYA 100K

Berikut di bawah ini adalah beberapa Landing page Siap pakai

Resort

Resort

Belanja Detail
Sablon

Sablon

Belanja Detail
Bimbel

Bimbel

Belanja Detail
Frozen Food

Frozen Food

Belanja Detail
Cleaning Service

Cleaning Service

Belanja Detail
Jasa Branding

Jasa Branding

Belanja Detail
Catering

Catering

Belanja Detail
Toko

Toko

Belanja Detail
Service AC

Service AC

Belanja Detail
Halal

Halal

Belanja Detail
Apotek

Apotek

Belanja Detail
Sipil

Sipil

Belanja Detail
Furniture

Furniture

Belanja Detail
eNovel

eNovel

Belanja Detail
Travel

Travel

Belanja Detail
Landscape

Landscape

Belanja Detail
Komunitas

Komunitas

Belanja Detail
Dealer Mobil

Dealer Mobil

Belanja Detail
Ebook

Ebook

Belanja Detail
Jasa

Jasa

Belanja Detail
Perusahaan

Perusahaan

Belanja Detail
Trade

Trade

Belanja Detail

Mengapa Landing Page Blogspot?

Blogspot adalah salah satu platform blogging gratis milik Google yang banyak digunakan karena mudah dan ringan. Dengan template khusus landing page yang sudah siap pakai, Anda bisa mengubah blog biasa menjadi situs promosi yang menarik perhatian calon pembeli.

Beberapa kelebihan menggunakan template kami:

  • Instalasi Mudah: Hanya dengan upload template di dashboard Blogspot Anda.
  • Tidak Perlu Coding: Semua elemen dapat diedit melalui widget. Ingin ubah teks, gambar, atau tombol? Cukup klik dan ganti!
  • Responsive: Desain mobile friendly, otomatis menyesuaikan ukuran layar.
  • Cepat Loading: Tanpa script berlebihan, sehingga ramah Google Core Web Vitals.
  • Cocok untuk Iklan & Penjualan: Ideal untuk produk digital, jasa, personal branding, hingga affiliate marketing.

Siapa Saja yang Cocok Menggunakan Template Ini?

Template ini cocok untuk digunakan oleh :

  • Freelancer atau pebisnis online yang ingin tampil profesional.
  • Penjual produk digital seperti eBook, desain, atau kursus online.
  • Pemula yang belum pernah membuat website.
  • Content creator yang ingin membangun personal branding.

Fitur-Fitur Unggulan Template

  • Desain Modern & Elegan
  • Tombol CTA siap pakai Formulir Chat WhatsApp langsung
  • Navigasi ringan & sticky menu Struktur SEO-friendly (H1, H2, meta tag title & desc)

Hanya Tinggal Install dan Edit


Sepesemua landing page ini siap pakai, anda hanya install di dashboard sendiri. Tidak perlu repot mengatur layout dari nol. Anda hanya perlu mengedit isi yang sudah ada lewat tampilan widget. Gambar, warna, teks bahkan tombol sudah disiapkan — tinggal ganti sesuai keinginan Anda.



Bonus dan Dukungan

Setiap pembelian template disertai dengan :

  • Panduan instalasi lengkap (PDF + video)
  • Dukungan via WhatsApp
  • Update gratis jika ada bug

Tentang Kami

Seorang Freelancer yang malang melintang di Dunia Digital marketing. dan masih sampai sekarang membuat terobosan - terobosan untuk mencari celah agar setiap orang mampu untuk mempunya penghasilan melalui Internet. Dan semoga produk Landing Page yang saya buat dapat bermanfaat selamanya. Saya sangat berterima kasih kepada yang sudah membeli Produk ini.

Hormat Saya
Hasan Ibrahim Brawijaya

Layanan Kami

Script XML

Script Bisa dijual Kembali, Keuntungan 100% Menjadi milik Anda sendiri.

Hosting Gratis

Tanpa Harus Bayar Bulanan dan Tahunan.

Di Bantu Update Data

Setiap Pembelian akan di bantu Install dan Update Data.

Testimoni

"Sangat bermanfaat dan mudah diakses dan di kelola!." - www.djayakartatradeindonesia.com - Windu
"Pelayanan cepat dan ebook-nya langsung bisa saya gunakan." - echoalpha65.blogspot.com - Echoalpha65
"Harganya masuk diakal, saya jadi bisa punya situs sendiri." - Bonar

Lihat Testimoni

Hubungi Kami



Objek Konfigurasi menggunakan Javascript untuk menampilkan data di HTML



 

Panduan Implementasi Banyak Objek Konfigurasi di JS

Saat membuat proyek web yang semakin besar, kita sering ingin memisahkan konfigurasi berdasarkan bagian (section), misalnya HERO_CONFIG dan FOOTER_CONFIG.

Ada dua pendekatan utama yang bisa Anda gunakan:

๐Ÿ“Œ Cara 1: Menggabungkan dalam Satu Objek Induk (Sangat Direkomendasikan)

Daripada membuat banyak variabel global terpisah, cara paling rapi adalah membuat satu Objek Induk (Parent Object) yang di dalamnya memiliki sub-objek untuk hero dan footer.

Kode JavaScript:

const SITE_CONFIG = {
  // Objek Khusus Hero
  hero: {
    title: "Selamat Datang di Portal Kami",
    subtitle: "Solusi Digital Terbaik untuk Bisnis Anda",
    ctaText: "Mulai Sekarang"
  },

  // Objek Khusus Footer
  footer: {
    copyright: "2026 Toko Digital. All rights reserved.",
    email: "support@tokodigital.com",
    address: "Jakarta, Indonesia"
  }
};

HTML & Script Render (Pakai Titik / Dot Notation):

<!-- Bagian Hero -->
<section>
  <h1 data-config="hero.title"></h1>
  <p data-config="hero.subtitle"></p>
  <button data-config="hero.ctaText"></button>
</section>

<!-- Bagian Footer -->
<footer>
  <p data-config="footer.copyright"></p>
  <p>Email: <span data-config="footer.email"></span></p>
</footer>

<script>
  function renderConfig() {
    document.querySelectorAll('[data-config]').forEach(el => {
      const path = el.getAttribute('data-config'); // contoh: "hero.title" atau "footer.copyright"
     
      // Membaca path bertingkat seperti hero.title
      const value = path.split('.').reduce((obj, key) => obj && obj[key], SITE_CONFIG);
     
      if (value !== undefined) {
        el.textContent = value;
      }
    });
  }

  document.addEventListener('DOMContentLoaded', renderConfig);
</script>

๐Ÿ“Œ Cara 2: Membuat Dua Objek Terpisah Lalu Menggabungkannya

Jika Anda benar-benar ingin memisahkan file atau variabelnya secara independen (misal HERO_CONFIG dan FOOTER_CONFIG berada di file .js terpisah), Anda bisa menggabungkannya di JavaScript menggunakan Spread Operator (...).

Kode JavaScript:

// File 1: hero-config.js
const HERO_CONFIG = {
  title: "Promo Spesial Tahun Ini",
  badge: "Diskon 50%"
};

// File 2: footer-config.js
const FOOTER_CONFIG = {
  phone: "081234567890",
  address: "Jl. Sudirman No. 10"
};

// Gabungkan keduanya menjadi satu objek utama
const MAIN_CONFIG = {
  hero: HERO_CONFIG,
  footer: FOOTER_CONFIG
};

๐Ÿงช Contoh Lengkap Siap Jalankan (HTML + JS)

Silakan copy-paste kode di bawah ini ke file .html Anda untuk melihat hasilnya secara langsung:

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Latihan Multi Config JS</title>
  <style>
    body { font-family: Arial, sans-serif; margin: 0; padding: 0; }
    .hero { background: #1e293b; color: white; padding: 40px; text-align: center; }
    .footer { background: #0f172a; color: #94a3b8; padding: 20px; text-align: center; font-size: 14px; }
  </style>
</head>
<body>

  <!-- 1. SECTION HERO -->
  <header class="hero">
    <h1 data-config="hero.title"></h1>
    <p data-config="hero.description"></p>
  </header>

  <!-- 2. SECTION FOOTER -->
  <footer class="footer">
    <p data-config="footer.copyright"></p>    <p>Kontak: <span data-config="footer.email"></span> | <span data-config="footer.phone"></span></p>
  </footer>

  <script>
    // Objek 1: Khusus Hero
    const HERO_CONFIG = {
      title: "Hero Banner Utama",
      description: "Ini adalah deskripsi singkat dari objek HERO_CONFIG."
    };

    // Objek 2: Khusus Footer
    const FOOTER_CONFIG = {
      copyright: "© 2026 PT Website Indonesia",
      email: "info@website.id",
      phone: "+62 812-3456-7890"
    };

    // Menggabungkan kedua objek ke dalam satu wadah
    const APP_CONFIG = {
      hero: HERO_CONFIG,
      footer: FOOTER_CONFIG
    };

    // Fungsi Pengisi Otomatis
    function renderApp() {
      document.querySelectorAll('[data-config]').forEach(el => {
        const path = el.getAttribute('data-config');
        const keys = path.split('.'); // memecah "hero.title" menjadi ["hero", "title"]
       
        // Ambil nilai dari APP_CONFIG[hero][title]
        const value = keys.reduce((acc, key) => acc && acc[key], APP_CONFIG);
       
        if (value) {
          el.textContent = value;
        }
      });
    }

    document.addEventListener('DOMContentLoaded', renderApp);
  </script>
</body>
</html>

๐Ÿ’ก Kesimpulan Penting

  1. Menggunakan titik (.) pada atribut HTML (seperti data-config="hero.title") mempermudah pemetaan data bertingkat.

  2. Fungsi path.split('.').reduce(...) adalah rumus standar JavaScript untuk membaca data objek.anak.cucu secara aman tanpa takut error.


Panduan Implementasi Banyak Produk (Array of Objects) di JS

Ketika Anda ingin menampilkan banyak produk (misal 2, 10, atau 100 produk) yang memiliki atribut sama (Nama, Deskripsi, Kategori, Ukuran, Harga, Tombol Beli), kuncinya adalah menggunakan Array ([...]) dari Objek ({...}).

๐Ÿ”‘ Perbedaan Utama: Objek Tunggal vs Array Produk

Jenis Data

Contoh Kasus

Bentuk Data

Cara Menampilkannya di HTML

Data Tunggal

Hero, Footer, Kontak Sales

Object {}

Cari elemen satu per satu (querySelector)

Data Berulang

Katalog Produk, Daftar Mobil, Paket Travel

Array [{...}, {...}]

Di-loop/diulang (.map() atau .forEach()) lalu disuntikkan ke dalam satu wadah container

๐Ÿ› ️ Langkah 1: Struktur Data Array Produk

Setiap produk berupa objek yang dibungkus di dalam tanda kurung siku [ ... ].

const PRODUCTS_CONFIG = [
  {
    id: "prod-01",
    nama: "Kaos Polos Cotton Combed 30s",
    kategori: "Pakaian Pria",
    deskripsi: "Bahan adem, menyerap keringat, cocok untuk pemakaian sehari-hari.",
    ukuran: ["S", "M", "L", "XL", "XXL"],
    harga: "Rp 65.000",
    gambar: "https://images.unsplash.com/photo-1521572267360-ee0c2909d518?auto=format&fit=crop&w=500&q=80"
  },
  {
    id: "prod-02",
    nama: "Jaket Denim Oversize",
    kategori: "Jaket",
    deskripsi: "Gaya streetwear klasik dengan bahan jeans tebal dan jahitan kuat.",
    ukuran: ["M", "L", "XL"],
    harga: "Rp 220.000",
    gambar: "https://images.unsplash.com/photo-1551028719-00167b16eac5?auto=format&fit=crop&w=500&q=80"
  },
  {
    id: "prod-03",
    nama: "Sepatu Sneaker Casual",
    kategori: "Sepatu",
    deskripsi: "Sol empuk anti slip dengan desain modern minimalis.",
    ukuran: ["39", "40", "41", "42", "43"],
    harga: "Rp 350.000",
    gambar: "https://images.unsplash.com/photo-1542291026-7eec264c27ff?auto=format&fit=crop&w=500&q=80"
  }
];

๐Ÿ’ก Langkah 2: Cara Kerja Loop / Render

Alih-alih menuliskan tag HTML satu per satu di file .html, kita cukup menyediakan satu wadah kosong (container):

<!-- Container tempat produk akan bermunculan -->
<div id="product-container"></div>

Lalu di JavaScript, kita gunakan fungsi .map() untuk mengubah daftar produk menjadi elemen HTML:

function renderProducts() {
  const container = document.getElementById('product-container');
 
  // Memetakan setiap objek produk menjadi tampilan HTML
  const productCardsHTML = PRODUCTS_CONFIG.map(item => {
   
    // Mengubah array ukuran ["S", "M", "L"] menjadi badge/tombol kecil
    const sizeBadges = item.ukuran.map(sz => `<span class="size-badge">${sz}</span>`).join('');

    // Membuat link WhatsApp kustom untuk tiap produk
    const waText = encodeURIComponent(`Halo, saya berminat membeli produk *${item.nama}* (Harga: ${item.harga}).`);
    const waLink = `https://wa.me/6281234567890?text=${waText}`;

    return `
      <div class="product-card">
        <img src="${item.gambar}" alt="${item.nama}">
        <div class="card-body">
          <span class="category">${item.kategori}</span>
          <h3>${item.nama}</h3>
          <p class="description">${item.deskripsi}</p>
         
          <div class="sizes">
            <small>Ukuran Tersedia:</small>
            <div>${sizeBadges}</div>
          </div>
         
          <div class="card-footer">
            <span class="price">${item.harga}</span>
            <a href="${waLink}" target="_blank" class="btn-buy">Beli via WA</a>
          </div>
        </div>
      </div>
    `;
  }).join(''); // Menggabungkan semua kartu menjadi satu teks HTML

  container.innerHTML = productCardsHTML;
}

๐Ÿงช Contoh Utuh Lengkap (HTML + CSS + JS)

Silakan copy-paste kode di bawah ini ke file .html Anda dan buka di browser:

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Katalog Produk Dinamis</title>
  <style>
    * { box-sizing: border-box; margin: 0; padding: 0; font-family: Arial, sans-serif; }
    body { background: #f8fafc; padding: 40px 20px; }
    h1 { text-align: center; margin-bottom: 30px; color: #0f172a; }
   
    /* Grid Layout untuk Produk */
    .grid-container {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 24px;
      max-width: 1100px;
      margin: 0 auto;
    }

    /* Card Produk */
    .product-card {
      background: white;
      border-radius: 16px;
      overflow: hidden;
      box-shadow: 0 4px 12px rgba(0,0,0,0.05);
      border: 1px solid #e2e8f0;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
    .product-card img {
      width: 100%;
      height: 200px;
      object-fit: cover;
    }
    .card-body {
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      flex-grow: 1;
    }
    .category {
      font-size: 11px;
      font-weight: bold;
      color: #2563eb;
      text-transform: uppercase;
      letter-spacing: 0.5px;
    }
    .product-card h3 {
      font-size: 18px;
      color: #1e293b;
    }
    .description {
      font-size: 13px;
      color: #64748b;
      line-height: 1.5;
    }
   
    /* Style Badges Ukuran */
    .sizes { margin-top: 10px; }
    .sizes small { display: block; color: #94a3b8; font-size: 11px; margin-bottom: 5px; }
    .size-badge {
      display: inline-block;
      background: #f1f5f9;
      border: 1px solid #cbd5e1;
      padding: 3px 8px;
      border-radius: 6px;
      font-size: 11px;
      font-weight: bold;
      margin-right: 4px;
      margin-bottom: 4px;
      color: #334155;
    }

    /* Footer Card (Harga & Tombol) */
    .card-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 15px;
      padding-top: 15px;
      border-top: 1px solid #f1f5f9;
    }
    .price {
      font-size: 18px;
      font-weight: bold;
      color: #059669;
    }
    .btn-buy {
      background: #25d366;
      color: white;
      padding: 8px 16px;
      border-radius: 8px;
      text-decoration: none;
      font-size: 13px;
      font-weight: bold;
      transition: background 0.2s;
    }
    .btn-buy:hover { background: #1eb857; }
  </style>
</head>
<body>

  <h1>Katalog Produk Pilihan</h1>

  <!-- Kontainer tempat produk di-render -->
  <div id="product-container" class="grid-container"></div>

  <script>
    // 1. DATA KONFIGURASI BANYAK PRODUK (ARRAY OF OBJECTS)
    const PRODUCTS_CONFIG = [
      {
        id: "prod-01",
        nama: "Kaos Polos Cotton Combed 30s",
        kategori: "Pakaian Pria",
        deskripsi: "Bahan adem, menyerap keringat, cocok untuk pemakaian sehari-hari.",
        ukuran: ["S", "M", "L", "XL", "XXL"],
        harga: "Rp 65.000",
        gambar: "https://images.unsplash.com/photo-1521572267360-ee0c2909d518?auto=format&fit=crop&w=500&q=80"
      },
      {
        id: "prod-02",
        nama: "Jaket Denim Oversize",
        kategori: "Jaket",
        deskripsi: "Gaya streetwear klasik dengan bahan jeans tebal dan jahitan kuat.",
        ukuran: ["M", "L", "XL"],
        harga: "Rp 220.000",
        gambar: "https://images.unsplash.com/photo-1551028719-00167b16eac5?auto=format&fit=crop&w=500&q=80"
      },
      {
        id: "prod-03",
        nama: "Sepatu Sneaker Casual",
        kategori: "Sepatu",
        deskripsi: "Sol empuk anti slip dengan desain modern minimalis cocok untuk nongkrong.",
        ukuran: ["39", "40", "41", "42", "43"],
        harga: "Rp 350.000",
        gambar: "https://images.unsplash.com/photo-1542291026-7eec264c27ff?auto=format&fit=crop&w=500&q=80"
      }
    ];

    // 2. FUNGSI RENDER KE HTML
    function renderApp() {
      const container = document.getElementById('product-container');

      // Loop semua produk
      const htmlList = PRODUCTS_CONFIG.map(item => {
        // Render sub-array untuk ukuran (size)
        const sizeBadges = item.ukuran.map(s => `<span class="size-badge">${s}</span>`).join('');
       
        // Link WhatsApp dinamis untuk tiap produk
        const waMsg = encodeURIComponent(`Halo, saya mau beli *${item.nama}* (${item.harga}). Apakah ukuran masih ready?`);
        const waUrl = `https://wa.me/6281234567890?text=${waMsg}`;

        return `
          <div class="product-card">
            <div>
              <img src="${item.gambar}" alt="${item.nama}">
              <div class="card-body">
                <span class="category">${item.kategori}</span>
                <h3>${item.nama}</h3>
                <p class="description">${item.deskripsi}</p>
                <div class="sizes">
                  <small>Ukuran Tersedia:</small>
                  <div>${sizeBadges}</div>
                </div>
              </div>
            </div>
           
            <div class="card-body" style="padding-top:0;">
              <div class="card-footer">
                <span class="price">${item.harga}</span>
                <a href="${waUrl}" target="_blank" class="btn-buy">Chat Beli</a>
              </div>
            </div>
          </div>
        `;
      }).join('');

      container.innerHTML = htmlList;
    }

    // Jalankan saat halaman selesai dimuat
    document.addEventListener('DOMContentLoaded', renderApp);
  </script>
</body>
</html>

๐Ÿ“Œ Kesimpulan Ringkas

  1. Prinsip Sama: Tetap menggunakan Centralized Config agar data terpisah dari tampilan.

  2. Bedanya di Struktur: Kalau hanya 1 item (seperti Hero/Footer), gunakan {}. Kalau lebih dari 1 item (seperti Produk), gunakan [ {}, {}, {} ].

  3. Fleksibilitas: Dengan cara ini, menambah produk ke-4 atau ke-100 cukup menambahkan satu blok { ... } baru di dalam PRODUCTS_CONFIG tanpa perlu menyentuh CSS atau HTML!