0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan16 halaman

P11 - Set, Stack, Queue

Diunggah oleh

Sadewo Widyanto
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan16 halaman

P11 - Set, Stack, Queue

Diunggah oleh

Sadewo Widyanto
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Computer Laboratory Handbook

Pemrograman
Komputer
IF2101

By:
Sunario Megawan, [Link]., [Link].
Segar Napitupulu, [Link]., [Link].
Enjelin, [Link].
Juliana Damayanti Manurung, [Link].

Course Version: 2021


Universitas Mikroskil, Copyright ©2021
UNIT 11
SET, STACK, QUEUE
UNIT OVERVIEW
Pada Unit 11, mahasiswa dibekali dengan pemahaman mengenai jenis struktur data set, stack dan
queue. Mahasiswa diharapkan dapat membuat program sederhana yang mengimplementasikan
struktur data set, stack dan queue.

PRE LAB

QUESTION
1. Data dalam set dapat diakses dengan menggunakan indeks.
a. Benar
b. Salah
2. Perhatikan kode berikut ini. Keluaran dari program berikut ini adalah:

a. 15 22
8 10 10 15 18 18 22 28
b. 15 22
8 10 15 18 22 28
c. 8 22 15 28
8 10 15 18 22 28
d. 8 28
8 10 10 15 18 18 22 28
3. Jelaskan konsep kerja stack dan queue.
4. Struktur data stack dapat diimplementasikan untuk fitur:
a. Reservasi meja restoran
b. Undo dan redo
c. Pencarian file
d. Menyimpan langkah selanjutnya yang memungkinkan dalam permainan catur
5. Struktur data queue dapat diimplementasikan untuk fitur:
a. Reservasi meja restoran
b. Undo dan redo
c. Pencarian file
d. Menyimpan langkah selanjutnya yang memungkinkan dalam permainan catur
CONTENT LESSON

CASE STUDY / PROJECT

SKENARIO
Minggu lalu kamu sudah membantu Tiiger menyelesaikan pekerjaan dari seniornya dan seniornya
merasa sangat puas dengan program yang kamu kerjakan. Tiiger sedang mengerjakan sebuah program
yang bernama Mikro Playlist, sebuah program yang berfungsi untuk mendengarkan lagu. Sebelum
Tiiger memberikan kamu tugas untuk mengerjakan fitur dari Mikro Playlist yang sebenarnya, Tiiger
memberikan kamu sebuah challenge untuk membuat fitur login dan register dari Mikro Playlist ini.
Login dan register dilakukan berdasarkan data username dengan tampilan sebagai berikut.

Gambar 1 Tampilan Mikro Playlist


Gambar 2 Tampilan Mikro Playlist Lanjutan (1)

Gambar 3 Tampilan Mikro Playlist Lanjutan (2)

IDENTIFICATION CONCEPT OF PROBLEM / PROJECT

Masalah yang terlihat dari cerita di atas adalah bagaimana membuat program dengan fitur register
dan login berdasarkan data username. Data username dalam sebuah program tidak boleh memiliki
nilai duplikat, jadi 1 (satu) username hanya digunakan oleh 1 (satu) user. Data username ini akan
disimpan dengan menggunakan struktur data set. Pada fitur register, jika username sudah terdaftar
maka akan diminta untuk membuat username baru dengan batasan maksimal hanya 3 kali. Jika
username yang dimasukkan sebanyak 3 kali sudah terdaftar semua, maka akan kembali ke menu
utama. Begitu pula dengan fitur login, jika username yang dimasukkan tidak terdaftar, maka akan
diminta untuk memasukkan username kembali dengan batasan maksimal hanya 3 kali.
LESSON 1: SET

Set memiliki kesamaan dengan array yang merupakan struktur data yang digunakan untuk
menyimpan beberapa item dalam satu variabel. Perbedaannya terletak pada set menyimpan data
secara tidak berurutan dan tanpa elemen duplikat. Set pada python dapat menyimpan data
dengan tipe data yang sama ataupun berbeda. Set bersifat unordered, unchangeable dan
unindexed.

TOPIC 1 : DEKLARASI DAN INISIALISASI SET


Deklarasi dan inisialisasi set pada python :

namaSet = {“data1”, “data2”, … , “dataN”}

Contoh deklarasi set pada python :

buah = {“jeruk”, “mangga”, “apel” , “durian”}


mhs = {“221110000”, “Song Hye Kyo”, 17, True}

TOPIC 2 : MENGAKSES DATA DALAM SET


Untuk mengakses elemen set, tidak dapat menggunakan index.

TOPIC 3 : MENAMBAHKAN DATA KE DALAM SET


Untuk menambahkan elemen pada set dapat menggunakan add().

TOPIC 4 : MENGHAPUS DATA DARI SET


Untuk menghapus elemen pada set dapat menggunakan remove() atau discard().
TOPIC 5 : JOIN SET

TOPIC 6 : INTERSECTION

TOPIC 7 : SYMMETRIC DIFFERENCE

TOPIC 8 : DIFFERENCE
LESSON 2: STACK

Stack merupakan struktur data linear yang digunakan untuk menyimpan data. Stack menerapkan
prinsip LIFO (Last In First Out) atau FILO (First In Last Out). Karena prinsip ini, maka urutan data
yang disimpan dalam stack sangatlah penting.

Stack memiliki 3 constraint sebagai berikut :


- Data hanya dapat dimasukkan pada ujung stack.
- Data hanya dapat dihapus dari ujung stack.
- Hanya elemen terakhir dari stack yang dapat dibaca.

TOPIC 1 : IMPLEMENTASI STACK DENGAN LIST

LESSON 3: QUEUE

Queue merupakan struktur data linear yang digunakan untuk menyimpan data. Queue
menerapkan prinsip FIFO (First In First Out). Elemen yang ditambahkan ke queue terlebih dahulu
akan menjadi yang pertama dihapus dari queue.

Queue memiliki 3 constraint sebagai berikut :


- Data hanya dapat dimasukkan di bagian akhir queue
- Data hanya dapat dihapus dari bagian depan queue
- Hanya elemen yang terdapat di bagian depan queue yang dapat dibaca
TOPIC 1 : IMPLEMENTASI QUEUE DENGAN LIST
SOLUTION

Untuk menyelesaikan case study di atas, maka yang perlu dilakukan adalah:
1. Algoritma untuk program Main
- Start
- Inisialisasi list kumpulan username (uname)
- Cetak Menu
- Input pilihan fitur (pil)
- Jika pil = 1, maka akan menjalankan fitur register
Jika username yang dimasukkan sudah terdaftar sebanyak 3 kali, maka akan kembali
ke Main
Jika pil = 2, maka akan menjalankan fitur login
Jika username yang dimasukkan belum terdaftar sebanyak 3 kali, maka akan kembali
ke Main
Jika pil = 3, maka akan mencetak “terima kasih” dan keluar dari program
Jika pil <> 1 atau pil <> 2 atau pil <> 3, maka akan cetak menu dan input pil kembali
- End

Algoritma untuk fitur register


- Start
- Cetak “Register”
- Input username yang akan didaftarkan (username)
- Jika username sudah terdaftar, maka input username kembali
Jika username belum terdaftar, maka masukkan username ke dalam list kumpulan username
dan kembali ke Main
- End

Algoritma untuk fitur login


- Start
- Cetak “Login”
- Input username yang sudah terdaftar (username)
- Jika username belum terdaftar, maka input username kembali
Jika username sudah terdaftar, maka cetak “Berhasil login. Selamat datang kembali”
- End
2. Flowchart
3. Kode Program
EXERCISE

TASK 1: MIKRO PLAYLIST (DASHBOARD)


Anda sudah membuat fitur login dan register dari Mikro Playlist, sekarang Tiiger meminta kamu untuk
membuat dashboard. Ini hanya bisa diakses jika user telah berhasil melakukan login. Dalam
dashboard, akan dimunculkan kumpulan lagu yang terdapat pada Mikro playlist dan fitur untuk
menambahkan lagu yang ingin didengar ke dalam antrian lagu. Jika user sudah selesai menambahkan
lag uke dalam antrian, maka akan dimunculkan lagu yang saat ini diputar dan kumpulan lagu yang
masih terdapat dalam antrian.
Gambarannya adalah sebagai berikut.
Ketentuan Task 1:
- Kumpulan judul lagu disimpan dalam sebuah list
- Untuk data antrian lagu, menggunakan struktur data queue

TASK 2: KARUNG DALAM LIFT

Sampai semua karung dikirimkan ke toko dengan prosedur tersebut di atas, Berapa kali lift turun-naik
mengangkut karung-karung itu semula karung-karung ada seperti pada gambar di atas dengan berat
masing-masing seperti yang tercantum pada setiap karung?

Penjelasan:
Pada pemuatan pertama, 3 karung dengan berat 40+20+34=94 kg. Pada pemuatan kedua, karung
berikutnya (55 kg) dimasukkan ke dalam lift. Karung berikutnya (50 kg) akan mengakibatkan overload,
sehingga ditaruh pada ujung yang berlawanan. Karung berikutnya (23 kg) ditaruh kembali dalam lift,
namun lift tak dapat pergi hanya dengan total berat 55+23= 78 kg. Karung berikutnya adalah 45 kg,
yang akan membuat beban lift terlalu berat, maka karung itu dibawa ke ujung yang berlawanan. Hal
yang sama terjadi untuk karung berikutnya (30 kg). Akhirnya, karung berikutnya (10 kg) dapat ditaruh
dalam lift, dan berangkat dengan 55+23+10=88 kg. Ketiga karung terakhir (25+30+15 = 70kg) ditaruh
dalam lift. Demikian seterusnya pemuatan karung-karung ke dalam lift dilakukan hingga semua
karung terkirim.
Berikut adalah gambaran programnya:

Anda mungkin juga menyukai