Anda di halaman 1dari 5

DATA DINAMIS (list DAN stack)

Kompetensi Dasar:

 Menjelaskan konsep dasar struktur data list pada pemrograman komputer.


 Menjelaskan konsep dasar struktur data stack pada pemrograman komputer.
 Menerapkan struktur data list pada program sederhana.
 Menerapkan struktur data stack pada program sederhana.

Indikator Pencapaian Kompetensi:

 Menjelaskan definisi dan perbedaan struktur data list dan stack.


 Menerapkan struktur data list dan stack pada program sederhana.
 Menyelesaikan permasalahan yang melibatkan struktur data list dan stack.

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

Data dinamis merupakan salah satu konsep dasar pada pemrograman


komputer yang sangat penting untuk dipahami. Data dinamis adalah struktur
data yang memungkinkan programmer untuk mengalokasikan memori pada
saat program sedang berjalan. Beberapa jenis data dinamis yang umum
digunakan pada pemrograman komputer adalah list dan stack.

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.

Stack adalah struktur data yang berprinsip last-in-first-out (LIFO), artinya


elemen terakhir yang dimasukkan ke dalam stack akan menjadi elemen
pertama yang diambil dari stack. Stack hanya memiliki dua operasi utama,
yaitu push (menambahkan elemen ke dalam stack) dan pop (mengambil
elemen teratas dari stack). Implementasi stack umumnya menggunakan linked
list atau array.

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:

 Dapat menampung banyak data dengan mudah


 Dapat melakukan operasi tambah, ubah, dan hapus data dengan mudah
 Dapat diurutkan dan dicari dengan mudah

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.

Implementasi dari stack dapat dilakukan dengan menggunakan array atau


linked list. Dalam array, stack diimplementasikan dengan membuat array
kosong dan menambahkan elemen ke dalam array dengan memindahkan
indeks pada setiap operasi push dan pop. Sedangkan pada linked list, stack
diimplementasikan dengan membuat linked list kosong dan menambahkan
elemen baru di awal linked list pada setiap operasi push dan menghapus
elemen pertama pada setiap operasi pop

1. List

Struktur data list dapat diimplementasikan dengan menggunakan array atau


linked list. Berikut adalah gambaran struktur data list yang diimplementasikan
dengan array:

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

Struktur data stack juga dapat diimplementasikan dengan menggunakan array


atau linked list. Berikut adalah gambaran struktur data stack yang
diimplementasikan dengan array:

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.

Tugas: Buatlah program sederhana untuk mengelola daftar to-do


menggunakan struktur data list dan stack. Program harus dapat
menambahkan, menghapus, dan menampilkan daftar to-do yang telah
ditambahkan.
Langkah-langkah:

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.

Anda mungkin juga menyukai