Anda di halaman 1dari 24

BAB II

LANDASAN TEORI

2.1 Model dan Simulasi


Yang dimaksud dengan model rencana, representasi, atau deskripsi yang
menjelaskan suatu objek, sistem, atau konsep, yang seringkali berupa penyederhanaan
atau idealisasi. (Sumber : http://id.wikipedia.org/wiki/Model. diakses tanggal 17
Februari 2010). Model juga dapat berarti suatu abstraksi dunia nyata yang dapat
digunakan untuk mengambil keputusan.
Model berisi informasi-informasi tentang sesuatu yang dibuat dengan tujuan
untuk mempelajari sistem yang sebenarnya. Model dapat berupa tiruan dari suatu
benda, sistem atau peristiwa sesungguhnya yang hanya mengandung informasi-
informasi yang dipandang penting untuk ditelaah.
Kegunaan-kegunaan dari model antara lain,
a. Membantu dalam berpikir, model menyajikan deskripsi yang sistematis tentang
suatu sistem sehingga dapat mempermudah mempelajari sistem tersebut.
b. Membantu untuk berkomunikasi atau mempermudah menjelaskan tentang suatu
sistem kepada orang lain.
c. Sebagai alat latihan, untuk melatih ketrampilan orang-orang yang berhubungan
dengan sistem sebenarnya yang dimodelkan.
d. Sebagai alat prediksi terhadap kelakuan sistem untuk waktu yang akan datang,
yaitu pengaruh-pengaruh yang ingin diketahui jika ada perubahan sistem atau
operasi sistem.
e. Membantu dalam melakukan percobaan.
Dalam pembuatan model, proses pembuatan model tidak dapat digambarkan
secara pasti, namun ada petunjuk yang dapat digunakan yaitu sebagai berikut,
1. Pemecahan masalah melalui penyederhanaan.
2. Menyatakan objek dengan persyaratan yang jelas karena objek sangat
menentukan model.
3. Mencari analog-analog dan sistem atau model yang sudah ada untuk
mempermudah konstruksi.
4. Menentukan komponen-komponen yang akan dimasukkan ke dalam model.
7

5. Menentukan variabel, konstanta dan parameter, hubungan fungsional serta


konstan dari fungsi-fungsi kriterianya.
6. Untuk membuat model matematik harus dipikirkan cara untuk menyatakan
masalah secara numerik jika ingin disimulasikan dengan komputer.
7. Nyatakan dengan simbol-simbol.
8. Menuliskan persamaan matematikanya.
9. Bila model terlalu rumit, terdapat beberapa cara untuk menyederhanakan
model seperti,
a. Buat harga variabel menjadi parameter.
b. Eliminasi / kombinasikan variabel-variabel.
c. Asumsikan linieritas.
d. Tambahkan asumsi dan batasan yang ketat.
e. Perjelas batasan sistem.
Sebelum menentukan model yang akan dibuat, lebih dahulu perlu mempelajari
sistemnya. Sistem yang ada seringkali sangat kompleks, tapi model diusahakan dibuat
sesederhana mungkin. Salah satu cara untuk mempelajari sistem adalah dengan
menuangkan informasi-informasi dari sistem tersebut ke dalam bentuk diagram.
Untuk menilai model apakah dapat dianggap "baik" sebenarnya cukup sulit,
tetapi pada dasarnya kriteria suatu model yang baik dapat diuraikan sebagai berikut,
1. Mudah dimengerti pemakaiannya.
2. Harus mempunyai tujuan yang jelas.
3. Dinyatakan secara jelas dan lengkap.
4. Mudah dikontrol dan dimanipulasi oleh pemakai.
5. Mengandung pemecahan masalah yang penting dan jelas.
6. Mudah diubah dan mempunyai prosedur modifikasi.
7. Dapat berkembang dari sederhana menjadi kompleks.
Simulasi adalah proses merancang model dari suatu sistem yang sebenarnya,
mengadakan percobaan-percobaan terhadap model tersebut dan mengevaluasi hasil
percobaan tersebut. Adapun manfaat dari simulasi adalah sebagai berikut,
1. Menjelaskan kelakuan sistem.
2. Menirukan bekerjanya suatu sistem melalui melalui suatu model.
3. Memecahkan suatu persoalan matematik dengan analisis numerik.
4. Mempelajari dinamika suatu sistem.
8

5. Memberikan suatu deskripsi perilaku sistem dalam perkembangan sejalan


dengan bertambahnya waktu.
6. Membangun teori atau hipotesa yang mempertanggungjawabkan kelakuan dari
sistem yang diamati.
7. Meramalkan kelakuan sistem yang akan datang yaitu pengaruh yang dihasilkan
oleh perubahan-perubahan sistem atau perubahan operasinya.

2.2 Penjadwalan (Antrian)


Bayangkan situasi berikut ini,
1. Para pembelanja yang berdiri di depan kounter di supermarket.
2. Mobil-mobil yang menunggu di lampu merah.
3. Pasien yang menunggu di klinik rawat jalan.
4. Pesawat yang menunggu lepas landas di bandar udara.
5. Mesin-mesin rusak yang menunggu untuk diperbaiki oleh petugas perbaikan
mesin.
6. Surat yang menunggu untuk diketik oleh seorang sekretaris.
7. Program yang menunggu untuk diproses oleh sebuah komputer digital.
Satu hal yang dimiliki bersama oleh semua situasi ini adalah fenomena
menunggu. Sangat menyenangkan jika kita dapat diberi pelayanan atau hal lainnya
tanpa “nuansa” keharusan untuk menunggu. Tetapi baik kita menyukai atau tidak,
menunggu adalah bagian dari kehidupan sehari-hari kita dan yang kita harapkan
hanyalah agar ketidaknyamanan ini dapat dikurangi.
Fenomena menunggu adalah hasil langsung dari keacakan dalam operasi
sarana pelayanan. Secara umum, kedatangan pelanggan dan waktu perbaikan tidak
diketahui sebelumnya, karena jika dapat diketahui, pengoperasi sarana tersebut dapat
dijadwalkan sedemikian rupa sehingga akan sepenuhnya menghilangkan keharusan
untuk menunggu.
Tujuan kita dalam mempelajari pengoperasian sebuah sarana pelayanan dalam
kondisi acak adalah untuk memperoleh beberapa karakteristik yang mengukur kinerja
sistem yang sedang dipelajari tersebut. Misalnya satu ukuran yang logis dari kinerja
adalah seberapa lama seorang pelanggan diperkirakan harus menunggu sebelum
dilayani. Satu ukuran lain adalah persentase waktu sarana pelyanan tersebut tidak
dipergunakan. Ukuran pertama memandang sistem dari sudut pandang pelanggan,
9

sementara ukuran kedua mengevaluasi derajat pemanfaatan sarana tersebut. Kita


secara intuitif melihat bahwa semakin lama seorang pelanggan menunggu, semakin
kecil persentase waktu sarana tersebut tidak dipergunakan, dan sebaliknya. Kedua
ukuran kinerja ini karena itu dipergunakan untuk memilih tingkat pelayanan (atau laju
pelayanan) yang akan menghasilkan keseimbangan yang wajar antara kedua situasi
yang bertentangan ini.

2.2.1 Deskripsi Proses


Proses merupakan konsep pokok di sistem operasi. Konsep ini pertama kali
dipakai di sistem operasi Multics tahun 60-an. Tema utama perancangan sistem
operasi semuanya berkaitan dengan manajemen proses.
Terdapat beragam definisi proses. Salah satunya adalah program yang sedang
dieksekusi. Proses merupakan unit kerja terkecil yang secara individu memiliki
sumber daya-sumber daya dan dijadwalkan sistem operasi. Sistem operasi mengelola
semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai
kebijaksanaan untuk memenuhi sasaran sistem. Abstraksi proses merupakan hal
mendasar dalam manajemen program-program kongkuren.

2.2.2 Definisi Penjadwalan Proses


Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem
operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer.
Penjadwalan bertugas untuk memutuskan,
1. Proses yang harus berjalan.
2. Kapan dan selama berapa lama proses itu berjalan.

2.2.3 Sasaran Utama Penjadwalan Proses


Optimasi kinerja menurut kriteria tertentu. Kinerja untuk mengukur dan
optimasi kerja penjadwalan antara lain,
a. Adil (fairness).
Adil adalah proses-proses diperlakukan sama yaitu mendapat jatah waktu
pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses
sehingga mengalami starvation. Sasaran penjadwalan seharusnya menjamin
tiap proses mendapat pelayanan dari pemroses yang adil.
10

b. Efisiensi.
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu
sibuk pemroses. Sasaran penjadwalan adalah menjaga agar pemroses tetap
dalam keadaan sibuk sehingga efisiensi mencapai maksimum. Sibuk adalah
pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk
mengeksekusi program pemakai dan sistem operasi.
c. Waktu tanggap (response time).
Waktu tanggap berbeda untuk,
a. Sistem interaktif.
Waktu tanggap dalam sistem interaktif didefinisikan sebagai waktu
yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan
atau transaksi sampai hasil pertama muncul di layar (terminal). Waktu
tanggap ini disebut sebagai terminal response time.
b. Sistem waktu nyata.
Pada sistem waktu nyata (real-time), waktu tanggap didefinisikan
sebagai waktu dari saat kejadian (internal atau eksternal) sampai
instruksi pertama rutin layanan yang dimaksud dieksekusi disebut
event response time. Sasaran penjadwalan adalah meminimalkan waktu
tanggap.
d. Turn around time.
Turn arround time adalah waktu yang dihabiskan dari saat program atau job
mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang
dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan
sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu
menunggu yaitu,

Turn arround time = waktu eksekusi + waktu


menunggu
e. Throughput.
Throughput adalah jumlah kerja yang dapat diselesaikan dalam satu unit
waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job
pemakai yang dapat dieksekusi dalam satu unit/interval waktu. Sasaran
11

penjadwalan adalah memaksimalkan jumlah job yang diproses per satu


interval waktu. Lebih tinggi angka throughput, lebih banyak kerja yang
dilakukan sistem.

2.2.4 Tipe-tipe Penjadwalan Proses


Dapat terdapat tiga tipe penjadwal berada secara bersama-sama pada sistem
operasi yang kompleks yaitu :
1. Penjadwal jangka pendek (short-term scheduller).
Penjadwal ini bertugas menjadwalkan alokasi pemroses di antara proses-proses
ready di memori utama. Sasaran penjadwal ini memaksimumkan kinerja untuk
memenuhi satu kumpulan kriteria yang diharapkan. Penjadwal ini dijalankan
setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus
dijalankan.
2. Penjadwal jangka menengah (medium-term scheduller).
Setelah eksekusi selama suatu waktu, proses mungkin ditunda karena membuat
permintaan layanan masukan/keluaran atau memanggil suatu system call.
Proses-proses tertunda tidak dapat membuat suatu kemajuan menuju selesai
sampai kondisi-kondisi yang menyebabkan tertunda dihilangkan. Agar ruang
memori dapat bermanfaat, maka proses dipindah dari memori utama ke
memori sekunder agar tersedia ruang untuk proses-proses lain. Kapasitas
memori utama terbatas untuk sejumlah proses aktif. Aktivitas pemindahan
proses yang tertunda dari memori utama ke memori sekunder disebut
swapping. Penjadwal jangka menengah berfungsi untuk menangani proses-
proses swapping. Proses-proses yang mempunyai kepentingan kecil saat itu
sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya
tertunda hilang dan proses dimasukkan kembali ke memori utama dan ready.
Penjadwal jarak menengah mengendalikan transisi dari suspended-to-ready
(dari keadaan suspend ke ready) proses-proses swapping.
3. Penjadwal jangka panjang (long-term scheduller).
Penjadwal jangka panjang bekerja terhadap antrian batch dan memilih batch
berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan
penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori,
perangkat masukan / keluaran), program-program berprioritas rendah. Sasaran
12

utama penjadwal jarak panjang adalah memberi keseimbangan job-job


campuran.

2.2.5 Strategi Penjadwalan Proses


Terdapat dua strategi penjadwalan yaitu,
1. Penjadwalan Nonpreemptive
Begitu proses diberi jatah waktu pemroses maka pemroses tidak dapat diambil
alih oleh proses lain sampai proses itu selesai.
2. Penjadwalan Preemptive
Saat proses diberi jatah waktu pemroses maka pemroses dapat diambil alih
proses lain sehingga proses disela sebelum selesai dan harus dilanjutkan
menunggu jatah waktu pemroses tiba kembali pada proses itu. Penjadwalan
preemptive berguna pada sistem dimana proses-proses yang mendapat
perhatian/tanggapan pemroses secara cepat. Misalnya,
a. Pada sistem-sistem waktu nyata, kehilangan interupsi (yaitu interupsi
tidak segera dilayani) dapat berakibat fatal.
b. Pada sistem-sistem interaktif time-sharing, penjadwalan preemptive
penting agar dapat menjamin waktu tanggap yang memadai.
Penjadwalan preemptive bagus, tapi tidak tanpa ongkos. Peralihan proses
(yaitu proses beralih ke proses lain) memerlukan overhead karena banyak tabel
yang dikelola. Agar preemptive efektif, banyak proses harus berada di memori
utama sehingga proses-proses tersebut dapat segera running begitu diperlukan.
Menyimpan banyak proses tak running benar-benar di memori utama
merupakan suatu overhead tersendiri.

2.2.6 Algoritma-Algoritma Penjadwalan Proses


Terdapat banyak algoritma penjadwalan, baik nonpreemptive maupun
preemptive. Algoritma-algoritma yang menerapkan strategi nonpreemptive
diantaranya,
1. Penjadwalan FIFO (First In First Out).
Penjadwalan ini merupakan,
a. Penjadwalan non-preemptive (run-to-completion).
b. Penjadwalan tidak berprioritas.
13

Penjadwalan FIFO adalah penjadwalan paling sederhana yaitu,


a. Proses-proses diberi jatah waktu pemroses berdasarkan waktu
kedatangan.
b. Begitu proses mendapat jatah waktu pemroses, proses dijalankan
sampai selesai.
2. Penjadwalan Terpendek, Duluan (Shortest Job First / SJF).
Penjadwalan ini mengasumsikan waktu jalan proses (sampai selesai) diketahui
sebelumnya. Mekanisme penjadwalan adalah menjadwalkan proses dengan
waktu jalan terpendek lebih dulu sampai selesai.
3. Penjadwalan Rasio Tanggapan Tertinggi, Duluan (Highest-Ratio Next / HRN).
Penjadwalan ini mengoreksi kelemahan SJF. HRN adalah strategi penjadwalan
nonpreemptive dengan prioritas proses tidak hanya merupakan fungsi waktu
layanan tapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah
pemroses, proses berjalan sampai selesai.
Prioritas dinamis HRN dihitung berdasarkan rumus berikut,

Prioritas = (Waktu tunggu + Waktu layanan) / Waktu


layanan
4. Penjadwalan dengan Banyak Antrian (Multiple Feedback Queues / MFQ).
Penjadwalan ini menghendaki kelas-kelas prioritas bagi proses-proses yang
ada. Kelas tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan
selama dua kwanta, kelas berikutnya berjalan empat kwanta dan seterusnya.
Ketentuan yang berlaku adalah sebagai berikut :
a. Jalankan proses pada kelas tertinggi.
b. Jika proses menggunakan seluruh kwanta yang dialokasikan maka
diturunkan kelas prioritas-nya.
c. Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas
tertinggi.
Algoritma-algoritma yang menerapkan strategi preemptive diantaranya,
1. Penjadwalan Round Robin (RR).
Penjadwalan ini merupakan,
14

a. Penjadwalan preemptive, bukan di-preempt oleh proses lain tapi


terutama oleh penjadwal berdasarkan lama waktu berjalannya proses
disebut preempt-by-time.
b. Penjadwalan tanpa prioritas.
Ketentuan algoritma Round Robin adalah sebagai berikut,
a. Jika kwanta habis dan proses belum selesai maka proses menjadi
runnable dan pemroses dialihkan ke proses lain.
b. Jika kwanta belum habis dan proses menunggu suatu kejadian
(selesainya operasi I/O), maka proses menjadi blocked dan pemroses
dialihkan ke proses lain.
c. Jika kwanta belum habis tapi proses telah selesai maka proses diakhiri
dan pemroses dialihkan ke proses lain.
2. Penjadwalan Sisa Waktu Terpendek, Duluan (Shortest-Remaining First /
SRF).
Penjadwalan ini melengkapi SJF. Pada SRF, proses dengan sisa waktu jalan
diestimasi terendah dijalankan, termasuk proses-proses yang baru tiba. Proses
yang sedang berjalan (running) dapat diambil alih proses baru dengan sisa
waktu jalan yang diestimasi lebih rendah.
3. Penjadwalan Berprioritas (Priority Schedulling / PS).
Ide penjadwalan ini adalah tiap proses diberi prioritas dan proses berprioritas
tertinggi running (mendapat jatah waktu pemroses). Prioritas dapat diberikan
secara,
a. Prioritas Statis (static priorities), berarti prioritas tak berubah.
b. Prioritas Dinamis (dynamic priorities) , merupakan mekanime
menanggapi perubahan lingkungan sistem beroperasi. Prioritas awal
yang diberikan ke proses mungkin hanya berumur pendek setelah
disesuaikan ke nilai yang lebih tepat sesuai lingkungan.
4. Penjadwalan Terjamin (Guaranteed Schedulling / GS).
Penjadwalan ini berupaya memberi tiap pemakai daya pemroses yang sama.
Jika terdapat N pemakai, tiap pemakai mendapat 1/N daya pemroses. Sistem
merekam besar waktu pemroses yang telah digunakan proses sejak login dan
jumlah waktu pemroses yang digunakan seluruh proses.
15

2.2.7 Unsur-Unsur Dasar dari Model Antrian


Dari sudut pandang model antrian, situasi antrian diciptakan dengan cara
berikut ini. Sementara para pelanggan tiba di satu sarana pelayanan, mereka
bergabung dengan sebuah antrian. Pelayan memilih seorang pelanggan dari antrian
untuk memulai pelayanan. Setelah selesainya pelayanan, proses memilih pelanggan
baru (yang sedang menunggu) diulangi. Diasumsikan tidak ada waktu yang terhilang
antara penyelesaian pelayanan dengan diterimanya seorang pelanggan baru di sarana
pelayanan tersebut.
Pelaku-pelaku utama dalam sebuah situasi antriaan adalah pelanggan
(customer) dan pelayan (server). Dalam model antrian, interaksi antara pelanggan dan
pelayan adalah menarik hanya dalam hal kaitannya dengan periode waktu yang
diperoleh pelanggan untuk menyelesaikan sebuah pelayanan. Jadi, dari sudut pandang
kedatangan pelanggan, kita tertarik pada interval waktu yang memisahkan kedatangan
yang berturut-turut. Juga, dalam kasus pelayanan, yang diperhitungkan adalah waktu
pelayanan per pelanggan.
Dalam model-model antrian, kedatangan pelanggan dan waktu pelayanan
diringkaskan dalam bentuk distribusi probabilitas yang umumnya disebut sebagai
distribusi kedatangan (arrival distribution) dan distribusi waktu pelayanan (service
time distribution). Kedua distribusi ini mewakili situasi di mana pelanggan tiba dan
dilayani secara individual (misalnya pada bank atau supermarket). Dalam situasi
lainnya, pelanggan dapat tiba dan/atau dilayani dalam kelompok (misalnya restoran).
Kasus terakhir ini umumnya disebut sebagai antrian kelompok (bulk queue).
Walaupun pola kedatangan dan kepergian adalah faktor-faktor penting dalam
analisis antrian, faktor-faktor lain juga penting dalam pengembangan model-model
antrian. Faktor-faktor tersebut antara lain,
1. Cara memilih pelanggan dari antrian untuk memulai pelayanan. Ini disebut
sebagai peraturan pelayanan (service discipline). Peraturan yang paling umum
adalah FCFS (First Come First Serve) yang berarti yang datang pertama
dilayani pertama. LCFS (Last Come First Serve/datang terakhir dilayani
pertama) dan SIRO (Service In Random Order/pelayanan dalam urutan acak)
juga dapat timbul dalam situasi praktis. Kita juga harus menambahkan bahwa
sementara peraturan pelayanan menentukan pemilihan pelanggan dari satu
jalur antrian, para pelanggan yang tiba di sebuah sarana pelayanan dapat juga
16

ditempatkan dalam antrian prioritas (priority queue) sedemikian rupa sehingga


prioritas yang lebih tinggi akan menerima preferensi untuk mulai dilayani
terlebih dahulu. Pemilihan pelanggan yang spesifik dari setiap antrian prioritas
dapat mengikuti peraturan pelayanan tertentu.
2. Rancangan sarana dan pelaksanaan pelayanan. Sarana tersebut dapat
mencakup lebih dari satu pelayan, sehingga memungkinkan beberapa
pelanggan sebanyak jumlah pelayan tersebut untuk dilayani secara
berbarengan (misalnya kasir bank). Dalam kasus ini, semua pelayan
menawarkan pelayanan yang sama dan sarana pelayanan tersebut dikatakan
memiliki pelayan sejajar (parallel servers). Sebaliknya, sarana pelayanan
dapat pula terdiri dari serangkaian stasiun yang dapat dilalui pelanggan
sebelum pelayanan diselesaikan misalnya pengolahan sebuah produk di
serangkaian mesin. Situasi yang dihasilkan umumnya dikenal sebagai antrian
serial atau antrian tandem (tandem queue). Rancangan yang paling umu dari
sebuah sarana pelayanan mencakup baik stasiun pengolahan serial atau paralel.
Ini menghasilkan apa yang disebut antrian jaringan (network queue).
3. Ukuran antrian yang diijinkan. Dalam beberapa situasi tertentu, hanya
sejumlah pelanggan tertentu yang diijinkan, kemungkinan karena batasan
ruang misalnya ruang untuk mobil di tempat pengisian bensin. Setelah antrian
memenuhi kapasitas, pelanggan yang baru tiba tidak dapat masuk ke dalam
antrian.
4. Sifat sumber yang meminta pelayanan (kedatangan pelanggan). Sumber
pemanggilan (calling source) dapat menghasilkan sejumlah terbatas pelanggan
atau sejumlah tak terbatas pelanggan. Sumber terbatas terjadi ketika
kedatangan mempengaruhi laju kedatangan pelanggan baru. Di sebuah bengkel
dengan M mesin, sumber pemanggilan sebelum ada mesin yang rusak terdiri
dari M calon pelanggan. Setelah satu mesin rusak, mesin itu menjadi
pelanggan dan karena itu tidak dapat menghasilkan pemanggilan baru sampai
diperbaiki.
Secara ringkas, kita dapat menuliskan faktor-faktor yang berpengaruh pada
unsur-unsur dasar dari model antrian seperti berikut ini,
1. Distribusi kedatangan (kedatangan tunggal atau kelompok).
2. Distribusi waktu pelayanan (pelayanan tunggal atau kelompok).
17

3. Rancangan sarana pelayanan (stasiun serial, paralel atau jaringan).


4. Peraturan pelayanan (FCFS, LCFS, SIRO) dan prioritas pelayanan.
5. Ukuran antrian (terhingga atau tak terhingga).
6. Sumber pemanggilan (terhingga atau tidak terhingga).
7. Perilaku manusia (perpindahan, penolakan atau pembatalan).

2.2.8 Struktur Model Antrian


Struktur antrian terdiri dari empat model yaitu,
1. Single Queue – Single Server (SQSS), yaitu sistem antrian dimana terdapat
satu server yang digunakan untuk melayani satu antrian.

ITEM ITEM ITEM ITEM ITEM SERVER

Gambar 2.1 Sketsa SQSS


Keunggulan dari sistem ini adalah biaya operasionalnya yang relatif lebih
murah karena hanya perlu untuk menyediakan satu server saja. Sedangkan
kelemahan dari sistem ini adalah efisiensi waktu antrian yang sangat buruk
jika jumlah item dalam antrian sangat banyak. Sistem ini hanya cocok
digunakan untuk sistem antrian berskala kecil saja.
2. Single Queue – Multi Server (SQMS), yaitu sistem antrian dimana terdapat
beberapa server yang digunakan untuk melayani satu antrian.

SERVER

ITEM ITEM ITEM ITEM ITEM SERVER

SERVER

Gambar 2.2 Sketsa SQMS


(Sumber : http://www.productionsystemsengineering.com/book_files/figure_01_04.gif
di akses tanggal 17 Februari 2010))
Keunggulan dari sistem ini adalah efisiensi waktu antrian yang cukup baik dan
lebih baik jika dibandingkan dengan sistem SQSS. Namun kelemahan dari
18

sistem ini adalah biaya operasionalnya yang relatif lebih mahal karena harus
menyediakan beberapa server untuk melayani sebuah antrian.
3. Multi Queue – Single Server (MQSS), yaitu sistem antrian dimana hanya
terdapat satu server saja yang digunakan untuk melayani beberapa antrian.

ITEM ITEM ITEM ITEM ITEM

ITEM ITEM ITEM ITEM ITEM SERVER

ITEM ITEM ITEM ITEM ITEM

Gambar 2.3 Sketsa MQSS


(Sumber : http://www.lp.itb.ac.id/product/pro-3/ahmadi3/Image213.gif di akses
tanggal 17 Februari 2010)
Sistem ini merupakan sistem antrian terburuk dari beberapa sistem antrian
yang ada. Keunggulan dari sistem ini terletak pada biaya operasionalnya yang
relatif lebih murah. Namun kelemahan dari sistem ini adalah efisiensi waktu
antriannya yang sangat buruk karena hanya ada satu server saja untuk
melayani beberapa antrian.
4. Multi Queue – Multi Server (MQMS), yaitu sistem antrian dimana terdapat
beberapa server yang digunakan untuk melayani beberapa antrian.

ITEM ITEM ITEM ITEM ITEM SERVER

ITEM ITEM ITEM ITEM ITEM SERVER

ITEM ITEM ITEM ITEM ITEM SERVER

Gambar 2.4 Sketsa MQMS


Sistem ini banyak diterapkan dalam kehidupan sehari-hari. Keunggulan dari
sistem ini adalah efisiensi waktu antriannya yang cukup baik dan proses
antriannya juga cukup terstruktur karena setiap antrian akan dilayani oleh satu
19

server. Kelemahan dari sistem ini adalah biaya operasionalnya yang relatif
lebih mahal karena harus menyediakan satu server untuk setiap antrian.
Berdasarkan waktu tunggu rata-rata (average wait time), maka model-model
tersebut dapat diurutkan dari waktu terkecil ke waktu terbesar sebagai berikut :
1. MQMS memiliki waktu tunggu rata-rata yang terkecil dari beberapa model
yang ada. MQMS ini merupakan model antrian yang terbaik jika ditinjau dari
segi waktu tunggu rata-rata karena model ini menyediakan satu server untuk
setiap antrian sehingga setiap server hanya perlu berkonsentrasi pada antrian
yang akan dilayaninya tersebut. Namun kelemahan dari model ini adalah jika
waktu service dari beberapa server berbeda jauh maka kemungkinan akan
timbul suatu masalah di mana item terperangkap dan menunggu lama di dalam
antrian yang dilayani oleh server yang lambat, sementara mungkin saja item-
item lainnya yang baru datang dan masuk ke antrian lain telah selesai dilayani.
2. SQMS memiliki waktu tunggu rata-rata yang cukup baik dan hampir sama
dengan model MQMS. Hanya saja, model ini hanya memperbolehkan sebuah
antrian saja sehingga akan menyebabkan timbulnya suatu antrian yang sangat
panjang jika jumlah item banyak.
3. SQSS memiliki waktu tunggu rata-rata yang cukup buruk namun masih jauh
lebih baik dari model MQSS. Model ini hanya dapat digunakan untuk
masalah-masalah yang relatif kecil saja. Jika jumlah item banyak, maka model
ini akan menyebabkan timbulnya suatu antrian yang sangat panjang, dan lebih
panjang daripada model SQMS untuk kondisi yang sama.
4. MQSS merupakan model antrian yang terburuk. Model ini memiliki waktu
tunggu rata-rata yang terburuk dan sangat tidak efisien untuk diterapkan.

2.3 Sistem Operasi


Sistem operasi adalah kumpulan program yang mengontrol eksekusi program-
program aplikasi dan berfungsi sebagai interface antara pengguna komputer dengan
perangkat keras komputer.
Sistem operasi dapat dianggap memiliki tiga tujuan yaitu,
1. Kenyamanan
Sistem operasi membuat penggunaan komputer menjadi lebih nyaman.
2. Efisiensi
20

Sistem operasi memungkinkan semua sumber daya sistem komputer untuk


digunakan dengan cara yang efisien.
3. Kemampuan berkembang
Sistem operasi harus disusun sedemikian rupa sehingga memungkinkan
pengembangan yang efektif, pengujian, dan penerapan fungsi-fungsi sistem yang
baru tanpa mengganggu layanannya yang telah ada.

2.3.1 Sistem Operasi sebagai Interface antara Pengguna dan Komputer


Perangkat keras dan perangkat lunak yang digunakan untuk menyediakan
aplikasi bagi pengguna dapat dipandang sebagai sesuatu yang berlapis atau hirarki,
seperti yang ditunjuk pada gambar 2.5.

Gambar 2.5 Sistem operasi sebagai Interface antara pengguna dan komputer
Pengguna aplikasi-aplikasi yaitu end user, umumnya tidak berkepentingan
dengan arsitektur komputer. Jadi end user memandang sistem komputer dalam bentuk
aplikasi. Aplikasi tersebut dapat dinyatakan dalam suatu bahasa pemrograman dan
dibuat oleh pemrogram aplikasi (programmer). Bila seseorang membuat sebuah
program aplikasi sebagai himpunan instruksi mesin yang sepenuhnya bertanggung
jawab atas pengontrolan perangkat keras komputer, maka orang tersebut akan
berhadapan dengan pekerjaan yang sangat kompleks. Untuk memudahkan pekerjaan
itu, telah disediakan program-program sistem yang beberapa diantaranya dikenal
sebagai utilitas. Utilitas tersebut mengimplementasikan fungsi-fungsi yang sering
dipakai untuk membantu pembuatan program, manajemen file dan pengontrolan
21

perangkat I/O. Sistem operasi menyembunyikan detail perangkat keras dari


pemrogram dan menyediakan interface yang mudah bagi pengguna dalam
menggunakan sebuah sistem. Sistem operasi berfungsi sebagai mediator, yang
memberikan kemudahan bagi pemrogram dan program-program aplikasi dalam
mengakses dan menggunakan fasilitas dan layanan-layanan .

2.3.2 Sistem Operasi sebagai Manajer Sumber Daya


Sebuah komputer adalah sekumpulan sumber daya yang berfungsi untuk
perpindahan, penyimpanan, dan pengolahan data serta untuk mengontrol fungsi-fungsi
itu. Sistem operasi bertanggung jawab atas pengaturan sumber-sumber daya tersebut.
Pada kenyataannya sistem operasi tidak lebih dari sejumlah program
komputer. Seperti program-program komputer lainnya, sistem operasi memiliki
instruksi-instruksi untuk prosesor. Perbedaannya adalah sistem operasi mengarahkan
prosesor dalam menggunakan sumber daya lainnya dan eksekusi program lainnya.
Gambar 2.6 menunjukkan sumber-sumber daya utama yang diatur oleh sistem
operasi. Sebagian sistem operasi berada dalam memori utama. Bagian tersebut
meliputi kernel, atau nucleus, yang berisi fungsi-fungsi yang paling sering dipakai di
dalam sistem operasi. Jika terdapat bagian-bagian sistem operasi lainnya yang pada
saat itu sedang digunakan maka bagian tersebut juga akan dimasukkan ke memori. Isi
memori utama lainnya digunakan untuk menyimpan program-program lainnya dan
data. Alokasi sumber daya (memori utama) ini dikontrol secara bersama oleh sistem
operasi dan perangkat keras manajemen memori yang terdapat di dalam prosesor.
Sistem operasi membuat keputusan kapan suatu perangkat I/O dapat digunakan oleh
program yang sedang dieksekusi, tujuan akses kontrol dan pemakaian file-file.
Prosesor sendiri merupakan sumber daya, dan sistem operasi harus menentukan
jumlah waktu prosesor yang diberikan kepada eksekusi program pengguna tertentu.
22

Sistem Komputer IO Device

Memori IO Controller

IO Controller
Sistem
Operasi
Penyimpan

User
Program OS
IO Controller
dan Data Programs
Data
Prosesor … Prosesor

Gambar 2.6 Sistem Operasi Sebagai Manajer Sumber Daya

2.3.3 Kemudahan Berkembang Sistem Operasi


Sistem operasi akan selalu berkembang dengan alasan-alasan di bawah ini,
• Perkembangan perangkat keras serta perangkat keras jenis baru
Dengan semakin berkembangnya perangkat-perangkat keras maka perangkat-
perangkat keras tersebut memerlukan sistem operasi yang lebih canggih yang
diharapkan dapat mendukung kerja perangkat keras baru tersebut dengan baik.
• Layanan-layanan baru
Untuk menjawab kebutuhan para pengguna atau para manajer sistem, sistem
operasi menambahkan penawaran layanan-layanan baru. Misalnya, apabila
ditemukan kesulitan dalam menjaga kinerja yang baik bagi pengguna dengan
memakai tool yang telah ada, maka layanan-layanan yang baru dapat ditambahkan
ke sistem operasi.
• Perbaikan
Setiap sistem operasi memiliki fault (kesalahan). Kesalahan-kesalahan ini
ditemukan dalam periode waktu tertentu dan kemudian dilakukan perbaikan. Tentu
saja, perbaikan ini dapat menyebabkan kesalahan baru lagi.

2.3.4 Tugas-Tugas Sistem Operasi


Sebuah sistem operasi mempunyai beberapa tugas utama antara lain,
1. Manajemen proses
23

Di dalam manajemen proses, sistem operasi bertanggungjawab atas pengerjaan


kegiatan berikut :
• Pembuatan dan penghapusan proses yang digunakan oleh pemakai dan sistem.
• Menunda dan melanjutkan pengerjaan sejumlah proses.
• Penetapan mekanisme kerja untuk sinkronisasi proses.
• Penetapan mekanisme kerja untuk komunikasi proses.
• Penetapan mekanisme kerja untuk mengatasi deadlock.
2. Manajemen memori
Di dalam manajemen memori, sistem operasi bertanggungjawab atas pengerjaan
kegiatan berikut :
• Mengetahui alamat-alamat memori yang sedang dipakai dan dipakai oleh siapa.
• Manajemen free space (bagian memori yang sedang tidak dipergunakan).
• Memasukkan proses ke dalam memori pada saat ruang memori mencukupi.
• Alokasi dan dealokasi memori.
3. Manajemen penyimpanan sekunder
Di dalam hal ini, sistem operasi bertanggungjawab atas pengerjaan kegiatan
berikut:
• Manajemen free space (bagian dari penyimpanan sekunder yang kosong).
• Mengalokasi penyimpanan.
• Penjadwalan disk.
4. Sistem Input/Output (I/O)
Di dalam mengelola I/O, sistem operasi bertanggungjawab atas pengerjaan
kegiatan berikut :
• Buffer caching system.
• Driver pada peralatan umum I/O .
• Driver pada peralatan I/O yang lebih spesifik.
5. Manajemen file
Di dalam manajemen file, sistem operasi bertanggungjawab atas pengerjaan
kegiatan berikut :
• Pembuatan dan penghapusan file.
• Pembuatan dan penghapusan direktori.
• Mendukung manipulasi file dan direktori.
24

• Melakukan pemetaan (mapping) file pada disk.


• Melakukan backup terhadap file pada alat penyimpanan non volatile
6. Sistem proteksi
Setiap proses dalam sistem operasi harus dilindungi antara satu sama lain. Untuk
itu berbagai jenis mekanisme dapat digunakan untuk memastikan bahwa file,
segmen memori, prosesor dan sumber daya lainnya dapat dijalankan hanya pada
proses-proses yang telah mendapat hak dari sistem operasi. Proteksi mengarahkan
kepada suatu mekanisme untuk melakukan pengontrolan pengaksesan program,
proses, atau pengguna pada sumber daya yang terdapat pada sistem komputer.
7. Sistem Command Interpreter
Salah satu program sistem yang terpenting dari sebuah sistem operasi adalah
Command Interpreter. Command Interpreter merupakan sebuah program yang
berjalan ketika sebuah tugas dimulai untuk dikerjakan. Banyak perintah yang
diberikan kepada sistem operasi melalui Control Statement.

2.4 Struktur Data dan Implementasi Antrian


Struktur antrian merupakan list dengan aturan khusus dimana operasi tambah
data dilakukan di salah satu ujung (belakang) sedangkan operasi hapus dilakukan pada
ujung yang satu lagi (depan). Antrian biasa memiliki aturan elemen yang pertama
masuk merupakan elemen yang pertama keluar, sehingga antrian sering juga disebut
dengan FIFO List. Antrian merupakan barisan yang biasa kita jumpai dalam
kehidupan sehari-hari. Sifat-sifat antrian yang kita jumpai dalam kehidupan sehari-
hari memiliki sifat yang berbeda-beda ada yang FIFO, tetapi ada juga yang bersifat
Prioritas, Round Robin dan Shortest Job First dan lain-lain. Contoh antrian dalam
kehidupan sehari-hari antara lain barisan file yang akan dicetak oleh sebuah printer,
antrian job (program) yang akan dikerjakan oleh CPU, antrian pesawat untuk satu
landasan pacu dan lain-lain. Operasi yang sering dilakukan dalam antrian adalah
masuk data baru (Addqueue) dan hapus data paling depan (Delqueue). Antrian biasa
dapat diimplementasikan dengan Array (biasa), Linked List dan Array Berputar
(Circular Array). Secara sederhana antrian dapat digambarkan seperti terowongan
seperti Gambar 2.7 di bawah ini :
25

Masuk
Depan Elemen baru
e1 e2 e3 en
Elemen Keluar Belakang

Gambar 2.7 Bentuk Antrian Sebagai Sebuah Terowongan


Berikut ini merupakan operasi-operasi dasar yang biasa dilakukan terhadap
sebuah antrian seperti :
a. Mengosongkan antrian (makenul) yaitu suatu prosedur yang menyebabkan
antrian menjadi kosong. Tujuannya untuk menciptakan antrian pertama sekali
atau mengosongkan antrian yang sudah terisi. Sebelum proses, antrian Q dapat
berisi atau sama sekali belum pernah ada. Sesudah proses, antrian Q yang
tadinya berisi menjadi kosong atau membuat antrian Q yang baru dengan
jumlah elemen = 0.
b. Mencek apakah antrian kosong (empty) yaitu suatu fungsi yang menghasilkan
nilai True jika antrian kosong atau nilai False jika antrian tidak kosong.
Tujuannya adalah untuk mengetahui apakah antrian Q kosong atau tidak.
Sesudah proses, antrian Q tidak berubah, tetapi hanya menghasilkan nilai True
atau False.
c. Mencek apakah antrian penuh (full) yaitu suatu fungsi yang menghasilkan nilai
True jika antrian penuh atau nilai False jika antrian tidak penuh. Tujuannya
adalah untuk mengetahui apakah antrian Q penuh atau tidak. Sesudah proses,
antrian Q tidak berubah, tetapi hanya menghasilkan nilai True atau False.
d. Menambah data (addqueue) adalah operasi yang mengakibatkan data baru
menjadi elemen paling belakang dari antrian Q. Jika implementasi antrian
dengan array maka terlebih dahulu dicek apakah Q penuh. Tujuannya adalah
untuk memasukkan data baru menjadi elemen paling belakang dari Q.
Sebelum proses, antrian tidak penuh (khusus untuk implementasi Array), dan
sesudah proses, elemen antrian Q bertambah satu dan x menjadi elemen paling
belakang.
e. Menghapus data (delqueue) yaitu suatu prosedur yang membuang elemen
paling depan dan mengurangi jumlah elemen dengan satu. Tujuannya adalah
untuk membuang (menghapus elemen paling depan). Sebelum proses, antrian
26

Q tidak kosong. Sesudah proses, elemen paling depan Q hilang, elemen di


belakangnya menjadi elemen paling depan yang baru dan jumlah elemen
berkurang satu.
f. Mencari elemen posisi paling depan (front) yaitu suatu fungsi yang
menampilkan elemen paling depan antrian Q yang tidak kosong. Tujuannya
adalah untuk menampilkan elemen paling depan dari Q. Sebelum proses, Q
tidak kosong. Sesudah proses, Q tidak berubah, hanya menampilkan elemen
paling depan.
g. Menampilkan semua elemen antrian (print) yaitu suatu prosedur yang
menampilkan elemen dari antrian Q mulai dari depan ke belakang untuk
antrian Q yang tidak kosong. Tujuannya adalah untuk menampilkan isi antrian
Q mulai dari depan ke belakang. Sebelum proses, Q tidak kosong. Sesudah
proses, Q tidak berubah, elemen dari antrian ditampilkan satu per satu mulai
dari depan.

1.1.1 Implementasi Antrian dengan Array Biasa (Linier)


Antrian dapat direpresentasikan sebagai sebuah array dengan jumlah elemen
yang ditentukan terlebih dahulu. Array (larik) adalah suatu tipe data terstruktur yang
dapat menampung (berisikan) suatu data yang sejenis. Deklarasi antrian sebagai array
pada bahasa Pascal adalah sebagai berikut :
Const
Max = n ;(*sembarang bilangan bulat positif pilihan anda*)
Type
Queue = Record
Elemen : Array [1 .. Max] Of TipeData;
Belakang : 0 .. Max
End;

Variabel Belakang berfungsi sebagai penunjuk posisi elemen paling belakang


dan sekaligus untuk menyatakan jumlah elemen dalam antrian, sementara Depan dari
Queue selalu pada posisi 1. Dengan demikian apabila antrian di-copy ke variabel lain
misalnya, Q maka antrian Q dapat digambarkan seperti Gambar 2.8 di bawah ini :
27

1 2 3 . . Max Belakang
Q e1 e2 e3 en
Elemen

Gambar 2.8 Antrian direpresentasikan sebagai sebuah Array Linier

Kelemahan implementasi di atas adalah bahwa operasi hapus mengharuskan


pergeseran elemen sebanyak (n-1) kali bila elemen sebelum hapus jumlah elemen
yang ada di dalam antrian adalah sebanyak n. Sementara operasi-operasi yang lain
dapat dilakukan dengan waktu konstan. Kelemahan ini dapat diatasi dengan
implementasi Linked List atau Circular Array.

2.4.2 Implementasi Antrian dengan Linked List


Linked List dapat digunakan sebagai representasi antrian dengan pointer
tunggal dimana pada kepala disediakan dua buah pointer yaitu untuk menunjuk
elemen paling depan dan elemen paling belakang serta bilangan bulat yang berguna
untuk menelusuri jumlah elemen dalam sebuah antrian. Hal ini dilakukan untuk
memudahkan pelaksanaan operasi tambah data dan hapus data. Tambah data selalu
dilakukan di belakang dan menaikkan jumlah elemen dengan 1, sementara hapus data
selalu dilakukan di depan dan mengurangkan jumlah elemen dengan 1. Deklarasi
Antrian dengan implementasi Linked List dapat dibuat dalam bahasa Pascal seperti
berikut ini,
Type
Pointer = ^Simpul;
Simpul = Record
Data : TipeData;
Next : Pointer;
End;
Queue = Record
Depan : Pointer;
Belakang : Pointer;
Count : Byte;
End;
28

Apabila antrian di atas di-copy ke variabel lain, misalnya Q dan misalkan


elemen yang masuk ke dalam antrian Q adalah berturut-turut: 2, 3, 5, dan 7 maka Q
dapat digambarkan seperti Gambar 2.9 berikut ini,

Q
Depan 2 3 5 7
Belakang
Count 4

Gambar 2.9 Antrian dengan elemen 2,3,5,7 dengan Linked List


Dari gambar di atas diperoleh Q.Depan^.Data = 2; Q.Belakang^.Data = 7 dan Q.Count = 4.

2.4.3 Implementasi Antrian dengan Circular Array


Circular Array (Array Berputar) sebenarnya hanyalah array biasa dengan
jumlah elemen maksimum dalam array adalah tetap sesuai dengan deklarasi
sebelumnya. Circular array dapat dibayangkan seperti Jam, atau Roda atau dapat
dikatakan sebuah array biasa dimana ujung satu dengan lainnya disatukan sehingga
membentuk cincin. Berbeda dengan implementasi array biasa di atas dimana depan
selalu 1 sehingga kalau terjadi penghapusan (delqueue) maka yang dilakukan adalah
menggeser elemen dari posisi 2 ke posisi 1 dan dari posisi 3 ke posisi 2 dan seterusnya
sampai semua elemen yang tersisa bergeser ke depan satu posisi. Jadi dalam hal ini
yang bergeser adalah elemen. Implementasi antrian dengan array berputar elemen
tidak diganggu pada saat operasi akan tetapi yang bergeser adalah penunjuk elemen
yang dipindahkan dengan menaikkan penunjuk belakang dengan 1 pada saat
penambahan elemen (addqueue) dan menaikkan penunjuk depan dengan 1 jika terjadi
penghapusan. Dengan catatan setiap pertambahan tidak boleh keluar dari ukuran
maksimum array. Hal ini sama seperti perputaran jarum jam, tidak pernah keluar dari
angka 12. Dalam jam kita lihat bahwa apabila waktu menunjukkan Pukul 1:00 tambah
1 jam mengakibatkan jarum penunjuk jam menunjuk angka 2 dan jika ditambah 1 jam
lagi maka jarum penunjuk jam menunjuk angka 3 dan seterusnya hingga apabila
waktu menunjukkan Pukul 12:00 dan ditambah 1 jam lagi maka jarum penunjuk jam
akan menunjuk angka 1. Proses ini terus berulang sampai baterai jam habis. Konsep
inilah yang kita gunakan dalam implementasi antrian dengan array berputar. Jadi kita
memiliki 2 penunjuk (indikator) yaitu indikator depan dan belakang berupa bilangan
29

bulat positif. Kemudian variabel Count bermanfaat untuk mengetahui jumlah elemen
yang ada dalam antrian setiap saat. Nilai Count mula-mula diset = 0 dan ditambah 1
setiap kali operasi Addqueue dan dikurangi satu jika terjadi operasi Delqueue.
Variabel ini juga dapat digunakan untuk mengetahui apakah antrian kosong atau
sudah penuh dengan cepat. Hal ini sebagai alternatif untuk menghindarkan operasi
pointer. Deklarasi antrian dengan array berputar pada bahasa Pascal adalah seperti
berikut ini,

Const
Max = seperti biasa;
Type
Queue = Record
Data : Array [1 .. Max] Of TipeData;
Depan : 1 .. Max;
Belakang : 1 .. Max;
Count : 0 .. Max –1
End;

Perhatikan bahwa pada deklarasi di atas variabel Depan dan Belakang


memiliki nilai antara 1 sampai dengan Max, sementara variabel Count memiliki range
nilai antara 0 sampai Max-1. Variabel Depan berfungsi menelusuri posisi elemen
paling depan dan variabel Belakang berfungsi menelusuri posisi elemen paling
belakang. Dengan deklarasi di atas, misalkan antrian kita copy ke variabel Q maka
antrian Q dapat digambarkan seperti Gambar 2.10 di bawah ini :

1 2 3 4 . . . . Max-1 Max Depan Belakang Count


Q 1.. Max 1.. Max 0 .. Max-1
Elemen

Gambar 2.10 Antrian Q sebagai Array Berputar

Anda mungkin juga menyukai