Berikut saya susun paket evaluasi pembelajaran Informatika berdasarkan tema “Memahami Struktur Data Bertumpuk” untuk siswa SMP.
Soal terdiri atas:
* 50 soal pilihan ganda (A, B, C, D).
* 10 soal esai.
* Kunci jawaban pilihan ganda dan esai dipisahkan di bagian paling bawah agar mudah digunakan sebagai lembar ujian siswa.
### SOAL EVALUASI INFORMATIKA KELAS VIII
### Materi: Memahami Struktur Data Bertumpuk (STACK)
Nama: ....................................................
Kelas: ....................................................
Hari/Tanggal: ..........................................
Petunjuk pengerjaan:
* Bacalah setiap soal dengan teliti.
* Pilihlah satu jawaban yang paling tepat untuk soal pilihan ganda.
* Jawablah soal esai dengan jelas dan menggunakan bahasa sendiri.
* Kerjakan secara mandiri.
### A. Pilihan Ganda (50 Soal)
Pilihlah jawaban A, B, C, atau D yang paling tepat!
### Bagian 1 – Pemahaman Konsep Dasar
1. Apa yang dimaksud dengan struktur data dalam Informatika?
A. Cara mempercepat koneksi internet.
B. Cara menyimpan dan mengatur data agar mudah digunakan.
C. Alat untuk memperbaiki komputer.
D. Program untuk menggambar.
2. Struktur data stack memiliki bentuk seperti ....
A. Antrean kendaraan.
B. Tumpukan buku.
C. Jaringan komputer.
D. Tabel angka.
3. Prinsip utama yang digunakan dalam stack adalah ....
A. FIFO.
B. LIFO.
C. Random Access.
D. First Come, First Served.
4. Kepanjangan LIFO adalah ....
A. Last In, First Out.
B. Last In, Final Output.
C. List In, First Output.
D. Last Input, Final Order.
5. Arti prinsip Last In, First Out adalah ....
A. Data pertama masuk akan keluar pertama.
B. Data terakhir masuk akan keluar pertama.
C. Semua data keluar bersamaan.
D. Data keluar berdasarkan urutan abjad.
6. Bagian paling atas dari sebuah stack disebut ....
A. Bottom.
B. Front.
C. Top.
D. Rear.
7. Bagian paling bawah dalam stack disebut ....
A. Top.
B. Bottom.
C. Front.
D. Rear.
8. Jika data A, B, C, dan D dimasukkan secara berurutan ke dalam stack, data yang berada paling atas adalah ....
A. A.
B. B.
C. C.
D. D.
9. Jika data A, B, C, dan D dikeluarkan dari stack, urutannya adalah ....
A. A, B, C, D.
B. B, C, D, A.
C. D, C, B, A.
D. C, B, A, D.
10. Mengapa stack disebut struktur data bertumpuk?
A. Karena data disimpan secara acak.
B. Karena data disimpan seperti susunan benda yang bertumpuk.
C. Karena data hanya berbentuk angka.
D. Karena data selalu disimpan di internet.
### Bagian 2 – Operasi Dasar Stack
11. Operasi untuk menambahkan data ke dalam stack disebut ....
A. Pop.
B. Push.
C. Peek.
D. Dequeue.
12. Operasi untuk mengambil sekaligus menghapus data paling atas disebut ....
A. Push.
B. Peek.
C. Pop.
D. Enqueue.
13. Operasi yang digunakan untuk melihat data paling atas tanpa menghapusnya adalah ....
A. Push.
B. Pop.
C. Peek.
D. Delete.
14. Fungsi isEmpty digunakan untuk ....
A. Memeriksa apakah stack kosong.
B. Menambahkan data baru.
C. Menghapus semua data.
D. Mengubah data menjadi angka.
15. Fungsi isFull digunakan untuk ....
A. Memeriksa apakah stack sudah penuh.
B. Memeriksa apakah komputer menyala.
C. Menghapus data terakhir.
D. Melihat data paling bawah.
16. Stack berisi data 10 dan 20. Jika dilakukan push(30), isi stack dari bawah ke atas menjadi ....
A. 30, 10, 20.
B. 20, 10, 30.
C. 10, 20, 30.
D. 30, 20, 10.
17. Stack berisi angka 5, 10, dan 15. Jika dilakukan pop(), angka yang keluar adalah ....
A. 5.
B. 10.
C. 15.
D. Semua angka.
18. Stack berisi angka 4, 8, dan 12. Jika dilakukan peek(), hasilnya adalah ....
A. 4.
B. 8.
C. 12.
D. 24.
19. Perbedaan antara pop dan peek adalah ....
A. Pop menambahkan data, peek menghapus data.
B. Pop mengambil dan menghapus data, peek hanya melihat data.
C. Keduanya menambahkan data.
D. Keduanya menghapus seluruh data.
20. Jika stack tidak memiliki elemen, hasil pemeriksaan isEmpty adalah ....
A. True.
B. False.
C. 1.
D. 100.
### Bagian 3 – Penerapan Stack dalam Kehidupan
21. Contoh penerapan stack dalam kehidupan sehari-hari adalah ....
A. Antrean pembelian tiket.
B. Antrean kasir.
C. Tumpukan piring.
D. Antrean kendaraan.
22. Ketika seseorang meletakkan buku di atas tumpukan buku, kegiatan tersebut menyerupai operasi ....
A. Pop.
B. Push.
C. Peek.
D. Dequeue.
23. Ketika mengambil buku yang berada paling atas, kegiatan tersebut menyerupai operasi ....
A. Push.
B. Pop.
C. Enqueue.
D. isFull.
24. Fitur Undo pada aplikasi pengolah kata memiliki konsep yang berkaitan dengan ....
A. FIFO.
B. LIFO.
C. Random.
D. Sorting.
25. Ketika pengguna menekan Ctrl+Z, perubahan yang paling terakhir dilakukan biasanya akan ....
A. Disimpan permanen.
B. Dibatalkan terlebih dahulu.
C. Digandakan.
D. Dicetak.
26. Tombol Back pada browser memiliki penerapan konsep yang berkaitan dengan ....
A. Stack.
B. Printer.
C. Monitor.
D. Keyboard.
27. Dalam pemrograman, call stack digunakan untuk ....
A. Mengatur pemanggilan dan penyelesaian fungsi.
B. Mengatur warna layar.
C. Menghapus sistem operasi.
D. Mempercepat jaringan internet.
28. Mengapa stack cocok digunakan untuk fitur Undo?
A. Karena data pertama selalu dihapus.
B. Karena tindakan terakhir dapat dibatalkan terlebih dahulu.
C. Karena semua data dihapus bersamaan.
D. Karena data diurutkan berdasarkan abjad.
29. Kegiatan menyusun piring kotor secara bertumpuk merupakan contoh sederhana dari ....
A. Queue.
B. Stack.
C. Tree.
D. Graph.
30. Manakah kegiatan yang lebih tepat menggunakan konsep queue daripada stack?
A. Mengambil buku paling atas.
B. Membatalkan perubahan terakhir.
C. Antrean siswa membeli makanan di kantin.
D. Mengambil piring paling atas.
### Bagian 4 – Stack dalam Python
31. Dalam bahasa pemrograman Python, stack sederhana dapat dibuat menggunakan ....
A. List.
B. Monitor.
C. Mouse.
D. Printer.
32. Perintah append() dalam Python digunakan untuk ....
A. Menghapus data terakhir.
B. Menambahkan elemen ke dalam list.
C. Melihat kapasitas RAM.
D. Menghapus seluruh program.
33. Perintah pop() dalam Python digunakan untuk ....
A. Menambahkan data.
B. Menghapus dan mengambil elemen terakhir list.
C. Menghitung jumlah huruf.
D. Menampilkan semua data tanpa perubahan.
34. Perhatikan kode berikut:
```python
stack = []
stack.append("A")
stack.append("B")
stack.append("C")
print(stack)
```
Hasil yang ditampilkan adalah ....
A. \['C', 'B', 'A'\]
B. \['A', 'B', 'C'\]
C. \['A', 'C', 'B'\]
D. \[\]
35. Perhatikan kode berikut:
```python
stack = ["A", "B", "C"]
print(stack[-1])
```
Hasilnya adalah ....
A. A.
B. B.
C. C.
D. -1.
36. Perhatikan kode berikut:
```python
stack = [10, 20, 30]
stack.pop()
print(stack)
```
Hasilnya adalah ....
A. \[10, 20\].
B. \[20, 30\].
C. \[10, 30\].
D. \[30\].
37. Perintah berikut digunakan untuk memeriksa jumlah elemen dalam list:
```python
len(stack)
```
Fungsi perintah tersebut adalah ....
A. Menghapus elemen.
B. Menghitung jumlah elemen.
C. Menambahkan elemen.
D. Mengurutkan elemen.
38. Perhatikan kode berikut:
```python
stack = []
print(len(stack) == 0)
```
Hasilnya adalah ....
A. True.
B. False.
C. 0.
D. Error.
39. Apa yang terjadi jika pop() dijalankan pada list kosong?
A. Elemen baru otomatis ditambahkan.
B. Muncul kesalahan IndexError.
C. Program selalu berhasil.
D. List berubah menjadi penuh.
40. Mengapa sebelum melakukan pop() sebaiknya kita memeriksa apakah stack kosong?
A. Agar tidak terjadi kesalahan saat mengambil data.
B. Agar data berubah menjadi huruf.
C. Agar kapasitas komputer bertambah.
D. Agar semua data menjadi sama.
### Bagian 5 – Analisis dan Pemecahan Masalah
41. Stack overflow terjadi ketika ....
A. Mengambil data dari stack kosong.
B. Menambahkan data pada stack yang sudah penuh.
C. Melihat data paling atas.
D. Menghapus data yang tersedia.
42. Stack underflow terjadi ketika ....
A. Menambahkan data ke stack kosong.
B. Menambahkan data ke stack penuh.
C. Mengambil data dari stack kosong.
D. Menyimpan data baru.
43. Sebuah stack berisi 2, 4, dan 6. Kemudian dilakukan push(8), pop(), dan peek(). Hasil peek adalah ....
A. 2.
B. 4.
C. 6.
D. 8.
44. Sebuah stack kosong menerima operasi berikut:
* Push(1)
* Push(2)
* Push(3)
* Pop()
Data yang tersisa dari bawah ke atas adalah ....
A. 1, 2.
B. 2, 3.
C. 3, 2.
D. 1, 2, 3.
45. Jika angka 1, 2, dan 3 dimasukkan ke dalam stack secara berurutan, angka yang keluar pertama adalah ....
A. 1.
B. 2.
C. 3.
D. Tidak ada.
46. Stack dapat digunakan untuk membalik sebuah kata karena ....
A. Stack menyusun huruf berdasarkan abjad.
B. Stack menggunakan prinsip LIFO.
C. Stack menghapus huruf vokal.
D. Stack hanya menyimpan huruf terakhir.
47. Jika kata KOMPUTER dimasukkan huruf demi huruf ke dalam stack dan seluruhnya dikeluarkan menggunakan pop(), hasilnya adalah ....
A. KOMPUTER.
B. KOMPUTRE.
C. RETUPMOK.
D. KOMPUTERK.
48. Perbedaan utama stack dan queue adalah ....
A. Stack menggunakan LIFO, sedangkan queue menggunakan FIFO.
B. Stack dan queue sama-sama menggunakan FIFO.
C. Stack tidak dapat menyimpan data.
D. Queue hanya dapat menyimpan angka.
49. Seorang programmer ingin menyimpan riwayat aktivitas agar aktivitas terakhir dapat dibatalkan lebih dahulu. Struktur data yang paling sesuai adalah ....
A. Queue.
B. Stack.
C. Graph.
D. Tree.
50. Kesimpulan yang paling tepat mengenai struktur data stack adalah ....
A. Data pertama masuk harus keluar pertama.
B. Data dapat diambil dari semua posisi.
C. Data terakhir masuk akan keluar pertama.
D. Stack hanya dapat digunakan untuk menyimpan angka.
### B. Soal Esai (10 Soal)
Jawablah pertanyaan berikut dengan benar, jelas, dan lengkap!
1. Jelaskan pengertian struktur data stack dan prinsip kerja LIFO. Berikan satu contoh penerapannya dalam kehidupan sehari-hari.
2. Jelaskan perbedaan antara operasi push, pop, dan peek pada struktur data stack!
3. Sebuah stack kosong menerima operasi berikut:
* Push(A)
* Push(B)
* Push(C)
* Pop()
* Push(D)
* Pop()
Tentukan: a. Data yang keluar pada operasi pop pertama.
b. Data yang keluar pada operasi pop kedua.
c. Isi stack terakhir dari bawah ke atas.
4. Jelaskan perbedaan antara stack dan queue berdasarkan prinsip kerja, proses memasukkan data, dan proses mengeluarkan data!
5. Sebutkan dan jelaskan lima contoh penerapan struktur data stack dalam kehidupan sehari-hari atau penggunaan komputer!
6. Perhatikan kode Python berikut:
```python
stack = []
stack.append(10)
stack.append(20)
stack.append(30)
stack.pop()
print(stack)
```
Jawablah: a. Apa fungsi append()?
b. Apa fungsi pop()?
c. Apa hasil yang ditampilkan?
7. Jelaskan pengertian stack overflow dan stack underflow. Berikan masing-masing satu contoh!
8. Bagaimana cara menggunakan struktur data stack untuk membalik kata INFORMATIKA menjadi AKITAMROFNI? Jelaskan langkah-langkahnya!
9. Mengapa fitur Undo pada Microsoft Word atau aplikasi lainnya dapat dikaitkan dengan konsep stack? Jelaskan menggunakan prinsip LIFO!
10. Buatlah contoh program Python sederhana yang menerapkan stack menggunakan list. Program harus dapat melakukan operasi push untuk memasukkan tiga data dan pop untuk mengeluarkan satu data. Jelaskan hasil program tersebut!
### C. Kunci Jawaban Pilihan Ganda
Khusus untuk guru
| No. | Jawaban | No. | Jawaban |
| --- | ------- | --- | ------- |
| 1 | B | 26 | A |
| 2 | B | 27 | A |
| 3 | B | 28 | B |
| 4 | A | 29 | B |
| 5 | B | 30 | C |
| 6 | C | 31 | A |
| 7 | B | 32 | B |
| 8 | D | 33 | B |
| 9 | C | 34 | B |
| 10 | B | 35 | C |
| 11 | B | 36 | A |
| 12 | C | 37 | B |
| 13 | C | 38 | A |
| 14 | A | 39 | B |
| 15 | A | 40 | A |
| 16 | C | 41 | B |
| 17 | C | 42 | C |
| 18 | C | 43 | C |
| 19 | B | 44 | A |
| 20 | A | 45 | C |
| 21 | C | 46 | B |
| 22 | B | 47 | C |
| 23 | B | 48 | A |
| 24 | B | 49 | B |
| 25 | B | 50 | C |
### D. Pedoman Jawaban Esai
1\. Pengertian stack dan LIFO
Stack adalah struktur data yang menyimpan data secara bertumpuk. Stack menggunakan prinsip LIFO (Last In, First Out), yaitu data terakhir yang masuk akan menjadi data pertama yang keluar.
Contoh: tumpukan piring. Piring yang terakhir diletakkan di atas akan diambil terlebih dahulu.
2\. Perbedaan push, pop, dan peek
* Push: menambahkan data ke bagian atas stack.
* Pop: mengambil sekaligus menghapus data paling atas.
* Peek: melihat data paling atas tanpa menghapusnya.
3\. Penelusuran operasi stack
Urutan operasi:
| Operasi | Isi stack (bottom ke top) |
| ------- | ------------------------- |
| Push(A) | A |
| Push(B) | A, B |
| Push(C) | A, B, C |
| Pop() | A, B |
| Push(D) | A, B, D |
| Pop() | A, B |
Jawaban:
* a. Pop pertama mengeluarkan C.
* b. Pop kedua mengeluarkan D.
* c. Isi akhir stack adalah A, B.
4\. Perbedaan stack dan queue
| Stack | Queue |
| ----------------------- | ------------------------- |
| Menggunakan LIFO | Menggunakan FIFO |
| Data masuk melalui top | Data masuk melalui rear |
| Data keluar melalui top | Data keluar melalui front |
| Contoh tumpukan buku | Contoh antrean kasir |
5\. Lima contoh penerapan stack
* Tumpukan buku atau piring.
* Fitur Undo pada aplikasi.
* Fitur Redo pada aplikasi.
* Riwayat halaman pada browser.
* Call stack dalam pemrograman komputer.
6\. Analisis program Python
a. append() digunakan untuk menambahkan data ke dalam list.
b. pop() digunakan untuk mengambil dan menghapus data terakhir.
c. Hasil program:
```python
[10, 20]
```
Angka 30 dihapus karena merupakan data terakhir yang dimasukkan.
7\. Stack overflow dan underflow
* Stack overflow adalah kondisi ketika data ditambahkan ke stack yang sudah penuh.
* Stack underflow adalah kondisi ketika data diambil dari stack yang kosong.
8\. Membalik kata INFORMATIKA
Langkah-langkah:
* Masukkan huruf I, N, F, O, R, M, A, T, I, K, A secara berurutan menggunakan push.
* Huruf A yang terakhir masuk berada di posisi paling atas.
* Keluarkan seluruh huruf menggunakan pop.
* Gabungkan huruf yang keluar.
Hasilnya adalah AKITAMROFNI.
9\. Penerapan stack pada fitur Undo
Fitur Undo menggunakan konsep LIFO karena tindakan yang terakhir dilakukan akan dibatalkan terlebih dahulu.
Misalnya, pengguna mengetik kata, mengubah warna tulisan, kemudian memperbesar ukuran huruf. Ketika tombol Undo ditekan, perubahan ukuran huruf dibatalkan terlebih dahulu, kemudian perubahan sebelumnya.
10\. Contoh program Python
```python
stack = []
# Memasukkan tiga data
stack.append("Buku")
stack.append("Pensil")
stack.append("Penghapus")
print("Isi stack:", stack)
# Mengeluarkan satu data
data = stack.pop()
print("Data yang keluar:", data)
print("Isi stack sekarang:", stack)
```
Hasil program:
```text
Isi stack: ['Buku', 'Pensil', 'Penghapus']
Data yang keluar: Penghapus
Isi stack sekarang: ['Buku', 'Pensil']
```
Penjelasan: Penghapus keluar terlebih dahulu karena merupakan data terakhir yang dimasukkan. Hal ini sesuai dengan prinsip LIFO.
### E. Pedoman Penilaian
| Jenis soal | Jumlah | Skor per soal | Total |
| ------------- | ------ | ------------- | ----- |
| Pilihan ganda | 50 | 1 | 50 |
| Esai | 10 | 5 | 50 |
| Total | 60 | | 100 |
Kriteria penilaian esai:
* Skor 5: Jawaban benar, lengkap, dan disertai penjelasan.
* Skor 4: Jawaban benar dan cukup lengkap.
* Skor 3: Jawaban benar tetapi kurang lengkap.
* Skor 2: Jawaban sebagian benar.
* Skor 1: Jawaban kurang tepat.
* Skor 0: Tidak menjawab.
Sumber materi: Artikel [Memahami Struktur Data Bertumpuk – Blog Wijayalabs](https://wijayalabs.blogspot.com/2026/11/memahami-struktur-data-bertumpuk.html?utm_source=chatgpt.com).
Soal ini dapat digunakan sebagai bahan evaluasi pembelajaran Informatika kelas VIII SMP Labschool Jakarta, khususnya materi struktur data Stack.
Pesan Omjay untuk murid-murid:
Belajar Informatika bukan sekadar menghafal istilah dan menulis kode program. Kita harus memahami cara berpikir logis, menyelesaikan masalah, dan menerapkannya dalam kehidupan sehari-hari. Teruslah belajar, berlatih, dan jangan takut mencoba!
Salam Blogger Persahabatan.
Tidak ada komentar:
Posting Komentar
Silahkan memberikan komentar pada blog ini, dan mohon untuk menggunakan bahasa Indonesia yang baik dan yang benar.