Lewati ke konten utama

Apa Itu Pemartisian Data? Panduan Lengkap untuk Pemula

Panduan ini menjelaskan pemartisian data dengan istilah sederhana, mencakup jenis, kasus penggunaan, alat, dan strategi implementasi untuk membantu mengoptimalkan kinerja basis data.
Diperbarui 28 Sep 2026  · 12 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Apakah Anda membangun aplikasi berfokus pada pelanggan atau menjalankan pipeline analitik yang kompleks, satu hal menjadi jelas: cara Anda menyimpan dan mengakses data dapat menentukan kinerja—baik atau buruk.

Saya telah melihat langsung betapa lebih mulusnya sistem berjalan saat data disusun dengan matang, dan di situlah pemartisian data berperan. Ini adalah salah satu teknik yang dapat secara drastis meningkatkan kecepatan kueri, efisiensi penyimpanan, dan skalabilitas.

Dalam tulisan ini, saya akan menjelaskan pemartisian data, berbagai jenis yang tersedia, dan praktik terbaik yang saya pelajari sepanjang jalan.

Apa itu Pemartisian Data?

Pemartisian data adalah teknik untuk membagi kumpulan data besar menjadi bagian-bagian yang lebih kecil dan mudah dikelola yang disebut partisi. Setiap partisi berisi subset data dan didistribusikan ke beberapa node atau server. Partisi-partisi ini dapat disimpan, dikueri, dan dikelola sebagai tabel terpisah, meskipun secara logis tetap milik kumpulan data yang sama. 

Pemartisian data meningkatkan kinerja dan skalabilitas basis data. Misalnya, mencari satu titik data di seluruh tabel memakan waktu lebih lama dan menggunakan lebih banyak sumber daya dibandingkan mencari di partisi tertentu. Itulah sebabnya data disimpan sebagai partisi. 

Jenis-Jenis Pemartisian Data

Pemartisian data mencakup berbagai jenis, masing-masing dengan strategi dan manfaat unik. Di bagian ini, saya membahas jenis yang paling umum.

Pemartisian horizontal

Alih-alih menyimpan semua data dalam satu tabel, pemartisian horizontal membagi data berdasarkan baris, artinya kumpulan baris yang berbeda disimpan sebagai partisi. 

Semua partisi pada pemartisian horizontal berisi set kolom yang sama tetapi kelompok baris yang berbeda. 

  • Contoh: Misalkan Anda memiliki dataset cuaca untuk beberapa negara bagian di tiga negara berbeda. Anda dapat mempartisi ini menjadi tiga tabel dengan memisahkang baris berdasarkan setiap negara. 

Suhu 

Negara Bagian 

Negara 

Musim

-30° F

Alaska 

AS

Musim dingin 

48.2° F

Queensland

Australia 

Musim panas 

100° F

Andhra Pradesh 

India

Musim panas

35° F

California 

AS

Musim dingin

96° F

Texas

AS

Musim panas

62° F

Tasmania

Australia 

Musim dingin 

Pemartisian horizontal berdasarkan negara:

Suhu 

Negara Bagian 

Negara 

Musim

-30° F

Alaska 

AS

Musim dingin 

35° F

California 

AS

Musim dingin

35° F

California 

AS

Musim dingin

Suhu 

Negara Bagian 

Negara 

Musim

48.2° F

Queensland

Australia 

Musim panas 

62° F

Tasmania

Australia 

Musim dingin 

Suhu 

Negara Bagian 

Negara 

Musim

100° F

Andhra Pradesh 

India

Musim panas

Pemartisian vertikal

Pemartisian vertikal membagi data berdasarkan kolom, sehingga setiap partisi berisi jumlah baris yang sama namun lebih sedikit kolom. 

Kunci partisi atau kolom utama akan ada di setiap partisi untuk menjaga hubungan logis. 

Pemartisian vertikal populer ketika informasi sensitif perlu disimpan terpisah dari data reguler. Ini memungkinkan kolom sensitif disimpan dalam satu partisi dan data standar di partisi lain.

Kasus penggunaan umum lainnya adalah mengelompokkan kolom yang sering diperbarui ke dalam satu partisi dan sisanya di partisi terpisah.

  • Contoh: Jika kolom nomor telepon dan gaji karyawan pada tabel di bawah bersifat rahasia, mari kita mempartisi tabel sesuai kebutuhan. 

Emp_id

Emp_name 

Jabatan  

Emp_email

Emp_phone

Emp_salary

z0yu9h

Alex

Data scientist

alex@yoho.com

+101 890 456

250K

f8o5pj

Adam

Data engineer

adam@prodgy.com

+630 789 365

230K

z006yu

Matt

Data analyst

matt@oltk.com

+857 342 937

166K

a6u895

Elina 

Ops engineer

elina@wal.com

+892 494 782

190K

g68w90

Joseph 

Software engineer

joseph@yoho.com

+852 603 389

210K

Emp_id adalah pengenal unik pada tabel di atas, jadi semua partisi memilikinya.

Partisi 1:

Emp_id

Emp_name 

Jabatan  

Emp_email

z0yu9h

Alex

Data scientist

alex@yoho.com

f8o5pj

Adam

Data engineer

adam@prodgy.com

z006yu

Matt

Data analyst

matt@oltk.com

a6u895

Elina 

Ops engineer

elina@wal.com

g68w90

Joseph 

Software engineer

joseph@yoho.com

Partisi 2:

Emp_id

Emp_phone

Emp_salary

z0yu9h

+101 890 456

250K

f8o5pj

+630 789 365

230K

z006yu

+857 342 937

166K

a6u895

+892 494 782

190K

g68w90

+852 603 389

210K

Pemartisian rentang

Pemartisian rentang membagi data berdasarkan rentang nilai untuk kolom tertentu. 

Biasanya, setiap partisi memiliki batas bawah dan atas untuk kolom kunci, dan sebuah rekaman yang berada dalam rentang ini akan ditetapkan ke partisi tersebut. 

  • Contoh: Misalkan data penjualan tersedia dari 2021 hingga 2023. Kita dapat mempartisi berdasarkan tahun sehingga penjualan dari 2021 hingga 2022 berada dalam satu partisi dan dari 2022 hingga 2023 dalam partisi lain.

Product_id

Tanggal

Laba

z0yu9h

2021-03-17

$100K

f8o5pj

2022-04-04

$234K

z006yu

2022-09-13

$789K

a6u895

2021-07-23

$237K

g68w90

2022-02-26

$2345K

Partisi 1:

product_id

Tanggal

Laba

z0yu9h

2021-03-17

$100K

a6u895

2021-07-23

$237K

Partisi 2:

product_id

Tanggal

Laba

f8o5pj

2022-04-04

$234K

z006yu

2022-09-13

$789K

Pemartisian hash

Sebuah fungsi hash diterapkan pada kunci partisi, dan keluarannya menentukan rekaman mana yang harus disimpan di partisi mana. Pada teknik ini, jumlah partisi ditentukan sebelumnya. 

Sisa hasil pembagian nilai hash dengan jumlah partisi menentukan partisi mana tempat rekaman tersebut harus disimpan. Mari kita lihat contohnya:

  • Contoh: Misal, untuk produk dengan ID z0yu9h, hash(‘z0yu9h’) = 101 dan jumlah partisi = 4, maka 101%4 = 1. Jadi, rekaman ini disimpan di partisi pertama. 

Dengan cara ini, nilai hash dihitung untuk kolom kunci partisi, dibagi dengan jumlah partisi, dan hasilnya menentukan partisi akhir.

Pemartisian daftar

Prosedurnya mirip dengan pemartisian rentang, tetapi alih-alih membagi data berdasarkan rentang nilai, pemartisian daftar membagi data berdasarkan sekumpulan nilai yang telah ditentukan. 

Ambil kembali tabel suhu sebagai contoh. 

Suhu 

Negara Bagian 

Negara 

Musim

30° F

Alaska 

AS

Musim dingin 

48.2° F

Queensland

Australia 

Musim panas 

100° F

Andhra Pradesh 

India

Musim panas

35° F

California 

AS

Musim dingin

96° F

Texas

AS

Musim panas

62° F

Tasmania

Australia 

Musim dingin 

Pada data di atas, kolom ‘Musim’ berisi daftar nilai [‘winter’, ‘summer’]. Jadi, pemartisian daftar berdasarkan musim terlihat seperti berikut:

Partisi 1:

Suhu 

Negara Bagian 

Negara 

Musim

30° F

Alaska 

AS

Musim dingin 

35° F

California 

AS

Musim dingin

62° F

Tasmania

Australia 

Musim dingin 

Partisi 2:

Suhu 

Negara Bagian 

Negara 

Musim

48.2° F

Queensland

Australia 

Musim panas 

100° F

Andhra Pradesh 

India

Musim panas

96° F

Texas

AS

Musim panas

Pemartisian komposit

Partisi komposit adalah kombinasi dua teknik pemartisian. Sebuah tabel pertama-tama dibagi menggunakan satu strategi, lalu setiap partisi dibagi lagi menggunakan teknik lain.

Strategi pemartisian sering dibahas dalam wawancara teknis—lihat pertanyaan wawancara DBA teratas untuk 2025.

Kasus Penggunaan Pemartisian Data

Sekarang setelah kita mengevaluasi berbagai jenis strategi pemartisian, mari kita lihat kapan pemartisian data berguna.

Basis data terdistribusi 

Sistem terdistribusi adalah kumpulan node yang secara fisik berada di server terpisah tetapi terhubung melalui jaringan. Contohnya termasuk Apache Cassandra, Amazon DynamoDB, dan Google Bigtable. 

Sistem-sistem ini secara internal menggunakan pemartisian data untuk mengatur dan mendistribusikan data ke seluruh node. 

Operasi OLAP

OLAP merepresentasikan data multidimensi sebagai kubus, memungkinkan pengguna mengeksplorasi data dari berbagai sudut. Meskipun kubus ini merepresentasikan data yang sudah diagregasi sebelumnya, data dasarnya tetap sangat besar, sehingga kueri perlu dioptimalkan lebih lanjut menggunakan pemartisian data. 

Sebagai contoh, menerapkan pemartisian kubus (sebuah teknik pemartisian data) membagi data menjadi kubus-kubus yang lebih kecil berdasarkan kriteria tertentu. Saat Anda mengkueri data, pencarian dilakukan pada kubus tertentu dengan melewati yang tidak relevan, sehingga mengurangi operasi I/O.

Demikian pula, pemartisian dimensi dapat diterapkan untuk membagi data berdasarkan level, hierarki, atau kolom.

Manajemen log

Log berisi informasi tentang peristiwa, transaksi, dan operasi yang terjadi dalam sebuah sistem. Log digunakan untuk melacak kegagalan, bug, kasus tepi, hingga pesan keberhasilan. 

Pemartisian log mempercepat proses debug dan memberi Anda informasi yang diperlukan dengan lebih cepat. Misalnya, jika Anda mempartisi log berdasarkan periode waktu, Anda dapat dengan mudah mengambilnya berdasarkan tanggal, minggu, bulan, atau tahun. 

Pipeline pembelajaran mesin

Dalam kasus penggunaan pembelajaran mesin, data dipartisi menjadi set pelatihan, validasi, dan pengujian. Pendekatan ini memastikan bahwa wawasan dari set pengujian tidak terungkap ke model selama pelatihan untuk menghindari overfitting. 

Selain itu, jika data pelatihan sangat besar, satu mesin tidak dapat memproses dan memasukkan seluruh data ke dalam model. Jadi, data dibagi menjadi potongan-potongan dan dimasukkan ke model melalui pemartisian data. 

Alat untuk Pemartisian Data

Pemartisian data dapat diterapkan di basis data SQL maupun NoSQL. Mari kita bahas di bagian ini.

Basis data SQL

PostgreSQL

PostgreSQL menawarkan dukungan bawaan untuk pemartisian rentang, daftar, dan hash. Misalnya, kueri berikut membuat partisi untuk setiap tahun guna mengakses laba penjualan dan total penjualan tiap tahun fiskal secara efisien.

CREATE TABLE sales(
    city_id         int not null,
    sales_year      date not null,
    total_sales     int,
    sales_profits   int
) PARTITION BY RANGE (sales_year);

MySQL

MySQL mendukung berbagai jenis pemartisian horizontal seperti rentang, daftar, hash, dan key partitioning. Untuk saat ini (versi 8.4), ini belum mendukung pemartisian vertikal.

Kueri MySQL di bawah ini mempartisi data karyawan menjadi tiga grup, p1, p2, dan p3, berdasarkan tanggal bergabung. Semua karyawan yang bergabung sebelum tahun 2000 masuk ke partisi p1. Karyawan yang bergabung antara 2000 dan 2010 masuk ke partisi p2, dan karyawan yang bergabung antara 2010 dan 2020 masuk ke partisi p3.

CREATE TABLE employee(
    firstname VARCHAR(25) NOT NULL,
    username VARCHAR(16) NOT NULL,
    email VARCHAR(35),
    salary INT,
    joined DATE NOT NULL
)
PARTITION BY RANGE( YEAR(joined) ) (
    PARTITION p1 VALUES LESS THAN (2000),
    PARTITION p2 VALUES LESS THAN (2010),
    PARTITION p3 VALUES LESS THAN (2020)
);

Microsoft SQL Server

SQL Server menawarkan fitur pemartisian melalui fungsi partisi dan skema partisi. Fungsi partisi menentukan bagaimana data dibagi, sementara skema partisi menentukan filegroup tempat partisi akan disimpan. 

Pada kueri berikut:

  • Nama fungsi: sales_by_year
  • Nama skema: sales_filegroup
  • Nama filegroup: fg01, fg02, fg03, fg04

Fungsi partisi:

create partition function sales_by_year (date)
as range right for values 
('2024-01-01', '2024-02-01', '2024-03-01', ‘2024-04-01’);

Skema partisi:

CREATE PARTITION SCHEME sales_filegroup
AS PARTITION sales_by_year
TO (fg01, fg02, fg03, fg04);

Di sini, file menyimpan data sebagai berikut:

  • fg01 - tanggal sebelum ‘2024-01-01’,
  • fg02 - ‘2024-01-01’ hingga ‘2024-01-31’
  • fg03 - ‘2024-02-01’ hingga ‘2024-02-29’
  • fg04 - ‘2024-03-01’ hingga ‘2024-03-31’

Karena kita menyebutkan range right pada kueri, setiap tanggal batas termasuk dalam partisi berikutnya.

Jika Anda menggunakan SQL Server, tutorial SQL Server ini membahas konsep kunci dan alat untuk mengelola data terpartisi. Untuk jalur belajar terstruktur, jalur SQL Server Fundamentals memperkenalkan fitur inti yang dibutuhkan untuk membangun basis data SQL yang berperforma tinggi.

Basis data NoSQL

Amazon DynamoDB

DynamoDB secara otomatis menangani pemartisian secara internal. Saat Anda menulis sebuah item ke tabel DynamoDB, item tersebut melewati request router. Router mengurai kunci partisi dan menerapkan fungsi hash. Keluaran fungsi hash menentukan partisi spesifik tempat rekaman akan disimpan. 

Seluruh proses ini diotomatisasi di dalam DynamoDB, sehingga pengguna tidak perlu memikirkan fungsi hash atau bagaimana partisi dikelola.

Mongodb

MongoDB mendistribusikan data ke berbagai server melalui konsep sharding. Data dipartisi berdasarkan shard key, yang harus dipilih dengan cermat untuk menghindari distribusi yang tidak merata. 

Biasanya, shard key harus memiliki kardinalitas tinggi dan merupakan kolom yang sering digunakan dalam kueri. Pertanyaan wawancara MongoDB ini mencakup hampir semua topik pentaing, termasuk sharding. 

Apache Cassandra

Cassandra partitioner adalah algoritme hashing yang menentukan node mana dalam suatu klaster yang harus menyimpan partisi tertentu. Kunci partisi diurai melalui algoritme untuk menghasilkan token. Token ini kemudian dibandingkan dengan nilai token yang ditetapkan pada node. Akhirnya, data disimpan pada node yang cocok dengan token tersebut. 

Algoritme partisi yang umum termasuk Murmur3Partitioner, RandomPartitioner, dan ByteOrderedPartitioner. 

Bagaimana Cara Menerapkan Pemartisian Data?

Sekarang, mari kita bahas langkah-langkah yang diperlukan untuk menerapkan pemartisian data dengan benar.

Langkah 1: Pahami data dan pola akses

Nilailah secara menyeluruh bagaimana aplikasi Anda mengkueri basis data, data apa yang sering diakses, ukuran data, dan hambatan kinerja. Wawasan ini akan membantu Anda menetapkan tujuan yang jelas untuk pemartisian dan mengidentifikasi kolom kunci yang sering terlibat dalam operasi data.

Langkah 2: Pilih teknik pemartisian

Kita telah membahas teknik umum sebelumnya, dan berikut cara memilih di antaranya:

  • Pemartisian horizontal: Saat Anda memiliki jutaan hingga miliaran baris yang bila disimpan dalam satu tabel akan memicu masalah memori, pilihlah pemartisian horizontal. Ia menyimpan set baris yang berbeda di tabel berbeda. 
  • Pemartisian vertikal: Jika sekelompok kolom sering diakses sementara yang lain jarang dikueri, Anda dapat menerapkan pemartisian vertikal untuk menyimpan kolom secara terpisah berdasarkan pola aksesnya.
  • Pendekatan hibrida: Saat Anda memiliki dataset yang lebih besar yang mengharuskan pengurangan jumlah baris sekaligus mengoptimalkan kueri untuk subset kolom, pilih pendekatan hibrida. Ini menggabungkan kelebihan pemartisian horizontal dan vertikal.

Langkah 3: Buat partisi

Berikut adalah contoh kueri SQL untuk membuat partisi menggunakan pemartisian hash.

CREATE TABLE employees (
    emp_id INT NOT NULL,
    name VARCHAR(30),
    hired DATE NOT NULL DEFAULT '2024-01-01',
    job_id INT,
    location_id INT
)
PARTITION BY HASH(location_id)
PARTITIONS 4;

Pada kode di atas, kolom ‘location_id’ dilewatkan ke fungsi hash, dan keluarannya menentukan partisi tempat rekaman harus ditempatkan. Baris kode partitions 4 menentukan total jumlah partisi yang harus dibuat.  

Tandai sebagai favorit lembar contekan SQL Dasar ini untuk merujuk sintaks inti SQL saat Anda mengimplementasikan partisi.

Langkah 4: Pantau dan optimalkan partisi 

  • Pantau secara berkelanjutan operasi data Anda dan pastikan partisi terbaru dan valid. 
  • Seiring skala aplikasi, Anda mungkin perlu menambahkan lebih banyak partisi atau memilih pendekatan berbeda, seperti partisi hibrida, untuk mengakomodasi kebutuhan yang berubah. 
  • Pastikan ukuran dan strategi partisi menguntungkan operasi yang sering dilakukan pada basis data. 
  • Pastikan data terdistribusi merata di antara partisi; jika tidak, Anda mungkin perlu menyeimbangkannya kembali. 

Tantangan dan Pertimbangan dalam Pemartisian Data

Optimalisasi datang dengan pertukaran dan tantangan, seperti halnya di dunia perangkat lunak. Berikut beberapa hal yang perlu Anda pertimbangkan: 

  • Kemiringan partisi (partition skew): Partition skew berarti beberapa partisi menerima lebih banyak data dan pekerjaan pemrosesan sementara yang lain sering menganggur. Untuk menghindarinya, pilih kunci partisi dan strategi yang tepat yang mendistribusikan data secara merata ke seluruh partisi. 
  • Beban pemeliharaan: Seiring pertumbuhan data, Anda perlu mengevaluasi ulang strategi pemartisian yang ada dan memastikan strategi tersebut relevan dengan data saat ini. Jika tidak, Anda mungkin perlu melakukan repartisi atau menggabungkan partisi. 
  • Migrasi data: Dalam hal memigrasikan data Anda ke arsitektur baru, diperlukan kehati-hatian ekstra untuk memastikan bahwa partisi kompatibel dengan lingkungan baru. Selain itu, memindahkan data antar partisi melibatkan kompleksitas seperti mengelola konsistensi data di seluruh shard.
  • Kurva belajar yang curam: Pemartisian data menambah kompleksitas pada sistem atau arsitektur cloud. Tidak mudah untuk mengkueri, memigrasikan, atau menganalisisnya, sehingga menghasilkan kurva belajar yang curam bagi pemula.

Praktik Terbaik untuk Pemartisian Data

Seperti yang Anda lihat, pemartisian data menjadi kompleks seiring pertumbuhan volume data. Namun, menerapkan praktik ini akan memastikan bahwa pemartisian meningkatkan efisiensi tanpa mengorbankan kinerja. 

  • Selaraskan partisi dengan pola kueri: Memilih strategi pemartisian dan kunci partisi yang tepat dapat secara signifikan meningkatkan kinerja basis data. Pahami operasi data dan pola kueri yang paling umum di basis data Anda, dan pilih kunci partisi yang sering terlibat dalam kueri sekaligus memastikan distribusi data yang merata.
  • Pantau secara berkala: Saat ini, aplikasi bersifat dinamis dan terus berkembang mengikuti tren dan permintaan yang berubah. Karena itu, penting untuk secara berkala memantau partisi Anda agar selaras dengan pola akses saat ini dan melakukan repartisi bila diperlukan.
  • Minimalkan overhead: Mengelola partisi secara manual dalam skala besar itu kompleks. Namun, basis data NoSQL seperti Apache Cassandra dan Amazon DynamoDB mengotomatisasi prosesnya tanpa membutuhkan banyak kerja ekstra. Selain itu, beberapa alat otomatisasi menyesuaikan partisi seiring skala data, memungkinkan repartisi atau penggabungan partisi sesuai kebutuhan Anda. 

Kesimpulan

Pemartisian data yang efektif sangat penting untuk menjaga kinerja dan skalabilitas seiring pertumbuhan data Anda. Dengan strategi yang tepat, Anda dapat mengurangi latensi kueri, mengoptimalkan penyimpanan, dan menyederhanakan pemeliharaan. Ini adalah langkah praktis dengan dampak yang terukur.

Untuk pendalaman tentang bagaimana pemartisian memungkinkan sistem terdistribusi melakukan skala, lihat panduan tentang partisi Kafka. Untuk memahami bagaimana struktur relasional memengaruhi keputusan pemartisian, mulai dari kursus basis data relasional ini.


Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana adalah penulis lepas di bidang teknologi dengan gelar sarjana Ilmu Komputer. Menulis tentang berbagai topik, termasuk data science, komputasi awan, pengembangan, pemrograman, keamanan, dan banyak lainnya adalah hal yang alami baginya. Ia menyukai sastra klasik dan menjelajahi destinasi baru.

Topik
Rekayasa Data

Pelajari lebih lanjut tentang desain basis data dengan kursus-kursus ini!

{count, plural, one {Kursus} other {Kursus}}

Perancangan Basis Data

{hours} jam
131.2K
Pelajari cara merancang database di SQL untuk memproses, menyimpan, dan mengatur data dengan cara yang lebih efisien.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

{count, plural, one {blog} other {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

{count, plural, one {blog} other {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

{count, plural, one {blog} other {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

{count, plural, one {blog} other {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