Skip to content

Domain, hosting, code and data — in your name, in writing

jagaweb

Pemilikan & Kawalan Aset

Melepaskan Diri Daripada CMS Agensi Milik Pihak Ketiga: Cara Beralih ke Seni Bina Terbuka

•9 min bacaan•Oleh JagaWeb

Bagaimana perniagaan Malaysia yang terperangkap dalam platform tersuai agensi boleh mengekstrak data mereka dan membina semula di atas sistem terbuka.

Perangkap "CMS Enjin Tersuai" Agensi di Malaysia

Setiap tahun di Malaysia, beratus-ratus syarikat perusahaan kecil dan sederhana (PKS) serta syarikat senaraian awam membelanjakan antara RM25,000 hingga RM80,000 untuk membangunkan laman web korporat baharu. Semasa fasa cadangan (pitching), agensi pembangunan web sering menjual konsep "CMS proprietari binaan khas" (in-house proprietary framework) dengan alasan ia lebih selamat, lebih pantas, dan lebih eksklusif berbanding platform standard terbuka seperti WordPress, Next.js, atau WooCommerce.

Dua atau tiga tahun kemudian, realiti komersial yang pahit mula timbul:

  • Terkunci Sepenuhnya (Total Vendor Lock-in): Anda tidak diberikan akses cPanel, tiada akses SSH, dan tiada salinan sandaran pangkalan data.
  • Kos Penyelenggaraan Melambung Tinggi: Menambah satu medan borang atau menukar logo syarikat memerlukan tiket kerja rasmi dengan sebut harga "yuran kejuruteraan" antara RM1,500 hingga RM3,000.
  • Tiada Pembangun Lain Boleh Membantu: Apabila anda meminta pembangun perisian lain untuk membaiki laman anda, mereka enggan menyentuhnya kerana ia dibina di atas kod lapuk proprietari yang tidak mempunyai sebarang dokumentasi rasmi.
  • Ugutan Apabila Hendak Bertukar: Apabila hubungan perniagaan retak dan anda ingin menamatkan kontrak, agensi menyatakan: "Kod sumber dan CMS ini adalah harta intelek (IP) kami. Sekiranya anda keluar, kami akan memadamkan laman web anda dan anda hanya dibenarkan mengambil teks dalam format PDF."

Ini bukan perkongsian teknologi yang sihat; ini adalah penahanan tebusan aset perniagaan. Dalam panduan kejuruteraan ini, kami membongkar hak undang-undang anda di Malaysia dan pelan tindakan terperinci untuk mengekstrak data syarikat anda, membina semula di atas sistem terbuka, dan mencapai pemilikan digital 100%.


Hak Undang-Undang Pemilikan Data di Bawah Perundangan Malaysia

Sebelum memulakan sebarang tindakan teknikal, pengarah syarikat perlu memahami kedudukan perundangan hak milik data di Malaysia:

flowchart LR
    A[Syarikat Anda: Pemilik Sah Data / Pengawal Data PDPA] -->|Kontrak Perkhidmatan| B[Agensi: Pemproses Data Sahaja]
    B -->|Tidak Boleh Menahan| C[Data Pelanggan, Transaksi & Kandungan Korporat]
    A -->|Hak Penuh di Sisi Undang-undang| D[Domain .com.my di Bawah MYNIC]
  1. Akta Perlindungan Data Peribadi 2010 (PDPA) & Pindaan 2024: Syarikat anda adalah Pengawal Data (Data Controller) yang sah bagi semua data pelanggan, prospek, dan transaksi yang dikumpul melalui laman web tersebut. Agensi web hanyalah Pemproses Data (Data Processor) pihak ketiga. Menahan data peribadi pelanggan anda atau enggan menyerahkannya melanggar peruntukan PDPA dan kod amalan perlindungan data Jabatan Perlindungan Data Peribadi (JPDP).
  2. Pemilikan Nama Domain .my dan .com.my (MYNIC Berhad): Nama domain syarikat anda yang didaftarkan dengan MYNIC adalah milik entiti perniagaan yang berdaftar dengan Suruhanjaya Syarikat Malaysia (SSM). Walaupun agensi mendaftarkannya melalui akaun pendaftar (registrar) mereka, anda mempunyai hak perundangan mutlak untuk memindahkan kawalan rekod DNS ke akaun syarikat anda sendiri melalui borang pertikaian pentadbiran rasmi MYNIC.

Pelan Tindakan 5 Fasa: Pengekstrakan Tanpa Bantuan Agensi Lama (The Cold Extraction Blueprint)

Sekiranya agensi lama enggan bekerjasama atau mengenakan bayaran tebusan yang tidak munasabah untuk menyerahkan pangkalan data, jurutera perisian boleh menjalankan operasi pengekstrakan luaran secara bebas.

Fasa 1: Pengambilalihan Kawalan DNS & Audit Domain

Langkah paling kritikal adalah memastikan nama domain anda selamat:

  • Buka akaun korporat terus di Cloudflare di bawah alamat e-mel rasmi syarikat anda (contohnya admin@syarikat-anda.com.my, bukan Gmail peribadi).
  • Log masuk ke portal pendaftar domain anda (seperti Exabytes, Shinjiru, atau MYNIC Selfcare) dan tukar rekod pelayan nama (nameservers) ke Cloudflare.
  • Salin semua rekod DNS sedia ada—terutamanya rekod MX (Google Workspace atau Microsoft 365) dan rekod TXT (SPF, DKIM) bagi memastikan e-mel korporat anda tidak terputus walau sesaat pun.

Fasa 2: Pengikisan Data Luaran Automatik (Headless Web Scraping)

Sekiranya anda tidak mempunyai akses pangkalan data MySQL mentah, setiap artikel blog, spesifikasi produk, imej resolusi asal, dan metadata SEO boleh diekstrak melalui perangkak web tanpa kepala (Headless Browser Scraping) menggunakan Node.js dan Puppeteer/Playwright.

// Skrip Automasi Pengekstrakan Kandungan daripada CMS Agensi Lama
import { chromium } from 'playwright';
import fs from 'fs';

async function extractLegacySite(sitemapUrls) {
  const browser = await chromium.launch({ headless: true });
  const context = await browser.newContext();
  const extractedData = [];

  for (const url of sitemapUrls) {
    const page = await context.newPage();
    console.log(`[*] Mengimbas: ${url}`);
    await page.goto(url, { waitUntil: 'networkidle' });

    const pagePayload = await page.evaluate(() => {
      return {
        url: window.location.pathname,
        title: document.querySelector('h1')?.innerText?.trim() || '',
        metaDescription: document.querySelector('meta[name="description"]')?.content || '',
        contentHtml: document.querySelector('article, .main-content, #content')?.innerHTML || '',
        imageSources: Array.from(document.querySelectorAll('img')).map(img => img.src),
      };
    });

    extractedData.push(pagePayload);
    await page.close();
  }

  fs.writeFileSync('site_extracted_data.json', JSON.stringify(extractedData, null, 2));
  console.log('[✓] Pengekstrakan selesai. Data disimpan dalam format JSON.');
  await browser.close();
}

Skrip ini merayapi keseluruhan sitemap laman web anda, mengekstrak tajuk H1, teks kandungan berformat, pautan imej beresolusi penuh, dan penerangan meta (meta descriptions), kemudian menyimpannya ke dalam fail JSON berstruktur.

Fasa 3: Penormalan Data & Pembinaan Semula di Atas Platform Terbuka

Data JSON yang diekstrak kemudiannya dibersihkan daripada sebarang kod sisa CSS proprietari agensi dan diimport ke dalam platform standard terbuka:

  • WordPress Terbuka / WooCommerce: Untuk laman korporat dan e-dagang standard dengan kebebasan menggunakan beribu-ribu pemalam global.
  • Headless Next.js + Tailwind CSS: Untuk perniagaan yang memerlukan kelajuan sub-saat dan keselamatan tahap tertinggi tanpa sebarang pergantungan pada cPanel.

Fasa 4: Pemetaan Pengalihan 301 (301 Redirect Mapping) untuk Mengekalkan Kedudukan Google

Apabila anda berpindah keluar dari CMS proprietari, struktur URL lama mungkin berbeza dengan struktur sistem baharu. Mengabaikan langkah ini akan memusnahkan ranking carian Google syarikat anda dalam sekelip mata.

Bina fail pemetaan pengalihan kekal 301 di peringkat pelayan Nginx atau peraturan Cloudflare:

# Pemetaan Pengalihan 301 Nginx (Mengekalkan Ekuiti SEO)
location = /pages.php?id=about-us {
    return 301 https://syarikat-anda.com.my/tentang-kami;
}

location = /products-view.asp?sku=P-1029 {
    return 301 https://syarikat-anda.com.my/produk/alat-ganti-1029;
}

Setiap satu URL lama dialihkan secara kekal (HTTP 301) ke URL baharunya. Apabila pengalihan ini dilakukan dengan betul, bot pengindeks Google akan memindahkan kebanyakan isyarat kedudukan carian (link equity) ke laman baharu anda — namun ini tiada jaminan, dan turun naik ranking sementara adalah perkara biasa semasa mana-mana peralihan platform.

Fasa 5: Pelancaran di Atas Infrastruktur Awan Milik 100% Syarikat

Laman baharu dilancarkan di atas pelayan VPS awan berprestasi tinggi di AWS Singapura (ap-southeast-1) atau DigitalOcean Singapura, dengan akaun pelayan, kad pembayaran, dan pengesahan dua faktor (2FA) dipegang terus oleh pengarah syarikat.


Matriks Perbandingan: CMS Proprietari Agensi vs Seni Bina Terbuka

Kriteria PenilaianCMS Proprietari AgensiSeni Bina Terbuka (WordPress / Next.js)
Akses Kod SumberDikunci (Harta Intelek Agensi)100% Milik Penuh Syarikat (Open Source / Git)
Akses Pelayan & Pangkalan DataDitolak atau Dikenakan Caj LesenAkses SSH, SFTP, dan MySQL Penuh di Tangan Anda
Kebebasan Memilih PembekalTerikat dengan agensi asal seumur hidupBoleh diuruskan oleh mana-mana jurutera perisian global
Kos Penambahan FungsiYuran penyesuaian sebut harga agensiEkosistem ribuan modul siap pakai atau kod tersuai standard
Kebolehpindahan DataSangat sukar (Eksport PDF/CSV asas sahaja)Sandaran standard industri (SQL dump, JSON, WP-CLI)
Kelajuan Baik Pulih KrisisBergantung pada giliran tiket agensiPemantauan 24/7 dengan perkhidmatan terurus bebas

Langkah Seterusnya Menuju Pembebasan Digital

Melepaskan diri daripada CMS agensi pihak ketiga tidak memerlukan perbalahan undang-undang yang berpanjangan jika anda mempunyai strategi kejuruteraan yang tepat. Sebaik sahaja data anda diekstrak dan dipindahkan ke seni bina terbuka, syarikat anda akan memiliki kawalan mutlak ke atas masa depan digitalnya.

Di JagaWeb, kami membantu perniagaan melaksanakan pelan peralihan ini secara lancar:

  1. Semakan Pemilikan & Akses (RM1,500): Kami menjalankan audit forensik terhadap status pendaftaran domain MYNIC, rekod DNS, dan skema data CMS proprietari anda untuk merangka pelan pengekstrakan selamat tanpa mengganggu operasi langsung. Bayaran penuh RM1,500 ini dikreditkan semula ke atas kerja pembinaan semula anda.
  2. Projek Skop Tetap (Fixed-Scope Project bermula RM30,000): Membina semula laman web korporat anda di atas seni bina terbuka yang moden, pantas dan responsif pada telefon pintar, di bawah skop kerja dan kriteria penerimaan bertulis, dengan kod dimiliki sepenuhnya oleh syarikat anda tanpa sebarang yuran lesen proprietari tersembunyi seumur hidup.
  3. Pelan JagaWeb Care (RM450/bulan): Memberikan sokongan penyelenggaraan teknikal, sandaran luar tapak kalis ubah, dan pemantauan keselamatan berterusan sebaik sahaja laman baharu anda beroperasi.
WhatsApp