Selamat Datang di Blog Wijaya Kusumah
Kamis, 05 November 2026
Pertemuan Omjay Dengan Pak Dedi Dwitagama
Soal Soal Kelas 8 smp materi memahami struktur data bertumpuk
Dibalik Suami yang Sukses Ada ISTRI YANG Menguatkan
Rabu, 04 November 2026
kisah omjay; Menulis Sebelum Mata Terpejam
Menulis Sebelum Mata Terpejam: Kisah Omjay Mengajak Guru Mengabadikan Kehidupan Menjadi Buku
Jangan biarkan hari-harimu berlalu begitu saja. Sebab, setiap hari menyimpan cerita, setiap cerita menyimpan kenangan, dan setiap kenangan layak diabadikan menjadi tulisan.
Malam itu, Senin, 4 November 2026, suasana grup WhatsApp KBMN PGRI Gelombang 35 kembali ramai oleh pesan-pesan sederhana dari Omjay, Guru Blogger Indonesia.
Seperti biasa, Omjay menyapa bapak dan ibu peserta dengan salam penuh kehangatan.
"Assalamu'alaikum warahmatullahi wabarakatuh."
"Selamat malam bapak dan ibu semuanya."
Mungkin bagi sebagian orang, sapaan itu hanya pesan biasa di sebuah grup WhatsApp. Namun, bagi Omjay, ada harapan besar di balik setiap pesan yang dikirimkan. Ada keinginan agar para guru tidak sekadar menjalani kehidupan, tetapi juga mampu mengabadikan perjalanan hidupnya melalui tulisan.
Tak terasa, bulan November sudah memasuki hari keempat. Empat hari telah berlalu. Berapa banyak cerita yang sudah kita alami? Berapa banyak pengalaman yang sudah kita lalui? Dan berapa banyak di antaranya yang sempat kita tuliskan?
Pernahkah kita membayangkan bahwa suatu hari nanti anak dan cucu kita ingin mengetahui bagaimana kehidupan kita hari ini?
Mereka mungkin ingin tahu bagaimana kakek dan neneknya berjuang menjadi guru. Bagaimana dahulu mengajar dengan segala keterbatasan. Bagaimana menghadapi murid yang sulit diatur. Bagaimana menangis karena kecewa, tertawa karena bahagia, dan tetap bertahan meskipun kehidupan tidak selalu berjalan sesuai harapan.
Sayangnya, semua kenangan itu bisa hilang apabila tidak pernah dituliskan.
Itulah sebabnya Omjay mengajak peserta KBMN PGRI Gelombang 35 melakukan refleksi diri setiap malam melalui kegiatan menulis.
Hal tersulit dalam menulis adalah memulai
Dalam pesan WhatsApp malam itu, Omjay menuliskan sebuah kalimat yang sederhana, tetapi sangat bermakna.
"Apakah yang sulit dari menulis? Hal yang sulit dari menulis adalah MEMULAI."
Benar sekali.
Banyak orang ingin menjadi penulis. Banyak guru ingin mempunyai buku sendiri. Banyak peserta pelatihan ingin melihat namanya tercetak di sampul sebuah buku.
Namun, ketika diminta menulis, tiba-tiba muncul seribu alasan.
Tidak punya waktu. Tidak punya ide. Takut salah. Takut tulisan jelek. Bingung mencari kalimat pertama. Bahkan ada yang merasa dirinya tidak berbakat menulis.
Padahal, tidak ada penulis hebat yang langsung menghasilkan tulisan sempurna pada awal perjalanan.
Semua penulis pernah menjadi pemula.
Mereka pernah menatap layar komputer tanpa tahu harus menulis apa. Mereka pernah menghapus kalimat yang sudah dibuat. Mereka pernah merasa tulisannya tidak menarik. Bahkan mungkin pernah merasa tidak ada seorang pun yang mau membaca karyanya.
Tetapi ada satu hal yang membedakan penulis dengan orang yang hanya ingin menjadi penulis.
Penulis mau memulai.
Omjay ingin bapak dan ibu memahami bahwa menulis tidak harus menunggu suasana hati menjadi baik. Tidak harus menunggu ide datang seperti hujan. Tidak harus menunggu waktu luang yang entah kapan akan tersedia.
Mulailah sekarang.
Tulislah satu paragraf. Kemudian satu halaman. Besok satu halaman lagi.
Lama-kelamaan, tulisan itu akan terkumpul menjadi sebuah buku.
Dari blog sederhana menjadi buku yang bermakna
Omjay bukanlah orang yang tiba-tiba bisa menghasilkan buku setiap bulan.
Ada perjalanan panjang di balik kebiasaan menulis setiap hari.
Sejak tahun 2007, Omjay mulai menekuni dunia blog. Salah satu rumah digital yang menjadi tempatnya menyimpan cerita adalah:
https://wijayalabs.blogspot.com
Di blog itulah Omjay menuliskan berbagai pengalaman hidup, kegiatan mengajar, perjalanan, pemikiran tentang pendidikan, serta berbagai peristiwa yang dialami setiap hari.
Kadang tulisannya sederhana. Kadang hanya menceritakan kejadian kecil yang mungkin dianggap tidak penting oleh orang lain.
Namun, Omjay percaya bahwa sesuatu yang kecil hari ini bisa menjadi kenangan yang sangat berharga pada masa depan.
Dari tanggal 1 sampai 31 Oktober 2026, Omjay mengajak peserta KBMN PGRI Gelombang 35 menulis setiap hari di blog masing-masing.
Sebulan penuh bukanlah waktu yang sebentar.
Ada hari ketika ide mengalir deras. Ada pula hari ketika kepala terasa kosong. Ada hari ketika pekerjaan menumpuk. Ada pula hari ketika tubuh sudah lelah setelah seharian mengajar dan menjalankan berbagai kegiatan.
Tetapi Omjay terus berusaha memberikan contoh.
Sebab Omjay tidak ingin hanya menyuruh orang lain menulis, sementara dirinya sendiri berhenti menulis.
Apa hasilnya?
Tulisan-tulisan yang dikumpulkan selama Oktober itu kini mulai menjelma menjadi sebuah buku.
Dari tulisan harian menjadi kumpulan artikel. Dari kumpulan artikel menjadi naskah buku. Dari naskah buku menjadi sebuah karya yang bisa dibaca oleh banyak orang.
Inilah keajaiban konsistensi.
Bayangkan jika kebiasaan itu terus dilakukan selama setahun.
Satu bulan menghasilkan satu buku. Dua belas bulan menghasilkan dua belas buku.
Tentu semuanya membutuhkan proses penyuntingan, pemilihan tulisan, dan penyempurnaan naskah. Namun, bukankah perjalanan panjang selalu dimulai dari satu langkah kecil?
Kita tidak harus menjadi orang pintar untuk mulai menulis
Omjay pernah mengingat sebuah pesan dari almarhum Nusa Putra.
Tidak dibutuhkan otak untuk bisa menulis. Kita hanya perlu duduk sebentar dan mulai menulis.
Pesan itu mengingatkan Omjay bahwa menulis bukanlah kegiatan yang hanya boleh dilakukan oleh orang-orang dengan gelar tinggi atau mereka yang memiliki kecerdasan luar biasa.
Setiap orang mempunyai pengalaman.
Seorang guru mempunyai cerita tentang muridnya. Seorang kepala sekolah mempunyai pengalaman memimpin sekolah. Seorang ibu mempunyai kisah tentang perjuangan membesarkan anak. Seorang ayah mempunyai cerita tentang tanggung jawab dan pengorbanan.
Bahkan seorang murid pun mempunyai pengalaman yang layak dituliskan.
Tidak ada kehidupan yang benar-benar kosong dari cerita.
Terkadang, hal yang paling menyentuh justru bukan pengalaman yang luar biasa, melainkan kejadian sederhana yang dilakukan dengan penuh cinta.
Seorang murid yang datang terlambat tetapi tetap berusaha belajar. Seorang guru yang rela pulang sore demi membimbing siswanya. Seorang anak yang diam-diam menyimpan tulisan tangan ibunya. Atau seorang ayah yang tetap tersenyum meskipun sedang menyimpan banyak persoalan.
Semua itu adalah bahan tulisan.
Jangan menunggu menjadi terkenal untuk mulai menulis. Jangan menunggu menjadi profesor untuk menerbitkan buku. Jangan menunggu mendapatkan penghargaan untuk mengabadikan pengalaman.
Tulislah karena kehidupan kita berharga.
AI membantu, tetapi hati manusia tetap menjadi sumber cerita
Pada malam itu, Omjay juga mengingatkan peserta tentang perkembangan kecerdasan artifisial atau Artificial Intelligence (AI).
Sekarang, menulis semakin mudah dengan bantuan teknologi.
Kita bisa menggunakan ChatGPT melalui https://chatgpt.com untuk mencari ide, membuat kerangka tulisan, memperbaiki kalimat, menyusun judul, dan membantu mengembangkan sebuah cerita.
Dahulu, seseorang mungkin membutuhkan waktu berjam-jam hanya untuk menemukan kalimat pembuka. Sekarang, teknologi dapat membantu memberikan beberapa alternatif.
Namun, Omjay ingin mengingatkan satu hal penting.
Jangan sampai kita menyerahkan seluruh pikiran dan perasaan kepada kecerdasan buatan.
AI boleh membantu menyusun kata, tetapi pengalaman hidup tetap milik kita. AI boleh membantu memperbaiki tulisan, tetapi kejujuran cerita harus datang dari hati manusia.
Jangan sampai tulisan kita kehilangan jiwa karena terlalu sibuk mengejar kesempurnaan bahasa.
Tulislah pengalaman sendiri. Ceritakan apa yang benar-benar kita rasakan. Gunakan AI sebagai teman belajar, bukan sebagai pengganti diri kita.
Sebab tulisan yang menyentuh hati pembaca bukan hanya tulisan yang memiliki tata bahasa sempurna, tetapi tulisan yang memiliki kejujuran dan rasa.
Jangan biarkan kenangan kita hilang bersama waktu
Ada satu hal yang sering membuat Omjay berpikir.
Suatu hari nanti, kita semua akan menjadi bagian dari masa lalu.
Rambut yang sekarang masih hitam perlahan memutih. Tubuh yang sekarang masih kuat suatu saat membutuhkan bantuan. Anak-anak yang sekarang masih kecil akan tumbuh dewasa. Murid-murid yang dahulu kita ajar akan menjalani kehidupan mereka sendiri.
Waktu tidak pernah berhenti.
Kita tidak bisa meminta hari kemarin kembali. Kita tidak bisa mengulang percakapan yang sudah berlalu. Kita juga tidak bisa memanggil kembali seseorang yang sudah mendahului kita.
Tetapi kita masih bisa menyimpan kenangan melalui tulisan.
Bayangkan suatu hari nanti cucu kita membuka sebuah buku karya kakeknya.
Ia membaca halaman demi halaman. Ia menemukan cerita tentang perjuangan kakeknya menjadi guru. Ia mengetahui bagaimana kakeknya belajar teknologi, menulis blog, membimbing guru-guru, dan mengajak banyak orang untuk terus belajar.
Mungkin saat membaca tulisan itu, ia akan tersenyum.
Mungkin ia juga akan meneteskan air mata.
Ia akan berkata dalam hati, "Ternyata dahulu kakek pernah mengalami banyak hal. Ternyata kakek juga pernah lelah, pernah gagal, pernah sedih, tetapi tidak pernah berhenti berjuang."
Bukankah itu sebuah warisan yang luar biasa?
Rumah, kendaraan, dan harta benda mungkin suatu saat akan berpindah tangan. Namun, pengalaman dan nilai kehidupan yang kita tuliskan dapat terus dibaca oleh generasi berikutnya.
Itulah alasan Omjay ingin setiap guru meninggalkan jejak digital yang baik.
Bukan untuk mengejar popularitas. Bukan pula semata-mata agar mendapatkan penghargaan.
Melainkan agar kehidupan yang kita jalani tidak berlalu begitu saja tanpa meninggalkan pelajaran.
Pesan Omjay untuk peserta KBMN PGRI Gelombang 35
Bapak dan ibu peserta KBMN PGRI Gelombang 35 yang Omjay banggakan.
Jangan pernah merasa terlambat untuk menulis.
Jika hari ini belum mampu menghasilkan satu halaman, tulislah satu paragraf. Jika belum mampu menulis satu paragraf, tulislah satu kalimat.
Jika hari ini hanya mampu menulis tentang rasa lelah, tuliskanlah rasa lelah itu.
Jika hari ini mengalami kegagalan, ceritakanlah kegagalan itu.
Jika hari ini mendapatkan kebahagiaan, abadikanlah kebahagiaan itu.
Jangan malu dengan tulisan pertama kita. Jangan takut dengan komentar orang lain. Jangan membandingkan perjalanan kita dengan penulis yang sudah menghasilkan puluhan buku.
Setiap orang mempunyai waktunya sendiri.
Omjay juga masih terus belajar. Masih terus membaca. Masih terus menulis. Masih terus memperbaiki diri.
Sebab menjadi penulis bukan berarti sudah mengetahui segalanya. Menjadi penulis berarti bersedia belajar sepanjang hayat.
Malam ini, sebelum mata terpejam, cobalah mengambil telepon genggam atau membuka laptop.
Tuliskan satu pengalaman yang paling berkesan hari ini.
Tidak perlu panjang. Tidak perlu sempurna. Yang penting jujur dan berasal dari hati.
Siapa tahu tulisan sederhana yang kita buat malam ini akan menjadi bagian dari buku yang kelak dibaca anak cucu kita.
Dan siapa tahu, suatu hari nanti, seseorang akan tersenyum sambil membaca tulisan kita, lalu berkata:
"Terima kasih, Ayah. Terima kasih, Ibu. Terima kasih, Guru. Karena engkau pernah menulis, kami masih bisa mengenal perjalanan hidupmu."
Omjay ingin menutup tulisan ini dengan sebuah pesan sederhana.
Jangan hanya menjalani kehidupan. Abadikanlah kehidupan melalui tulisan.
Sebab usia manusia ada batasnya, tetapi tulisan yang baik bisa melampaui usia penulisnya.
Teruslah menulis setiap hari. Mulailah sedikit demi sedikit. Jangan menyerah hanya karena hari ini belum ada yang membaca tulisan kita.
Bisa jadi, tulisan yang kita buat hari ini belum dibaca siapa-siapa. Namun, bertahun-tahun kemudian, tulisan itulah yang akan membuat seseorang mengenang kita dengan penuh cinta.
Salam blogger persahabatan.
Omjay Guru Blogger Indonesia
Blog: https://wijayalabs.com
Blog menulis harian: https://wijayalabs.blogspot.com
Kemana Kalian Peserta KBMN PGRI Gelombang 35?
K-Reward Kompasiana Semakin Menjauh dan Semangat Menulis Omjay Tetap Teguh
Sepatu Baru Omjay
Memahami Struktur Data Bertumpuk
STACK: Memahami Struktur Data Bertumpuk dan Penerapannya dalam Kehidupan Sehari-hari
Pendahuluan
Dalam perkembangan teknologi saat ini, komputer tidak hanya berfungsi untuk mengolah informasi, tetapi juga menyimpan dan mengatur berbagai jenis data. Agar data dapat dikelola dengan baik, diperlukan suatu sistem yang mampu mengatur cara data disimpan, ditambahkan, diakses, dan dihapus. Salah satu konsep penting dalam pengelolaan data adalah struktur data.
Struktur data merupakan cara untuk menyusun dan mengatur sekumpulan data agar dapat digunakan secara lebih teratur dan efisien. Dalam pemrograman, terdapat beberapa jenis struktur data yang memiliki karakteristik dan cara kerja berbeda, di antaranya adalah list, queue, dan stack. Masing-masing memiliki aturan tersendiri dalam mengelola data sesuai dengan kebutuhan.
Salah satu struktur data yang menarik untuk dipelajari adalah stack. Struktur data ini memiliki cara kerja yang menyerupai tumpukan benda dalam kehidupan sehari-hari. Contohnya adalah tumpukan buku, piring, atau barang lainnya. Benda yang terakhir diletakkan di bagian atas akan menjadi benda pertama yang diambil. Prinsip sederhana tersebut menjadi dasar utama dalam cara kerja stack pada komputer.
Melalui pemahaman mengenai stack, kita dapat mengetahui bagaimana komputer mengatur data berdasarkan urutan tertentu serta bagaimana konsep tersebut diterapkan dalam berbagai aplikasi yang sering digunakan.
Pengertian Struktur Data dan Stack
Sebelum memahami stack lebih jauh, kita perlu mengetahui pengertian struktur data. Struktur data adalah metode untuk menyimpan dan mengatur sekumpulan informasi agar dapat diakses dan diolah sesuai kebutuhan. Penggunaan struktur data membantu proses pengelolaan informasi menjadi lebih terorganisasi.
Dalam Python, terdapat beberapa struktur data yang dapat digunakan, salah satunya adalah list. List merupakan struktur data yang digunakan untuk menyimpan sekumpulan data dalam satu variabel secara berurutan. Setiap elemen dalam list memiliki nomor posisi yang disebut indeks. Indeks dimulai dari angka 0 untuk elemen pertama, angka 1 untuk elemen kedua, dan seterusnya.
Sebagai contoh, terdapat sebuah list bernama buah yang berisi data apel, jeruk, dan mangga. Jika kita ingin mengambil elemen kedua, kita dapat menggunakan perintah buah[1]. Hasilnya adalah jeruk. Hal ini menunjukkan bahwa list memungkinkan penggunanya untuk mengakses, menambahkan, mengubah, dan menghapus elemen pada berbagai posisi.
Selain list, terdapat queue atau antrean. Queue merupakan struktur data yang memiliki aturan khusus dalam proses masuk dan keluarnya data. Prinsip yang digunakan adalah FIFO (First In, First Out), yaitu data yang pertama masuk akan menjadi data yang pertama keluar. Contohnya dapat ditemukan pada antrean kasir, antrean pembelian tiket, dan proses pencetakan dokumen menggunakan printer.
Berbeda dengan list dan queue, stack merupakan struktur data yang menyimpan data secara bertumpuk. Penambahan dan pengambilan data hanya dapat dilakukan melalui satu bagian, yaitu bagian paling atas yang disebut top. Stack menggunakan prinsip LIFO (Last In, First Out), yang berarti data yang terakhir masuk akan menjadi data pertama yang keluar.
Misalnya, terdapat empat data berupa A, B, C, dan D yang dimasukkan secara berurutan ke dalam stack. Data A berada di bagian bawah, sedangkan D berada di bagian paling atas. Ketika data dikeluarkan, urutannya dimulai dari D, kemudian C, B, dan terakhir A. Dengan demikian, urutan keluarnya data merupakan kebalikan dari urutan masuknya data.
Prinsip Kerja Stack (LIFO)
Prinsip LIFO merupakan dasar utama yang membedakan stack dari struktur data lainnya. LIFO adalah singkatan dari Last In, First Out, yang berarti elemen yang terakhir dimasukkan akan menjadi elemen pertama yang dikeluarkan.
Untuk mempermudah pemahaman, bayangkan sebuah tumpukan buku di atas meja. Buku pertama diletakkan di bagian bawah, kemudian buku kedua diletakkan di atasnya. Setelah itu, buku ketiga dan keempat ditambahkan secara berurutan. Jika kita ingin mengambil sebuah buku, kita harus mengambil buku yang berada paling atas terlebih dahulu.
Hal tersebut juga berlaku dalam stack pada komputer. Setiap data yang dimasukkan akan ditempatkan pada bagian top. Ketika data diambil, sistem akan mengeluarkan data yang berada di posisi tersebut. Data yang berada di bawahnya tidak dapat diambil sebelum data di atasnya dikeluarkan.
Dalam stack, terdapat dua bagian penting, yaitu top dan bottom. Top merupakan posisi paling atas yang menjadi tempat masuk dan keluarnya data. Sementara itu, bottom adalah posisi paling bawah yang ditempati oleh data pertama yang dimasukkan.
Prinsip LIFO membuat stack cocok digunakan untuk berbagai proses yang membutuhkan pengelolaan data berdasarkan urutan terakhir masuk. Sistem ini membantu komputer mengatur informasi secara teratur tanpa harus mengambil data dari bagian tengah atau bawah tumpukan.
Operasi Dasar pada Stack
Dalam penggunaannya, stack memiliki beberapa operasi dasar yang berfungsi untuk mengelola data. Setiap operasi memiliki tugas yang berbeda, sehingga penting untuk memahami perbedaan dan cara kerjanya.
1. Push
Push merupakan operasi untuk menambahkan data baru ke bagian paling atas stack. Setiap kali operasi push dilakukan, data yang dimasukkan akan menempati posisi top yang baru.
Sebagai contoh, jika stack berisi data A dan B, kemudian dilakukan operasi push(C), maka isi stack menjadi A, B, dan C. Data C berada di posisi paling atas.
2. Pop
Pop merupakan operasi untuk mengambil sekaligus menghapus data yang berada di posisi top. Operasi ini menyebabkan jumlah data dalam stack berkurang satu.
Contohnya, jika stack berisi A, B, dan C, kemudian dilakukan operasi pop(), maka data C akan dikeluarkan. Isi stack setelah operasi tersebut dilakukan menjadi A dan B.
3. Peek
Peek merupakan operasi untuk melihat data yang berada di posisi top tanpa menghapusnya. Berbeda dengan pop, operasi peek tidak mengubah isi stack.
Jika stack berisi A dan B, kemudian dilakukan peek(), hasil yang ditampilkan adalah B. Namun, data B tetap berada di dalam stack.
4. isEmpty
isEmpty merupakan operasi yang digunakan untuk memeriksa apakah stack berada dalam keadaan kosong atau masih memiliki data. Jika stack tidak memiliki elemen, hasil pemeriksaannya adalah True. Sebaliknya, jika masih terdapat data, hasilnya adalah False.
5. isFull
isFull merupakan operasi untuk memeriksa apakah kapasitas stack sudah penuh. Operasi ini berguna terutama pada stack yang memiliki batas kapasitas tertentu. Jika seluruh kapasitas telah digunakan, data baru tidak dapat ditambahkan sebelum tersedia ruang kembali.
Kelima operasi tersebut merupakan dasar dalam penggunaan stack. Dengan memahami fungsinya, kita dapat mengetahui bagaimana data ditambahkan, diperiksa, dan dikeluarkan sesuai aturan LIFO.
Contoh Penelusuran Operasi Stack (Trace)
Untuk memahami cara kerja stack, kita dapat melakukan penelusuran atau trace terhadap beberapa operasi yang dilakukan secara berurutan.
Misalnya, pada awalnya terdapat sebuah stack kosong. Kemudian dilakukan beberapa operasi, yaitu push(5), push(8), push(2), pop(), peek(), dan pop().
Pada langkah pertama, operasi push(5) memasukkan angka 5 ke dalam stack. Isi stack menjadi 5. Selanjutnya, operasi push(8) menambahkan angka 8 sehingga susunannya menjadi 5 dan 8.
Pada langkah ketiga, operasi push(2) memasukkan angka 2 ke posisi paling atas. Sekarang isi stack adalah 5, 8, dan 2. Ketika operasi pop() dilakukan, angka 2 dikeluarkan karena merupakan data yang terakhir dimasukkan.
Setelah itu, operasi peek() digunakan untuk melihat data teratas. Hasilnya adalah angka 8, tetapi angka tersebut tidak dihapus dari stack. Terakhir, operasi pop() kembali dilakukan sehingga angka 8 dikeluarkan. Pada akhir penelusuran, stack hanya menyisakan angka 5.
Dari contoh tersebut, dapat diketahui bahwa setiap operasi memiliki pengaruh yang berbeda terhadap isi stack. Push menambah data, pop mengambil dan menghapus data, sedangkan peek hanya melihat data tanpa mengubah susunannya.
Penerapan Stack dalam Kehidupan Sehari-hari
Meskipun terdengar seperti konsep pemrograman yang rumit, stack sebenarnya banyak ditemukan dalam aktivitas sehari-hari maupun penggunaan komputer.
Salah satu contoh sederhananya adalah kegiatan mencuci piring. Ketika piring kotor ditumpuk di samping wastafel, piring yang terakhir diletakkan biasanya berada di bagian paling atas. Piring tersebut akan menjadi piring pertama yang diambil untuk dicuci. Dalam konsep stack, proses meletakkan piring dapat diibaratkan sebagai push, sedangkan mengambil piring paling atas merupakan pop.
Contoh lainnya adalah fitur undo dan redo pada aplikasi pengolah dokumen seperti Microsoft Word dan Google Docs. Setiap perubahan yang dilakukan pengguna disimpan sehingga dapat dikelola berdasarkan urutannya. Ketika pengguna menekan tombol Ctrl+Z, perubahan yang paling terakhir dilakukan akan dibatalkan terlebih dahulu. Proses ini menggambarkan prinsip LIFO karena tindakan terbaru ditangani sebelum tindakan sebelumnya.
Stack juga diterapkan pada tombol Back dalam browser. Ketika seseorang membuka beberapa halaman website secara berurutan, riwayat halaman tersebut dapat dikelola menggunakan konsep stack. Saat tombol Back ditekan, browser akan kembali ke halaman yang dikunjungi sebelumnya.
Selain itu, terdapat call stack dalam sistem komputer. Call stack digunakan ketika sebuah fungsi memanggil fungsi lainnya. Fungsi yang dipanggil terakhir akan diselesaikan terlebih dahulu sebelum proses kembali ke fungsi sebelumnya. Hal ini menunjukkan bahwa prinsip LIFO juga digunakan dalam pengaturan proses program komputer.
Penggunaan Stack dalam Bahasa Pemrograman Python
Stack dapat dibuat menggunakan list dalam bahasa pemrograman Python. Meskipun list merupakan struktur data yang memungkinkan akses pada berbagai posisi, list juga dapat digunakan untuk menerapkan prinsip stack dengan memanfaatkan operasi tertentu.
Dalam Python, metode append() dapat digunakan sebagai pengganti push karena berfungsi menambahkan elemen ke bagian akhir list. Sementara itu, metode pop() digunakan untuk mengambil sekaligus menghapus elemen terakhir.
Sebagai contoh, perintah stack = [] digunakan untuk membuat stack kosong. Kemudian, perintah stack.append("A"), stack.append("B"), dan stack.append("C") digunakan untuk memasukkan tiga data secara berurutan.
Jika seluruh perintah tersebut dijalankan, isi stack menjadi ['A', 'B', 'C']. Untuk melihat data paling atas tanpa menghapusnya, kita dapat menggunakan stack[-1]. Hasilnya adalah C.
Selanjutnya, jika perintah stack.pop() dijalankan, data C akan dikeluarkan dan dihapus dari list. Isi stack kemudian berubah menjadi ['A', 'B'].
Untuk memeriksa apakah stack kosong, kita dapat menggunakan perintah len(stack) == 0. Jika hasilnya False, berarti stack masih memiliki data. Dengan menggunakan beberapa perintah tersebut, konsep stack dapat diterapkan secara sederhana dalam program Python.
Perbedaan Stack dan Queue
Stack dan queue merupakan dua struktur data yang memiliki aturan berbeda dalam mengatur urutan masuk dan keluarnya data.
Stack menggunakan prinsip LIFO, yaitu data terakhir yang masuk akan menjadi data pertama yang keluar. Sementara itu, queue menggunakan prinsip FIFO (First In, First Out), yaitu data pertama yang masuk akan menjadi data pertama yang keluar.
Perbedaan lainnya terletak pada bagian yang digunakan untuk memasukkan dan mengeluarkan data. Pada stack, kedua proses tersebut dilakukan melalui satu ujung yang disebut top. Sebaliknya, queue menggunakan dua ujung, yaitu rear sebagai tempat masuknya data dan front sebagai tempat keluarnya data.
Operasi penambahan pada stack disebut push, sedangkan pengambilan datanya disebut pop. Pada queue, operasi penambahan disebut enqueue dan operasi pengambilan disebut dequeue.
Sebagai contoh, jika angka 1, 2, dan 3 dimasukkan secara berurutan, stack akan mengeluarkan data dengan urutan 3, 2, dan 1. Sebaliknya, queue akan mengeluarkan data dengan urutan 1, 2, dan 3.
Oleh karena itu, stack lebih sesuai digunakan ketika data terbaru harus diproses terlebih dahulu. Sementara itu, queue lebih tepat digunakan ketika urutan kedatangan data harus dipertahankan, seperti pada antrean layanan.
Kesalahan yang Harus Dihindari dalam Penggunaan Stack
Dalam menggunakan stack, terdapat beberapa kesalahan yang perlu diperhatikan agar proses pengelolaan data berjalan dengan benar.
Kesalahan pertama adalah stack overflow, yaitu kondisi ketika pengguna mencoba menambahkan data menggunakan push pada stack yang sudah penuh. Untuk menghindarinya, kapasitas stack perlu diperiksa terlebih dahulu menggunakan isFull().
Kesalahan kedua adalah stack underflow. Kondisi ini terjadi ketika pengguna mencoba melakukan pop atau peek pada stack yang kosong. Dalam Python, penggunaan pop() pada list kosong dapat menghasilkan error bernama IndexError. Oleh karena itu, pengguna perlu memeriksa keadaan stack menggunakan isEmpty() sebelum mengambil data.
Kesalahan berikutnya adalah mencoba mengambil data dari bagian tengah atau bawah stack. Hal tersebut tidak sesuai dengan aturan stack karena akses hanya diperbolehkan melalui bagian top. Jika kebutuhan program mengharuskan pengambilan data dari berbagai posisi, penggunaan list biasa dapat menjadi pilihan yang lebih sesuai.
Selain itu, pengguna juga harus membedakan operasi pop dan peek. Pop akan mengambil sekaligus menghapus data teratas, sedangkan peek hanya melihat data tersebut. Kesalahan dalam memilih operasi dapat menyebabkan data terhapus tanpa disengaja.
Hal lain yang perlu diperhatikan adalah penggunaan prinsip LIFO. Pengguna harus selalu mengingat bahwa urutan keluarnya data merupakan kebalikan dari urutan masuknya. Stack juga tidak sebaiknya digunakan untuk kasus yang membutuhkan urutan kedatangan data, seperti antrean pelayanan, karena kebutuhan tersebut lebih sesuai ditangani menggunakan queue.
Studi Kasus: Membalik Kata Menggunakan Stack
Salah satu penerapan stack yang menarik adalah membalik urutan huruf dalam sebuah kata. Misalnya, kita ingin mengubah kata "KOMPUTER" menjadi "RETUPMOK".
Langkah pertama adalah memasukkan setiap huruf ke dalam stack secara berurutan dari kiri ke kanan. Huruf yang dimasukkan adalah K, O, M, P, U, T, E, dan R. Proses memasukkan setiap huruf tersebut dilakukan menggunakan operasi push.
Setelah seluruh huruf dimasukkan, huruf R berada di posisi paling atas karena merupakan huruf yang terakhir dimasukkan.
Langkah kedua adalah mengeluarkan seluruh huruf menggunakan operasi pop hingga stack menjadi kosong. Karena stack menggunakan prinsip LIFO, huruf yang pertama keluar adalah R, kemudian E, T, U, P, M, O, dan terakhir K.
Langkah ketiga adalah menggabungkan seluruh huruf yang telah dikeluarkan. Hasil akhirnya adalah RETUPMOK.
Dari studi kasus tersebut, dapat diketahui bahwa stack dapat digunakan untuk membalik urutan data secara sederhana. Hal ini terjadi karena prinsip LIFO secara otomatis membalik urutan elemen yang dimasukkan.
Kesimpulan
Stack merupakan salah satu struktur data yang memiliki peran penting dalam pengelolaan informasi pada komputer. Struktur data ini bekerja menggunakan prinsip LIFO (Last In, First Out), yaitu data yang terakhir dimasukkan akan menjadi data pertama yang dikeluarkan. Seluruh proses penambahan dan pengambilan data dilakukan melalui satu bagian yang disebut top.
Dalam penggunaannya, stack memiliki beberapa operasi dasar, yaitu push, pop, peek, isEmpty, dan isFull. Operasi tersebut memungkinkan pengguna untuk menambahkan, mengambil, melihat, serta memeriksa kondisi stack. Stack juga dapat diterapkan menggunakan list dalam bahasa Python melalui metode append() dan pop().
Penerapan stack dapat ditemukan dalam berbagai kegiatan, seperti menyusun piring, menggunakan fitur undo dan redo, mengakses tombol Back pada browser, serta mengatur pemanggilan fungsi dalam program komputer. Selain itu, stack juga dapat digunakan untuk membalik urutan huruf dalam sebuah kata.
Dengan memahami konsep stack, kita dapat mengetahui bahwa pengelolaan data dalam komputer memiliki aturan dan mekanisme tertentu. Pemilihan struktur data yang tepat sangat penting agar proses pengolahan informasi dapat berjalan sesuai kebutuhan. Stack menjadi pilihan yang tepat ketika data terbaru perlu ditangani terlebih dahulu, sedangkan queue lebih sesuai ketika urutan kedatangan data harus dipertahankan.
Berikut 50 soal pilihan ganda (PG) Informatika kelas VIII berdasarkan artikel “Memahami Stack: Struktur Data Bertumpuk dan Penerapannya dalam Kehidupan Sehari-hari.”
Soal dibuat dengan tingkat kesulitan bervariasi, mulai dari pemahaman dasar, penerapan konsep, analisis, hingga penelusuran kode Python. Setiap soal dilengkapi empat pilihan jawaban, kunci jawaban, dan penjelasan.
50 Soal Pilihan Ganda – Struktur Data Stack
50 soal
4 pilihan jawaban
Dilengkapi pembahasan
A. Pengertian dan Konsep Dasar Stack
1. Apa yang dimaksud dengan struktur data?
A. Metode untuk membuat tampilan program menjadi menarik.
B. Cara menyimpan dan mengatur sekumpulan data agar dapat diakses dan diolah.
C. Proses menghapus seluruh data dari komputer.
D. Bahasa yang digunakan untuk membuat perangkat keras.
2. Stack merupakan struktur data yang memiliki bentuk penyimpanan seperti ....
A. Antrean memanjang.
B. Tabel mendatar.
C. Tumpukan data.
D. Jaringan komputer.
3. Prinsip utama yang digunakan dalam struktur data stack adalah ....
A. FIFO (First In, First Out).
B. LIFO (Last In, First Out).
C. FILO (First In, Last Out) sebagai prinsip yang berbeda dari LIFO.
D. Random In, Random Out.
4. Arti dari prinsip LIFO adalah ....
A. Data pertama yang masuk akan keluar pertama.
B. Data terakhir yang masuk akan keluar pertama.
C. Data pertama yang masuk akan keluar terakhir.
D. Semua data keluar secara bersamaan.
5. Bagian paling atas dalam struktur data stack disebut ....
A. Bottom.
B. Front.
C. Rear.
D. Top.
6. Bagian paling bawah dalam struktur data stack disebut ....
A. Top.
B. Bottom.
C. Front.
D. Rear.
7. Jika data A, B, C, dan D dimasukkan secara berurutan ke dalam stack, data yang berada di posisi top adalah ....
A. A.
B. B.
C. C.
D. D.
8. Jika data A, B, C, dan D dimasukkan secara berurutan, urutan keluarnya adalah ....
A. A, B, C, D.
B. B, C, D, A.
C. D, C, B, A.
D. A, D, C, B.
9. Mengapa data pada bagian bawah stack tidak dapat langsung diambil?
A. Karena stack hanya mengizinkan penambahan dan pengambilan data melalui bagian top.
B. Karena data bagian bawah selalu terhapus otomatis.
C. Karena data bagian bawah tidak dapat disimpan.
D. Karena stack hanya dapat menyimpan satu data.
10. Manakah pernyataan yang paling tepat mengenai karakteristik stack?
A. Data dapat diambil dari semua posisi secara bebas.
B. Data masuk melalui front dan keluar melalui rear.
C. Data ditambahkan dan diambil melalui satu ujung, yaitu top.
D. Data selalu keluar berdasarkan urutan kedatangannya.
B. Operasi Dasar Stack
11. Operasi yang digunakan untuk menambahkan data ke bagian atas stack adalah ....
A. Pop.
B. Push.
C. Peek.
D. Dequeue.
12. Operasi pop() memiliki fungsi untuk ....
A. Menambahkan data baru.
B. Melihat data paling bawah.
C. Mengambil sekaligus menghapus data teratas.
D. Memeriksa kapasitas komputer.
13. Jika ingin melihat data paling atas tanpa menghapusnya, operasi yang digunakan adalah ....
A. Push.
B. Pop.
C. Peek.
D. Enqueue.
14. Fungsi isEmpty() digunakan untuk ....
A. Menambahkan data ke dalam stack.
B. Memeriksa apakah stack kosong.
C. Menghapus data teratas.
D. Memeriksa apakah stack penuh.
15. Fungsi isFull() digunakan untuk ....
A. Memeriksa apakah stack sudah mencapai kapasitas maksimal.
B. Menghapus semua data dalam stack.
C. Melihat data yang terakhir masuk.
D. Mengubah urutan data.
16. Sebuah stack memiliki isi A dan B. Jika dilakukan operasi push(C), isi stack menjadi ....
A. A.
B. B, A, C.
C. A, B, C.
D. C, A, B.
17. Sebuah stack berisi A, B, dan C. Jika dilakukan operasi pop(), data yang keluar adalah ....
A. A.
B. B.
C. C.
D. Tidak ada data yang keluar.
18. Sebuah stack berisi angka 4, 7, dan 9. Jika dilakukan peek(), hasil yang diperoleh adalah ....
A. 4.
B. 7.
C. 9.
D. 0.
19. Apa perbedaan utama antara operasi pop() dan peek()?
A. Pop menambahkan data, sedangkan peek menghapus data.
B. Pop mengambil dan menghapus data, sedangkan peek hanya melihat data.
C. Pop memeriksa kapasitas, sedangkan peek menambahkan data.
D. Keduanya memiliki fungsi yang sama.
20. Jika sebuah stack tidak memiliki data sama sekali, hasil pemeriksaan isEmpty() adalah ....
A. True.
B. False.
C. Null.
D. Error dalam semua kondisi.
C. Penelusuran dan Penerapan Stack
21. Sebuah stack kosong menerima operasi push(5), push(8), dan push(2). Isi stack dari bottom ke top adalah ....
A. 2, 8, 5.
B. 5, 8, 2.
C. 8, 5, 2.
D. 5, 2, 8.
22. Berdasarkan soal nomor 21, jika dilakukan operasi pop(), data yang keluar adalah ....
A. 5.
B. 8.
C. 2.
D. Tidak ada.
23. Berdasarkan soal nomor 21, setelah pop() dilakukan satu kali, kemudian peek() dijalankan. Hasilnya adalah ....
A. 5.
B. 8.
C. 2.
D. 0.
24. Sebuah stack berisi 10, 20, dan 30. Kemudian dilakukan operasi pop() sebanyak dua kali. Data yang tersisa adalah ....
A. 10.
B. 20.
C. 30.
D. Kosong.
25. Jika angka 1, 2, dan 3 dimasukkan secara berurutan ke dalam stack, urutan keluarnya adalah ....
A. 1, 2, 3.
B. 2, 1, 3.
C. 3, 2, 1.
D. 1, 3, 2.
26. Contoh penerapan prinsip stack dalam kehidupan sehari-hari adalah ....
A. Antrean pembelian tiket.
B. Antrean kasir.
C. Tumpukan piring.
D. Antrean kendaraan.
27. Dalam kegiatan mencuci piring, proses mengambil piring paling atas dapat diibaratkan sebagai operasi ....
A. Push.
B. Pop.
C. Peek.
D. isFull.
28. Ketika pengguna menekan Ctrl+Z pada Microsoft Word, perubahan yang paling terakhir dilakukan akan dibatalkan terlebih dahulu. Hal ini merupakan penerapan ....
A. FIFO.
B. LIFO.
C. Enqueue.
D. Dequeue.
29. Pada browser, tombol Back digunakan untuk ....
A. Menghapus seluruh riwayat pencarian.
B. Membuka halaman yang dikunjungi sebelumnya.
C. Menambahkan halaman baru ke daftar favorit.
D. Menutup seluruh aplikasi.
30. Dalam pemrograman, call stack digunakan untuk ....
A. Menyimpan gambar dalam komputer.
B. Mengatur pemanggilan dan penyelesaian fungsi.
C. Menghapus seluruh kode program.
D. Mengatur tampilan halaman website.
D. Stack dalam Bahasa Pemrograman Python
31. Dalam Python, stack dapat dibuat dengan memanfaatkan struktur data ....
A. Integer.
B. String.
C. List.
D. Boolean.
32. Metode append() dalam Python berfungsi sebagai pengganti operasi ....
A. Pop.
B. Push.
C. Peek.
D. isEmpty.
33. Metode pop() dalam Python digunakan untuk ....
A. Menambahkan elemen ke akhir list.
B. Melihat elemen pertama tanpa menghapusnya.
C. Mengambil dan menghapus elemen terakhir list.
D. Menghitung jumlah karakter.
34. Perhatikan kode berikut:
stack = []
stack.append("A")
stack.append("B")
stack.append("C")
print(stack)
Output yang dihasilkan adalah ....
A. ['C', 'B', 'A']
B. ['A', 'B', 'C']
C. ['A', 'C', 'B']
D. []
35. Perhatikan kode berikut:
stack = ["A", "B", "C"]
print(stack[-1])
Output yang dihasilkan adalah ....
A. A.
B. B.
C. C.
D. -1.
36. Perhatikan kode berikut:
stack = ["A", "B", "C"]
data = stack.pop()
print(data)
Output yang dihasilkan adalah ....
A. A.
B. B.
C. C.
D. ['A', 'B', 'C'].
37. Berdasarkan kode pada soal nomor 36, bagaimana isi stack setelah operasi pop()?
A. ['A', 'B'].
B. ['B', 'C'].
C. ['C'].
D. [].
38. Perhatikan kode berikut:
stack = ["A", "B"]
print(len(stack) == 0)
Hasil yang ditampilkan adalah ....
A. True.
B. False.
C. A.
D. B.
39. Apa yang terjadi jika metode pop() digunakan pada list Python yang kosong?
A. Data baru akan otomatis ditambahkan.
B. Program menghasilkan IndexError.
C. Program selalu menghasilkan True.
D. List berubah menjadi penuh.
40. Mengapa pemeriksaan isEmpty() penting sebelum melakukan pop()?
A. Agar data dapat ditambahkan lebih cepat.
B. Agar program dapat menghindari pengambilan data dari stack kosong.
C. Agar seluruh data terhapus.
D. Agar urutan data berubah menjadi FIFO.
E. Analisis, Kesalahan, dan Studi Kasus
41. Stack overflow terjadi ketika ....
A. Mengambil data dari stack kosong.
B. Menambahkan data ke stack yang sudah penuh.
C. Melihat data teratas.
D. Menghapus data dari bagian top.
42. Stack underflow terjadi ketika ....
A. Menambahkan data ke stack kosong.
B. Menambahkan data ke stack penuh.
C. Mengambil atau melihat data dari stack kosong.
D. Melakukan operasi push().
43. Jika pengguna ingin mengambil data dari bagian tengah stack secara langsung, tindakan tersebut ....
A. Sesuai dengan prinsip dasar stack.
B. Tidak sesuai dengan aturan akses stack.
C. Merupakan operasi push.
D. Merupakan operasi peek.
44. Mengapa pop() dan peek() tidak boleh disamakan?
A. Karena keduanya menghasilkan data yang berbeda setiap saat.
B. Karena pop menghapus data, sedangkan peek tidak mengubah isi stack.
C. Karena peek digunakan untuk menambah data.
D. Karena pop hanya digunakan pada queue.
45. Jika sebuah kasus membutuhkan data keluar berdasarkan urutan kedatangannya, struktur data yang lebih tepat digunakan adalah ....
A. Stack.
B. Queue.
C. String.
D. Boolean.
46. Sebuah stack menerima huruf K, O, M, P, U, T, E, dan R secara berurutan. Jika seluruh huruf dikeluarkan menggunakan pop(), hasilnya adalah ....
A. KOMPUTER.
B. KOMPUTERR.
C. RETUPMOK.
D. KOMPURTER.
47. Mengapa stack dapat digunakan untuk membalik sebuah kata?
A. Karena stack mengurutkan huruf berdasarkan abjad.
B. Karena stack menggunakan prinsip LIFO sehingga urutan keluarnya terbalik dari urutan masuknya.
C. Karena stack menghapus huruf pertama secara otomatis.
D. Karena stack hanya dapat menyimpan huruf vokal.
48. Terdapat dua struktur data yang menerima angka 1, 2, dan 3 secara berurutan. Struktur pertama menggunakan stack, sedangkan struktur kedua menggunakan queue. Pernyataan yang benar adalah ....
A. Stack menghasilkan 1, 2, 3 dan queue menghasilkan 3, 2, 1.
B. Stack dan queue menghasilkan urutan yang sama.
C. Stack menghasilkan 3, 2, 1 dan queue menghasilkan 1, 2, 3.
D. Stack menghasilkan 2, 1, 3 dan queue menghasilkan 3, 1, 2.
49. Sebuah program membutuhkan penyimpanan riwayat perubahan agar tindakan terakhir dapat dibatalkan terlebih dahulu. Struktur data yang paling sesuai adalah ....
A. Queue.
B. Stack.
C. List biasa tanpa aturan khusus.
D. Integer.
50. Kesimpulan yang paling tepat mengenai penggunaan stack adalah ....
A. Stack digunakan untuk mengatur data berdasarkan urutan pertama masuk, pertama keluar.
B. Stack hanya dapat digunakan untuk menyimpan angka.
C. Stack cocok digunakan ketika data terakhir yang masuk perlu diproses terlebih dahulu.
D. Stack memungkinkan semua data diakses secara bebas dari berbagai posisi.
Kunci jawaban dan pembahasan
Pembahasan berikut menjelaskan alasan jawaban yang benar agar bisa digunakan untuk belajar, bukan hanya menghafalkan kunci.
Kunci jawaban dan penjelasan
Tutup semua
Nomor 1
Jawaban B
Struktur data merupakan cara menyimpan dan mengatur sekumpulan data agar dapat diakses dan diolah.
Nomor 2
Jawaban C
Stack menyimpan data secara bertumpuk, seperti tumpukan buku atau piring.
Nomor 3
Jawaban B
Stack menggunakan prinsip LIFO (Last In, First Out).
Nomor 4
Jawaban B
LIFO berarti data yang terakhir masuk akan menjadi data pertama yang keluar.
Nomor 5
Jawaban D
Top adalah bagian paling atas stack, tempat data ditambahkan dan diambil.
Nomor 6
Jawaban B
Bottom merupakan bagian paling bawah stack dan biasanya ditempati data pertama yang masuk.
Nomor 7
Jawaban D
Dimasukkan secara berurutan A, B, C, D, sehingga D berada paling atas.
Nomor 8
Jawaban C
Karena menggunakan LIFO, urutan keluarnya menjadi kebalikan dari urutan masuk.
Nomor 9
Jawaban A
Stack hanya mengizinkan akses melalui top. Data di atas harus dikeluarkan terlebih dahulu.
Nomor 10
Jawaban C
Penambahan dan pengambilan data pada stack dilakukan melalui satu ujung, yaitu top.
Nomor 11
Jawaban B
Push merupakan operasi untuk menambahkan data ke bagian paling atas stack.
Nomor 12
Jawaban C
Pop mengambil sekaligus menghapus elemen yang berada di posisi top.
Nomor 13
Jawaban C
Peek hanya melihat data teratas tanpa menghapus atau mengubah isi stack.
Nomor 14
Jawaban B
isEmpty digunakan untuk memeriksa apakah stack kosong atau masih memiliki elemen.
Nomor 15
Jawaban A
isFull memeriksa apakah kapasitas stack sudah mencapai batas maksimal.
Nomor 16
Jawaban C
Push(C) menambahkan C setelah A dan B, sehingga susunannya menjadi A, B, C.
Nomor 17
Jawaban C
C merupakan data terakhir yang dimasukkan sehingga menjadi data pertama yang dikeluarkan.
Nomor 18
Jawaban C
Angka 9 berada di posisi paling atas, sehingga peek() menghasilkan 9.
Nomor 19
Jawaban B
Pop menghapus data teratas, sedangkan peek hanya menampilkan data teratas.
Nomor 20
Jawaban A
True menunjukkan bahwa kondisi stack kosong.
Nomor 21
Jawaban B
Operasi push(5), push(8), dan push(2) menghasilkan susunan bottom ke top: 5, 8, 2.
Nomor 22
Jawaban C
Angka 2 merupakan data terakhir yang dimasukkan sehingga keluar pertama kali.
Nomor 23
Jawaban B
Setelah 2 dikeluarkan, angka 8 menjadi data teratas. Peek hanya melihatnya.
Nomor 24
Jawaban A
Pop pertama mengeluarkan 30, pop kedua mengeluarkan 20, sehingga tersisa 10.
Nomor 25
Jawaban C
Stack mengikuti LIFO, sehingga urutan 1, 2, 3 keluar menjadi 3, 2, 1.
Nomor 26
Jawaban C
Tumpukan piring merupakan contoh sederhana stack karena piring terakhir diletakkan diambil lebih dahulu.
Nomor 27
Jawaban B
Mengambil piring paling atas menggambarkan pop karena elemen diambil sekaligus dikeluarkan.
Nomor 28
Jawaban B
Undo menerapkan konsep LIFO karena perubahan terakhir dibatalkan terlebih dahulu.
Nomor 29
Jawaban B
Tombol Back membawa pengguna kembali ke halaman yang dikunjungi sebelumnya.
Nomor 30
Jawaban B
Call stack mengatur pemanggilan fungsi dan penyelesaiannya dalam program.
Nomor 31
Jawaban C
Stack dapat dibuat menggunakan list dalam Python.
Nomor 32
Jawaban B
append() menambahkan elemen ke akhir list dan berperan sebagai push.
Nomor 33
Jawaban C
pop() mengambil sekaligus menghapus elemen terakhir dalam list.
Nomor 34
Jawaban B
Ketiga append memasukkan A, B, C secara berurutan, sehingga output-nya ['A', 'B', 'C'].
Nomor 35
Jawaban C
Indeks -1 pada Python digunakan untuk mengambil elemen terakhir dalam list, yaitu C.
Nomor 36
Jawaban C
pop() mengambil elemen terakhir, yaitu C, lalu menghapusnya dari list.
Nomor 37
Jawaban A
Setelah C dikeluarkan, list hanya berisi A dan B.
Nomor 38
Jawaban B
List memiliki dua elemen. Karena panjangnya bukan 0, hasil perbandingan adalah False.
Nomor 39
Jawaban B
Memanggil pop() pada list kosong menyebabkan IndexError karena tidak ada elemen yang dapat diambil.
Nomor 40
Jawaban B
Pemeriksaan isEmpty mencegah program mengambil data ketika stack tidak memiliki elemen.
Nomor 41
Jawaban B
Overflow adalah kondisi ketika operasi push dilakukan pada stack yang sudah penuh.
Nomor 42
Jawaban C
Underflow terjadi ketika pop atau peek dilakukan pada stack kosong.
Nomor 43
Jawaban B
Stack hanya mengizinkan akses dari bagian top, bukan mengambil elemen tengah secara langsung.
Nomor 44
Jawaban B
Pop mengubah isi stack dengan menghapus elemen, sedangkan peek tidak mengubah isi stack.
Nomor 45
Jawaban B
Queue menggunakan FIFO sehingga data pertama masuk akan keluar pertama.
Nomor 46
Jawaban C
Huruf terakhir yang masuk adalah R, sehingga urutan keluarnya menjadi RETUPMOK.
Nomor 47
Jawaban B
Prinsip LIFO membalik urutan data saat dikeluarkan dari stack.
Nomor 48
Jawaban C
Stack menghasilkan urutan terbalik (3, 2, 1), sedangkan queue mempertahankan urutan masuk (1, 2, 3).
Nomor 49
Jawaban B
Stack cocok untuk menyimpan riwayat perubahan yang perlu dibatalkan dari tindakan terbaru.
Nomor 50
Jawaban C
Stack tepat digunakan ketika data yang terakhir masuk harus ditangani terlebih dahulu.
Saran pembagian tingkat kesulitan
Tingkat | Nomor soal | Jumlah |
Mudah | 1–20 | 20 |
Sedang | 21–40 | 20 |
Sulit | 41–50 | 10 |
Total | 1–50 | 50 |
Catatan: Soal disusun berdasarkan materi artikel dan PPT Stack Informatika kelas VIII, termasuk konsep LIFO, operasi dasar, Python, perbedaan Stack dan Queue, serta studi kasus. Beberapa soal analisis merupakan pengembangan dari contoh-contoh yang ada dalam materi.