Pendahuluan
Halo teman-teman developer! Senang sekali bisa bertemu kembali di seri belajar Struktur Data dan Algoritma. Pada artikel sebelumnya, kita sudah membahas gambaran besar mengenai apa itu struktur data dan mengapa hal ini menjadi fondasi penting bagi setiap software engineer. Kita juga sudah berkenalan dengan studi kasus yang akan kita gunakan sepanjang seri ini, yaitu Sistem Antrian.
Pada artikel kedua ini, kita akan masuk ke materi yang jauh lebih teknis namun sangat fundamental: Array. Jika di artikel pertama kita belajar tentang “apa” yang ingin kita selesaicalan, di sini kita akan belajar tentang “alat” pertama yang kita butuhkan. Array adalah salah satu struktur data paling dasar yang wajib dikuasai sebelum kamu melangkah ke struktur data yang lebih kompleks seperti Linked List atau Tree.
Dalam tutorial ini, kita tidak hanya akan belajar teori. Kita akan mempraktikkan bagaimana cara menyimpan data nasabah di sebuah bank (misalnya seperti simulasi antrian di BCA atau Mandiri) menggunakan array, bagaimana cara menambah orang ke dalam antrian, hingga cara menghapus orang yang sudah selesai dilayani. Mari kita mulai!
Apa itu Array?
Secara sederhana, Array adalah sebuah wadah yang digunakan untuk menyimpan sekumpulan data dengan tipe yang sama secara berurutan. Bayangkan kamu sedang melihat deretan loket di sebuah bank. Setiap loket memiliki nomor urut yang tetap. Di dalam pemrograman, deretan nomor urut ini kita sebut sebagai Index.
Satu hal yang sangat krusial bagi pemula adalah memahami bahwa dalam dunia pemrograman, index dimulai dari angka 0, bukan 1. Jadi, elemen pertama yang kamu masukkan ke dalam array akan berada di posisi 0, elemen kedua di posisi 1, dan seterusnya.
Mari kita lihat contoh sederhana menggunakan Python untuk merepresentasikan daftar nama pelanggan yang sedang menunggu di antrian:
# Membuat array (di Python disebut sebagai 'list')
# yang berisi nama-nama pelanggan di antrian
antrian_nasabah = ["Budi", "Siti", "Andi", "Dewi"]
# Mengakses elemen berdasarkan index
# Kita ingin melihat siapa orang pertama di antrian
nasabah_pertama = antargrian_nasabah[0]
print(f"Nasabah pertama adalah: {nasabah_pertama}")
# Output: Nasabah pertama adalah: Budi
# Mengakses elemen kedua (index 1)
nasabah_kedua = antrian_nasabah[1]
print(f"Nasabah kedua adalah: {nasabah_kedua}")
# Output: Nasabah kedua adalah: Siti
Dalam contoh di atas, antrian_nasabah adalah array kita. Saat kita memanggil antrian_nasabah[0], komputer langsung menuju ke memori tempat “Budi” disimpan. Inilah keunggulan utama array: akses data berdasarkan index sangatlah cepat.
Operasi Dasar pada Array
Untuk mengelola sebuah sistem antrian, kita tidak hanya butuh menyimpan data, tapi kita juga perlu melakukan manipulasi. Ada tiga operasi dasar yang akan kita pelajari hari ini: Traversal, Insertion, dan Deletion.
1. Traversal (Menelusuri Array)
Traversal adalah proses mengunjungi setiap elemen dalam array satu per satu. Dalam konteks Sistem Antrian, ini berguna jika kita ingin mencetak seluruh daftar orang yang sedang menunggu agar petugas bisa melihat siapa saja yang ada di dalam list.
antrian_nasabah = ["Budi", "Siti", "Andi", "Dewi", "Reza"]
print("Daftar antrian saat ini:")
# Menggunakan loop untuk menelusru (traversal) setiap elemen
for index, nama in enumerate(antrian_nasabah):
print(f"{index + 1}. {nama}")
# Output:
# 1. Budi
# 2. Siti
# 3. Andi
# 4. Dewi
# 5. Reza
2. Insertion (Menambah Elemen)
Dalam sistem antrian, orang baru akan selalu datang dan masuk ke dalam barisan. Dalam Python, kita bisa menggunakan fungsi .append() untuk menambah elemen ke urutan paling belakang, atau .insert() untuk menyisipkan elemen di posisi tertentu.
antrian_nasabah = ["Budi", "Siti", "Andi"]
# Menambah nasabah baru di akhir antrian (paling umum)
antrian_nasabah.append("Eka")
# Menambah nasabah di posisi tertentu (misalnya prioritas)
# Kita masukkan "Dewi" ke index 1 (setelah Budi)
antargrian_nasabah.insert(1, "Dewi")
print(antrian_nasabah)
# Output: ['Budi', 'Dewi', 'Siti', 'Andi', 'Eka']
3. Deletion (Menghapus Elemen)
Operasi ini terjadi ketika seorang nasabah telah selesai dilayani oleh teller. Kita perlu menghapus nama mereka dari array agar antrian berkurang. Kita bisa menggunakan .pop() untuk menghapus berdasarkan index, atau .remove() untuk menghapus berdasarkan nilai.
antrian_nasabah = ["Budi", "Siti", "Andi", "Dewi"]
# Menghapus nasabah yang sudah selesai dilayani (index 0)
# Dalam antrian, biasanya yang paling depan yang diproses
nasabah_selesai = antrian_nasabah.pop(0)
print(f"Nasabah {nasabah_selesai} telah selesai dilayani.")
print(f"Sisa antrian: {antrian_nasabah}")
# Output:
# Nasabah Budi telah selesai dilayani.
# Sisa antrian: ['Siti', 'Andi', 'Dewi']
Implementasi dalam Proyek: Sistem Antrian
Sekarang, mari kita satukan semua konsep di atas ke dalam sebuah kode yang lebih terstruktur. Kita akan membuat sebuah class sederhana bernama SistemAntrian. Class ini akan mensimulasikan logika dasar sebuah mesin antrian di sebuah kantor layanan publik.
class SistemAntrian:
def __init__(self):
# Inisialisasi array kosong untuk menampung nama nasabah
self.daftar_antrian = []
def tambah_nasabah(self, nama):
"""Menambahkan nasabah baru ke akhir antrian."""
self.daftar_antrian.append(nama)
print(f"✅ {nama} berhasil masuk antrian.")
def proses_nasabah(self):
"""Menghapus nasabah paling depan karena sudah dilayani."""
if not self.daftar_antrian:
print("⚠️ Antrian kosong, tidak ada yang bisa diproses.")
return
# Mengambil nasabah di index 0 (paling depan)
nasabah = self.daftar_antrian.pop(0)
print(f"🚀 Melayani nasabah: {nasabah}")
def tampilkan_antrian(self):
"""Menampilkan semua nasabah yang sedang menunggu."""
if not self.daftar_antrian:
print("📭 Antrian saat ini kosong.")
return
print("\n--- DAFTAR ANTRIAN SAAT INI ---")
for i, nama in enumerate(self.daftar_antrian):
print(f"No. {i+1}: {nama}")
print("-------------------------------\n")
# --- Simulasi Penggunaan ---
# 1. Inisialisasi sistem
sistem_bank = SistemAntrian()
# 2. Menambahkan beberapa nasabah
sistem_bank.tambah_nasabah("Andi")
sistem_bank.tambah_nasabah("Budi")
sistem_bank.tambah_nasabah("Citra")
# 3. Lihat daftar antrean
sistem_bank.tampilkan_antrean()
# 4. Proses satu nasabah (panggil teller)
sistem_bank.proses_nasabah()
# 5. Lihat daftar antrean setelah satu orang selesai
sistem_bank.tampilkan_antrean()
# 6. Tambahkan lagi orang baru
sistem_bank.tambah_nasabah("Dedi")
sistem_bank.tampilkan_antrean()
Dalam kode di atas, kita telah mengimplementasikan konsep CRUD sederhana (Create, Read, Delete) pada struktur data array. Kita membuat (tambah_nasabah), membaca (tampilkan_antrean), dan menghapus (proses_nasabah) data dari list.
Kesimpulan
Belajar array adalah langkah awal yang krusial. Kamu sudah memahami bahwa:
- Array/List adalah kumpulan data yang disusun secara berurutan.
- Index dimulai dari angka 0.
- Operasi utama meliputi penambahan (append), penghapusan (pop/remove), dan akses (accessing).
Pada pembelajaran berikutnya, kita akan membahas bagaimana jika data yang kita butuhkan bukan sekadar urutan, melainkan hubungan antar data yang lebih kompleks. Sampai jumpa di materi berikutnya!