Anda di halaman 1dari 5

Nama: Miftahul Jannah

Kelas: D
NIM: 1910512132

1.) Sebutkan ciri-ciri bahwa Queue :


a. Kosong tak ada isinya
Jawab: Cirinya adalah jika F = R + 1 dimana saja

b. Penuh, tak bisa diisi


Jawab: Cirinya adalah jika R = n – 1

c. Bisa diisi
Jawab: Cirinya adalah jika R < n – 1

d. Ada isinya
Jawab: Cirinya adalah jika F < R + 1

e. Antrian tak bisa diisi lagi, tapi belum ada isi antrian yang sudah keluar atau sudah dilayani
Jawab: Cirinya jika dalam algoritma, dapat dituliskan seperti (F = 0; F < R+1; R = n-1)

f. Antrian perlu diriset


Jawab: Cirinya adalah jika F = R + 1 dan R = n – 1

g. Hanya berisi 10 pengantri (yang belum keluar/dilayani)


Jawab: Dalam algoritma, dapat dituliskan seperti (F = 0; R = 9)

h. Sisa tempat yang masih bisa diisi hanya ada 10 tempat (elemen)
Jawab: Dalam algoritma, dapat dituliskan seperti (F = 0; n = 9

2.) Tulis algoritma dasar untuk:


a. Inisialisasi
Jawab: void AWAL(void)
{ F = 0;
R = -1;
}

b. Insert sebuah record


Jawab: R = R + 1;
Q[R] = X;

c. Delete sebuah record


Jawab: X = Q[F];
F = F + 1;
Atau
X = Q[F];
F+=1;

d. Reset
Jawab: F= 0 dan R= -1

3.) Tulis algoritma lengkap untuk :


a. Insert sebuah record
Jawab: void INSERT (void)
{ if ( R < n - 1 )
( R = R + 1;
Q[R] = X;
}
else
printf( “Antrian Penuh”);
}

b. Delete sebuah record


Jawab: void DELETE(void)
{ if ( F < R+1 )
{ X = Q[F] ;
F = F + 1;
if ( F == n )
{ F = 0;
R = -1; } }
else
printf( “Antrian Kosong”);
}

4.) Tulis algoritma yang lengkap untuk mengisi antrian record per record sampai antrian
penuh tak bisa diisi lagi
Jawab: { if ( Counter == n)
printf(“Antrian Penuh”)
else { R = (R+1) % n;
Q[R] = X;
Counter++; }
}

5.) Tulis algoritma yang lengkap untuk mendelete isi antrian record per record sampai
antrian kosong
Jawab: void Delete (void){
if (F < R+1){
F++;
printf( "%c", X);
if (F == n){
Reset ( );
}
}
else
printf("\nAntrian Kosong")
}

6.) Tulis algoritma yang lengkap untuk mendelete isi antrian record per record sebanyak 10
record selama antrian belum penuh. Apabila antrian penuh, walaupun belum mengisi 10
record, proses pengisian dihentikan
Jawab: void Insert (char X){
if (R < 9){
R++;
Q[R] = X;
}
else
printf("\nAntrian Penuh");
}

7.) Tulis algoritma yang lengkap untuk mendelete isi antrian record per record sebanyak 10
record selama antrian masih ada isinya. Bila antrian sudah kosong, walaupun belum
mendelete sebanyak 10 record, maka proses delete dihentikan
Jawab: void Delete (void){
if (F < R+1){
F++;
printf( "%c", X);
if (F == 10){
Reset ( );
}
}
else
printf("\nAntrian Kosong")
}

8.) Tulis algoritma untuk menghitung dan mencetak jumlah tempat (elemen) yang ada isinya
Jawab: int main() {
int sum = 0;
queue<int> antrian;
antrian.push(1);
antrian.push(8);
antrian.push(3);
antrian.push(6);
antrian.push(2);
//Outputnya akan jadi 5

cout << myqueue.size();

return 0;
}

9.) Tulis algoritma untuk menghitung dan mencetak jumlah tempat yang masih bisa diisi
Jawab: include <iostream>
#include <queue>
using namespace std;

int main () {
queue<int> myints;
cout << "Antrian awal" << myints.size() << '\n';
for (int i=0; i<5; i++) myints.push(i); // mengisi queue yang ada
cout << "Ukuran setelah di inisiasi: " << myints.size() << '\n';
myints.pop(); // menghilangkan 1 element dalam Queue
cout << "Jumlah elemen sisa " << myints.size() << '\n';

return 0;
}

Anda mungkin juga menyukai