Kompetensi Dasar:
TUJUAN PEMBELAJARAN
Pada kelas 10, peserta didik akan mempelajari konsep dasar struktur data list
dan stack, serta cara penggunaannya pada program sederhana. Dalam
pembelajaran ini, peserta didik diharapkan mampu menjelaskan perbedaan
antara list dan stack, serta mampu membuat program sederhana dengan
menggunakan struktur data tersebut. Pada akhir pembelajaran, peserta didik
akan diuji dengan soal latihan untuk mengevaluasi pemahaman mereka
tentang konsep data dinamis.
Manfaat
Manfaat dari pemahaman struktur data list dan stack adalah sebagai berikut:
1.
Membantu siswa memahami bagaimana struktur data dapat digunakan untuk
menyimpan dan mengatur data secara efisien.
2.
3.
Membantu siswa memahami prinsip dasar algoritma dan cara kerja algoritma
dengan struktur data list dan stack.
4.
5.
Membantu siswa memahami prinsip dasar pemrograman dan meningkatkan
kemampuan mereka dalam membuat program yang efektif dan efisien.
6.
7.
Meningkatkan kemampuan siswa dalam menganalisis masalah dan mencari
solusi dengan menggunakan struktur data list dan stack.
8.
9.
Meningkatkan kemampuan siswa dalam merancang dan
mengimplementasikan program yang kompleks dengan menggunakan
struktur data list dan stack.
10.
MATERI
List adalah struktur data yang terdiri dari kumpulan elemen yang terurut.
Setiap elemen pada list memiliki posisi yang unik dan dapat diakses
menggunakan indeks. List memungkinkan untuk menambah, menghapus,
atau memodifikasi elemen-elemen pada posisi tertentu. Dalam
implementasinya, list dapat diwakili oleh array atau linked list.
1. List
List adalah kumpulan data yang disusun secara teratur dan setiap elemen
dalam list dapat diakses melalui sebuah indeks. List memiliki beberapa
kelebihan, di antaranya:
Implementasi dari list dapat dilakukan dengan menggunakan array atau linked
list. Dalam array, setiap elemen dari list ditempatkan dalam sebuah array
dengan indeks yang unik. Sedangkan pada linked list, setiap elemen dari list
ditautkan satu sama lain dengan menggunakan pointer.
1. Stack
Stack adalah struktur data yang digunakan untuk menyimpan data secara
sementara dan diakses dengan prinsip LIFO (Last In First Out). Artinya, elemen
terakhir yang dimasukkan ke dalam stack adalah yang pertama kali diambil
dari stack. Stack memiliki dua operasi utama, yaitu push dan pop. Push
digunakan untuk menambahkan elemen ke dalam stack, sedangkan pop
digunakan untuk mengambil elemen teratas dari stack.
1. List
markdownCopy code
___________________________________________
| | | | | | | | | | | | | | | | | | | | | | |
|-------------------------------------------|
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|
---------------------------------------------
Setiap elemen dalam list diberi nomor indeks yang unik, dimulai dari 0 hingga
n-1, dengan n adalah jumlah total elemen dalam list. Contoh implementasi list
menggunakan array:
cssCopy code
list = [1, 3, 5, 7, 9]
1. Stack
markdownCopy code
___________________________________________
| | | | | | | | | | | | | | | | | | | | | | |
|-------------------------------------------|
| | | | | | | | | | | | | | | | | | | | | | |
---------------------------------------------
Setiap elemen dalam stack ditempatkan pada posisi yang berbeda dan diakses
dengan menggunakan indeks terakhir. Contoh implementasi stack
menggunakan array:
cCopy code
stack = []stack.append(1) # push elemen 1 ke
stackstack.append(3) # push elemen 3 ke
stackstack.append(5) # push elemen 5 ke stackstack.pop()
# hapus elemen teratas dari stack (5)
Demikian gambaran struktur data list dan stack beserta contoh implementasi
menggunakan array.
Perbedaan antara struktur data list dan stack adalah sebagai berikut:
1.
Definisi: List adalah struktur data yang memungkinkan untuk menyimpan
sekumpulan data dengan tipe yang sama dalam satu variabel, sedangkan
stack adalah struktur data yang memungkinkan untuk menyimpan dan
mengakses data dengan prinsip Last In First Out (LIFO).
2.
3.
Penyimpanan data: Pada list, data dapat disimpan secara berurutan dan setiap
elemen dalam list dapat diakses secara langsung menggunakan indeks.
Sedangkan pada stack, data disimpan secara teratur, namun hanya elemen
teratas yang dapat diakses dan dihapus.
4.
5.
Operasi yang dapat dilakukan: Pada list, operasi yang dapat dilakukan meliputi
penambahan data (append), penghapusan data (delete), pencarian data
(search), dan penyisipan data (insert). Sedangkan pada stack, operasi yang
dapat dilakukan meliputi penambahan data (push), penghapusan data (pop),
dan memeriksa data teratas (peek).
6.
7.
Struktur data: Pada list, struktur data dapat berupa singly linked list, doubly
linked list, maupun circular linked list. Sedangkan pada stack, struktur data
yang digunakan adalah singly linked list atau array.
8.
9.
Penggunaan: List sering digunakan untuk menyimpan data yang memerlukan
urutan atau pengurutan, sedangkan stack sering digunakan untuk
menyelesaikan masalah matematika, membalik urutan kata, atau
mengevaluasi ekspresi matematika.
1.
Bagi peserta didik menjadi beberapa kelompok.
2.
3.
Minta setiap kelompok untuk memilih bahasa pemrograman yang akan
digunakan, baik itu C++, Python, Java, atau bahasa pemrograman lainnya.
4.
5.
Setelah itu, minta setiap kelompok untuk merancang dan
mengimplementasikan program sederhana dengan menggunakan struktur
data list dan stack.
6.
7.
Program harus memiliki menu sederhana yang memungkinkan pengguna
untuk menambahkan to-do baru, menghapus to-do yang sudah selesai, dan
menampilkan daftar to-do yang telah ditambahkan.
8.
9.
Saat menambahkan to-do baru, program harus meminta pengguna untuk
memasukkan judul dan deskripsi to-do, dan menyimpan data tersebut ke
dalam struktur data list.
10.
11.
Saat menghapus to-do yang sudah selesai, program harus meminta pengguna
untuk memilih to-do yang ingin dihapus, dan menghapus data tersebut dari
struktur data list.
12.
13.
Saat menampilkan daftar to-do, program harus menampilkan judul dan
deskripsi to-do yang telah ditambahkan, serta jumlah to-do yang masih harus
dikerjakan.
14.
15.
Setelah program selesai dibuat, minta setiap kelompok untuk
mempresentasikan program yang telah dibuat kepada seluruh kelas, dan
memperlihatkan cara kerjanya.
16.