BAB II baru

37
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

Transcript of BAB II baru

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.

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.

7

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,

8

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.

9

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,

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

10

Turn arround time = waktu eksekusi + waktu menunggu

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

11

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.

12

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,

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,

13

Prioritas = (Waktu tunggu + Waktu layanan) / Waktu layanan

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.

14

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

15

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).

16

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.

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.

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

17

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.

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.

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

18

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

19

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

20

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.

21

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

Memori

SistemOperasi

Sistem Komputer

UserProgramdan Data

Prosesor … Prosesor

IO Controller

IO Controller

IO Controller

IO Device

Penyimpan

OS

Programs

Data

22

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.

Melakukan pemetaan (mapping) file pada disk.

23

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 :

24

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

25

MasukDepan Elemen baru

e1 e2 e3 en

Elemen Keluar Belakang

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.

2.4.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 :

26

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;

27

1 2 3 . . Max Belakang

Q e1 e2 e3 en Elemen

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,

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

28

Q

Depan 2 3 5 7

Belakang

Count 4

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,

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 :

Gambar 2.10 Antrian Q sebagai Array Berputar

29

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

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

Elemen

Const

Max = seperti biasa;

Type

Queue = Record

Data : Array [1 .. Max] Of TipeData;

Depan : 1 .. Max;

Belakang : 1 .. Max;

Count : 0 .. Max –1

End;