ETS Struktur Data
Nama: Aisyah Putri Diza
NRP: 5025251062
1. Jelaskan struktur data Array. Digunakan untuk apa Array, Berikan contoh penggunaanya dalam aplikasi.
Jawaban:
Array merupakan struktur data yang digunakan untuk menyimpan sekumpulan elemen dengan tipe data yang sama dalam satu variabel. Elemen array yang disimpan dimulai dari indeks 0. Contoh penggunaan sederhana untuk Array adalah mencari rata-rata dalam sebuah deret bilangan dan mencari nilai maksimal dari sebuah deret bilangan.
2. Diketahui Stack berupa Linked List dengan kondisi mula-mula Stack kosong. Gambarkan Stack berupa Double Linked List tersebut beserta posisi penunjuknya (pointer), jika ada perintah :
a. Push(Top,60), Push(Top,40), Pop(Top,Item)
b. Push(Top,25), Pop(Top,Item), Pop(Top,Item)
c. Pop(Top,Item), Pop(Top,Item), Push(Top,50)
3. Diketauhui Ekspresi berikut E = a + (2·b^3)/(f − g) + d·h
- Ubahlah ke dalam notasi Postfix
- Implementasikan menggunakan Stack dan buat screenshot eksekusinya.
Jawaban:
Postfix: a2b3^*fg-/+dh*+
Screenshot:
4. Diketahui maksimum Queue = 9 elemen dengan kondisi mula-mula Queue kosong. Gambarkan Queue beserta posisi Front dan Rear, jika ada perintah :
a. Tambah Angka 19
b. Tambah Angka 7
c. Hapus 2 Angka
d. Tambah Angka 40
e. Hapus 3 Angka
f. Tambah Angka 18
b. Tambah Angka 7
c. Hapus 2 Angka
d. Tambah Angka 40
e. Hapus 3 Angka
f. Tambah Angka 18
5. Studi kasus
a. Jelaskan bagaimana struktur data queue digunakan dalam sistem ini.
Jawaban:
Queue merupakan struktur data yang menggunakan prinsip FIFO (First In First Out), jadi apabila seorang mahasiswa sudah mengantre duluan, maka ia akan dilayani terlebih dahulu. Dan jika ada mahasiswa yang baru mengantre maka akan dilayani setelah mahasiswa sebelumnya.
b. Buat algoritma untuk:
- Menambahkan mahasiswa ke antrian (enqueue)
ALGORITHM Enqueue(Q, Mahasiswa)
INPUT : Q (queue), Mahasiswa (yang baru mengantre)
OUTPUT : Queue Q yang telah ditambahkan elemen baru
BEGIN
IF rear = MAX - 1 THEN
OUTPUT "Queue Overflow"
RETURN
ENDIF
IF front = -1 THEN
front ← 0
rear ← 0
ELSE
rear ← rear + 1
ENDIF
Q[rear] ← Mahasiswa
END
- Melayani mahasiswa (dequeue)
ALGORITHM Dequeue(Q)
INPUT : Q (queue)
OUTPUT : Elemen yang dihapus dari queue
BEGIN
IF front = -1 THEN
OUTPUT "Queue Underflow"
RETURN
ENDIF
item ← Q[front]
IF front = rear THEN
front ← -1
rear ← -1
ELSE
front ← front + 1
ENDIF
RETURN Mahasiswa
END
c. Implementasikan program sederhana menggunakan bahasa pemrograman (misalnya C++).
#include <iostream>
using namespace std;
#define MAX 5
class Queue{
private:
char arr[MAX];
int front, rear;
public:
Queue(){
front = -1;
rear = -1;
}
bool isEmpty(){
return (front == -1);
}
bool isFull(){
return (rear == MAX - 1);
}
void enqueue(char x){
if(isFull()){
cout << "Queue Overflow\n";
return;
}
if(isEmpty()){
front = 0;
}
arr[++rear] = x;
cout << "Mahasiswa " << x << " masuk antrean\n";
}
void dequeue(){
if(isEmpty()){
cout << "Queue Underflow\n";
return;
}
cout << "Mahasiswa " << arr[front] << " keluar dari antrean\n";
if(front == rear){
front = rear = -1;
}
else{
front++;
}
}
void display(){
if(isEmpty()){
cout << "Queue kosong\n";
return;
}
for(int i = front; i <= rear; i++){
cout << arr[i] << " ";
}
cout << endl;
}
};
int main(){
Queue q;
q.enqueue('A');
q.enqueue('B');
q.enqueue('C');
q.dequeue();
q.enqueue('D');
q.display();
return 0;
}
d. Simulasikan proses:
- Mahasiswa A, B, C masuk antrian
- Mahasiswa pertama dilayani
- Tambah mahasiswa D
- Tampilkan kondisi antrian
Comments
Post a Comment