Apa itu SSR dan CSR: Penjelasan sederhana


Dalam dunia pengembangan web, ada dua istilah yang sering dijumpai, yaitu SSR (Server-Side Rendering) dan CSR (Client-Side Rendering). Keduanya memiliki dampak yang signifikan terhadap bagaimana konten disajikan dan diproses dalam aplikasi web. Dalam artikel ini, kita akan mempelajari konsep-konsep ini, mengeksplorasi perbedaan dan kesamaannya, dan memahami kapan waktu terbaik untuk menggunakan salah satunya.

Server-Side Rendering (SSR)

Apa itu SSR?

Server-Side Rendering (SSR) adalah sebuah pendekatan di mana halaman web dibuat di server sebelum dikirim ke browser. Dengan kata lain, server memproses logika dan struktur halaman dan mengirimkan halaman yang dirender sepenuhnya ke browser pengguna.

Keuntungan dari SSR

  1. Peningkatan SEO: Halaman yang dirender di server lebih ramah mesin pencari karena kontennya sudah ada dalam HTML awal yang dikirim ke klien.
  2. Peningkatan Kinerja yang Lebih Baik: Pengguna melihat konten lebih cepat karena mereka menerima halaman yang dirender dari awal.

Contoh Implementasi SSR menggunakan React

Kita akan menggunakan Next.js, sebuah framework React yang populer yang membuat implementasi SSR menjadi sangat mudah.

Step 1: Install Next.js

npx create-next-app my-nextjs-app
cd my-nextjs-app

Step 2: Create a SSR Page

In the pages/index.js file:

// pages/index.js
const HomePage = ({ data }) => {
  return (
    <div>
      <h1>{data.title}</h1>
      <p>{data.content}</p>
    </div>
  );
};

export async function getServerSideProps() {
  // Logic to fetch data from an API or database
  const response = await fetch('https://api.example.com/data');
  const data = await response.json();

  return {
    props: { data },
  };
}

export default HomePage;

Client-Side Rendering (CSR)

Apa itu CSR?

Client-Side Rendering (CSR) melibatkan peramban yang memuat halaman kosong dan kemudian menggunakan JavaScript untuk mengisi halaman tersebut dengan konten. Dalam hal ini, browser mengambil peran yang lebih aktif dalam membuat dan menyajikan antarmuka pengguna.

Keuntungan dari CSR

  1. Interaktivitas yang Ditingkatkan: Aplikasi CSR sering kali lebih interaktif, karena antarmuka pengguna dapat diperbarui tanpa harus memuat ulang seluruh halaman.
  2. Beban Awal Lebih Rendah: Pemuatan halaman awal bisa lebih cepat karena hanya kerangka aplikasi yang dikirim ke browser.

Contoh Implementasi CSR menggunakan React

Kita akan menggunakan Create React App untuk contoh CSR yang sederhana.

Step 1: Create a React App

npx create-react-app my-react-app
cd my-react-app

Step 2: Implement CSR

In the src/App.js file

// src/App.js
import React, { useState, useEffect } from 'react';

const App = () => {
  const [data, setData] = useState({});

  useEffect(() => {
    // Logic to fetch data after the app has loaded
    fetch('https://api.example.com/data')
      .then((response) => response.json())
      .then((data) => setData(data));
  }, []);

  return (
    <div>
      <h1>{data.title}</h1>
      <p>{data.content}</p>
    </div>
  );
};

export default App;

Perbandingan dan Kapan Menggunakan SSR dan CSR

Kedua pendekatan tersebut memiliki kelebihan dan kekurangan. Pilihan antara SSR dan CSR tergantung pada kebutuhan spesifik aplikasi Anda.

Gunakan SSR ketika:

  • Anda membutuhkan SEO yang lebih baik.
  • Anda ingin kinerja awal yang lebih baik.

Gunakan CSR ketika:

  • Anda memiliki aplikasi yang sangat interaktif.
  • Anda menginginkan pemuatan awal yang lebih cepat.

Kesimpulan

Singkatnya, SSR dan CSR adalah pendekatan yang berbeda untuk merender halaman web. SSR bermanfaat untuk meningkatkan SEO dan performa awal, sedangkan CSR memberikan pengalaman yang lebih interaktif. Pilihan di antara keduanya tergantung pada tujuan dan persyaratan spesifik aplikasi Anda.

Saat merancang aplikasi Anda, pertimbangkan kebutuhan pengguna, persyaratan kinerja, dan bagaimana pilihan Anda akan berdampak pada visibilitas konten Anda di mesin pencari. Dalam banyak kasus, kombinasi SSR dan CSR (teknik yang dikenal sebagai “Hidrasi”) dapat menawarkan yang terbaik dari kedua dunia. Bereksperimenlah dan sesuaikan berdasarkan karakteristik unik proyek Anda.