Mengenal 3 Struktur Data Tuple, List, Dictionary Dalam Python

Profile
Prasatya

8 November 2025

Mengenal 3 Struktur Data Tuple, List, Dictionary Dalam Python

Dalam dunia pemrograman, khususnya ketika kita berbicara tentang Python, pemahaman yang solid tentang Struktur Data bukanlah sekadar pelengkap, melainkan sebuah kebutuhan mutlak. Bayangkan Kamu seorang tukang kayu. Tanpa memahami fungsi spesifik dari palu, gergaji, dan pahat, mustahil Kamu bisa membuat sebuah meja yang kokoh dan indah. Konsep yang sama persis berlaku dalam coding. Struktur Data adalah alat-alat dasar yang akan Kamu gunakan setiap hari untuk menyusun, menyimpan, dan mengelola informasi sehingga program yang Kamu buat tidak hanya berjalan, tetapi berjalan dengan efisien, mudah dibaca, dan optimal.

Python, yang terkenal dengan kesederhanaan dan elegannya, dilengkapi dengan beberapa Struktur Data bawaan yang sangat powerful. Di antara yang paling sering digunakan dan menjadi tulang punggung hampir setiap aplikasi Python adalah Tuple, List, dan Dictionary. Ketiganya memiliki karakter, keunikan, dan use case-nya masing-masing. Memahami perbedaan mendalam di antara mereka adalah lompatan besar dari seorang pemula yang hanya bisa menulis skrip sederhana menjadi developer yang dapat merancang solusi perangkat lunak yang skalabel.

Artikel ini akan membawa Kamu menyelami dunia Tuple, List, dan Dictionary. Kita tidak hanya akan berhenti pada pengertian dasar, tetapi akan mengupas tuntas segala aspeknya—mulai dari sintaks, operasi, performa, hingga strategi memilih yang tepat untuk situasi tertentu. Dengan menguasai ketiga Struktur Data ini, Kamu telah melangkah jauh dalam perjalanan menjadi Python developer yang kompeten.

Apa Itu Tuple dalam Python?

Mari kita mulai dengan Tuple, si Struktur Data yang bersifat "immutable". Kata "immutable" ini adalah kunci utama. Dalam bahasa yang lebih mudah, sekali sebuah Tuple diciptakan, isinya tidak dapat diubah, ditambah, atau dihapus. Ia bagaikan sebuah prasasti yang terpahat di batu, tetap dan abadi.

Karakteristik dan Sintaks Tuple

Tuple didefinisikan dengan menggunakan tanda kurung biasa () dan elemen-elemen di dalamnya dipisahkan oleh koma. Bahkan untuk Tuple dengan hanya satu elemen, Kamu harus menyertakan koma di belakangnya, jika tidak, Python akan menganggapnya sebagai ekspresi matematika biasa.

# Contoh pembuatan Tuple koordinat_point = (10, 20) warna_rgb = (255, 128, 0) nama_siswa = ("Budi",) # Perhatikan koma di belakang untuk single-element tuple campuran = (1, "Hello", 3.14, True) # Tuple juga bisa dibuat tanpa kurung (meski kurang disarankan untuk kejelasan) ini_juga_tuple = 100, 200, 300 print(type(ini_juga_tuple)) # Output: <class 'tuple'>

Sifat immutable Tuple inilah yang memberinya beberapa keunggulan strategis. Karena isinya tidak bisa berubah, Python dapat mengalokasikan memori secara lebih optimal untuk Tuple, membuatnya lebih hemat memori dibandingkan List. Selain itu, proses akses elemen dalam Tuple juga secara umum lebih cepat. Ini membuat Tuple sangat cocok untuk menyimpan data yang sifatnya konstan sepanjang eksekusi program.

Operasi dan Metode yang Didukung Tuple

Meski immutable, bukan berarti Tuple tidak bisa "dioperasikan". Kamu tetap dapat melakukan berbagai operasi selama operasi tersebut tidak mengubah Tuple asli.

  • Akses Elemen (Indexing): Menggunakan indeks numerik yang dimulai dari 0.

    data = ('a', 'b', 'c', 'd') print(data[0]) # Output: 'a' print(data[-1]) # Output: 'd' (indeks negatif, hitung dari belakang)
  • Slicing: Memotong Tuple untuk mengambil bagian tertentu.

    print(data[1:3]) # Output: ('b', 'c')
  • Concatenation & Repetition: Menggabungkan dua Tuple atau mengulang Tuple.

    tuple1 = (1, 2) tuple2 = (3, 4) print(tuple1 + tuple2) # Output: (1, 2, 3, 4) print(tuple1 * 3) # Output: (1, 2, 1, 2, 1, 2)
  • Metode Bawaan: Tuple hanya memiliki dua metode bawaan karena sifat immutabilitasnya.

    • count(x): Menghitung berapa kali nilai x muncul dalam Tuple.
    • index(x): Mencari indeks pertama dari nilai x dalam Tuple.
  • Packing dan Unpacking: Fitur yang sangat elegan dalam Python.

    # Packing: Membuat Tuple dari beberapa nilai my_tuple = 1, 2, 3 # Unpacking: Menyalin isi Tuple ke variabel a, b, c = my_tuple print(a) # Output: 1 print(b) # Output: 2

Kapan Harus Menggunakan Tuple?

Gunakan Tuple ketika:

  1. Data yang disimpan bersifat tetap dan tidak boleh diubah (contoh: hari dalam seminggu, konfigurasi database, kode negara).
  2. Keamanan data adalah prioritas. Dengan immutable, Kamu terhindar dari perubahan data yang tidak disengaja.
  3. Kamu ingin menggunakan data sebagai key dalam Dictionary (karena List yang mutable tidak bisa dijadikan key).
  4. Performa dan efisiensi memori menjadi pertimbangan penting untuk koleksi data yang besar dan statis.

Baca Juga: Kenali 4 Struktur Data pada Python dan Bagaimana Tips Memilihnya

Pengertian List dalam Python

Jika Tuple adalah batu yang kokoh, maka List adalah tanah liat yang lentur. List adalah Struktur Data urutan yang "mutable", artinya isinya dapat dimodifikasi, ditambah, dihapus, atau diurutkan sesuai keinginan kita setelah pembuatannya. Fleksibilitas inilah yang membuat List menjadi salah satu Struktur Data yang paling serba guna dan populer di Python.

Karakteristik dan Sintaks List

List didefinisikan dengan menggunakan tanda kurung siku []. Sama seperti Tuple, elemen-elemennya dipisahkan oleh koma dan dapat menampung berbagai tipe data.

# Contoh pembuatan List daftar_belanja = ["Apel", "Pisang", "Susu"] list_angka = [1, 2, 3, 4, 5] list_campuran = [10, "Hello World", 45.5, True] list_dalam_list = [[1, 2], [3, 4], [5, 6]] # List 2 Dimensi

Kemampuan untuk berubah inilah yang menjadi jiwa dari List. Kamu bisa meregangkan dan menciutkannya, mengubah isinya, atau bahkan mengacaknya. Fleksibilitas ini memiliki trade-off, yaitu penggunaan memori dan kecepatan akses yang sedikit di bawah Tuple. Namun, untuk kebanyakan kasus yang membutuhkan dinamika, trade-off ini sangatlah sepadan.

Operasi dan Metode yang Didukung List

List memiliki gudang senjata metode yang sangat kaya, yang memungkinkan Kamu memanipulasinya dengan hampir segala cara.

  • Akses Elemen & Slicing: Sama persis seperti Tuple.

    my_list = ['p', 'y', 't', 'h', 'o', 'n'] print(my_list[2]) # Output: 't' print(my_list[1:4]) # Output: ['y', 't', 'h']
  • Mengubah Elemen (Mutability in Action):

    my_list[1] = 'Y' # Mengganti elemen indeks-1 print(my_list) # Output: ['p', 'Y', 't', 'h', 'o', 'n']
  • Menambah Elemen:

    • append(x): Menambah satu elemen x di akhir list.
    • insert(i, x): Menyisipkan elemen x pada posisi indeks i.
    • extend(iterable): Menambah semua elemen dari iterable (list lain, tuple, dll) ke akhir list.
  • Menghapus Elemen:

    • remove(x): Menghapus elemen pertama dengan nilai x.
    • pop([i]): Menghapus dan mengembalikan elemen pada indeks i (default indeks terakhir).
    • clear(): Mengosongkan seluruh list.
  • Metode Lainnya:

    • sort(): Mengurutkan list secara in-place (ascending/descending).
    • reverse(): Membalikkan urutan elemen list.
    • index(x): Mencari indeks dari nilai x.
    • count(x): Menghitung kemunculan nilai x.

Kekuatan List Comprehension

Salah satu fitur paling elegan dan "Pythonic" untuk bekerja dengan List adalah List Comprehension. Ini adalah cara yang ringkas dan cepat untuk membuat list baru dengan menuliskan ekspresi dalam satu baris.

# Membuat list kuadrat dari 0 hingga 9 kuadrat = [x**2 for x in range(10)] print(kuadrat) # Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # Dengan kondisi genap_kuadrat = [x**2 for x in range(10) if x % 2 == 0] print(genap_kuadrat) # Output: [0, 4, 16, 36, 64]

List Comprehension tidak hanya membuat kode lebih ringkas tetapi juga seringkali lebih cepat secara eksekusi daripada menggunakan loop for konvensional.

Kapan Harus Menggunakan List?

Gunakan List ketika:

  1. Kumpulan data Kamu bersifat dinamis dan diperkirakan akan berubah (contoh: daftar pengguna online, log aktivitas, item dalam keranjang belanja).
  2. Kamu membutuhkan urutan data yang perlu sering dimanipulasi (ditambah, dihapus, diubah urutannya).
  3. Kamu membutuhkan kemampuan iterasi dan pemrosesan data yang intensif dengan bantuan List Comprehension.

Apa Itu Dictionary dalam Python

Sekarang kita beralih ke Struktur Data yang mungkin paling powerful dan intuitif: Dictionary. Jika List dan Tuple mengakses elemen berdasarkan posisi (indeks numerik), Dictionary mengakses elemen berdasarkan "kunci" (key) unik. Bayangkan kamus bahasa. Kamu tidak mencari arti kata dengan mencarinya di halaman ke-50, melainkan dengan langsung mencarinya berdasarkan kata kuncinya (misalnya, "apple"). Dictionary bekerja dengan cara yang sama persis.

Karakteristik dan Sintaks Dictionary

Dictionary didefinisikan dengan menggunakan tanda kurung kurawal {} yang berisi pasangan key: value yang dipisahkan koma. Setiap key harus bersifat unik dan immutable (biasanya string, number, atau tuple), sedangkan value-nya bisa berupa tipe data apa pun, bahkan List atau Dictionary lain.

# Contoh pembuatan Dictionary profil_diri = { "nama": "Ana Safitri", "umur": 25, "pekerjaan": "Data Analyst", "kota": "Jakarta" } inventory_toko = { "A001": {"nama": "Laptop", "harga": 12000000, "stok": 15}, "B002": {"nama": "Mouse", "harga": 250000, "stok": 50} } nilai_siswa = { "Matematika": 90, "Bahasa Inggris": 85, "Fisika": 88 }

Dictionary adalah Struktur Data yang mutable, artinya Kamu bisa menambah, mengubah, dan menghapus pasangan key-value. Kekuatannya terletak pada kecepatan pencarian yang sangat tinggi. Terlepas dari seberapa besar Dictionary-nya, waktu yang dibutuhkan untuk menemukan sebuah value berdasarkan key-nya hampir konstan (dalam istilah kompleksitas, O(1)).

Operasi dan Metode yang Didukung Dictionary

Dictionary memiliki seperangkat metode yang dirancang khusus untuk memanipulasi pasangan key-value.

  • Akses dan Modifikasi Value:

    print(profil_diri["nama"]) # Output: Ana Safitri profil_diri["umur"] = 26 # Mengubah value profil_diri["email"] = "ana@example.com" # Menambah key-value baru
  • Metode Penting:

    • get(key[, default]): Cara yang aman untuk mengakses value. Mengembalikan None atau nilai default jika key tidak ditemukan (menghindari error KeyError).
    • keys(): Mengembalikan view objek berisi semua keys.
    • values(): Mengembalikan view objek berisi semua values.
    • items(): Mengembalikan view objek berisi semua pasangan (key, value) sebagai tuple.
    • pop(key[, default]): Menghapus key dan mengembalikan value-nya.
    • update(other_dict): Memperbarui Dictionary dengan pasangan key-value dari Dictionary lain.
  • Looping dalam Dictionary:

    for key in nilai_siswa.keys(): print(key) for value in nilai_siswa.values(): print(value) for key, value in nilai_siswa.items(): # Cara paling umum print(f"Mata Pelajaran: {key}, Nilai: {value}")

Kapan Harus Menggunakan Dictionary?

Gunakan Dictionary ketika:

  1. Data Kamu secara natural memiliki pemetaan atau hubungan satu-ke-satu antara sebuah kunci dan sebuah nilai (contoh: ID karyawan ke profil, nomor telepon ke nama, kata ke definisinya).
  2. Kamu membutuhkan pencarian data yang sangat cepat berdasarkan sebuah identifier unik.
  3. Data Kamu tidak terurut (meski Python menjaga urutan inserisi versi terbaru), yang penting adalah hubungan key-value-nya.
  4. Kamu memodelkan data yang terstruktur, mirip dengan JSON (JavaScript Object Notation), yang membuatnya sempurna untuk berkomunikasi dengan API.

Baca Juga: Apa itu Struktur Data Queue? Pengertian, Jenis, dan Kegunaannya!

Perbedaan Utama Tuple, List, dan Dictionary

Setelah kita eksplorasi masing-masing, mari kita rangkum perbedaan mereka dalam sebuah tabel komprehensif. Memahami perbedaan ini adalah inti dari memilih Struktur Data yang tepat.

Image

Analisis Perbedaan Kunci:

  1. Mutable vs Immutable: Ini adalah pembeda paling mendasar. Pilihan antara List dan Tuple seringkali bermuara pada pertanyaan: "Apakah koleksi data ini perlu berubah?" Jika ya, gunakan List. Jika tidak, gunakan Tuple untuk keamanan dan performa.
  2. Model Akses Data: List dan Tuple linier. Kamu memproses elemennya dari depan ke belakang (atau sebaliknya). Dictionary adalah model akses acak (random access) yang sempurna. Kamu langsung melompat ke data yang dibutuhkan tanpa perlu mengetahui posisinya.
  3. Trade-off Memori vs Kecepatan: Tuple mengorbankan fleksibilitas untuk mendapatkan kecepatan dan efisiensi. Dictionary mengorbankan efisiensi memori untuk mendapatkan kecepatan pencarian yang tak tertandingi. List berada di tengah-tengah, menawarkan fleksibilitas dengan konsumsi memori yang wajar.

Contoh Pemakaian dalam Skenario Nyata (Studi Kasus)

Teori saja tidak cukup. Mari kita lihat bagaimana ketiganya bisa digunakan bersamaan dalam sebuah skenario yang lebih realistis.

Skenario: Sistem Manajemen Sederhana untuk Sebuah Toko Buku

# 1. TUPLE: Untuk data yang FIX dan tidak berubah KATEGORI_BUKU = ( "Fiksi", "Non-Fiksi", "Sains", "Sejarah", "Anak-Anak" ) # 2. LIST: Untuk kumpulan data yang dinamis (buku yang dijual) daftar_buku = [ {"id": "B001", "judul": "Laskar Pelangi", "kategori": "Fiksi", "harga": 85000}, {"id": "B002", "judul": "Fisika untuk Universitas", "kategori": "Sains", "harga": 150000}, {"id": "B003", "judul": "Sejarah Indonesia Modern", "kategori": "Sejarah", "harga": 120000}, ] # 3. DICTIONARY: Untuk menyimpan data terstruktur dari seorang pelanggan dan keranjang belanjanya pelanggan = { "id_pelanggan": "CUST123", "nama": "Rizki Maulana", "member_sejak": 2022, "keranjang_belanja": [] # A List of book IDs! } # -- SIMULASI PROSES -- # Menambah buku baru ke dalam sistem (manipulasi LIST) buku_baru = {"id": "B004", "judul": "Dunia Sophie", "kategori": "Fiksi", "harga": 95000} daftar_buku.append(buku_baru) # Pelanggan menambah buku ke keranjang (manipulasi LIST dalam DICTIONARY) pelanggan["keranjang_belanja"].append("B001") pelanggan["keranjang_belanja"].append("B004") # Mencari informasi buku berdasarkan ID (memanfaatkan DICTIONARY dalam LIST dan pencarian cepat) def cari_buku_berdasarkan_id(id_buku): for buku in daftar_buku: if buku["id"] == id_buku: # Pencarian berdasarkan key 'id' return buku return None # Menghitung total belanja total_belanja = 0 for id_buku_di_keranjang in pelanggan["keranjang_belanja"]: buku = cari_buku_berdasarkan_id(id_buku_di_keranjang) if buku: total_belanja += buku["harga"] print(f"Total belanja {pelanggan['nama']}: Rp {total_belanja}") # Menggunakan TUPLE sebagai key dalam DICTIONARY? Bisa! # Misal, untuk menyimpan koordinat dan nama tempat di peta. koordinat_toko = { (-6.200000, 106.816666): "Toko Pusat - Jakarta", (-6.917464, 107.619125): "Cabang - Bandung" } print(koordinat_toko[(-6.200000, 106.816666)]) # Output: Toko Pusat - Jakarta

Dalam contoh ini, kita melihat kekuatan masing-masing Struktur Data:

  • Tuple (KATEGORI_BUKU) menjamin daftar kategori tidak akan berubah secara tidak sengaja.
  • List (daftar_buku dan keranjang_belanja) memberikan fleksibilitas untuk menambah/menghapus buku dan item keranjang.
  • Dictionary (pelanggan, buku) memberikan struktur yang jelas dan memungkinkan akses data yang terorganisir berdasarkan key seperti id, nama, dan judul.

Perjalanan kita mengupas tiga Struktur Data fundamental Python—Tuple, List, dan Dictionary—telah menunjukkan bahwa tidak ada yang namanya "yang terbaik". Yang ada adalah "yang paling tepat untuk situasi tertentu". Pemahaman mendalam tentang karakteristik masing-masing adalah kunci untuk menulis kode yang tidak hanya berfungsi, tetapi juga elegan, efisien, dan mudah dipelihara.

  • Pilih Tuple ketika Kamu membutuhkan kestabilan, keamanan, dan efisiensi untuk data yang abadi.
  • Pilih List ketika Kamu membutuhkan fleksibilitas dan kekuatan manipulasi untuk data yang hidup dan dinamis.
  • Pilih Dictionary ketika Kamu membutuhkan kecepatan pencarian dan struktur yang terorganisir untuk data yang dapat diidentifikasi dengan kunci unik.

Penguasaan terhadap konsep-konsep ini adalah fondasi dari segala pembangunan aplikasi yang lebih kompleks di Python, mulai dari scripting sederhana, analisis data, machine learning, hingga pengembangan web backend. Ini adalah langkah pertama yang krusial dalam perjalanan karir Kamu sebagai developer. Penguasaan terhadap konsep fundamental seperti Struktur Data hanyalah awal. Untuk menjadi seorang profesional yang siap bersaing di industri, Kamu perlu skill set yang lengkap dan terintegrasi.

Image

Jika Kamu bercita-cita menjadi Fullstack Web Developer yang mampu menangani proyek dari ujung ke ujung—mulai dari frontend yang interaktif hingga backend yang skalabel—kami memiliki solusinya.

Codepolitan menyediakan KelasFullstack Web Developer yang komprehensif!

Kelas online ini dirancang untuk membawa Kamu dari nol hingga siap berkarya. Kamu akan mempelajari:

  • Teknologi Frontend modern (HTML, CSS, JavaScript, React, dll).
  • Pengembangan Backend yang robust dengan Python (Django/Flask) dan bahasa lainnya.
  • Manajemen Database (SQL & NoSQL).
  • Konsep DevOps dan deployment.
  • Soft skill dan cara membangun portfolio yang menarik perhatian recruiter.

Kelas ini sangat cocok untuk Kamu yang:

  • Ingin memiliki karir yang cemerlang dengan skill yang sangat dibutuhkan industri.
  • Mendambakan gaji yang kompetitif.
  • Bermimpi dapat membuat website atau aplikasi untuk mengembangkan bisnis online sendiri.

Jangan hanya jadi pengguna teknologi, jadilah penciptanya.

Referensi:

What do you think?

Reactions