APLIKASI SIMULASI ALGORITMA PENJADWALAN SISTEM OPERASI SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika

APLIKASI SIMULASI ALGORITMA PENJADWALAN
SISTEM OPERASI
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika

oleh:

Yosef Benny Kurniawan
NIM: 045314064

PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2011

OPERATING SYSTEM ALGORITHM OF SCHEDULING
SIMULATION APPLICATION

A THESIS
Presented as Partial Fulfillment of The Requirements
To Obtain The Bachelor of Computer Science Degree
in Informatics Engineering Study Programme

by:
Yosef Benny Kurniawan
NIM: 045314064

INFORMATICS ENGINEERING STUDY PROGRAMME
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2011

ii

INTISARI
Pembelajaran tentang algoritma juga akan menjelaskan bagaimana alur

berjalannya suatu algoritma. Oleh karena itu akan lebih mudah bila dibuat
simulasi yang menggambarkan jalannya sebuah algoritma.
Tulisan ini dibuat dengan tujuan untuk memudahkan pengguna dalam
pembelajaran algoritma penjadwalan pada sistem operasi.
Dalam pengembangan aplikasi simulasi algoritma penjadwalan ini digunakan
metodologi prototyping. Tahap-tahap prototyping tersebut meliputi pengumpulan
kebutuhan, membangun prototype, evaluasi prototype, mengkodekan sistem,
menguji sistem, evaluasi sistem, dan menggunakan sistem.
Aplikasi ini mampu menampilkan simulasi dari masing-masing algoritma
penjadwalan. Program ini dikembangkan dengan menggunakan Macromedia
Flash 8 dan Action Script 2.0.

vi

ABSTRACT
Algorithm learning is also going to explain how to run the way an
algorithm. So that it will be easier if we make an simulation to describe the run of
algorithm.
This task was made in order to make easier the users in algorithm
scheduling of operating system learning.

In extension this algorithm of scheduling simulation application,it can be
used prototyping methodology. The prototyiping steps include gathering requisite,
building up prototype, evaluating prototype, signing the system, testing the
system, evaluating the system, and using the system.
This application is able to appear the simulation from each scheduling
algorithm. This programme is extended with using Macromedia Flash 8 and
Action Script 2.0.

vii

KATA PENGANTAR
Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat
dan limpahan kasih karunia yang telah diberikan-Nya sehingga saya dapat
menyelesaikan skripsi ini dengan judul “APLIKASI SIMULASI ALGORITMA
PENJADWALAN SISTEM OPERASI”.
Dalam penulisan skripsi ini, penulis telah banyak memperoleh bantuan dan
bimbingan dari berbagai pihak, oleh karena itu tidak lupa penulis mengucapkan
terimakasih kepada:
1.


Tuhan Yesus Kristus, yang telah menganugerahkan kasih karunia dan
rahmat-Nya serta selalu memberikan keberuntungan.

2.

Bunda Maria yang telah mendengarkan segala doa dan permohonan.

3.

Ayah, Mamah, kakak serta adikku yang selalu memberikan doa, dorongan
dan semangat baik moril maupun spiritual.

4.

Bapak Yosef Agung Cahyanta, S.T., M.T selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.

5.

Bapak Puspaningtyas Sanjoyo Adi, S.T., M..T. selaku Ketua Jurusan Teknik

Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta.

6.

Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Dosen Pembimbing
Akademik Angkatan 2004 Jurusan Teknik Informatika Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.

ix

7.

Bapak DS. Bambang Soelistijanto, S.T.,Msc selaku pembimbing I dan
Agung Hernawan, ST selaku pembimbing II, yang telah memberikan waktu,
bantuan dan bimbingan serta ide-ide dalam menyelesaikan skripsi ini.

8.

Andri Krisharyadi, Kuntarto Kunto Aji, Tri Prasetyo Adi, Yanuarius Budi,

Mahendra Yudha dan Brigita Moris Meta Cynara yang telah membantu
dalam pengerjaan tugas akhir, baik moril maupun spiritual.

9.

Teman-teman TI’2004 yang lain yang telah menjadi teman seperjuangan
dalam melalui kuliah selama ini.

Akhirnya skripsi ini terselesaikan, disadari bahwa skripsi ini jauh dari
sempurna. Untuk itu penulis dengan rendah hati mengharapkan kritik dan saran
yang dapat memberikan kesempurnaan pada penulisan skripsi ini. Akhir kata,
semoga skripsi ini dapat bermanfaat bagi penulis, juga pihak yang membutuhkan.

Penulis

Yosef Benny Kurniawan

x

DAFTAR ISI

Halaman
HALAMAN JUDUL ……………………………………………………..…

i

HALAMAN JUDUL ………………………………………………………..

ii

HALAMAN PERSETUJUAN PEMBIMBING ………………………….. iii
HALAMAN PENGESAHAN …………………………………..………….

iv

HALAMAN KEASLIAN KARYA …………..……………………………

v

INTISARI …………………………………………………………………..


vi

ABSTRACT ……………………………………………………………......

vii

LEMBAR PERNYATAAN PUBLIKASI ……………………………....... viii
KATA PENGANTAR …………………....................……………………..

ix

DAFTAR ISI ………………………………………………………………... xi
DAFTAR TABEL ………………………………………………………..… xvi
DAFTAR GAMBAR ………………………………………………………. xvii
BAB I PENDAHULUAN ……………….…………………......................

1

1.1


Latar Belakang Masalah ...……………………………….…………..

1

1.2

Rumusan Masalah …...……………………………….……………..

2

1.3

Batasan Masalah ………………………………………...…………..

2

1.4

Tujuan ………………………………………………...…………….


3

1.5

Metodologi …………………………………………...……………..

3

1.6

Sistematika Penulisan ………………………………...…………….

4

xi

BAB II LANDASAN TEORI ……………………………………………

6


2.1

Sistem Informasi …………………………………………………….

6

2.2

Simulasi …………………………………….……………………….

8

2.2.1 Simulasi dan Pemodelan ………………..……….……………..

8

2.2.2 Kelebihan dan Kekurangan Simulasi ………………….............. 9
2.3

Metode Prototyping …………………………………………………… 10
2.3.1 Tahapan-tahapan Prototyping ………………………………… 11
2.3.2 Keunggulan dan Kelemahan Prototyping …………………….

12

2.4

Macromedia Flash 8 …………………………………………….…….. 13

2.5

Sistem Operasi ………………………………………………………..

15

2.5.1 Pengertian Umum Sistem Operasi ……………………………

15

2.5.2 Konsep Dasar Sistem Operasi ………………………………..

16

2.6

Central Processing Unit (CPU) ………………………………...........

19

2.7

Penjadwalan CPU ………………………………………………........

19

2.7.1 Sasaran Utama Penjadwalan CPU ……………………………

20

2.7.2 Tipe-tipe Penjadwalan CPU ………………………………….

21

2.7.3 Strategi Penjadwalan CPU ……………………………………

23

2.7.4 Penjadwalan CPU …………………………………….………

24

2.7.4.1 First Come First Serve (FCFS) …………….............

25

2.7.4.2 Shortest Job First (SJF) ……………………............

26

2.7.4.3 Round Robin (RR) ………………………..….………

27

2.7.4.4 Priority ………………………………………………

29

xii

BAB III ANALISIS DAN PERANCANGAN SISTEM ..........................

31

3.1

Analisis Sistem …………………………………………………….….

31

3.1.1 Analisis Masalah ……………………………………….……..

31

Perancangan Sistem ………………………..…………………….……

33

3.2.1 Desain Model Secara Umum ………………..…………….….

33

3.2.1.1 Diagram Use Case ……………………………….….

33

3.2.1.2 Tabel Penjelasan Use Case …………………….……

34

3.2.1.3 Struktur Menu ………………………………….……

36

3.2.1.4 Desain Modul (Flowchart) ………………….………

36

3.3

Perangkat Keras dan Perangkat Lunak ……...………………….……

37

3.4

Perancangan Menu Antar Muka ..………………………………….…

37

BAB IV IMPLEMENTASI DAN PEMBAHASAN ……………….…….

42

4.1

Implementasi Program ………………………….…………………….

42

4.1.1 Halaman Utama ………………………………….……………

42

4.1.2 Halaman Menu Utama ……………………………….……….

44

4.1.2.1 Menu Materi …………………….………………….

45

4.1.2.2 Menu Simulasi ……………………….……………..

52

4.1.2.3 Menu Bantuan ……………………….………………

60

Kuisioner ……………………………………………………….……..

62

4.2.1 Kuisioner dan Cara Pengumpulan Datanya ………….……….

62

4.2.2 Sasaran Kuisioner …………………….……………………….

63

4.2.3 Form Kuisioner …………………………….…………………

63

4.2.4 Hasil dan Pembahasan ………………………………………...

64

3.2

4.2

xiii

4.3

Pembahasan …………………………………………………………..

68

4.4

Testing Program ……………………………………………………..

69

4.4.1 Sampel Data I …………………………………………………

70

4.4.1.1 Data I pada algoritma FCFS ………………………..

70

4.4.1.2 Data I pada algoritma SJF Nonpreemtive ……………

73

4.4.1.3 Data I pada algoritma SJF Preemtive ……………….

75

4.4.1.4 Data I pada algoritma RR ……………………………

77

4.4.1.5 Data I pada algoritma Priority Nonpreemtive ……….

79

4.4.1.6 Data I pada algoritma Priority Preemtive ……………

81

4.4.2 Sampel Data II ………………………………………………..... 83
4.4.2.1 Data II pada algoritma FCFS …………………………. 83
4.4.2.2 Data II pada algoritma SJF Nonpreemtive ……………. 86
4.4.2.3 Data II pada algoritma SJF Preemtive ………………... 88
4.4.2.4 Data II pada algoritma RR ……………………………. 90
4.4.2.5 Data II pada algoritma Priority Nonpreemtive ……….. 92
4.4.2.6 Data II pada algoritma Priority Preemtive …………… 94
4.4.3 Sampel Data III ………………………………………………… 96
4.4.3.1 Data III pada algoritma FCFS ………………………..

96

4.4.3.2 Data III pada algoritma SJF Nonpreemtive ………….

99

4.4.3.3 Data III pada algoritma SJF Preemtive ……………… 101
4.4.3.4 Data III pada algoritma RR ………………………….. 103
4.4.3.5 Data III pada algoritma Priority Nonpreemtive ……... 105
4.4.3.6 Data III pada algoritma Priority Preemtive …………. 107

xiv

4.4.4 Sampel Data IV ……………………………………………….. 109
4.4.4.1 Data IV pada algoritma FCFS ………………………. 109
4.4.4.2 Data IV pada algoritma SJF Nonpreemtive …………. 112
4.4.4.3 Data IV pada algoritma SJF Preemtive ……………… 114
4.4.4.4 Data IV pada algoritma RR …………………………. 116
4.4.4.5 Data IV pada algoritma Priority Nonpreemtive …….. 118
4.4.4.6 Data IV pada algoritma Priority Preemtive …………. 120
4.4.5 Sampel Data V ………………………………………………… 122
4.4.5.1 Data V pada algoritma FCFS ……………………….. 122
4.4.5.2 Data V pada algoritma SJF Nonpreemtive ………….. 125
4.4.5.3 Data V pada algoritma SJF Preemtive ………………. 127
4.4.5.4 Data V pada algoritma RR ………………………...… 129
4.4.5.5 Data V pada algoritma Priority Nonpreemtive ……… 131
4.4.5.6 Data V pada algoritma Priority Preemtive ………….. 133
BAB V PENUTUP …………………………………………………………

138

5.1

Kesimpulan …………………………………………………………… 138

5.2

Saran …………………………………………………………………..

138

DAFTAR PUSTAKA ……………………………………………………… 140
LAMPIRAN ………………………………………………………………... 141

xv

DAFTAR TABEL

Tabel

Keterangan

Halaman

2.1

Tabel Status Dasar Proses

16

3.1

Tabel Penjelasan Use Case

35

4.1

Data I

71

4.2

Data II

84

4.3

Data III

97

4.4

Data IV

110

4.5

Data V

123

4.6

Perbandingan Nilai Average Waiting Time (AWT)

136

4.7

Perbandingan nilai waktu rata-rata selesai semua proses

137

xvi

DAFTAR GAMBAR

Gambar
2.1

Keterangan
Hubungan Pemodelan dan Simulasi

Halaman
8

2.2

Diagram Status Dasar Proses

17

3.1

Diagram Use Case

34

3.2

Struktur Menu

37

3.3

Diagram Flowchart

37

3.4

Tampilan Halaman Utama

38

Tampilan Antar Muka bila pengguna menekan tombol
3.5

39
masuk

3.6

Tampilan dari sub-menu Materi bila ditekan

40

3.7

Tampilan materi dari salah satu sub-materi bila ditekan

40

Tampilan simulasi bila pengguna menekan tombol menu
3.8

41
Simulasi

3.9

Tampilan dari menu Bantuan

42

4.1

Tampilan Halaman Utama

44

4.2

Tombol MENU UTAMA yang diberi action script

44

4.3

Tombol KELUAR yang diberi action script

45

4.4

Tampilan halaman MENU UTAMA

45

4.5

Tombol back yang diberi action script

46

4.6

Tampilan tombol Materi

46

xvii

4.7

Salah satu tampilan Materi Algoritma Penjadwalan

48

4.8

Salah satu tampilan dari Materi First Come First Serve

49

4.9

Salah satu tampilan dari Materi Shortest Job First

49

4.10

Salah satu tampilan dari Materi Round Robin

50

4.11

Salah satu tampilan dari Materi Priority

51

4.12

Tombol next back dalam setiap menu materi

52

4.13

Tombol Home

52

4.14

Halaman Simulasi

53

4.15

Pesan Error

54

4.16

Diagram Status Proses

59

4.17

Diagram Waktu Kedatangan

60

4.18

Gant Chart

60

4.19

Tampilan Halaman Bantuan

61

4.20

Tombol next dan tombol back

62

4.21

Tombol close menu bantuan

62

4.22

Form Kuisioner

64

4.23

Perhitungan hasil kuisioner pertanyaan 1

65

4.24

Perhitungan hasil kuisioner pertanyaan 2

65

4.25

Perhitungan hasil kuisioner pertanyaan 3

66

4.26

Perhitungan hasil kuisioner pertanyaan 4

66

4.27

Perhitungan hasil kuisioner pertanyaan 5

67

4.28

Perhitungan hasil kuisioner pertanyaan 6

67

xviii

4.29

Perhitungan hasil kuisioner pertanyaan 7

68

4.30

Perhitungan hasil kuisioner pertanyaan 8

68

4.31

Perhitungan hasil kuisioner pertanyaan 9

69

4.32

Visualisasi data I Algoritma FCFS

72

4.33

Visualisasi data I Algoritma SJF Nonpreemtive

74

4.34

Visualisasi data I Algoritma SJF Preemtive

76

4.35

Visualisasi data I Algoritma RR

78

4.36

Visualisasi data I Algoritma Priority Nonpreemtive

80

4.37

Visualisasi data I Algoritma Priority Preemtive

82

4.38

Visualisasi data II Algoritma FCFS

85

4.39

Visualisasi data II Algoritma SJF Nonpreemtive

87

4.40

Visualisasi data II Algoritma SJF Preemtive

89

4.41

Visualisasi data II Algoritma RR

91

4.42

Visualisasi data II Algoritma Priority Nonpreemtive

93

4.43

Visualisasi data II Algoritma Priority Preemtive

95

4.44

Visualisasi data III Algoritma FCFS

98

4.45

Visualisasi data III Algoritma SJF Nonpreemtive

100

4.46

Visualisasi data III Algoritma SJF Preemtive

102

4.47

Visualisasi data III Algoritma RR

104

4.48

Visualisasi data III Algoritma Priority Nonpreemtive

106

4.49

Visualisasi data III Algoritma Priority Preemtive

108

4.50

Visualisasi data IV Algoritma FCFS

111

xix

4.51

Visualisasi data IV Algoritma SJF Nonpreemtive

113

4.52

Visualisasi data IV Algoritma SJF Preemtive

115

4.53

Visualisasi data IV Algoritma RR

117

4.54

Visualisasi data IV Algoritma Priority Nonpreemtive

119

4.55

Visualisasi data IV Algoritma Priority Preemtive

121

4.56

Visualisasi data V Algoritma FCFS

124

4.57

Visualisasi data V Algoritma SJF Nonpreemtive

126

4.58

Visualisasi data V Algoritma SJF Preemtive

128

4.59

Visualisasi data V Algoritma RR

130

4.60

Visualisasi data V Algoritma Priority Nonpreemtive

132

4.61

Visualisasi data V Algoritma Priority Preemtive

134

xx

BAB I
PENDAHULUAN

1.1 Latar Belakang Masalah
Perkembangan teknologi sekarang ini sudah mengalami kemajuan yang
sangat pesat, terlebih lagi teknologi sekarang pasti tidak akan lepas dari
sistem komputer, dan perkembangan teknologi komputer saat ini juga sudah
banyak dipengaruhi oleh Sistem Operasi. Sistem Operasi menyediakan suatu
lingkungan yang memungkinkan user dapat menjalankan program, membuat
sistem komputer dapat digunakan secara mudah, tepat dan juga membuat
sistem komputer dapat menggunakan hardware secara efisien (Iwan Binanto,
2005).
Operasi-operasi kerja yang dilakukan oleh CPU tersebut memerlukan
suatu sistem pengaturan ukuran beban kerja bagi suatu sistem komputer dapat
diselesaikan secara cepat dan tepat. Ketika banyak proses berjalan bersamaan,
sistem operasi harus memutuskan proses mana yang harus berjalan pertama
kali. Bagian dari sistem operasi yang menangani hal ini disebut dengan
Scheduler (Penjadwal). Algoritma yang digunakan disebut dengan Algoritma
Penjadwalan (Iwan Binanto, 2005).
Dalam

algoritma

penjadwalan

sering

dalam

pengerjaannya

menggunakan data-data dan disertai gambar seperti diagram status proses dan
gant chart yang menunjukkan datangnya suatu proses. Dengan adanya
visualisasi algoritma penjadwalan membuat penulis merasa perlu untuk

1

2

membahas masalah ini dengan membuat simulasi cara kerja dari algoritma
penjadwalan dalam berbagai keadaan masukan yang diberikan sehingga dapat
membantu pengguna dalam memahami proses dari suatu algoritma
penjadwalan.
Dengan demikian, penulis berharap tugas akhir ini dapat memberikan
gambaran tentang cara kerja algoritma FCFS, SJF Nonpreemtive, SJF
Preemtive, RR, Priority Nonpreemtive dan Priority Preemtive.

1.2 Rumusan Masalah
Bagaimana membantu pengguna dalam memahami tentang algoritma
penjadwalan dengan bantuan visualisasi.

1.3 Batasan Masalah
Program ini dibuat dengan batasan sebagai berikut:
1. Program mensimulasikan algoritma penjadwalan satu tingkat, algoritma
yang disimulasikan adalah algoritma FCFS, SJF Nonpreemtive, SJF
Preemtive, RR, Priority Nonpreemtive dan Priority Preemtive.
2. Program mensimulasikan tidak mensimulasikan algoritma penjadwalan
dua tingkat, seperti Multilevel Queue dan Multilevel Feedback Queue.
Karena penjadwalan satu tingkat sudah dapat mewakili penjadwalan dua
tingkat yang juga terdapat preemtive dan priority.

3

3. Jumlah proses yang digunakan untuk masing-masing simulasi algoritma
maksimal sampai dengan 5 proses. Karena 5 proses dirasa sudah dapat
menunjukkan simulasi cara kerja dari algoritma penjadwalan.
4. Program memvisualisasikan Diagram Status Proses, Diagram Waktu
Kedatangan, Gant Chart, Mulai Tunggu, Selesai Tunggu, Mulai Proses,
Selesai Proses, Lama Tunggu dan AWT (Average Waiting Time).

1.4 Tujuan
Tujuan dari penulisan ini adalah untuk membantu pengguna dalam
memahami algoritma penjadwalan dengan bantuan visualisasi.

1.5 Metodologi Penelitian
Metode yang digunakan untuk menyelesaikan penulisan ini adalah
metodologi prototyping (Roger Pressman, 1997) yang meliputi beberapa
proses diantaranya:
1. Pengumpulan kebutuhan
Pengembang dan user menemukan bersama tujuan perangkat lunak beserta
seluruh kebutuhannya.
2. Desain cepat
Desain memfokuskan pada representasi dari semua aspek perangkat lunak,
seperti pendekatan untuk memasukkan data, format keluaran. Perancang
mengarah pada pembangunan prototype.

4

3. Pembangunan prototype
Pembangunan prototype didasarkan pada proses desain cepat.
4. Evaluasi pelanggan terhadap prototype
Prototype diberikan pelanggan untuk dievaluasi apakah sesuai denga
permintaan

pengguna.

Pengguna dan

pengembang mendiskusikan

perubahan yang diinginkan.
5. Perbaikan prototype
Perbaikan prototype dilakukan berdasarkan hasil evaluasi. Proses iterasi
terjadi menyertai proses ini, kecuali jika kebutuhan pengguna sudah
terpenuhi.
6. Produk rekayasa
Berupa perangkat lunak yang mendekati kebutuhan pengguna.

1.6 Sistematika Penulisan
BAB I

PENDAHULUAN
Bab ini akan berisi Latar Belakang Masalah, Rumusan Masalah
Batasan Masalah, Tujuan, Metodologi, dan Sistematika Penulisan.

BAB II

LANDASAN TEORI
Bab ini akan berisi tentang teori-teori dari metodologi yang
digunakan, sistem operasi, algoritma penjadwalan, macromedia
flash dan bahasa pemrograman action script.

5

BAB III

ANALISA DAN PERANCANGAN SISTEM
Bab ini akan membahas rancangan konsep dari sistem,
perancangan antarmuka sistem dan pengumpulan bahan.

BAB IV

IMPLEMENTASI DAN PEMBAHASAN
Bab ini akan menjelaskan secara rinci tentang program pada setiap
bagian dan hasil dari kuisioner yang disebarkan kepada pengguna
secara acak.

BAB V

KESIMPULAN DAN SARAN
Bab ini berisi Kesimpulan dan Saran untuk sistem yang telah
dibuat agar ada pengembangan yang lebih baik untuk masa yang
akan datang.

DAFTAR PUSTAKA
LAMPIRAN

BAB II
LANDASAN TEORI

2.1 Sistem Informasi
Sistem informasi adalah sekumpulan komponen yang mempunyai fungsi
berbeda-beda, saling berinteraksi dan bekerja sama untuk menghasilkan satu
tujuan yang sama (Jogianto, 1999). Tujuan dari sistem informasi adalah untuk
menyediakan dan menyusun informasi yang merefleksikan seluruh kejadian
yang diperlukan untuk mengendalikan beberapa operasi. Operasi tersebut
diantaranya

mengambil,

mengolah,

menyimpan,

dan

menyampaikan

informasi yang diperlukan.
Kriteria sistem informasi yang baik mengacu pada 3 hal, yaitu akurat, tepat
pada waktunya, dan relevan (Jogianto, 1999). Akurat berarti kualitas dari
sistem informasi harus bebas dari kesalahan-kesalahan, tidak menyesatkan,
serta harus jelas mencerminkan maksudnya. Tepat pada waktunya berarti
informasi yang datang pada penerima tidak boleh terlambat karena informasi
merupakan landasan dalam pengambilan keputusan. Mahalnya nilai informasi
disebabkan cepatnya informasi tersebut didapat, sehingga diperlukan
teknologi yang mutakhir untuk mendapatkan, mengolah dan mengumumkan.
Sedangkan relevan berarti informasi harus mempunyai manfaat dan dapat
semakin mempermudah kinerja dari pemakainya. Relevansi informasi untuk
setiap orang satu sama lain berbeda, tergantung dari maksud dan tujuan
masing-masing orang tersebut.
6

7

Tahap-tahap

pembuatan

Sistem

Informasi

mencakup

beberapa

hal,

diantaranya :
1. Perencanaan
Sebelum suatu sistem informasi dikembangkan umumnya terlebih
dahulu dimulai dengan adanya suatu kebijakan dan perencanaan untuk
mengembangkan sistem itu. Tanpa adanya perencaan sistem yang baik,
pengembangan system tidak akan dapat berjalan sesuai dengan yang
diharapkan.
2. Analisa Sistem
Didalam tahap analisia sistem tedapat langkah-langkah dasar yang
harus dilakukan, yaitu :
1) Identify, yaitu mengidentifikasi masalah.
2) Understand, yaitu memahami kerja sistem yang ada.
3) Analyze, yaitu menganalisa sistem.
3. Desain Sistem
Tahap desain sistem mempunyai beberapa tujuan yaitu :
1) Untuk memenuhi kebutuhan kepada pemakai sistem.
2) Untuk memberikan gambaran yang jelas dan rancang bangun yang
lengkap kepada progamer yang terlibat.

8

4. Implementasi sistem dan testing
Merupakan proses pembuatan program dari sistem baru yang
diusulkan dan sebelum program diterapkan maka program harus terlebih
dulu bebas dari 9 kesalahan. Oleh karena itu program harus diuji untuk
menemukan kemungkinan yang terjadi. (Jogianto, 1999)

2.2 Simulasi
2.2.1 Simulasi dan Pemodelan
Simulasi adalah proses pembuatan desain model dari suatu sistem
nyata secara matematika dan logika, kemudian model tersebut
diimplementasikan dengan percobaan berbasis komputer untuk
menjelaskan, menggambarkan, dan memprediksi kelakuan atau perilaku
dari sistem nyata tersebut (Hoover dan Perry, 1989).
Menurut Suryadi dan Ramdhani (1998), simulasi sebagai alat
deskriptif

diartikan

sebagai

alat

untuk

menerangkan

atau

memperkirakan karakter sistem pada keadaan yang berbeda, karena itu
tidak ada simulasi yang secara otomatis akan mendapatkan solusi yang
optimal .

Gambar 2.1 Hubungan Pemodelan dan Simulasi

9

Sistem nyata merupakan sistem yang mewakili dunia nyata dengan
kepentingan tertentu. Model menyatakan sekumpulan instruksi yang
menggambarkan sistem nyata. Komputer merupakan sarana yang
digunakan untuk melakukan proses perhitungan dari data dan informasi
yang tersedia. Pemodelan menjelaskan hubungan antara sistem nyata
dengan model. Sedangkan simulasi menjelaskan antara model dan
komputer. Untuk melakukan validasi terhadap model, kita perlu
melakukan konsultasi dengan ahli yang terkait dalam sistem yang
dimodelkan. Sedangkan untuk meneliti kelayakan hasil simulasi, kita
melakukan verifikasi yaitu bagaimana kemampuan model untuk
mewakili dunia nyata dengan melihat tingkat kesamaan antar data
sistem nyata dengan data yang dibandingkan model (Suryadi dan
Ramdhani, 1998).
2.2.2 Kelebihan dan Kekurangan Simulasi
1. Kelebihan Simulasi
Menurut Suryadi dan Ramdhani (1998), kelebihan dari simulasi
antara lain:
1) Model yang sudah dibuat dapat dipergunakan berulang untuk
menganalisis tujuan.
2) Analisis dengan metode simulasi dapat dilakukan dengan
masukan data yang bervariasi.
3) Simulasi memungkinkan untuk melakukan studi suatu system
jangka panjang dalam waktu yang relatif singkat.

10

4) Sistem memungkinkan untuk melakukan percobaan terhadap
sistem tanpa adanya resiko pada sistem nyata.
2. Kekurangan Simulasi
Menurut Suryadi dan Ramdhani (1998), kekurangan dari
simulasi antara lain:
1) Model simulasi memerlukan waktu yang cukup banyak untuk
pengembangannya.
2) Kualitas dan analisis model tergantung pada kualitas keahlian si
pembuat model.

2.3 Metodologi Prototyping
Prototyping merupakan salah satu metode pengembangan perangkat
lunak yang banyak digunakan. Dengan metode prototyping ini pengembang
dan pelanggan dapat saling berinteraksi selama proses pembuatan sistem
(Hery Setiawan, 2009).
Sering terjadi seorang pelanggan hanya mendefinisikan secara umum
apa yang dikehendakinya tanpa menyebutkan secara detal output apa saja
yang dibutuhkan, pemrosesan dan data-data apa saja yang dibutuhkan.
Sebaliknya disisi pengembang kurang memperhatikan efesiensi algoritma,
kemampuan sistem operasi dan interface yang menghubungkan manusia dan
komputer (Roger Pressman, 1997).
Untuk mengatasi ketidakserasian antara pelanggan dan pengembang,
maka harus dibutuhkan kerjasama yang baik diantara keduanya sehingga

11

pengembang akan mengetahui dengan benar apa yang diinginkan pelanggan
dengan tidak mengesampingkan segi-segi teknis dan pelanggan akan
mengetahui proses-proses dalam menyelesaikan sistem yang diinginkan.
Dengan demikian akan menghasilkan sistem sesuai dengan jadwal waktu
penyelesaian yang telah ditentukan (Roger Pressman, 1997).
Kunci agar model prototype ini berhasil dengan baik adalah dengan
mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan
pengembang harus setuju bahwa prototype dibangun untuk mendefinisikan
kebutuhan. Prototype akan dihilangkan sebagian atau seluruhnya dan
perangkat lunak aktual direkayasa dengan kualitas dan implementasi yang
sudah ditentukan (Hery Setiawan, 2009).
2.3.1 Tahapan-tahapan Prototyping
Menurut

Hery

Setiawan

(2009).

Tahapan-tahapan

dalam

Prototyping adalah sebagai berikut:
1. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format
seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan
garis besar sistem yang akan dibuat.
2. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara
yang berfokus pada penyajian kepada pelanggan (misalnya dengan
membuat input dan format output).

12

3. Evaluasi prototyping
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang
sudah dibangun sudah sesuai dengan keinginan pelanggan. Jika sudah
sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi
dengan mengulangu langkah 1, 2 , dan 3.
4. Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan
ke dalam bahasa pemrograman yang sesuai.
5. Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai,
harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan
White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain.
6. Evaluasi Sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai
dengan yang diharapkan . Juka ya, langkah 7 dilakukan; jika tidak,
ulangi langkah 4 dan 5.
7. Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk
digunakan.
2.3.2 Keunggulan dan Kelemahan Prototyping
Menurut Hery Setiawan (2009). Keunggulan prototyping adalah:
1. Adanya komunikasi yang baik antara pengembang dan pelanggan.

13

2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan
pelanggan.
3. Pelanggan berperan aktif dalam pengembangan sistem.
4. Lebih menghemat waktu dalam pengembangan sistem.
5. Penerapan menjadi lebih mudah karena pemakai mengetahui apa
yang diharapkannya.

Menurut Hery Setiawan (2009). Kelemahan prototyping adalah :
1. Pelanggan kadang tidak melihat atau menyadari bahwa perangkat
lunak yang ada belum mencantumkan kualitas perangkat lunak
secara keseluruhan dan juga belum memikirkan kemampuan
pemeliharaan untuk jangja waktu lama.
2. Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga
menggunakan algoritma dan bahasa pemrograman yang sederhana
untuk membuat prototyping lebih cepat selesai tanpa memikirkan
lebih lanjut bahwa program tersebut hanya merupakan cetak biru
sistem.
3. Hubungan pelanggan dengan komputer yang disediakan mungkin
tidak mencerminkan teknik perancangan yang baik.

2.4 Macromedia Flash 8
Macromedia flash adalah sebuah salah satu program animasi yang
paling fleksibel dalam membuat suatu hasil karya animasi. Macromedia flash

14

sangat bermanfaat untuk membuat animasi interaktif maupun non-interaktif
yang dilengkapi dengan bahasa pemrograman ActionScript. Sintaks dan tata
bahasa dalam ActionScript mirip dengan bahasa pemrograman berorientasi
object. Macromedia flash biasanya digunakan untuk membuat animasi web,
iklan, maupun pembuatan film-film animasi dua dimensi.
Keunggulan dari macromedia flash ini dari program-program yang
lain adalah :
1. Dapat membuat tombol interaktif dengan sebuah movie atau object yang
lain.
2. Dapat membuat perubahan transparansi warna dalam movie.
Pemrograman dengan ActionScript pada Macromedia flash dapat
digunakan untuk pembuatan visualisasi di segala bidang terutama aplikasi
interaktif berbasis web. ActionScript adalah pemrograman visual berorientasi
object. Seperti JavaScipt, ActionScript mempunyai sintaks, tata bahasa, dan
struktur yang mirip dengan bahasa pemrograman C++. Salah satu fungsi dari
ActionScript dalam macromedia Flash adalah untuk memberikan suatu
tampilan tools yang sangat interaktif dengan penggunanya.
Beberapa fungsi-fungsi dasar dari ActionScript diantaranya :
1. Go To – melompat ke frame atau scene.
2. Play dan Stop – untuk menjalankan dan menghentikan movie.
3. Toggle High Quality – untuk mengatur kualitas tampilan movie.
4. Stop All Sounds – menghentikan suara pada movie
5. Get URL – berpindah ke URL lain.

15

6. FSCommand – mengontrol action yang berjalan pada Flash player
7. Load Movie, Unload Movie – menambah dan menghilangkan movie.
8. Tell Target – mengontrol movie lain dari movie clip.
9. Onmovie Event – action bila mouse event.

2.5 Sistem Operasi
2.5.1 Pengertian Umum Sistem Operasi
Sistem operasi adalah software sistem komputer yang membantu
hardware dalam menjalankan fungsi-fungsi manajemen proses atau
kontrol proses. Sistem operasi merupakan resource manager yang akan
menentukan proses mana yang harus terlebih dahulu dikerjakan, apabila
terdapat dua atau lebih proses yang akan dikerjakan secara bersamaan.
Sistem operasi bertanggung jawab mengatur agar semua resource
(CPU, I/O device, memory) dapat berjalan secara efisien (Iwan Binanto,
2005).
Sebuah Sistem operasi adalah bagian terpenting dari sebagian besar
dari setiap sistem komputer. Sebuah sistem komputer secara umum
dapat dibagi menjadi empat komponen (Iwan Binanto, 2005), yaitu:
1. Hardware (CPU, I/O devices)
2. Sistem Operasi
3. Program-program aplikasi (misalnya: compilers, system database,
video games, program bisnis)
4. User (manusia, mesin atau komputer lain)

16

2.5.2 Konsep Dasar Sistem Operasi
1. Proses
Proses merupakan konsep paling mendasar pada sistem operasi,
karena semua pengelolahan sistem operasi dikaitkan dengan proses.
Proses adalah program yang sedang dieksekusi atau sesuatu yang
dinamis. PCB (Process Control Block) merupakan tempat untuk
menyimpan satu proses dan merupakan record yang sangat besar dan
tempat menyimpan semua informasi. Tiap PCB mengandung semua
informasi tentang proses yang diperlukan oleh sistem operasi.
2. Status Proses
Status proses merupakan serangkaian status yang harus dilewati
proses. Dalam tabel 2.1 akan ditunjukan beberapa status dasar yang
dialami proses. Proses dapat berada di salah satu status yang ada dari
status dasar tersebut.
Tabel 2.1 Tabel Status Dasar Proses
Status

Deskripsi

New

Proses yang baru mulai dibangun

Ready

Proses siap (ready) dieksekusi oleh CPU, tapi CPU tidak
bersedia mengeksekusi proses.

Running

Status proses yang sedang dieksekusi oleh CPU.

Waiting

Proses menunggu kejadian untuk melengkapi tugasnya.

Stopped

Program yang sedang di-running dapat berhenti.

Terminated

Proses selesai

17

Gambar 2.2 Diagram Status Dasar Proses

Gambar 2.2 menunjukkan hubungan atau transisi dari statusstatus proses yang digambarkan dalam diagram status dasar proses.
Transisi pada status-status proses yang dilakukan dapat terjadi dalam
berbagai macam kondisi, sehingga transisi ditentukan dari gambar
2.2.
PCB dalam diagram status yang dihubungkan antara satu status
dengan status yang lainnya akan menghasilkan sebuah daftar yang
sering disebut ready list (daftar/antrian siap) yang merupakan
kumpulan proses-proses yang berada di awal antrian dan siap
mengakses CPU.

18

Dispatcher atau low level scheduler (penjadwal/scheduler
proses) adalah alokasi CPU ke proses dengan pengaturan terhadap
register hardware yang penting, dan mencari proses yang ready dan
siap untuk dijalankan (running). Jika tidak ada proses yang ready
untuk dijalankan, maka proses menunggu interrupt dan proses harus
menunggu. Dispatcher diperlukan dalam menjalankan sistem operasi
multiprogramming, dispatcher sering kali membutuhkan akses dari
CPU pada saat CPU tersebut sedang diakses oleh proses lain dalam
running proses. Untuk mendapatkan akses yang sedang dipakai oleh
proses lain tersebut, dibutuhkan adanya:
a. Interrupt
Merupakan sinyal dari luar ke CPU untuk memberitahu
bahwa ada sesuatu yang terjadi atau ada kejadian/event. Jika
terdapat interrupt, proses CPU dapat berhenti dan kemudian
interrupt memanggil interrupt service routine (dipakai untuk
melayani interrupt) untuk memanggil dispatcher, sehingga
dispatcher dapat mengakses CPU untuk melakukan context
switching (satu proses yang ada di CPU diganti dengan proses
yang lain atau memilih proses yang akan dijalankan berikutnya),
sehingga status proses dapat diubah menjadi ready.

19

b. Timer
Menunjukkan lama waktu yang telah digunakan proses dan
merupakan dukungan hardware yang dapat diatur (diatur seperti
jam).

2.6 Central Processing Unit (CPU)
CPU atau processor merupakan sumber dari sistem komputer yang
utama, dapat memanipulasi dan melakukan operasi aritmatika pada data dari
memori. CPU juga mengeksekusi instruksi yang dikontrol oleh processor
lain.
CPU dapat dieksekusi oleh banyak proses dan program. Dalam istilah
penjadwalan berarti terdapat lebih dari satu proses yang akan dijalankan,
maka dari itu peran CPU sangat berguna dalam memutuskan proses mana
yang dapat menggunakan CPU lebih dahulu, kapan CPU tersebut dapat
digunakan dan berapa lama CPU dijalankan. Penjadwalan CPU dapat
memutuskan bahwa sebuah proses dalam antrian yang siap (ready queue)
akan dialokasikan ke CPU.

2.7 Penjadwalan CPU
Penjadwalan adalah fungsi dasar dari suatu sistem opersai. Hampir
semua sumber komputer dijadwalkan sebelum digunakan. CPU salah satu
sumber dari komputer yang penting yang menjadi sentral dari sentral
penjadwalan di sistem operasi.

20

Penjadwalan CPU adalah basis dari multiprogramming sistem operasi.
Dengan men-switch CPU diantara proses. Akibatnya sistem operasi bisa
membuat komputer produktif.
2.7.1 Sasaran Utama Penjadwalan CPU
Sasaran utama penjadwalan CPU adalah optimalisasi kerja menurut
kriteria tertentu. Kriteria untuk mengukur serta optimasi kerja
penjadwalan yang juga merupakan sasaran utama penjadwalan adalah
(Iwan Binanto, 2005):
a. Pemanfaatan CPU (Efisiensi)
Menjaga agar CPU tetap dalam keadaan sibuk, artinya CPU
tidak pernah menganggur, termasuk waktu yang dihabiskan untuk
mengeksekusi program pemakai dan sistem operasi.
b. Adil (Fairness)
Menjaga dan menjamin tiap proses mendapat layanan dari CPU
secara adil (diperlakukan sama), yaitu mendapatkan jatah waktu
CPU yang sama dan tidak ada proses yang tidak mendapat layanan
dari CPU yang dapat mengakibatkan starvation.
c. Throughput
Merupakan jumlah proses yang dapat diselesaikan dalam satuan
unit waktu. Sasarannya adalah memaksimalkan jumlah proses per
satuan unit waktu. Semakin tinggi angka throughput, semakin
banyak kerja yang dilakukan oleh sistem.

21

d. Turn Around Time
Merupakan waktu yang dihabiskan dari saat proses masuk ke
sistem sampai proses diselesaikan oleh sistem. Turn Around Time
merupakan jumlahan dari waktu tunggu di memori, waktu tunggu di
antrian ready, waktu eksekusi di CPU, dan waktu mengerjakan I/O.
e. Response Time
Merupakan jumlah waktu dari proses untuk mulai merespons
atau waktu yang dibutuhkan dari masuk ke sistem sampai respons
pertama muncul.
Kriteria-kriteria tersebut saling bergantung dan dapat pula saling
bertentangan sehingga tidak dimungkinkan optimalisasi semua kriteria
secara simultan.
2.7.2 Tipe-tipe Penjadwalan CPU
Terdapat 3 tipe penjadwalan secara bersama-sama pada Sistem
Operasi yang kompleks (William Stallings, 2001), yaitu:
1. Penjadwalan jangka panjang (long-term scheduler)
2. Penjadwalan jangka menengah (medium-term scheduler)
3. Penjadwalan jangka pendek (short-term scheduler)

1. Penjadwalan jangka panjang (long-term scheduler)
Penjadwalan ini bekerja terhadap antrian batch dan memilih
batch berikutnya yang harus dieksekusi. Biasanya batch adalah

22

proses dengan penggunaan sumber daya yang intensif (seperti waktu
pemroses, memori, perangkat I/O).
2. Penjadwalan jangka menengah (medium-term scheduler)
Penjadwal ini bertugas menangani proses-proses swapping,
mengendalikan transisi dari suspended-to-ready. Swapping adalah
aktivitas pemindahan proses yang tertunda (suspended) dari memori
utama ke memori sekunder hingga proses tertunda selesai dan proses
siap (ready) untuk mengeksekusi CPU.
3. Penjadwalan jangka pendek (short-term scheduler)
Penjadwalan jangka pendek atau CPU Schedulling bertugas
memilih salah satu atau menjadwalkan proses dari ready list agar
memperoleh giliran untuk dieksekusi pada alokasi CPU di memori
utama menurut kebijakan tertentu. Sasaran utama penjadwalan ini
memaksimumkan kinerja untuk memenuhi sekumpulan criteria yang
diharapkan dalam penjadwalan CPU. Penjadwal ini dijalankan setiap
terjadi pengalihan proses untuk memilih proses berikutnya yang
harus dijalankan.
Penjadwalan jangka pendek diaktifkan bila muncul suatu I/O
atau kejadian yang memungkinkan proses yang sedang berjalan
untuk dihentikan oleh proses lain, karena dengan adanya suatu I/O
berarti terjadi interrupt. Penjadwalan jangka pendek memiliki
frekuensi pemakaian yang paling tinggi diantara semua jenis
penjadwal.

23

2.7.3 Strategi Penjadwalan CPU
Strategi penjadwalan mempunyai dua metode, yaitu:
1. Penjadwalan Preemtive
Proses yang sedang berjalan dapat diinterupsi dan dipindah ke
status ready oleh sistem operasi sehingga CPU dapat diambil alih
proses yang lain. Pada penjadwalan preemptive, penjadwal bukan
dihentikan oleh proses lain tapi terutama oleh lama waktu
berjalannya proses, disebut preempt by time (dihentikan oleh waktu).
Sebuah proses tidak dapat mengakses CPU sepanjang waktu yang
telah dijatah tertentu, tetapi sebelumnya semua proses diberi
sejumlah waktu oleh CPU yang disebut kwanta (quantum time) atau
time slice. Suatu proses tidak boleh menggunakan pengolah selama
lebih dari satu kwanta jika ada proses lain dalam daftar siap.
2. Penjadwalan Nonpreemtive
Merupakan proses yang dapat mengakses CPU sepanjang batas
waktu yang diberikan CPU tanpa diganggu oleh proses lain atau
CPU tidak dapat diambil alih oleh proses lain sampai proses itu
selesai mengakses CPU, tanpa dihentikan oleh timer atau sampai ada
I/O. pada penjadwalan nonpreemtive member keuntungan pada
proses yang memiliki waktu eksekusi yang panjang, karena tidak
memiliki context switch.

24

2.7.4 Penjadwalan CPU
Secara umum, teknik penjadwalan CPU dibagi menjadi
penjadwalan CPU satu tingkat dan penjadwalan CPU multitingkat
(multilevel), penggolongan ini selain berdasarkan pada teknik
penjadwalan prosesor adalah penggolongan berdasarkan adanya
prioritas di masing-masing proses, yaitu:
1. Metode penjadwalan tanpa prioritas
2. Metode penjadwalan berprioritas, terdiri dari:
1) Prioritas statis (static priorities), yaitu prioritas tidak berubah.
2) Prioritas dinamis (dynamic priorities), merupakan mekanisme
menanggapi perubahan lingkungan secar beroperasi.
Metode yang menerapkan penjadwalan CPU satu tingkat adalah:
1. First Come First Serve (FCFS)
2. Shortest Job First (SJF)
3. Round Robin (RR)
4. Priority
Metode yang menerapkan penjadwalan CPU multitingkat adalah:
1. Multilevel Queue
2. Feedback Multilevel Queue
2.7.4.1 First Come First Serve (FCFS)
Proses yang pertama kali meminta jatah waktu untuk
menggunakan CPU akan dilayani terlebih dahulu. Pada skema

25

ini, proses yang meminta CPU pertama kali akan dialokasikan
ke CPU pertama kali (Iwan Binanto, 2005).
Misalnya terdapat tiga proses yang dapat dengan urutan
P1, P2, dan P3 dengan waktu CPU-burst dalam milidetik yang
diberikan sebagai berikut :
Process

Burst Time

P1

24

P2

3

P3

3

Gant Chart dengan penjadwalan FCFS adalah sebagai berikut
(Iwan Binanto, 2005) :

Waktu tunggu untuk P1 adalah 0, P2 adalah 24 dan P3
adalah 27 sehingga rata-rata waktu tunggu adalah (0 + 24 +
27)/3 = 17 milidetik. Sedangkan apabila proses dating dengan
urutan P2, P3, dan P1, hasil penjadwalan CPU dapat dilihat
pada gant chart berikut (Iwan Binanto, 2005) :

Waktu tunggu sekarang untuk P1 adalah 6, P2 adalah 0
dan P3 adalah 3 sehingga rata-rata waktu tunggu adalah (6 + 0
+ 3)/3 = 3 milidetik. Rata-rata waktu tunggu kasus ini jauh

26

lebih baik dibandingkan dengan kasus sebelumnya. Pada
penjadwalan CPU dimungkinkan terjadi Convoy effect apabila
proses yang pendek berada pada proses yang panjang.
Algoritma FCFS termasuk non-preemptive. karena,
sekali CPU dialokasikan pada suatu proses, maka proses
tersebut tetap akan memakai CPU sampai proses tersebut
melepaskannya, yaitu jika proses tersebut berhenti atau
meminta I/O.
2.7.4.2 Shortest Job First (SJF)
Pada penjadwalan SJF, proses yang memiliki CPU
burst paling kecil dilayani terlebih dahulu (Iwan Binanto,
2005). Terdapat dua skema :
1. Nonpreemptive, bila CPU diberikan pada proses, maka tidak
bisa ditunda sampai CPU burst selesai.
2. Preemptive, jika proses baru datang dengan panjang CPU
burst lebih pendek dari sisa waktu proses yang saat itu
sedang dieksekusi, proses ini ditunda dan diganti dengan
proses baru. Skema ini disebut dengan Shortest Remaining
Time First (SRTF).
SJF adalah algoritma penjadwalan yang optimal dengan
rata-rata waktu tunggu yang minimal. Misalnya terdapat empat
proses dengan panjang CPU burst dalam milidetik.

27

Process

Arrival Time Burst Time

P1

0.0

7

P2

2.0

4

P3

4.0

1

P4

5.0

4

Penjadwalan

proses

dengan

algoritma

SJF

(nonpreemptive) dapat dilihat pada gant chart berikut (Iwan
Binanto, 2005) :

Waktu tunggu untuk P1 adalah 0, P2 adalah 26, P3
adalah 3 dan P4 adalah 7 sehingga rata-rata waktu tunggu
adalah (0 + 6 + 3 + 7)/4 = 4 milidetik. Sedangkan Penjadwalan
proses dengan algoritma SRTF (preemptive) dapat dilihat pada
gant chart berikut (Iwan Binanto, 2005) :

Waktu tunggu untuk P1 adalah 9, P2 adalah 1, P3
adalah 0 dan P4 adalah 4 sehingga rata-rata waktu tunggu
adalah (9 + 1 + 0 + 4)/4 = 3 milidetik.
2.7.4.3 Round Robin (RR)
Konsep dasar dari algoritma ini adalah dengan
menggunakan time-sharing. Pada dasarnya algoritma ini sama

28

dengan FCFS, hanya saja bersifat preemptive. Setiap proses
mendapatkan waktu CPU yang disebut dengan waktu kuantum
(quantum time) untuk membatasi waktu proses, biasanya 1-100
milidetik.

Setelah

waktu

habis,

proses

ditunda

dan

ditambahkan pada ready queue.
Jika suatu proses memiliki CPU burst lebih kecil
dibandingkan dengan waktu kuantum, maka proses tersebut
akan melepaskan CPU jika telah selesai bekerja, sehingga CPU
dapat segera digunakan oleh proses selanjutnya. Sebaliknya,
jika suatu proses memiliki CPU burst yang lebih besar
dibandingkan dengan waktu kuantum, maka proses tersebut
akan dihentikan sementara jika sudah mencapai waktu
kuantum, dan selanjutnya mengantri kembali pada posisi ekor
dari ready queue, CPU kemudian menjalankan proses
berikutnya.
Jika terdapat n proses pada ready queue dan waktu
kuantum q, maka setiap proses mendapatkan 1/n dari waktu
CPU paling banyak q unit waktu pada sekali penjadwalan
CPU. Tidak ada proses yang menunggu lebih dari (n-1)q unit
waktu. Performansi algoritma round robin dapat dijelaskan
sebagai berikut, jika q besar, maka yang digunakan adalah
algoritma FIFO, tetapi jika q kecil maka sering terjadi context
switch.

29

Misalkan ada 3 proses: P1, P2, dan P3 yang meminta
pelayanan CPU dengan quantum-time sebesar 4 milidetik.
Process

Burst Time

P1

24

P2

3

P3

3

Penjadwalan proses dengan algoritma round robin
dapat dilihat pada gant chart berikut (Iwan Binanto, 2005) :

Waktu tunggu untuk P1 adalah 6, P2 adalah 4, dan P3
adalah 7 sehingga rata-rata waktu tunggu adalah (6 + 4 + 7)/3
= 5.66 milidetik.
2.7.4.4 Priority
Algoritma SJF adalah suatu kasus khusus dari
penjadwalan berprioritas. Tiap-tiap proses dilengkapi dengan
nomor prioritas (integer). CPU dialokasikan untuk proses yang
memiliki prioritas paling tinggi (nilai integer terkecil biasanya
merupakan prioritas terbesar). Jika beberapa proses memiliki
prioritas yang sama, maka akan digunakan algoritma FCFS.
Penjadwalan berprioritas terdiri dari dua skema yaitu non
preemptive dan preemptive. Jika ada proses P1 yang datang
pada saat P0 sedang berjalan, maka akan dilihat prioritas P1.
Seandainya prioritas P1 lebih besar dibanding dengan prioritas

30

P0, maka pada non-preemptive, algoritma tetap akan
menyelesaikan P0 sampai habis CPU burst-nya, dan
meletakkan P1 pada posisi head queue. Sedangkan pada
preemptive, P0 akan dihentikan dulu, dan CPU ganti
dialokasikan untuk P1.
Misalnya terdapat lima proses P1, P2, P3, P4 dan P5
yang datang secara berurutan dengan CPU burst dalam
milidetik.
Process

Burst Time Priority

P1

10

3

P2

1

1

P3

2

3

P4

1

4

P5

5

2

Penjadwalan proses dengan algoritma priority dapat
dilihat pada gant chart berikut (Iwan Binanto, 2005) :

Waktu tunggu untuk P1 adalah 6, P2 adalah 0, P3
adalah 16, P4 adalah 18 dan P5 adalah 1, sehingga rata-rata
waktu tunggu adalah (6 + 0 +16 + 18 + 1)/5 = 8.2 ms.

BAB III
ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem
Seperti yang telah disampaikan di awal, tugas akhir ini akan membahas
mengenai simulasi algoritma penjadwalan pada sistem operasi yang memiliki
fasilitas berupa materi yang disertai animasi untuk memperkenalkan tentang
cara kerja dari algoritma penjadwalan. Analisis sistem sendiri meliputi
beberapa langkah, yaitu:
3.1.1

Analisis Masalah
Algoritma penjadwalan adalah salah satu materi yang dibahas dalam

perkuliahan sistem operasi di Universitas Sanata Dharma (USD). Algoritma
penjadwalan sendiri terdiri dari 5 macam algoritma yang berbeda, First Come
First Serve (FCFS), Shortest Job First (SJF) Preemtive, Shortest Job First
(SJF) Nonpreemtive, Round Robin, Priority Preemtive dan Priority
Nonpreemtive.
First Come First Serve (FCFS) merupakan algoritma dengan
penjadwalan yang paling sederhana, dimana proses yang waktu tibanya lebih
dulu akan dieksekusi pertama kali. Shortest Job First (SJF) Preemtive
merupakan algoritma dengan penjadwalan dimana proses yang terpendek
yang akan dieksekusi pertama kali, tetapi jika proses baru datang dengan
panjang proses lebih pendek dari sisa waktu proses yang saat itu sedang
dieksekusi, proses ini ditunda dan diganti dengan proses baru. Shortest Job

31

32

First (SJF) Nonpreemtive merupakan algoritma dengan penjadwalan dimana
proses yang terpendek yang akan dieksekusi pertama kali, tidak bisa ditunda
sampai proses tersebut selesai. Round Robin, konsep dasar dari algoritma ini
adalah dengan menggunakan time-sharing. Pada dasarnya algoritma ini sama
dengan FCFS, hanya saja bersifat preemptive. Setiap proses mendapatkan
waktu CPU yang disebut dengan waktu kuantum (quantum time) untuk
membatasi waktu proses. Priority Preemtive merupakan algoritma yang
penjadwalannya menggunakan nomor prioritas (integer), prioritas dengan
nomor terkecil akan dieksekusi terlebih dahulu, tetapi jika ada proses baru
yang memiliki prioritas lebih kecil dari proses yang sedang berjalan, maka
proses tersebut akan ditunda dan kemudian digantikan dengan proses yang
baru. Priority Nonpreemtive merupakan algoritma yang penjadwalannya
menggunakan nomor prioritas (int