DATA INF1008
Ujian Tengah Semester
Oleh :
Teknik Informatika
Fakultas Sains & Teknologi
Universitas Muhammadiyah Kalimantan Timur
Samarinda, 2020
Algoritma & Struktur Data (INF1008) : Laporan Praktikum 4 – Analisis Algoritma (1)
Penjelasan :
Hot Potato adalah sebuah permainan anak-anak, di mana anak-anak berbaris membentuk
sebuah lingkaran, dan mengirimkan item dari tetangga ke tetangga secepat mungkin. Pada waktu
tertentu dalam permainan, aksi akan dihentikan dan anak yang memegang item (kentang)akan
dikeluarkan dari lingkaran. permainan ini berlanjut sampai hanya satu anak yang tersisa.
1. Asumsikan bahwa anak yang memegang kentang akan berada di depan antrian.
2. Setelah melewati kentang, simulasi hanya akan keluar dan segera enqueue anak itu,
menempatkannya di akhir baris. Dia kemudian akan menunggu sampai semua yang lain
berada di depan sebelum gilirannya tiba. Setelah operasi nque dequeue / enqueue, anak di
depan akan dihapus secara permanen dan siklus lain akan dimulai. Proses ini akan berlanjut
sampai hanya satu nama yang tersisa (ukuran antrian adalah 1.
Implementasi :
Coding Program :
Hasil Program :
Penjelasan :
yang di sebut "num," dan akan digunakan untuk menghitung. Ini akan mengembalikan nama
orang terakhir yang tersisa setelah penghitungan berulang dengan num. Dan baris ke 6 ,While
yang berfungsi untuk menjalankan Sampai hitungan berakhir dan menemukan hasilnya.
Penjelasan :
1. Buat antrian tugas cetak. Setiap tugas akan diberi cap waktu pada saat
kedatangannya. Antrian kosong untuk memulai.
2. tambahkan ke antrian dengan currentSecond sebagai timestamp.
3. Jika printer tidak sibuk dan jika tugas sedang menunggu,
4. Hapus tugas berikutnya dari antrian cetak dan tetapkan ke printer.
5. Kurangi cap waktu dari currentSecond untuk menghitung waktu tunggu untuk
tugas itu.
6. Tambahkan waktu tunggu untuk tugas itu ke daftar untuk diproses nanti.
Berdasarkan jumlah halaman dalam tugas cetak, cari tahu berapa banyak waktu
yang dibutuhkan.
7. Printer sekarang melakukan pencetakan satu detik jika perlu. Itu juga mengurangi
satu detik dari waktu yang dibutuhkan untuk tugas itu.
Jika tugas telah selesai, dengan kata lain waktu yang dibutuhkan telah mencapai
nol, printer tidak lagi sibuk.
8. Setelah simulasi selesai, hitung waktu tunggu rata-rata dari daftar waktu tunggu
yang dihasilkan.
Implementasi :
Coding Program :
Hasil Program :
Penjelasan Program :
Objek printQueue adalah turunan dari ADT antrian yang ada. Fungsi
pembantu boolean, newPrint Task, memutuskan apakah tugas pencetakan baru telah
dibuat. kembali memilih untuk menggunakan fungsi randrange dari modul acak untuk
mengembalikan bilangan bulat acak antara 1 dan 180. Tugas cetak tiba sekali setiap 180
detik. Dengan memilih secara acak 180 dari kisaran bilangan bulat acak (baris 32), kita
dapat mensimulasikan kejadian acak ini. Fungsi simulasi memungkinkan kita untuk
mengatur total waktu dan halaman per menit untuk printer. Program mencari rata-rata
kecepatan print pada fungsi simulation beris ke – 42.