Lewati ke konten utama

Cara Menggunakan SQL OFFSET

Kuasai klausa SQL OFFSET. Pelajari cara menggunakan ORDER BY dan LIMIT untuk mengembalikan nilai berdasarkan posisi, dengan contoh praktis, termasuk paginasi data untuk aplikasi web.
Diperbarui 28 Sep 2026  · 10 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

SQL OFFSET adalah klausa yang kuat untuk melewati sejumlah baris tertentu dalam hasil kueri. Klausa ini sering dikombinasikan dengan LIMIT untuk paginasi data.

Tutorial ini membahas cara kerja OFFSET, penerapannya dalam praktik, dan praktik terbaik untuk mengoptimalkan kueri SQL Anda. Jika Anda ingin meninjau kembali operasi SQL sebelum mulai, lihat sekilas SQL Basics Cheat Sheet kami.

Jawaban Singkat: Cara Menggunakan SQL OFFSET

Klausa OFFSET dalam SQL digunakan untuk melewati sejumlah baris tertentu sebelum mengembalikan baris dalam himpunan hasil. Klausa ini sering digunakan bersama LIMIT untuk melakukan paginasi hasil.

SELECT column_names
FROM table_name
ORDER BY column_name
LIMIT number_of_rows OFFSET offset_value;

Dalam kueri SQL di atas, number_of_rows menunjukkan jumlah baris yang akan dikembalikan, sedangkan offset_value menunjukkan jumlah baris yang harus dilewati kueri sebelum mengembalikannya. 

Cara Kerja OFFSET

Klausa OFFSET melewati sejumlah baris tertentu dalam himpunan hasil. Ketika digunakan dengan ORDER BY, hal ini memastikan hasil yang konsisten dengan melewati baris dalam urutan yang terdefinisi, biasanya ditentukan oleh nama kolom. Secara bawaan, ORDER BY mengembalikan kolom yang ditentukan dalam urutan menaik.

Misalkan Anda ingin melakukan kueri pada tabel employees terhadap kolom berikut: employee_id, first_name, last_name, phone_number, dan salary. Anda juga ingin mengecualikan 9 baris pertama dari hasil. Anda akan menggunakan kueri SQL di bawah ini.

-- Select all columns for employees, starting from the 10th row
SELECT employee_id, first_name, last_name, phone_number, salary
FROM employees
-- Order by employee_id to ensure consistent ordering
ORDER BY employee_id
-- Skip the first 9 rows
OFFSET 9 ROWS;

Penting untuk diingat bahwa, karena kolom pengurutan yang tidak unik, Anda harus berhati-hati agar tidak terjadi duplikasi rekaman.

Mengombinasikan LIMIT dan OFFSET

OFFSET biasanya digunakan bersama LIMIT untuk mengendalikan jumlah baris yang dikembalikan dan dari mana mulai mengembalikannya. 

Pada contoh di bawah, klausa LIMIT hanya mengembalikan 10 baris berikutnya setelah melewati 9 baris pertama.

-- Select all columns for employees, starting from the 10th row and fetching the next 10 rows
SELECT employee_id, first_name, last_name, phone_number, salary
FROM employees
-- Order by employee_id to ensure consistent ordering
ORDER BY employee_id
-- Skip the first 9 rows
OFFSET 9
-- Fetch the next 10 rows
LIMIT 10;

Penerapan Praktis OFFSET

SQL OFFSET banyak digunakan untuk paginasi pada aplikasi web. Paginasi data, untuk memperjelas, adalah teknik membagi data besar menjadi bagian-bagian yang lebih kecil, yang membantu pengguna menavigasi himpunan data besar secara efisien. 

Saya menganggap paginasi data sebagai salah satu contoh terbaik penggunaan OFFSET dan LIMIT. Dalam teknik ini, klausa OFFSET dan LIMIT yang digunakan bersama-sama memecah data menjadi bagian-bagian yang mudah dikelola dan ditampilkan di beberapa halaman.  

Ini meningkatkan pengalaman pengguna karena tidak ada yang kewalahan melihat daftar yang sangat besar sekaligus. 

Penerapan lain dari OFFSET meliputi:

  1. Melewati rekaman tertentu saat menganalisis data.
  2. Mempersiapkan data untuk diekspor per bagian (ketika digunakan bersama LIMIT).
  3. Secara sederhana berfokus pada data dalam rentang tertentu, ketika Anda tahu apa yang Anda cari. 

Dukungan Spesifik Basis Data dan Alternatif

Berbagai basis data mendukung klausa OFFSET dan LIMIT, termasuk MySQL, PostgreSQL, dan SQLite. Metode alternatif, seperti FETCH, dapat digunakan untuk basis data yang tidak mendukung pernyataan OFFSET dan LIMIT, seperti SQL Server.

Sebagai contoh, kueri di bawah ini (menggunakan LIMIT) akan mengembalikan nilai di basis data MySQL, SQLite, dan PostgreSQL tetapi tidak di SQL Server.

-- Select all columns for employees, starting from the 10th row and fetching the next 10 rows
SELECT employee_id, first_name, last_name, phone_number, salary
FROM employees
-- Order by employee_id to ensure consistent ordering
ORDER BY employee_id
-- Skip the first 9 rows
OFFSET 9
-- Fetch the next 10 rows
LIMIT 10;

Oleh karena itu, Anda harus menggunakan FETCH di SQL Server untuk mengembalikan hasil serupa dengan kueri di bawah ini;

-- Select specific columns for employees, starting from the 10th row and fetching the next 10 rows
SELECT employee_id, first_name, last_name, phone_number, salary
FROM employees
-- Order by employee_id to ensure consistent ordering
ORDER BY employee_id 
-- Skip the first 9 rows (starting from the 10th row)
OFFSET 9 ROWS 
 -- Fetch the next 10 rows
FETCH NEXT 10 ROWS ONLY;

Teknik Lanjutan: OFFSET dan FETCH

Klausa FETCH, yang digunakan dalam standar SQL, dapat menjadi alternatif lanjutan untuk LIMIT. Sementara OFFSET menentukan jumlah baris yang dilewati, FETCH memberikan jumlah baris yang dikembalikan dari kueri.

-- Selecting columns from employees table
SELECT employee_id, first_name, last_name, phone_number, salary
FROM employees
-- Ordering the result set by employee_id for consistent pagination
ORDER BY employee_id
-- Skipping the first 20 rows in the result set
OFFSET 20 ROWS
-- Fetching the next 10 rows only after the offset
FETCH NEXT 10 ROWS ONLY;

Teknik SQL lanjutan lainnya dapat ditemukan di kursus Associate Data Analyst in SQL kami.

Pertimbangan Kinerja dan Praktik Terbaik Lainnya 

Menggunakan OFFSET secara efektif memerlukan pemahaman tentang dampaknya terhadap kinerja kueri. 

OFFSET dapat memengaruhi kinerja kueri, terutama dengan himpunan data besar. SQL Server menangani caching dan eksekusi kueri secara efisien, tetapi menggunakan OFFSET pada himpunan data besar mungkin memerlukan strategi optimalisasi tambahan, seperti menggunakan Common Table Expressions (CTE) atau tabel sementara. Oleh karena itu, Anda harus memantau kinerja kueri untuk mengidentifikasi masalah dan menyelesaikan hambatan yang menghambat eksekusi kueri. Kursus Intermediate SQL Server dari DataCamp mencakup satu bab tentang common table expressions dan topik lanjutan lainnya. 

Berikut beberapa praktik terbaik tambahan yang saya temukan selama praktik.

  • Selalu gunakan klausa ORDER BY yang sesuai. Pendekatan ini memastikan rekaman diurutkan secara konsisten.
  • Pertimbangkan teknik pengindeksan dan optimalisasi kueri. Metode ini memastikan kinerja yang optimal, terutama saat menangani basis data berukuran besar.

Kesimpulan dan Pembelajaran Lanjutan

Menguasai klausa OFFSET, yang dikombinasikan dengan LIMIT, penting untuk pengelolaan data yang efisien. Bereksperimenlah dengan klausa ini dalam kueri SQL Anda untuk meningkatkan kinerja dan memperkaya pengalaman pengguna. Anda dapat mempelajari lebih lanjut tentang klausa OFFSET dalam SQL dengan mengikuti kursus Intermediate SQL dan SQL fundamentals dari DataCamp.

Demikian pula, Anda dapat mempelajari lebih lanjut tentang analisis data menggunakan SQL melalui kursus Reporting in SQL kami. Selain itu, jika Anda ingin menunjukkan keterampilan praktis melalui proyek SQL, saya merekomendasikan memperoleh Sertifikasi SQL Associate untuk membantu Anda menonjol saat wawancara kerja.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Penulis teknis Data Science dengan pengalaman langsung dalam analitik data, business intelligence, dan data science. Saya menulis konten praktis berfokus industri tentang SQL, Python, Power BI, Databricks, dan rekayasa data, yang berakar pada pekerjaan analitik dunia nyata. Tulisan saya menjembatani kedalaman teknis dan dampak bisnis, membantu para profesional mengubah data menjadi keputusan yang meyakinkan.

Pertanyaan yang Sering Diajukan

Apa itu klausa OFFSET dalam SQL?

Klausa OFFSET digunakan untuk melewati baris sebelum mengembalikan hasil dalam sebuah kueri.

Mengapa kita menggunakan ORDER BY dengan OFFSET?

Meskipun kueri kita dapat berjalan tanpa klausa ORDER BY, keluarannya mungkin tidak konsisten atau tidak seperti yang diharapkan. Menggunakan OFFSET tanpa ORDER BY berarti mesin basis data tidak memiliki urutan yang ditentukan untuk diikuti, sehingga berpotensi menghasilkan hasil yang tidak dapat diprediksi, jadi kita menggunakan ORDER BY agar tidak terkejut oleh hasilnya.

Mengapa klausa LIMIT menghasilkan error di SQL Server?

Klausa LIMIT didukung di MySQL, PostgreSQL, dan SQLite. Gunakan FETCH untuk SQL Server.

Apa perbedaan antara OFFSET dan LIMIT?

Klausa OFFSET melewati baris tertentu sebelum mengembalikan rekaman, sedangkan klausa LIMIT membatasi jumlah rekaman yang dikembalikan.

Apa yang terjadi jika kueri OFFSET saya memerlukan waktu untuk dieksekusi?

Anda dapat mengoptimalkan kueri menggunakan Common Table Expressions (CTE) atau tabel sementara.

Topik
SQL
Analisis Data

Belajar SQL bersama DataCamp

Kursus

Pengantar SQL

2 jam
1.6M
Pelajari cara membuat dan mengakses basis data relasional menggunakan SQL dalam waktu hanya dua jam.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya