Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Struktur Data & Algoritma

Pelajaran 6 dari 17

Tumpukan, antrean, dan senarai berkait

Antrean dengan collections.deque

Setelah pelajaran ini kamu bisa memakai deque sebagai antrean dan jendela geser, dan menjelaskan mengapa list.pop(0) melambat pada antrean panjang.

±13 menitDiperiksa 1 Okt 2026

Materi

Antrean (queue) adalah struktur yang ditambah di belakang dan diambil dari depan. Data yang pertama masuk adalah data pertama yang keluar, disingkat FIFO. Antrean dipakai di mana pun urutan kedatangan harus dihormati: pekerjaan cetak, pesanan masuk, pesan yang menunggu dikirim, dan penelusuran graf melebar di modul 4.

List Python tampak bisa dipakai sebagai antrean dengan append() dan pop(0), tetapi tutorial Python menyebut cara itu lambat. List menyimpan datanya berderet di memori, sehingga mengambil data paling depan memaksa semua data sisanya bergeser satu posisi. Pada antrean berisi n data, setiap pop(0) butuh sekitar n langkah, dan menghabiskan antrean butuh sekitar n² langkah.

collections.deque dirancang untuk kedua ujung. append() menambah di kanan dan popleft() mengambil di kiri, keduanya dengan biaya tetap berapa pun panjangnya. deque juga menerima maxlen: bila penuh, menambah di satu ujung otomatis membuang data di ujung lainnya, sehingga cocok untuk menyimpan n kejadian terakhir atau menghitung rata-rata bergerak.

from collections import deque

cetak = deque(["surat.pdf", "faktur.pdf"])
cetak.append("memo.pdf")        # masuk di belakang
berikut = cetak.popleft()       # "surat.pdf" keluar dari depan

terakhir = deque(maxlen=3)
for suhu in [29, 30, 31, 33]:
    terakhir.append(suhu)
print(list(terakhir))           # [30, 31, 33]

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Sistem pesanan memproses antrean 200.000 pesanan dengan list.pop(0) dan terasa makin lambat. Penjelasan mana yang benar?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke