Advertisement

Apa Itu SSR dan SSG? - ReactJS

 

 

Dalam pengembangan aplikasi web modern, cara halaman web di-render sangat mempengaruhi performa dan pengalaman pengguna. Dua teknik utama yang sering digunakan dalam React adalah Server-Side Rendering (SSR) dan Static Site Generation (SSG). Keduanya memiliki kelebihan dan kasus penggunaan yang berbeda. Artikel ini akan membahas perbedaan, manfaat, serta kapan harus menggunakan SSR atau SSG dalam proyek React Anda.

Apa Itu Server-Side Rendering (SSR)?

Pengertian SSR

Server-Side Rendering (SSR) adalah teknik rendering di mana halaman HTML dibuat di server setiap kali ada permintaan dari pengguna. Hasil rendering kemudian dikirimkan ke browser dalam bentuk halaman yang sudah siap ditampilkan.

Cara Kerja SSR

  1. Pengguna mengakses URL.
  2. Server menjalankan React dan menghasilkan HTML berdasarkan permintaan tersebut.
  3. HTML dikirim ke browser pengguna dan ditampilkan dengan cepat.
  4. JavaScript kemudian dijalankan di browser untuk mengaktifkan interaktivitas aplikasi.

Keuntungan SSR

  • SEO Lebih Baik: Karena konten sudah tersedia saat halaman dimuat, mesin pencari dapat lebih mudah mengindeksnya.
  • Waktu Muat Lebih Cepat: Pengguna langsung melihat konten tanpa harus menunggu pemuatan JavaScript sepenuhnya.
  • Cocok untuk Halaman yang Sering Berubah: Data dinamis seperti dashboard atau hasil pencarian lebih cocok dengan SSR karena selalu diperbarui sesuai permintaan.

Kekurangan SSR

  • Beban Server Lebih Tinggi: Setiap permintaan memerlukan rendering ulang di server.
  • Waktu Tanggapan Lebih Lama: Dibandingkan dengan halaman statis, SSR memerlukan waktu tambahan untuk memproses data di server.

Apa Itu Static Site Generation (SSG)?

Pengertian SSG

Static Site Generation (SSG) adalah teknik di mana halaman web dibuat pada saat build time, sehingga file HTML statis sudah tersedia sebelum pengguna mengaksesnya.

Cara Kerja SSG

  1. Saat proses build, React menghasilkan HTML statis untuk setiap halaman yang telah ditentukan.
  2. HTML tersebut disimpan di server atau CDN.
  3. Ketika pengguna mengakses halaman, HTML langsung dikirim tanpa perlu proses rendering tambahan.

Keuntungan SSG

  • Performa Tinggi: Karena halaman sudah dibuat sebelumnya, waktu muat menjadi sangat cepat.
  • Beban Server Rendah: Tidak ada proses rendering di sisi server saat pengguna mengakses halaman.
  • Cocok untuk Konten Statis: SSG ideal untuk blog, dokumentasi, dan halaman informasi yang jarang berubah.

Kekurangan SSG

  • Kurang Fleksibel untuk Konten Dinamis: Jika konten sering berubah, SSG kurang efisien karena perlu membangun ulang halaman setiap kali ada perubahan.
  • Build Time yang Lebih Lama: Jika ada banyak halaman, proses build bisa memakan waktu lebih lama.

SSR vs SSG: Kapan Harus Menggunakan yang Mana?

Faktor Server-Side Rendering (SSR) Static Site Generation (SSG)
SEO Bagus Sangat Bagus
Kecepatan Muat Cepat Sangat Cepat
Beban Server Tinggi Rendah
Cocok Untuk Konten Dinamis, Dashboard Blog, Dokumentasi
Waktu Build Tidak ada build tambahan Bisa lebih lama jika banyak halaman

Implementasi SSR dan SSG di Next.js

Jika menggunakan Next.js, SSR dan SSG bisa diimplementasikan dengan mudah:

Contoh Implementasi SSR di Next.js

Gunakan getServerSideProps untuk melakukan rendering di sisi server:

export async function getServerSideProps() {
  const res = await fetch('https://api.example.com/data');
  const data = await res.json();

  return { props: { data } };
}

export default function Page({ data }) {
  return <div>{data.title}</div>;
}

Contoh Implementasi SSG di Next.js

Gunakan getStaticProps untuk membangun halaman statis:

export async function getStaticProps() {
  const res = await fetch('https://api.example.com/data');
  const data = await res.json();

  return { props: { data } };
}

export default function Page({ data }) {
  return <div>{data.title}</div>;
}

Jika memiliki banyak halaman dinamis, gunakan getStaticPaths:

export async function getStaticPaths() {
  const res = await fetch('https://api.example.com/posts');
  const posts = await res.json();

  const paths = posts.map((post) => ({
    params: { id: post.id.toString() },
  }));

  return { paths, fallback: false };
}

export async function getStaticProps({ params }) {
  const res = await fetch(`https://api.example.com/posts/${params.id}`);
  const post = await res.json();

  return { props: { post } };
}

export default function Post({ post }) {
  return <div>{post.title}</div>;
}

Kesimpulan

Pemilihan antara SSR dan SSG bergantung pada jenis proyek dan kebutuhan aplikasi. Jika membutuhkan konten yang sering diperbarui secara real-time, SSR adalah pilihan yang tepat. Namun, jika mengutamakan kecepatan dan efisiensi, terutama untuk konten statis, maka SSG adalah solusi terbaik. Dengan memahami perbedaan keduanya, Anda dapat memilih strategi rendering yang paling sesuai untuk proyek React Anda.

 

Post a Comment

0 Comments