192
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

repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 2: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

ii

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

Page 3: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia
Page 4: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia
Page 5: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia
Page 6: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

vi

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.

Page 7: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

vii

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.

Page 8: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia
Page 9: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

ix

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.

Page 10: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

x

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

Page 11: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xi

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

Page 12: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xii

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

Page 13: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xiii

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

3.1 Analisis Sistem …………………………………………………….…. 31

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

3.2 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

4.2 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

Page 14: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xiv

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

Page 15: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xv

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

Page 16: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xvi

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

Page 17: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xvii

DAFTAR GAMBAR

Gambar Keterangan Halaman

2.1 Hubungan Pemodelan dan Simulasi 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

3.5 Tampilan Antar Muka bila pengguna menekan tombol

masuk 39

3.6 Tampilan dari sub-menu Materi bila ditekan 40

3.7 Tampilan materi dari salah satu sub-materi bila ditekan 40

3.8 Tampilan simulasi bila pengguna menekan tombol menu

Simulasi 41

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

Page 18: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xviii

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

Page 19: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xix

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

Page 20: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

xx

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

Page 21: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

1

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

Page 22: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 23: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 24: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 25: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 26: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

6

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.

Page 27: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 28: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 29: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 30: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 31: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 32: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 33: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 34: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 35: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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)

Page 36: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 37: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

17

Gambar 2.2 Diagram Status Dasar Proses

Gambar 2.2 menunjukkan hubungan atau transisi dari status-

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

Page 38: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 39: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 40: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 41: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 42: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 43: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 44: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 45: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 46: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 47: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 48: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 49: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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

Page 50: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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.

Page 51: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

31

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

Page 52: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

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 (integer), prioritas dengan nomor terkecil akan

dieksekusi terlebih dahulu tanpa bisa ditunda dan akan dieksekusi sampai

selesai.

Setelah melakukan penelitian, dalam prakteknya, pembelajaran tentang

algoritma banyak mengalami masalah. Yaitu bagaimana alur berjalannya

suatu algoritma. Maka ditemukan secara umum adalah bagaimana cara

memperkenalkan cara kerja dari setiap algoritma penjadwalan tersebut secara

lebih menarik dan interaktif, diantaranya dengan memberikan menu simulasi

pada setiap algoritma penjadwalan.

Page 53: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

33

3.2 Perancangan Sistem

Tahap-tahap yang terdapat dalam perancangan sistem ini adalah sebagai

berikut:

3.2.1 Desain Model Secara Umum

3.2.1.1 Diagram Use Case

USER

<< include >>

<< include >>

<< include >>

<< include >>

<< include >>

<< include >>

<< include >>

<< include >>

<< include >>

<< include >>

<< include >>

<< include >>

Pilih Menu Bantuan

Pilih Menu Simulasi

Pilih Menu Materi

Lihat Cara Penggunaan Simulasi

Lihat Simulasi Priority Preemtive

Lihat Simulasi Priority Nonpreemtive

Lihat Simulasi Round Robin

Lihat Simulasi SJF Preemtive

Lihat Simulasi SJF Nonpreemtive

Lihat Simulasi FCFS

Lihat Materi Algoritma Penjadwalan

Lihat Materi FCFS

Lihat Materi SJF

Lihat Materi Round Robin

Lihat Materi Priority

Gambar 3.1 Diagram Use Case

Page 54: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

34

3.2.1.2 Tabel Penjelasan Use Case

Tabel 3.1 Tabel Penjelasan Use Case

USE CASE KETERANGAN

Pilih Menu Bantuan Di dalam fasilitas ini terdapat satu halaman berupa

satu jendela baru yang berfungsi untuk menjelaskan

cara penggunaan sistem ini.

Pilih Menu Simulasi Di dalam fasilitas ini akan terdapat beberapa jendela

yang akan digunakan pengguna untuk memasukkan

data kemudian menampilkan simulasi dari setiap

algoritma yang dipilh oleh pengguna.

Lihat Simulasi FCFS Pengguna dapat melihat cara kerja dari algoritma

FCFS dari menu simulasi ini.

Lihat Simulasi SJF

Nonpreemtive

Pengguna dapat melihat cara kerja dari algoritma

Simulasi SJF Nonpreemtive dari menu simulasi ini.

Lihat Simulasi SJF

Preemtive

Pengguna dapat melihat cara kerja dari algoritma

Simulasi SJF Preemtive dari menu simulasi ini.

Lihat Simulasi RR Pengguna dapat melihat cara kerja dari algoritma

Simulasi RR dari menu simulasi ini.

Lihat Simulasi Priority

Nonpreemtive

Pengguna dapat melihat cara kerja dari algoritma

Simulasi Priority Nonpreemtive dari menu simulasi

ini.

Lihat Simulasi Priority

Preemtive

Pengguna dapat melihat cara kerja dari algoritma

Simulasi Priority Preemtive dari menu simulasi ini.

Page 55: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

35

Pilih Menu Materi Di dalam fasilitas akan berisi materi dari setiap

algoritma berupa penjelasan singkat serta contoh

kasus, yang berfungsi untuk membantu pengguna

secara teori sebelum menggunakan simulasi.

Lihat Materi Algoritma

Penjadwalan

Pengguna dapat melihat dan mempelajari apa itu

algoritma penjadwalan secara teori.

Lihat Materi FCFS Pengguna dapat melihat dan mempelajari algoritma

FCFS secara teori beserta contoh soalnya secara

singkat.

Lihat Materi SJF Pengguna dapat melihat dan mempelajari algoritma

SJF secara teori beserta contoh soalnya secara singkat.

Lihat Materi RR Pengguna dapat melihat dan mempelajari algoritma

RR secara teori beserta contoh soalnya secara singkat.

Lihat Materi Priority Pengguna dapat melihat dan mempelajari algoritma

Priority secara teori beserta contoh soalnya secara

singkat.

Page 56: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

36

3.2.1.3 Struktur Menu

Menu Utama

Program

Menu Bantuan

Algoritma Penjadwalan

Menu Materi Menu Simulasi

First Come First Serve

Shortest job First Round Robin Priority

Simulasi FCFS

Simulasi SJF Preemtive

Simulasi Round Robin

Simulasi Priority

Preemtive

Simulasi SJF Nonpreemtive

Simulasi Priority

Nonpreemtive

Cara Penggunaan

Simulasi

Gambar 3.2 Struktur Menu

3.2.1.4 Desain Modul (Flowchart)

Flowchart program merupakan bagan yang

menjelaskan secara rinci langkah-langkah dari proses program

secara logika. Berikut ini flowchart dari program aplikasi yang

dikembangkan adalah sebagai berikut:

Start

Halaman Utama

Pilih Menu Materi

TIDAK

Tampilkan Materi-materi dari Algoritma Penjadwalan

YA

Keluar

A

YA

TIDAK

Halaman Utama

Pilih Menu Simulasi

TIDAK

Tampilkan Simulasi dari beberapa Algoritma

Penjadwalan

YA

Keluar

A

YA

TIDAK

A

Halaman Utama

Pilih Menu Bantuan

TIDAK

Tampilkan Penjelasan penggunaan dari program simulasi

Algoritma Penjadwalan

YA

Keluar

YA

TIDAK

A

Halaman Utama

Finish

Gambar 3.3 Diagram Flowchart

Page 57: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

37

3.3 Perangkat Keras dan Perangkat Lunak

Perangkat Keras dan Perangkat Lunak yang digunakan agar sistem ini

dapat berjalan adalah :

1. Perangkat Keras (spesifikasi minimum)

1) Processor : Pentium III, 800 Mhz

2) Memori : 128 Mb

3) Hard Disk

2. Perangkat Lunak

Perangkat lunak yang harus tersedia dalam sebuah komputer untuk

mendukung kerja sistem ini adalah Macromedia Flash 8 atau diatasnya.

Atau minimal sebuah komputer dapat menjalankan sistem ini bila

didalamnya memiliki aplikasi flash player minimal versi 8 atau diatasnya.

3.4 Perancangan Menu Antar Muka

Program Bantu Untuk PembelajaranAlgoritma PenjadwalanDi Bidang Studi Sistem Operasi

MASUK

MASUK

Gambar 3.4 Tampilan Halaman Utama

Page 58: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

38

Ini adalah halaman utama dari program, terdiri dari 2 tombol utama.

Jika pengguna menekan tombol masuk, maka pengguna akan menuju ke

menu seperti gambar 3.5. Bila pengguna menekan tombol keluar, maka

program akan tertutup dan pengguna keluar dari sistem.

MENU UTAMA

MATERI SIMULASI BANTUAN

Program Bantu Untuk PembelajaranAlgoritma PenjadwalanDi Bidang Studi Sistem Operasi

Gambar 3.5 Tampilan Antar Muka bila pengguna menekan tombol

masuk

Ini adalah tampilan antar muka bila pengguna menekan tombol masuk

pada gambar 3.4. Menu utama ini terdiri dari 3 tombol utama, yaitu Materi,

Simulasi dan Bantuan. Menu Materi masih terdiri dari 5 sub-menu, yaitu

Algoritma Penjadwalan, First Come First Serve, Shortest Job First, Round

Robin dan Priority, seperti gambar 3.6.

Page 59: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

39

MENU UTAMA

MATERI SIMULASI BANTUAN

Program Bantu Untuk PembelajaranAlgoritma PenjadwalanDi Bidang Studi Sistem Operasi

Algoritma Penjadwalan

FCFS

SJF

RR

Priority

Gambar 3.6 Tampilan dari sub-menu Materi bila ditekan

Ini adalah tampilan dari sub-menu Materi bila pengguna menekan

tombol Materi, sub-menu tersebut berisi materi-materi dari sub-menu diatas.

Bila pengguna menekan salah satu dari sub-menu tersebut, maka pengguna

dapat melihat dan membaca materi atau teori dari algoritma penjadwalan

(gambar 3.7). Bila pengguna menekan tombol kembali, maka pengguna akan

kembali menuju menu utama atau seperti gambar 3.5.

BERISI MATERI-MATERIDARI ALGORITMA PENJADWALAN

MATERI

SelanjutnyaSebelumnya

Kembali

Gambar 3.7 Tampilan materi dari salah satu sub-materi bila ditekan

Page 60: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

40

SIMULASI ALGORITMA PENJADWALAN

Algoritma Penjadwalan

First Come First Serve

SJF Premtive

SJF Nonpremtive

Round RobinKuantum Waktu = ms

Priority Preemtive

Priority Nonpreemtive

Jumlah Proses = Proses

Data Awal

Nama Proses Saat Tiba Lama Proses Prioritas

P1

P2

P3

P4

P5

Random

Simulasi

Hapus

Pause

New

Ready

Waiting

Running

Terminated

Gant Chart

P1

P2

P3

P4

P5

Jalannya Proses

Nama Proses Mulai tunggu Selesai Tunggu Mulai Proses

P1

P2

P3

P4

P5

AWT atau Average Waiting Time = ms

Selesai Proses

Gambar 3.8 Tampilan simulasi bila pengguna menekan tombol menu

Simulasi

Ini adalah tampilan antar muka untuk menu Simulasi, terdiri dari

beberapa kolom proses untuk memudahkan pengguna dalam memahami

sistem. Pertama pengguna akan memilih algoritma yang akan disimulasikan

yang terdiri dari 6 macam algortima penjadwalan yang tersedia, kemudian

pengguna dapat menentukan jumlah proses yang ingin disimulasikan, dengan

jumlah proses maksimal adalah 5 proses.

Pada kolom Data Awal, pengguna akan memasukkan data-data yang

telah disediakan tempatnya, serta terdapat tombol Random yang berguna

Page 61: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

41

untuk memasukkan data secara acak, juga terdapat beberapa tombol

operasional yang berguna untuk menjalankan simulasi.

Untuk melihat jalannya simulasi, setelah pengguna selesai memasukkan

data-data yang dibutuhkan, maka pengguna dapat menekan tombol Simulasi,

tombol ini berfungsi untuk mensimulasikan dari data awal berdasarkan jenis

algoritma penjadwalan yang dipilih. Terdapat beberapa kolom simulasi, yaitu

Diagram Status Proses, Diagram Waktu Kedatangan dan Gant Chart yang

berfungsi untuk membantu pengguna dalam pemahaman simulasi.

BANTUAN

CARA PENGGUNAAN SISTEM

X

Gambar 3.9 Tampilan dari menu Bantuan

Ini adalah tampilan dari menu Bantuan bila pengguna menekan menu

Bantuan, menu ini berfungsi untuk membantu pengguna dalam penjelesan

cara penggunaan dari sistem, terdapat 3 tombol utama, yaitu next, back dan

close.

Page 62: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

42

BAB IV

IMPLEMENTASI DAN PEMBAHASAN

Implementasi merupakan tahap pengkodean dari hasil perancangan. Pada

bab sebelumnya telah dijelaskan mengenai perancangan sistem. Pada bab ini akan

dijelaskan hasil implementasi dan pembahasan serta hasil dari kuisioner yang

disebarkan kepada pengguna secara acak.

4.1 Implementasi Program

Program simulasi algoritma ini dapat digunakan oleh siapapun yang

ingin mempelajari proses berjalannya sebuah algoritma dan juga dasar-dasar

teori dari algoritma tersebut, dalam hal ini algoritma penjadwalan.

Susunan dari program simulasi algoritma ini terdiri dari sekumpulan

modul-modul flash movie yang terintegrasi antara satu dengan yang lainnya,

sehingga membentuk sebuah aplikasi pembelajaran yang utuh.

4.1.1 Halaman Utama

Pada tahap implementasi ini, penulis terlebih dahulu akan

menjelaskan apa saja komponen dalam sistem baik. Setelah itu akan

dijelaskan cara kerja fasilitas yang ada pada sistem. Berikut ini adalah

tampilan antarmuka halaman utama dari sistem.

Page 63: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

43

Gambar 4.1 Tampilan Halaman Utama

Ditampilan halaman utama terdiri dari dua tombol, yaitu tombol

MENU UTAMA dan tombol KELUAR. Tombol MENU UTAMA

digunakan pengguna untuk menggunakan aplikasi ini lebih lanjut,

berikut action script yang digunakan:

on (press) { gotoAndStop(2); }

Perintah tersebut digunakan untuk menuju jendela frame lain,

dalam hal ini tombol tersebut menginstruksikan sistem agar menuju

frame ‘2’.

Gambar 4.2 Tombol MENU UTAMA yang diberi action script

Sedangkan, tombol KELUAR digunakan pengguna untuk keluar

dari aplikasi ini, berikut action script yang digunakan:

Page 64: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

44

on (press) { fscommand('quit', ""); }

Gambar 4.3 Tombol KELUAR yang diberi action script

4.1.2 Halaman Menu Utama

Bila pengguna menekan tombol MENU UTAMA, maka aplikasi

ini akan menuju halaman berikut:

Gambar 4.4 Tampilan halaman MENU UTAMA

Dihalaman ini pengguna akan menemukan tiga tombol utama

yang digunakan untuk membantu pengguna, yaitu tombol Materi,

tombol Simulasi dan tombol Bantuan. Setiap tombol diberi action script

yang berfungsi untuk pindah menuju jendela baru kemudian melihat

isinya, juga terdapat tombol back yang berfungsi untuk kembali menuju

Page 65: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

45

halaman utama seperti gambar 4.1. Berikut action script yang

digunakan:

on (press) { gotoAndStop(1); //kembali ke frame 1 }

Gambar 4.5 Tombol back yang diberi action script

4.1.2.1 Menu Materi

Menu Materi adalah menu yang digunakan pengguna

untuk mempelajari materi-materi dari algoritma penjadwalan

ini sebelum pengguna menggunakan simulasi dari

algoritmanya. Menu Materi ini berupa tombol yang terdiri dari

beberapa sub-menu, sub-menu tersebut berupa kumpulan

tombol yang disatukan (Group) untuk kemudian diubah

menjadi movie clip yang diberi nama menu_bar_materi, jika

tombol menu Materi ditekan maka akan muncul sub-menu

seperti yang terlihat pada gambar 4.6 berikut:

Gambar 4.6 Tampilan tombol Materi

Sub-menu tersebut terdapat pada frame 1, awalnya

dalam keadaan menu_bar_materi._visible=false; jadi

Page 66: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

46

pengguna tidak dapat melihat sub-menu yang sebenarnya

disembunyikan, kemudian jika tombol Materi ditekan oleh

pengguna maka menu_bar_materi._visible=true; yang

akan dijalankan, berikut action script yang digunakan dalam

tombol Materi:

on (release) { menu_bar_materi._visible=true; }

Berikut action script yang digunakan untuk membuat

sub-menu tersebut, action script tersebut terdapat pada frame

1:

menu_bar_materi._visible = false; menu_bar_materi.algo_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.algo_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_materi.fcfs_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.fcfs_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_materi.sjf_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.sjf_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_materi.rr_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.rr_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_materi.prio_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.prio_btn.onRollOut = function() { menu_bar_materi._visible = false; };

Page 67: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

47

Dalam menu Materi tersebut terdapat lima sub-menu

yang berfungsi untuk membantu pengguna dalam pemahaman

materi dari algoritma penjadwalan, yaitu Algoritma

Penjadwalan, First Come First Serve, Shortest Job First,

Round Robin dan Priority.

Gambar 4.7 Salah satu tampilan Materi Algoritma

Penjadwalan

Dalam materi Algoritma Penjadwalan, disini pengguna

akan mempelajari arti dari algoritma penjadwalan dari konsep

dasar sampai kriteria penjadwalannya, terdapat beberapa

tombol yang berfungsi untuk membantu pengguna, yaitu

tombol Selanjutnya yang digunakan untuk melihat dan

membaca materi selanjutnya, tombol Sebelumnya yang

digunakan untuk melihat dan membaca materi sebelumnya,

dan tombol berupa gambar rumah yang digunakan pengguna

untuk kembali menuju halaman Menu Utama.

Page 68: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

48

Gambar 4.8 Salah satu tampilan dari Materi First Come

First Serve

Didalam materi ini pengguna akan menemukan materi

tentang algoritma FCFS, algoritma FCFS merupakan algoritma

yang paling sederhana, dimana antrian yang lebih dahulu

datang akan dilayani terlebih dahulu, serta terdapat sedikit

contoh masalah yang diharapkan dapat membantu pengguna

dalam pemahaman.

Gambar 4.9 Salah satu tampilan dari Materi Shortest Job First

Page 69: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

49

Didalam materi ini pengguna akan menemukan materi

tentang algoritma SJF, algoritma SJF merupakan algoritma

yang pelayanannya didasarkan pada lama proses yang terkecil

dari setiap proses yang ada, dimana antrian yang memiliki

lama proses terkecil maka akan lebih dahulu akan dilayani,

serta terdapat sedikit contoh masalah yang diharapkan dapat

membantu pengguna dalam pemahaman.

Gambar 4.10 Salah satu tampilan dari Materi Round Robin

Didalam materi ini pengguna akan menemukan materi

tentang algoritma RR, algoritma RR merupakan algoritma

yang cukup adil karena algoritma ini akan menggilir setiap

prosesnya berdasarkan kuantum waktu, dimana setiap proses

akan dijatah sebesar kuantum waktu, serta terdapat sedikit

contoh masalah yang diharapkan dapat membantu pengguna

dalam pemahaman.

Page 70: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

50

Gambar 4.11 Salah satu tampilan dari Materi Priority

Didalam materi ini pengguna akan menemukan materi

tentang algoritma Priority, algoritma Priority merupakan

algoritma yang setiap prosesnya diberi status prioritas dan

proses yang memiliki prioritas tertinggi (dalam kasus ini

berupa nilai integer terkecil) akan dilayani terlebih dahulu,

serta terdapat sedikit contoh masalah yang diharapkan dapat

membantu pengguna dalam pemahaman.

Dalam setiap halaman materi, terdapat tombol yang

berfungsi untuk membantu pengguna, terdapat tiga tombol,

yaitu next (selanjutnya), back (sebelumnya) dan home (gambar

rumah). Tombol selanjutnya digunakan pengguna untuk

pindah menuju halaman berikutnya, sedangkan tombol

sebelumnya digunakan untuk menuju halaman sebelumnya.

Berikut salah satu contoh action script yang digunakan:

on (release) { gotoAndStop(3); }

Page 71: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

51

Script ini diletakkan pada tombol selanjutnya yang

akan berfungsi untuk pindah frame selanjutnya, dalam kasus

ini adalah akan berpindah menuju frame ‘3’.

on (release) { gotoAndStop(1); }

Script ini diletakkan pada tombol sebelumnya yang

akan berfungsi untuk pindah frame sebelumnya, dalam kasus

ini adalah akan berpindah menuju frame ‘1’.

Gambar 4.12 Tombol next back dalam setiap menu materi

Juga terdapat tombol home (gambar rumah) yang

berfungsi untuk pindah halaman menuju halaman menu utama

(gambar 4.4). Berikut contoh action script yang digunakan:

on (release) { _root.gotoAndStop(2);

removeMovieClip(this); }

Script ini diletakkan pada tombol home, perintah ini

akan memindahkan pengguna menuju halaman depan, yaitu

halaman menu utama (gambar 4.4), dalam scene halaman

utama terletak pada root frame ‘2’, removeMovieClip(this);

berfungsi saat pengguna kembali menuju halaman menu

utama, materi yang movie clip tidak terlihat oleh pengguna.

Gambar 4.13 Tombol Home

Page 72: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

52

4.1.2.2 Menu Simulasi

Bagian utama dari program ini adalah simulasi

algoritma penjadwalan disamping materi-materi yang berisi

teori singkat tentang algoritma yang akan disimulasikan

sebagai penunjang. Tampilan awal dari menu simulasi ini

adalah sebagai berikut terlihat pada gambar 4.14.

Gambar 4.14 Halaman Simulasi

Program ini dirancang untuk dinamis, sehingga

memungkinkan pengguna untuk berinteraksi langsung dengan

program ini. Pengguna dapat memasukkan data-data yang akan

disimulasikan. Pertama pengguna diminta untuk memilih jenis

algoritma yang ingin disimulasikan, yang berupa Radio Button.

Jika pengguna memilih algoritma Round Robin maka

pengguna juga diminta untuk menentukan nilai dari kuantum

waktunya. Kemudian pengguna akan menentukan jumlah

proses yang akan disimulasikan, berupa Drop Down Menu,

Page 73: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

53

dengan jumlah proses maksimal adalah 5 proses seperti yang

telah ditentukan. Dan untuk nilai-nilai dari setiap proses

sendiri terdapat waktu saat tiba dan waktu lama proses serta

nilai prioritas untuk algoritma Priority (Nonpreemtive maupun

Preemtive). Jika tidak sesuai dengan batasan aplikasi ini, maka

akan muncul pesan error. Seperti yang terlihat pada gambar

4.15.

Gambar 4.15 Pesan Error

Pesam error tersebut berupa movie clip yang

didalamnya terdapat sebuah dynamic text yang berfungsi untuk

menampilkan pesan error. Terdapat juga tombol X (silang)

yang berfungsi untuk menutup pesan error tersebut.

Pengecekan data masukkan oleh pengguna dilakukan didalam

tombol Simulasi. Berikut potongan action script untuk

keadaan error:

else { _root.error._x = 0; _root.error._y = 0; this.error.error_msg.text="DATA BELUM LENGKAP!!!!!";

Page 74: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

54

} ///* if(cek_data()=='lebih tiba'){ _root.error._x = 0; _root.error._y = 0; this.error.error_msg.text="SAAT TIBA MAKS=10!!!!!"; } //*/ if(cek_data()=='lebih proses'){ _root.error._x = 0; _root.error._y = 0; this.error.error_msg.text="LAMA PROSES MAKS=15!!!!!"; } /// if(cek_data()=='lebih prio'){ _root.error._x = 0; _root.error._y = 0; this.error.error_msg.text="PRIORITAS MAKS=5!!!!!"; } }

Pada saat program dijalankan posisi awal dari movie

clip error berada jauh diluar layar program, tepatnya

dikoordinat (-950, 0). Sehingga pengguna tidak dapat melihat.

Setelah dilakukan pengecekan dan memenuhi untuk terjadinya

kondisi error, maka movie clip pesan error akan diubah

koordinatnya ke posisi tengah, yaitu pada koordinat (0, 0).

Sedangkan action script untuk tombol X (silang) pada pesan

error adalah untuk mengeset kembali koordinat pada posisi

awal, sehingga pesan tersebut tidak terlihat lagi oleh pengguna.

Data-data yang dimasukkan oleh pengguna dapat

dilakukan dengan dua cara. Dengan cara random atau dengan

cara manual. Pada kondisi default maka data yang ditampilkan

adalah sebanyak lima proses. Setiap proses memiliki data-data

berupa waktu saat tiba, lama proses dan prioritas, yang

Page 75: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

55

masing-masing data tersebut merupakan textfield. saattiba_p1

untuk textfield waktu saat tiba proses 1, lamaproses_p1 untuk

textfield waktu lama proses proses 1, prioritas_p1 untuk

textfield prioritas proses 1, saattiba_p2 untuk textfield waktu

saat tiba proses 2, lamaproses_p2 untuk textfield waktu lama

proses proses 2, prioritas_p2 untuk textfield prioritas proses 2

dan seterusnya hingga proses lima. Sehingga memudahkan

untuk menampilkan textfield sebanyak data yang dimasukkan

oleh pengguna.

Untuk masukan data secara manual, pengguna dapat

memasukkan data dengan menggunakan keyboard pada

komputer pengguna untuk menentukan nilainya, untuk

masukan data secara random, data secara otomatis akan

tertampil. Untuk membangkitkan bilangan random digunakan

action script yang berada dibawah ini. Data manual ataupun

random tersebut adalah data numeric yang tentunya nilai ini

dibatasi, untuk waktu saat tiba dengan range antara 0-10,

untuk waktu lama proses dengan range antara 1-15 dan untuk

prioritas dengan range antara 1-5.

on (release) { function randRange(min:Number, max:Number):Number { var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; return randomNum; } ///random p1 var n1:Number = randRange(1, 10) var n2:Number = randRange(1, 15)

Page 76: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

56

var n3:Number = randRange(1, 5) p1_mc.saattiba_p1.text=n1; p1_mc.lamaproses_p1.text=n2; p1_mc.prioritas_p1.text=n3; ///random p2 var m1:Number = randRange(1, 10) var m2:Number = randRange(1, 15) var m3:Number = randRange(1, 5) p2_mc.saattiba_p2.text=m1; p2_mc.lamaproses_p2.text=m2; p2_mc.prioritas_p2.text=m3; ///random p3 var o1:Number = randRange(1, 10) var o2:Number = randRange(1, 15) var o3:Number = randRange(1, 5) p3_mc.saattiba_p3.text=o1; p3_mc.lamaproses_p3.text=o2; p3_mc.prioritas_p3.text=o3; ///random p4 var y1:Number = randRange(1, 10) var y2:Number = randRange(1, 15) var y3:Number = randRange(1, 5) p4_mc.saattiba_p4.text=y1; p4_mc.lamaproses_p4.text=y2; p4_mc.prioritas_p4.text=y3; ///random p5 var z1:Number = randRange(1, 10) var z2:Number = randRange(1, 15) var z3:Number = randRange(1, 5) p5_mc.saattiba_p5.text=z1; p5_mc.lamaproses_p5.text=z2; p5_mc.prioritas_p5.text=z3; }

Setelah data selesai dimasukkan, simulasi sudah dapat

dilakukan. Data yang telah dimasukkan oleh pengguna bisa

digunakan untuk simulasi dengan semua algoritma yang ada.

Untuk memulai simulasi tekan tombol Simulasi. Saat

pengguna menekan tombol Simulasi, maka pengguna akan

melihat proses berjalannya suatu algoritma penjadwalan yang

dipilih oleh pengguna, disini penulis menampilkan beberapa

proses animasi yang diharapkan dapat membantu pengguna

Page 77: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

57

untuk mempelajari proses algoritma, diantaranya terdapat

Diagram Status Proses (gambar 4.16), Diagram Waktu

Kedatangan (gambar 4.17) dan Gant Chart (gambar 4.18).

Diagram Status Proses merupakan serangkaian status

yang harus dilewati oleh proses, seperti yang telah dijelaskan

pada BAB II. Dalam scene, animasi untuk diagram status

proses ini terletak pada bagian Library dengan nama ball_ani,

ball_ani berupa kumpulan dari movie clip masing-masing

proses yang diwakili dengan warna untuk membedakannya,

p1_ball berupa movie clip untuk proses ke-1, p2_ball berupa

movie clip untuk proses ke-2, seterusnya sampai p5_ball

berupa movie clip untuk proses ke-5. Berikut salah satu contoh

action script yang digunakan untuk membuat animasi gerak

pada Diagram Status Proses (p1_ball):

onClipEvent (load) { var id1:Number = 0; var id2:Number = 1; var count:Number = 0; var x1:Number; var x2:Number; var y1:Number; var y2:Number; var dy:Number; var dx:Number; var dy1:Number; var dx1:Number; if (_root.speed == 1) { var speed = 9; } else if (_root.speed == 10) { var speed = 29; } var dist:Number = speed+1;} onClipEvent (enterFrame) { if (id1<_root.jalur.length-1 && id2<_root.jalur.length && _root.jalur.length != 0) {

Page 78: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

58

if (dist>speed) { x1 = (_root[_root.jalur[id1]]._x-20); y1 = (_root[_root.jalur[id1]]._y); x2 = (_root[_root.jalur[id2]]._x-20); y2 = (_root[_root.jalur[id2]]._y); dy = y2-y1; dx = x2-x1; dy1 = Math.abs(y2-this._y); dx1 = Math.abs(x2-this._x); var sudut = Math.atan2(dy, dx); var speedx = speed*Math.cos(sudut); var speedy = speed*Math.sin(sudut); if (x1 == x2 && y1 == y2) { this._x = x1; this._y = y1; } else { this._x = x1+speedx*count; this._y = y1+speedy*count; } dist = Math.sqrt(dy1*dy1+dx1*dx1); count++; } else { count = 1; if (_root.speed == 1) { dist = 10; } else if (_root.speed == 10) { this._x = (_root[_root.jalur[_root.jalur.length-1]]._x-20); this._y = (_root[_root.jalur[_root.jalur.length-1]]._y); dist = 30;} id1++; id2++; } } }

Gambar 4.16 Diagram Status Proses

Diagram Waktu Kedatangan merupakan animasi yang

dibuat untuk membantu pengguna melihat proses yang siap

Page 79: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

59

untuk dieksekusi berdasarkan waktu kedatangan dari setiap

proses. Diagram ini berupa movie clip yang dideklarasikan

pada layer Deklarasi Variabel pada frame 1 yang diberi nama

p1_diagram, untuk proses 1, p2_diagram untuk proses 2 dan

seterusnya sampai p5_diagram untuk proses 5. Action script

untuk melakukan animasi ini:

function diagram_waktu_kedatangan() { for (var i = 0; i<_root.input_proses.text; i++) { _root['name'+(i+1)+'_diagram'].text = "P"+(i+1); _root['p'+(i+1)+'_diagram']._x=(_root.proses[i].saattiba*10)+31; _root['p'+(i+1)+'_diagram']._width= _root.proses[i].lamaproses*10; } }

Gambar 4.17 Diagram Waktu Kedatangan

Pada bagian ini pengguna dapat melihat Gant Chart

merupakan diagram yang berfungsi untuk melihat hasil

eksekusi yang dilakukan oleh setiap algoritma berdasarkan

sistem pengurutan yang digunakan pada algoritma tersebut.

Gambar 4.18 Gant Chart

Page 80: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

60

4.1.2.3 Menu Bantuan

Bila pengguna memilih menu Bantuan, maka aplikasi

akan menuju halaman berikut ini:

Gambar 4.19 Tampilan Halaman Bantuan

Halaman ini berupa movie clip yang diberi nama

‘bantuan’ yang menjelaskan bagaimana cara menggunakan

aplikasi ini, dengan menekan tombol next (untuk pindah

menuju halaman berikutnya) dan back (untuk pindah menuju

halaman sebelumnya). Berikut action script yang terdapat pada

tombol next dan back:

// Tombol next on (release) { _parent.nextFrame(); } // Tombol back on (release) { _parent.prevFrame(); }

Page 81: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

61

Gambar 4.20 Tombol next dan tombol back

Juga terdapat tombol close yang berfungsi pengguna

untuk menutup dari menu bantuan ini, berikut action script

yang digunakan:

on (press) { _parent.removeMovieClip(this); }

Script ini akan memindahkan movie clip parent yang

bernama ‘bantuan’ untuk kemudian kembali pada posisi

semula, yaitu tepatnya pada koordinat (-642.1, 128.8)

Gambar 4.21 Tombol close menu bantuan

Menu bantuan dibuat menjadi sistem Drag and Drop,

berarti menu ini berupa movie clip dan dapat dilihat tanpa

harus pindah jendela, berikut action script untuk membuat

Drag and Drop:

on (press) { dept = _root.getNextHighestDepth(); _parent.swapDepths(_root.getInstanceAtDepth(dept-1)); startDrag(_parent); } on (release) { stopDrag(); } on (releaseOutside) { stopDrag(); }

Page 82: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

62

4.2 Kuisioner

Dari hasil pembuatan aplikasi kemudian penulis melakukan berbagai

evaluasi secara berulang-ulang, salah satunya adalah dengan cara menyebar

kuisioner kepada calon pengguna. Hal ini dilakukan agar penulis dapat melihat

kelayakan berbagai aspek dari aplikasi yang telah dibuatnya dimata calon

penggunanya. Selain itu penyebaran kuisioner ini ditujukan agar penulis dapat

menerima masukan berupa saran dan kritik untuk kemajuan dari aplikasi yang

telah atau akan dibuatnya dikemudian hari.

4.2.1 Kuisioner dan cara pengumpulan datanya

Alat pengumpulan data disebut angket, dan sumber datanya

berupa orang atau disebut dengan istilah responden. Pada metode ini,

pertanyaan diajukan secara tertulis dan disebarkan kepada responden

untuk dijawab. Setelah pertanyaan dijawab, dikembalikan kepada

peneliti. Pertanyaan yang diajukan berupa pertanyaan tertutup. Disebut

pertanyaan tertutup karena pilihan jawabannya telah disediakan dan

responden tinggal memilih jawaban yang sesuai.

Berikut ini adalah beberapa tahap yang dapat dilakukan untuk

mengumpulkan data :

1. Pembuatan kuisioner

Pembuatan kuisioner ini dilakukan secara satu hari. Beberapa topik

yang dapat dibahas dari masing-masing kuisioner adalah topik yang

kiranya lebih mengarah ke evaluasi suatu hasil kerja.

2. Penyebaran kuisioner ke masing-masing responden

Page 83: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

63

Penyebaran kuisioner ini dilakukan kurang lebih selama 4 hari.

3. Penarikan kuisioner

Penarikan kuisioner dilakukan setelah pengguna mencoba aplikasi

yang dibuat. Dan tidak lupa setelah menggunakan aplikasi tersebut

pengguna diharapkan dapat memberikan evaluasinya pada lembar

kuisioner tersebut.

4.2.2 Sasaran Kuisioner

Sasaran kuisioner untuk pengembangan aplikasi ini adalah

diutamakan mahasiswa Universitas Sanata Dharma yang telah atau

belum memahami cara kerja dari algoritma penjadwalan sistem

operasi.

4.2.3 Form Kuisioner

Gambar 4.22 Form Kuisioner

Page 84: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

64

4.2.4 Hasil dan Pembahasan

Dari kuisioner yang berisi sembilan pertanyaan dan disebarkan

pada 20 orang responden, maka diperoleh hasil sebagai berikut:

1. Hasil prosentase pertanyaan 1:

Pertanyaan: “Apakah anda pernah mengikuti mata kuliah Sistem

Operasi?”

Gambar 4.23 Perhitungan hasil kuisioner pertanyaan 1

Kesimpulan: 20 responden menjawab pernah mengikuti mata kuliah

sistem operasi.

2. Hasil prosentase pertanyaan 2

Pertanyaan: “Apakah anda pernah memperlajari Algoritma

Penjadwalan dalam mata kuliah Sistem Operasi?”

Gambar 4.24 Perhitungan hasil kuisioner pertanyaan 2

YA

TIDAK

YA

TIDAK

Page 85: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

65

Kesimpulan: 20 responden menjawab pernah mempelajari

Algoritma Penjadwalan dalam mata kuliah sistem operasi.

3. Hasil prosentase pertanyaan 3

Pertanyaan: “Apakah anda mengerti dasar-dasar dari Algoritma

Penjadwalan?”

Gambar 4.25 Perhitungan hasil kuisioner pertanyaan 3

Kesimpulan: 10 responden menjawab mengerti teori dasar dari

Algoritma Penjadwalan dan 10 responden menjawab tidak.

4. Hasil prosentase pertanyaan 4

Pertanyaan: “Apakah anda mengetahui macam-macam dari

Algoritma Penjadwalan?”

Gambar 4.26 Perhitungan hasil kuisioner pertanyaan 4

Kesimpulan: 7 responden menjawab mengetahui macam-macam

YA

TIDAK

YA

TIDAK

Page 86: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

66

dari algoritma penjadwalan dan 10 responden menjawab tidak.

5. Hasil prosentase pertanyaan 5

Pertanyaan: “Dalam simulasi ini diberikan materi-materi tentang

Algoritma Penjadwalan, apakah materi tersebut membantu anda

dalam pemahaman?”

Gambar 4.27 Perhitungan hasil kuisioner pertanyaan 5

Kesimpulan: 18 responden menjawab materi yang diberikan

membantu pengguna dalam pemahaman dan 2 responden menjawab

tidak.

6. Hasil prosentase pertanyaan 6

Pertanyaan: “Apakah program simulasi Algoritma Penjadwalan ini

menarik bagi anda?”

Gambar 4.28 Perhitungan hasil kuisioner pertanyaan 6

YA

TIDAK

YA

TIDAK

Page 87: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

67

Kesimpulan: 20 responden menjawab simulasi Algoritma

Penjadwalan ini menarik.

7. Hasil prosentase pertanyaan 7

Pertanyaan: “Apakah program simulasi Algoritma Penjadwalan ini

interaktif bagi anda?”

Gambar 4.29 Perhitungan hasil kuisioner pertanyaan 7

Kesimpulan: 18 responden simulasi ini menarik bagi pengguna dan

2 responden menjawab tidak.

8. Hasil prosentase pertanyaan 8

Pertanyaan: “Apakah fungsi help yang diberikan dalam program

simulasi ini sangat membantu anda dalam memahami jalannya

program?”

Gambar 4.30 Perhitungan hasil kuisioner pertanyaan 8

YA

TIDAK

YA

TIDAK

Page 88: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

68

Kesimpulan: 10 responden menjawab fungsi help membantu

pengguna dan 10 responden menjawab tidak.

9. Hasil prosentase pertanyaan 9

Pertanyaan: “Apakah program simulasi Algoritma Penjadwalan ini

bermanfaat?”

Gambar 4.31 Perhitungan hasil kuisioner pertanyaan 9

Kesimpulan: 20 responden menjawab simulasi Algoritma

Penjadwalan ini bermanfaat.

4.3 Pembahasan

Manfaat dari penghitungan Average Waiting Time (AWT) ini adalah

sebagai sarana untuk membantu mahasiswa dalam memahami materi

penjadawalan CPU yang ada dalam mata kuliah Sistem Operasi. Penggunaan

enam algoritma penjadwalan dalam tugas akhir ini diharapkan bisa membantu

mahasiswa untuk memahami masing-masing algoritma penjadwalan tersebut

dengan memperhatikan visualisasi yang ditampilkan pada masing-masing

algoritma.

Pada algoritma FCFS, urutan eksekusi proses diurutkan berdasarkan

YA

TIDAK

Page 89: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

69

urutan kedatangannya. Hal ini tidak adil karena proses yang memiliki lama

proses dengan waktu yang pendek menunggu terlalu lama sehingga akan

mengakibatkan terjadinya confoy effect. Jika dilihat dari efesiensi, maka

algoritma FCFS ini efisien karena algoritma ini membuat CPU selalu dalam

keadaan sibuk. Sedangkan pada algoritma SJF, proses dieksekusi berdasarkan

lama proses yang paling kecil.

Pada algoritma RR semua proses diberi jatah waktu tertentu yang

disebut dengan kuantum waktu. Algoritma RR sangat adil jika dipandang dari

jatah waktu pelayanan yang diberikan oleh CPU karena adanya kuantum

waktu. Namun terkadang muncul masalah dalam menentukan nilai kuantum

waktu. Jika kuantum waktu terlalu kecil akan menyebabkan terlalu banyak

switch antar proses dan efisiensi CPU akan rendah. Sebaliknya, jika kuantum

waktu terlalu besar akan menyebabkan respon CPU akan lambat sehingga

proses yang pendek akan menunggu lama. Sedangkan pada algoritma Priority,

tiap proses akan diberi nilai prioritas dan proses berprioritas rendah akan

dieksekusi terlebih dahulu.

4.4 Testing Program

Setelah melakukan perancangan dan mengimplementasikannya ke

dalam program maka penulis melakukan pengujian hasil penghitungan untuk

keenam algoritma penjadwalan secara manual dan hasil perhitungan oleh

sistem. Pengujian ini dilakukan untuk menjukkan bahwa hasil perhitungan

yang dilakukan oleh sistem sama dengan hasil penghitungan secara manual.

Page 90: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

70

Sampel data yang digunakan 5 macam agar memperjelas cara kerja dari

masing-masing algoritma, dimana data yang digunakan sama untuk algortima

FCFS, SJF Preemtive, SJF Nonpreemtive, RR, Priority Preemtive dan Priority

Nonpreemtive.

4.4.1 Sampel Data I

Tabel 4.1 Data I

Nama

Proses

Saat

Tiba

Lama

Proses

Prioritas

(Hanya untuk Priority)

P1 0 1 1

P2 0 2 2

P3 0 3 3

P4 0 4 4

P5 0 5 5

4.4.1.1 Sampel data I pada algoritma FCFS

Dengan data yang diinputkan seperti tabel 4.1 di atas maka

diperoleh tampilan simulasi untuk algoritma FCFS, sebagai

berikut:

Page 91: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

71

Gambar 4.32 Visualisasi data I Algoritma FCFS

Dengan melihat gambar 4.32 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 1

Waktu (slot time) tunggu P3 = 3

Waktu (slot time) tunggu P4 = 6

Waktu (slot time) tunggu P5 = 10

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma FCFS untuk data I, dimana Ai adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (0 + 1 + 3 + 6 + 10) / 5 = 4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT FCFS untuk

data I adalah 4.

Page 92: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

72

Dari gambar 4.32 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 1

Waktu (slot time) selesai P2 = 3

Waktu (slot time) selesai P3 = 6

Waktu (slot time) selesai P4 = 10

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma FCFS untuk data I, dimana Xi adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (1 + 3 + 5 + 10 + 15) / 5

= 7 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma FCFS untuk data I adalah 7.

Page 93: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

73

4.4.1.2 Sampel data I pada algoritma SJF Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.1 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF

Nonpreemtive, sebagai berikut:

Gambar 4.33 Visualisasi data I Algoritma SJF Nonpreemtive

Dengan melihat gambar 4.33 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 1

Waktu (slot time) tunggu P3 = 3

Waktu (slot time) tunggu P4 = 6

Waktu (slot time) tunggu P5 = 10

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma SJF Nonpreemtive untuk data I, dimana

Page 94: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

74

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (0 + 1 + 3 + 6 + 10) / 5 = 4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Nonpreemtive untuk data I adalah 4.

Dari gambar 4.33 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 1

Waktu (slot time) selesai P2 = 3

Waktu (slot time) selesai P3 = 6

Waktu (slot time) selesai P4 = 10

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Nonpreemtive untuk data I,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (1 + 3 + 5 + 10 + 15) / 5

= 7 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Nonpreemtive untuk data

I adalah 7.

Page 95: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

75

4.4.1.3 Sampel data I pada algoritma SJF Preemtive

Dengan data yang diinputkan seperti tabel 4.1 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF Preemtive,

sebagai berikut:

Gambar 4.34 Visualisasi data I Algoritma SJF Preemtive

Dengan melihat gambar 4.33 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 1

Waktu (slot time) tunggu P3 = 3

Waktu (slot time) tunggu P4 = 6

Waktu (slot time) tunggu P5 = 10

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma SJF Preemtive untuk data I, dimana Ai

Page 96: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

76

adalah waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (0 + 1 + 3 + 6 + 10) / 5 = 4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Preemtive untuk data I adalah 4.

Dari gambar 4.33 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 1

Waktu (slot time) selesai P2 = 3

Waktu (slot time) selesai P3 = 6

Waktu (slot time) selesai P4 = 10

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Preemtive untuk data I, dimana Xi

adalah waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (1 + 3 + 5 + 10 + 15) / 5

= 7 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Preemtive untuk data I

adalah 7.

Page 97: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

77

4.4.1.4 Sampel data I pada algoritma RR

Dengan data yang diinputkan seperti tabel 4.1 di atas maka

diperoleh tampilan simulasi untuk algoritma RR, sebagai

berikut:

Gambar 4.35 Visualisasi data I Algoritma RR

Dengan melihat gambar 4.35 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) selesai P1 = 0

Waktu (slot time) selesai P2 = 4

Waktu (slot time) selesai P3 = 7

Waktu (slot time) selesai P4 = 9

Waktu (slot time) selesai P5 = 10

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma RR untuk data I, dimana Ai adalah waktu

Page 98: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

78

tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (0 + 4 + 7 + 9 + 10) / 5 = 6 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT RR untuk

data I adalah 6.

Dari gambar 4.35 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 1

Waktu (slot time) selesai P2 = 6

Waktu (slot time) selesai P3 = 10

Waktu (slot time) selesai P4 = 13

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma RR untuk data I, dimana Xi adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (1 + 6 + 10 + 13 + 15) /

5 = 9 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma RR untuk data I adalah 9.

Page 99: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

79

4.4.1.5 Sampel data I pada algoritma Priority Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.1 di atas maka

diperoleh tampilan simulasi untuk algoritma Priority

Nonpreemtive, sebagai berikut:

Gambar 4.36 Visualisasi data I Algoritma Priority

Nonpreemtive

Dengan melihat gambar 4.36 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 1

Waktu (slot time) tunggu P3 = 3

Waktu (slot time) tunggu P4 = 6

Waktu (slot time) tunggu P5 = 10

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 100: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

80

AWT dari algoritma Priority Nonpreemtive untuk data I,

dimana Ai adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

AWT = (0 + 1 + 3 + 6 + 10) / 5 = 4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Nonpreemtive untuk data I adalah 4.

Dari gambar 4.36 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 1

Waktu (slot time) selesai P2 = 3

Waktu (slot time) selesai P3 = 6

Waktu (slot time) selesai P4 = 10

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Nonpreemtive untuk data I,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (1 + 3 + 5 + 10 + 15) / 5

= 7 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Nonpreemtive untuk

data I adalah 9.

Page 101: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

81

4.4.1.6 Sampel data I pada algoritma Priority Preemtive

Dengan data yang diinputkan seperti tabel 4.1 di atas maka

diperoleh tampilan simulasi untuk algoritma Priority

Preemtive, sebagai berikut:

Gambar 4.37 Visualisasi data I Algoritma Priority

Preemtive

Dengan melihat gambar 4.37 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 1

Waktu (slot time) tunggu P3 = 3

Waktu (slot time) tunggu P4 = 6

Waktu (slot time) tunggu P5 = 10

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 102: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

82

AWT dari algoritma Priority Preemtive untuk data I, dimana

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (0 + 1 + 3 + 6 + 10) / 5 = 4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Preemtiv, untuk data I adalah 4.

Dari gambar 4.37 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 1

Waktu (slot time) selesai P2 = 3

Waktu (slot time) selesai P3 = 6

Waktu (slot time) selesai P4 = 10

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Preemtive untuk data I,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (1 + 3 + 6 + 10 + 15) / 5

= 7 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Preemtive untuk data

I adalah 7.

Page 103: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

83

4.4.2 Sampel Data II

Tabel 4.2 Data II

Nama

Proses

Saat

Tiba

Lama

Proses

Prioritas

(Hanya untuk Priority)

P1 0 5 1

P2 0 4 2

P3 0 3 3

P4 0 2 4

P5 0 1 5

4.4.2.1 Sampel data II pada algoritma FCFS

Dengan data yang diinputkan seperti tabel 4.2 di atas maka

diperoleh tampilan simulasi untuk algoritma FCFS, sebagai

berikut:

Page 104: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

84

Gambar 4.38 Visualisasi data II Algoritma FCFS

Dengan melihat gambar 4.38 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 5

Waktu (slot time) tunggu P3 = 9

Waktu (slot time) tunggu P4 = 12

Waktu (slot time) tunggu P5 = 14

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma FCFS untuk data I, dimana Ai adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (0 + 5 + 9 + 12 + 14) / 5 = 8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT FCFS, untuk

data II adalah 8.

Page 105: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

85

Dari gambar 4.38 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 5

Waktu (slot time) selesai P2 = 9

Waktu (slot time) selesai P3 = 12

Waktu (slot time) selesai P4 = 14

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma FCFS untuk data II, dimana Xi adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (5 + 9 + 12 + 14 + 15) /

5 = 11 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma FCFS untuk data II adalah 11.

Page 106: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

86

4.4.2.2 Sampel data II pada algoritma SJF Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.2 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF

Nonpreemtive, sebagai berikut:

Gambar 4.39 Visualisasi data II Algoritma SJF Nonpreemtive

Dengan melihat gambar 4.39 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 10

Waktu (slot time) tunggu P2 = 6

Waktu (slot time) tunggu P3 = 3

Waktu (slot time) tunggu P4 = 1

Waktu (slot time) tunggu P5 = 0

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma SJF Nonpreemtive untuk data I dimana

Page 107: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

87

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (10 + 6 + 3 + 1 + 0) / 5 = 4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Nonpreemtive untuk data II adalah 4.

Dari gambar 4.39 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 15

Waktu (slot time) selesai P2 = 10

Waktu (slot time) selesai P3 = 6

Waktu (slot time) selesai P4 = 3

Waktu (slot time) selesai P5 = 1

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Nonpreemtive untuk data II,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (15 + 10 + 6 + 3 + 1) / 5

= 7 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Nonpreemtive untuk data

II adalah 7.

Page 108: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

88

4.4.2.3 Sampel data II pada algoritma SJF Preemtive

Dengan data yang diinputkan seperti tabel 4.2 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF Preemtive,

sebagai berikut:

Gambar 4.40 Visualisasi data II Algoritma SJF Preemtive

Dengan melihat gambar 4.40 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 10

Waktu (slot time) tunggu P2 = 6

Waktu (slot time) tunggu P3 = 3

Waktu (slot time) tunggu P4 = 1

Waktu (slot time) tunggu P5 = 0

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 109: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

89

AWT dari algoritma SJF Preemtive untuk data I dimana Ai

adalah waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (10 + 6 + 3 + 1 + 0) / 5 = 4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Preemtive untuk data II adalah 4.

Dari gambar 4.40 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 15

Waktu (slot time) selesai P2 = 10

Waktu (slot time) selesai P3 = 6

Waktu (slot time) selesai P4 = 3

Waktu (slot time) selesai P5 = 1

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Preemtive untuk data II, dimana

Xi adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

waktu rata-rata selesai semua proses = (15 + 10 + 6 + 3 + 1) / 5

= 7 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Preemtive untuk data II

adalah 7.

Page 110: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

90

4.4.2.4 Sampel data II pada algoritma RR

Dengan data yang diinputkan seperti tabel 4.2 di atas maka

diperoleh tampilan simulasi untuk algoritma RR sebagai

berikut:

Gambar 4.41 Visualisasi data II Algoritma RR

Dengan melihat gambar 4.41 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 10

Waktu (slot time) tunggu P2 = 10

Waktu (slot time) tunggu P3 = 9

Waktu (slot time) tunggu P4 = 7

Waktu (slot time) tunggu P5 = 4

Page 111: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

91

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma RR untuk data II dimana Ai adalah waktu

tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (10 + 10 + 9 + 7 + 4) / 5 = 8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT RR untuk

data II adalah 8.

Dari gambar 4.41 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 15

Waktu (slot time) selesai P2 = 14

Waktu (slot time) selesai P3 = 12

Waktu (slot time) selesai P4 = 9

Waktu (slot time) selesai P5 = 5

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma RR untuk data II, dimana Xi adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (15 + 14 + 12 + 9 + 5) /

5 = 11 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma RR untuk data II adalah 11.

Page 112: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

92

4.4.2.5 Sampel data II pada algoritma Priority Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.2 di atas maka

diperoleh tampilan simulasi untuk algoritma Priority

Nonpreemtive sebagai berikut:

Gambar 4.42 Visualisasi data II Algoritma Priority

Nonpreemtive

Dengan melihat gambar 4.42 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 5

Waktu (slot time) tunggu P3 = 9

Page 113: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

93

Waktu (slot time) tunggu P4 = 12

Waktu (slot time) tunggu P5 = 14

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma Priority Nonpreemtive untuk data II

dimana Ai adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

AWT = (0 + 5 + 9 + 12 + 14) / 5 = 8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Nonpreemtive untuk data I adalah 8.

Dari gambar 4.42 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 5

Waktu (slot time) selesai P2 = 9

Waktu (slot time) selesai P3 = 12

Waktu (slot time) selesai P4 = 14

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Nonpreemtive untuk data II,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (5 + 9 + 12 + 14 + 15) /

Page 114: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

94

5 = 11 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Nonpreemtive untuk

data II adalah 11.

4.4.2.6 Sampel data II pada algoritma Priority Preemtive

Dengan data yang diinputkan seperti tabel 4.2 di atas maka

diperoleh tampilan simulasi untuk algoritma Priority

Preemtive sebagai berikut:

Gambar 4.43 Visualisasi data II Algoritma Priority Preemtive

Dengan melihat gambar 4.43 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 5

Waktu (slot time) tunggu P3 = 9

Page 115: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

95

Waktu (slot time) tunggu P4 = 12

Waktu (slot time) tunggu P5 = 14

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma Priority Preemtive untuk data II dimana

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (0 + 5 + 9 + 12 + 14) / 5 = 8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Preemtive untuk data II adalah 8.

Dari gambar 4.43 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 5

Waktu (slot time) selesai P2 = 9

Waktu (slot time) selesai P3 = 12

Waktu (slot time) selesai P4 = 14

Waktu (slot time) selesai P5 = 15

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Preemtive untuk data II,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (5 + 9 + 12 + 14 + 15) /

Page 116: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

96

5 = 11 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Preemtive untuk data

II adalah 11.

4.4.3 Sampel Data III

Tabel 4.3 Data III

Nama

Proses

Saat

Tiba

Lama

Proses

Prioritas

(Hanya untuk Priority)

P1 0 15 4

P2 0 10 3

P3 0 5 2

P4 0 8 1

P5 0 15 5

4.4.3.1 Sampel data III pada algoritma FCFS

Dengan data yang diinputkan seperti tabel 4.3 di atas maka

diperoleh tampilan simulasi untuk algoritma FCFS, sebagai

berikut:

Page 117: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

97

Gambar 4.44 Visualisasi data III Algoritma FCFS

Dengan melihat gambar 4.44 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 15

Waktu (slot time) tunggu P3 = 25

Waktu (slot time) tunggu P4 = 30

Waktu (slot time) tunggu P5 = 38

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat

dihitung AWT dari algoritma FCFS untuk data III dimana Ai

adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (0 + 15 + 25 + 30 + 38) / 5 = 21.6 (slot time)

Page 118: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

98

Jadi dari perhitungan diatas diperoleh nilai AWT FCFS

untuk data III adalah 21.6.

Dari gambar 4.44 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 15

Waktu (slot time) selesai P2 = 25

Waktu (slot time) selesai P3 = 30

Waktu (slot time) selesai P4 = 38

Waktu (slot time) selesai P5 = 53

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma FCFS untuk data III, dimana Xi

adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

waktu rata-rata selesai semua proses = (15 + 25 + 30 + 38 +

53) / 5 = 32.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma FCFS untuk data III adalah

32.2.

Page 119: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

99

4.4.3.2 Sampel data III pada algoritma SJF Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.3 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF

Nonpreemtive, sebagai berikut:

Gambar 4.45 Visualisasi data III Algoritma SJF

Nonpreemtive

Dengan melihat gambar 4.45 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 5

Waktu (slot time) tunggu P3 = 13

Waktu (slot time) tunggu P4 = 23

Waktu (slot time) tunggu P5 = 38

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 120: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

100

AWT dari algoritma SJF Nonpreemtive untuk data III dimana

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (0 + 5 + 13 + 23 + 38) / 5 = 15.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Nonpreemtive untuk data III adalah 15.8.

Dari gambar 4.45 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 5

Waktu (slot time) selesai P2 = 13

Waktu (slot time) selesai P3 = 23

Waktu (slot time) selesai P4 = 38

Waktu (slot time) selesai P5 = 53

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Nonpreemtive untuk data III,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (5 + 13 + 30 + 38 + 53)

/ 5 = 27.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Nonpreemtive untuk data

III adalah 27.8.

Page 121: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

101

4.4.3.3 Sampel data III pada algoritma SJF Preemtive

Dengan data yang diinputkan seperti tabel 4.3 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF Preemtive,

sebagai berikut:

Gambar 4.46 Visualisasi data III Algoritma SJF Preemtive

Dengan melihat gambar 4.46 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 5

Waktu (slot time) tunggu P3 = 13

Waktu (slot time) tunggu P4 = 23

Waktu (slot time) tunggu P5 = 38

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 122: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

102

AWT dari algoritma SJF Preemtive untuk data III dimana Ai

adalah waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (0 + 5 + 13 + 23 + 38) / 5 = 15.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Preemtive untuk data III adalah 15.8.

Dari gambar 4.46 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 5

Waktu (slot time) selesai P2 = 13

Waktu (slot time) selesai P3 = 23

Waktu (slot time) selesai P4 = 38

Waktu (slot time) selesai P5 = 53

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Preemtive untuk data III, dimana

Xi adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

waktu rata-rata selesai semua proses = (5 + 13 + 30 + 38 + 53)

/ 5 = 27.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Preemtive untuk data III

adalah 27.8.

Page 123: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

103

4.4.3.4 Sampel data III pada algoritma RR

Dengan data yang diinputkan seperti tabel 4.3 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF RR, sebagai

berikut:

Gambar 4.47 Visualisasi data III Algoritma RR

Dengan melihat gambar 4.47 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 37

Waktu (slot time) tunggu P2 = 31

Waktu (slot time) tunggu P3 = 20

Waktu (slot time) tunggu P4 = 27

Waktu (slot time) tunggu P5 = 38

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 124: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

104

AWT dari algoritma RR untuk data III dimana Ai adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (37 + 31 + 20 + 27 + 38) / 5 = 30.6 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT RR untuk

data III adalah 30.6.

Dari gambar 4.47 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 52

Waktu (slot time) selesai P2 = 41

Waktu (slot time) selesai P3 = 25

Waktu (slot time) selesai P4 = 35

Waktu (slot time) selesai P5 = 53

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma RR untuk data III, dimana Xi adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (52 + 41 + 25 + 35 +

53) / 5 = 41.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma RR untuk data III adalah 41.2.

Page 125: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

105

4.4.3.5 Sampel data III pada algoritma Priority Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.3 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF Priority

Nonpreemtive, sebagai berikut:

Gambar 4.48 Visualisasi data III Algoritma Priority

Nonpreemtive

Dengan melihat gambar 4.48 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 8

Waktu (slot time) tunggu P3 = 13

Waktu (slot time) tunggu P4 = 23

Waktu (slot time) tunggu P5 = 38

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 126: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

106

AWT dari algoritma Priority Nonpreemtive,untuk data III

dimana Ai adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

AWT = (0 + 8 + 13 + 23 + 38) / 5 = 16.4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Nonpreemtive,untuk data III adalah 16.4.

Dari gambar 4.48 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 8

Waktu (slot time) selesai P2 = 13

Waktu (slot time) selesai P3 = 23

Waktu (slot time) selesai P4 = 38

Waktu (slot time) selesai P5 = 53

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Nonpreemtive,untuk data III,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (8 + 13 + 23 + 38 + 53)

/ 5 = 27 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Nonpreemtive,untuk

data III adalah 27.

Page 127: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

107

4.4.3.6 Sampel data III pada algoritma Priority Preemtive

Dengan data yang diinputkan seperti tabel 4.3 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF Priority

Preemtive, sebagai berikut:

Gambar 4.49 Visualisasi data III Algoritma Priority

Preemtive

Dengan melihat gambar 4.49 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 8

Waktu (slot time) tunggu P3 = 13

Waktu (slot time) tunggu P4 = 23

Waktu (slot time) tunggu P5 = 38

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 128: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

108

AWT dari algoritma Priority Preemtive,untuk data III dimana

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (0 + 8 + 13 + 23 + 38) / 5 = 16.4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Preemtive,untuk data III adalah 16.4.

Dari gambar 4.48 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 8

Waktu (slot time) selesai P2 = 13

Waktu (slot time) selesai P3 = 23

Waktu (slot time) selesai P4 = 38

Waktu (slot time) selesai P5 = 53

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Preemtive,untuk data III,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (8 + 13 + 23 + 38 + 53)

/ 5 = 27 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Preemtive,untuk data

III adalah 27.

Page 129: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

109

4.4.4 Sampel Data IV

Tabel 4.4 Data IV

Nama

Proses

Saat

Tiba

Lama

Proses

Prioritas

(Hanya untuk Priority)

P1 1 15 5

P2 2 10 4

P3 3 5 3

P4 4 8 2

P5 5 15 1

4.4.4.1 Sampel data IV pada algoritma FCFS

Dengan data yang diinputkan seperti tabel 4.4 di atas maka

diperoleh tampilan simulasi untuk algoritma FCFS, sebagai

berikut:

Page 130: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

110

Gambar 4.50 Visualisasi data IV Algoritma FCFS

Dengan melihat gambar 4.50 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 14

Waktu (slot time) tunggu P3 = 23

Waktu (slot time) tunggu P4 = 27

Waktu (slot time) tunggu P5 = 34

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat

dihitung AWT dari algoritma FCFS untuk data IV dimana Ai

adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (0 + 14 + 23 + 27 + 34) / 5 = 19.6 (slot time)

Page 131: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

111

Jadi dari perhitungan diatas diperoleh nilai AWT FCFS

untuk data IV adalah 19.6.

Dari gambar 4.50 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 16

Waktu (slot time) selesai P2 = 26

Waktu (slot time) selesai P3 = 31

Waktu (slot time) selesai P4 = 39

Waktu (slot time) selesai P5 = 54

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma FCFS untuk data IV, dimana Xi

adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

waktu rata-rata selesai semua proses = (16 + 26 + 31 + 39 +

54) / 5 = 33.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma FCFS untuk data IV adalah

33.2.

Page 132: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

112

4.4.4.2 Sampel data IV pada algoritma SJF Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.4 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF

Nonpreemtive, sebagai berikut:

Gambar 4.51 Visualisasi data IV Algoritma SJF

Nonpreemtive

Dengan melihat gambar 4.51 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 27

Waktu (slot time) tunggu P3 = 13

Waktu (slot time) tunggu P4 = 17

Waktu (slot time) tunggu P5 = 34

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat

Page 133: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

113

dihitung AWT dari algoritma SJF Nonpreemtive untuk data

IV dimana Ai adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

AWT = (0 + 27 + 13 + 17 + 34) / 5 = 18.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Nonpreemtive untuk data IV adalah 18.2.

Dari gambar 4.51 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 16

Waktu (slot time) selesai P2 = 39

Waktu (slot time) selesai P3 = 21

Waktu (slot time) selesai P4 = 29

Waktu (slot time) selesai P5 = 54

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Nonpreemtive untuk data IV,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (16 + 39 + 21 + 29 +

54) / 5 = 33.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Nonpreemtive untuk

data IV adalah 33.8.

Page 134: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

114

4.4.4.3 Sampel data IV pada algoritma SJF Preemtive

Dengan data yang diinputkan seperti tabel 4.4 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF Preemtive,

sebagai berikut:

Gambar 4.52 Visualisasi data IV Algoritma SJF Preemtive

Dengan melihat gambar 4.52 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 23

Waktu (slot time) tunggu P2 = 13

Waktu (slot time) tunggu P3 = 0

Waktu (slot time) tunggu P4 = 4

Waktu (slot time) tunggu P5 = 34

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma SJF Preemtive untuk data IV dimana Ai

Page 135: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

115

adalah waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (23 + 13 + 0 + 4 + 34) / 5 = 14.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Preemtive untuk data IV adalah 14.8.

Dari gambar 4.52 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 39

Waktu (slot time) selesai P2 = 25

Waktu (slot time) selesai P3 = 8

Waktu (slot time) selesai P4 = 16

Waktu (slot time) selesai P5 = 54

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Preemtive untuk data IV, dimana

Xi adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

waktu rata-rata selesai semua proses = (39 + 25 + 8 + 16 + 54)

/ 5 = 28.4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Preemtive untuk data IV

adalah 28.4.

Page 136: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

116

4.4.4.4 Sampel data IV pada algoritma RR

Dengan data yang diinputkan seperti tabel 4.4 di atas maka

diperoleh tampilan simulasi untuk algoritma RR, sebagai

berikut:

Gambar 4.53 Visualisasi data IV Algoritma RR

Dengan melihat gambar 4.53 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 37

Waktu (slot time) tunggu P2 = 30

Waktu (slot time) tunggu P3 = 18

Waktu (slot time) tunggu P4 = 24

Waktu (slot time) tunggu P5 = 34

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma RR untuk data IV dimana Ai adalah

Page 137: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

117

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (37 + 30 + 18 + 24 + 34) / 5 = 28.6 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT RR untuk

data IV adalah 28.6.

Dari gambar 4.53 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 53

Waktu (slot time) selesai P2 = 42

Waktu (slot time) selesai P3 = 26

Waktu (slot time) selesai P4 = 36

Waktu (slot time) selesai P5 = 54

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma RR untuk data IV, dimana Xi adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (53 + 42 + 26 + 36 +

54) / 5 = 42.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma RR untuk data IV adalah 42.2.

Page 138: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

118

4.4.4.5 Sampel data IV pada algoritma Priority Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.4 di atas maka

diperoleh tampilan simulasi untuk algoritma Priority

Nonpreemtive, sebagai berikut:

Gambar 4.54 Visualisasi data IV Algoritma Priority

Nonpreemtive

Dengan melihat gambar 4.54 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 42

Waktu (slot time) tunggu P3 = 36

Waktu (slot time) tunggu P4 = 27

Waktu (slot time) tunggu P5 = 11

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 139: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

119

AWT dari algoritma Priority Nonpreemtive untuk data IV

dimana Ai adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

AWT = (0 + 42 + 36 + 27 + 11) / 5 = 23.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Nonpreemtive untuk data IV adalah 23.2.

Dari gambar 4.54 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 16

Waktu (slot time) selesai P2 = 54

Waktu (slot time) selesai P3 = 44

Waktu (slot time) selesai P4 = 39

Waktu (slot time) selesai P5 = 31

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Nonpreemtive untuk data IV,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (16 + 54 + 44 + 39 +

31) / 5 = 36.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Nonpreemtive untuk

data IV adalah 36.8.

Page 140: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

120

4.4.4.6 Sampel data IV pada algoritma Priority Preemtive

Dengan data yang diinputkan seperti tabel 4.4 di atas maka

diperoleh tampilan simulasi untuk algoritma Priority

Preemtive, sebagai berikut:

Gambar 4.55 Visualisasi data IV Algoritma Priority

Preemtive

Dengan melihat gambar 4.55 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 38

Waktu (slot time) tunggu P2 = 28

Waktu (slot time) tunggu P3 = 23

Waktu (slot time) tunggu P4 = 15

Waktu (slot time) tunggu P5 = 0

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 141: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

121

AWT dari algoritma Priority Preemtive untuk data IV dimana

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (38 + 28 + 23 + 15 + 0) / 5 = 20.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Preemtive untuk data IV adalah 20.8.

Dari gambar 4.55 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 54

Waktu (slot time) selesai P2 = 40

Waktu (slot time) selesai P3 = 31

Waktu (slot time) selesai P4 = 27

Waktu (slot time) selesai P5 = 20

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Preemtive untuk data IV,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (54 + 40 + 31 + 27 +

20) / 5 = 34.4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Preemtive untuk data

IV adalah 34.4.

Page 142: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

122

4.4.5 Sampel Data V

Tabel 4.5 Data V

Nama

Proses

Saat

Tiba

Lama

Proses

Prioritas

(Hanya untuk Priority)

P1 5 15 1

P2 4 10 2

P3 3 5 3

P4 2 8 4

P5 1 15 5

4.4.5.1 Sampel data V pada algoritma FCFS

Dengan data yang diinputkan seperti tabel 4.5 di atas maka

diperoleh tampilan simulasi untuk algoritma FCFS, sebagai

berikut:

Page 143: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

123

Gambar 4.56 Visualisasi data V Algoritma FCFS

Dengan melihat gambar 4.56 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 34

Waktu (slot time) tunggu P2 = 25

Waktu (slot time) tunggu P3 = 21

Waktu (slot time) tunggu P4 = 14

Waktu (slot time) tunggu P5 = 0

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma FCFS untuk data V dimana Ai adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (34 + 25 + 21 + 14 + 0) / 5 = 18.8 (slot time)

Page 144: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

124

Jadi dari perhitungan diatas diperoleh nilai AWT FCFS untuk

data V adalah 18.8.

Dari gambar 4.56 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 54

Waktu (slot time) selesai P2 = 39

Waktu (slot time) selesai P3 = 29

Waktu (slot time) selesai P4 = 24

Waktu (slot time) selesai P5 = 16

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma FCFS untuk data V, dimana Xi adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (54 + 39 + 29 + 24 +

16) / 5 = 32.4 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma FCFS untuk data V adalah

32.4.

Page 145: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

125

4.4.5.2 Sampel data V pada algoritma SJF Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.5 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF

Nonpreemtive, sebagai berikut:

Gambar 4.57 Visualisasi data V Algoritma SJF

Nonpreemtive

Dengan melihat gambar 4.57 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 34

Waktu (slot time) tunggu P2 = 25

Waktu (slot time) tunggu P3 = 13

Waktu (slot time) tunggu P4 = 19

Waktu (slot time) tunggu P5 = 0

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 146: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

126

AWT dari algoritma SJF Nonpreemtive untuk data V dimana

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (34 + 25 + 21 + 14 + 0) / 5 = 18.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Nonpreemtive untuk data V adalah 18.2.

Dari gambar 4.57 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 54

Waktu (slot time) selesai P2 = 39

Waktu (slot time) selesai P3 = 21

Waktu (slot time) selesai P4 = 29

Waktu (slot time) selesai P5 = 16

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Nonpreemtive untuk data V,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (54 + 39 + 21 + 29 +

16) / 5 = 31.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Nonpreemtive untuk data

V adalah 31.8.

Page 147: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

127

4.4.5.3 Sampel data V pada algoritma SJF Preemtive

Dengan data yang diinputkan seperti tabel 4.5 di atas maka

diperoleh tampilan simulasi untuk algoritma SJF Preemtive,

sebagai berikut:

Gambar 4.58 Visualisasi data V Algoritma SJF Preemtive

Dengan melihat gambar 4.58 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 34

Waktu (slot time) tunggu P2 = 11

Waktu (slot time) tunggu P3 = 0

Waktu (slot time) tunggu P4 = 5

Waktu (slot time) tunggu P5 = 23

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

AWT dari algoritma SJF Preemtive untuk data V dimana Ai

Page 148: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

128

adalah waktu tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (34 + 11 + 0 + 5 + 23) / 5 = 14.6 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT SJF

Preemtive untuk data V adalah 14.6.

Dari gambar 4.58 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 54

Waktu (slot time) selesai P2 = 25

Waktu (slot time) selesai P3 = 8

Waktu (slot time) selesai P4 = 15

Waktu (slot time) selesai P5 = 39

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma SJF Preemtive untuk data V, dimana

Xi adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

waktu rata-rata selesai semua proses = (54 + 25 + 8 + 15 + 39)

/ 5 = 28.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma SJF Preemtive untuk data V

adalah 28.2.

Page 149: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

129

4.4.5.4 Sampel data V pada algoritma RR

Dengan data yang diinputkan seperti tabel 4.5 di atas maka

diperoleh tampilan simulasi untuk algoritma RR, sebagai

berikut:

Gambar 4.59 Visualisasi data V Algoritma RR

Dengan melihat gambar 4.59 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 34

Waktu (slot time) tunggu P2 = 31

Waktu (slot time) tunggu P3 = 16

Waktu (slot time) tunggu P4 = 31

Waktu (slot time) tunggu P5 = 35

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 150: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

130

AWT dari algoritma RR untuk data V dimana Ai adalah waktu

tunggu untuk P ke-I dan n adalah jumlah proses.

AWT = (34 + 31 + 16 + 31 + 35) / 5 = 28.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT RR untuk

data V adalah 28.2.

Dari gambar 4.59 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 54

Waktu (slot time) selesai P2 = 45

Waktu (slot time) selesai P3 = 24

Waktu (slot time) selesai P4 = 35

Waktu (slot time) selesai P5 = 51

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma RR untuk data V, dimana Xi adalah

waktu tunggu untuk P ke-I dan n adalah jumlah proses.

waktu rata-rata selesai semua proses = (54 + 45 + 24 + 35 +

51) / 5 = 41.8 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma RR untuk data V adalah 41.8.

Page 151: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

131

4.4.5.5 Sampel data V pada algoritma Priority Nonpreemtive

Dengan data yang diinputkan seperti tabel 4.5 di atas maka

diperoleh tampilan simulasi untuk algoritma Priority

Nonpreemtive, sebagai berikut:

Gambar 4.60 Visualisasi data V Algoritma Priority

Nonpreemtive

Dengan melihat gambar 4.60 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 11

Waktu (slot time) tunggu P2 = 27

Waktu (slot time) tunggu P3 = 28

Waktu (slot time) tunggu P4 = 44

Waktu (slot time) tunggu P5 = 0

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 152: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

132

AWT dari algoritma Priority Nonpreemtive untuk data V

dimana Ai adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

AWT = (11 + 27 + 28 + 44 + 0) / 5 = 24 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Nonpreemtive untuk data V adalah 24.

Dari gambar 4.60 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 31

Waktu (slot time) selesai P2 = 41

Waktu (slot time) selesai P3 = 46

Waktu (slot time) selesai P4 = 54

Waktu (slot time) selesai P5 = 16

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Nonpreemtive untuk data V,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (31 + 41 + 46 + 54 +

16) / 5 = 37.6 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Nonpreemtive untuk

data V adalah 37.6.

Page 153: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

133

4.4.5.6 Sampel data V pada algoritma Priority Preemtive

Dengan data yang diinputkan seperti tabel 4.5 di atas maka

diperoleh tampilan simulasi untuk algoritma Priority

Preemtive, sebagai berikut:

Gambar 4.61 Visualisasi data V Algoritma Priority

Preemtive

Dengan melihat gambar 4.61 kita dapat menghitung waktu

tunggu masing-masing proses, sebagai berikut:

Waktu (slot time) tunggu P1 = 0

Waktu (slot time) tunggu P2 = 15

Waktu (slot time) tunggu P3 = 25

Waktu (slot time) tunggu P4 = 30

Waktu (slot time) tunggu P5 = 38

Dengan menggunakan rumus AWT = ∑ A𝑖𝑛𝑖=1𝑛

dapat dihitung

Page 154: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

134

AWT dari algoritma Priority Preemtive untuk data V dimana

Ai adalah waktu tunggu untuk P ke-I dan n adalah jumlah

proses.

AWT = (0 + 15 + 25 + 30 + 38) / 5 = 21.6 (slot time)

Jadi dari perhitungan diatas diperoleh nilai AWT Priority

Preemtive untuk data V adalah 21.6.

Dari gambar 4.61 juga dapat diketahui waktu selesai per

proses, sebagai berikut:

Waktu (slot time) selesai P1 = 20

Waktu (slot time) selesai P2 = 29

Waktu (slot time) selesai P3 = 33

Waktu (slot time) selesai P4 = 40

Waktu (slot time) selesai P5 = 54

Dengan menggunakan rumus waktu rata-rata selesai semua

proses = ∑ X𝑖𝑛𝑖=1𝑛

dapat dihitung waktu rata-rata selesai

semua proses algoritma Priority Preemtive untuk data V,

dimana Xi adalah waktu tunggu untuk P ke-I dan n adalah

jumlah proses.

waktu rata-rata selesai semua proses = (20 + 29 + 33 + 40 +

54) / 5 = 35.2 (slot time)

Jadi dari perhitungan diatas diperoleh nilai waktu rata-rata

selesai semua proses akgoritma Priority Preemtive untuk data

V adalah 35.2.

Page 155: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

135

Perhatikan table di bawah ini yang menunjukkan nilai Average Waiting

Time (AWT) yang dihasilkan dari keenam algoritma tersebut jika data yang

digunakna sama.

Tabel 4.6 Perbandingan Nilai Average Waiting Time (AWT)

Sampel Data Data I Data II Data III Data IV Data V

AWT

FCFS 4 8 21.6 19.6 18.8

AWT

SJF Nonpreemtive 4 4 15.8 18.2 18.2

AWT

SJF Preemtive 4 4 15.8 14.8 14.6

AWT

RR 6 8 30.6 28.6 28.2

AWT

Priority Nonpreemtive 4 8 16.4 23.2 24

AWT

Priority Preemtive 4 8 16.4 20.8 21.6

Dengan melihat tabel 4.6 dapat disimpulkan bahwa algoritma SJF

Preemtive menghasilkan solusi yang optimal, yaitu nilai AWT yang minimum

dibandingkan dengan algoritma yang lain. Efisiensi untuk algoritma SJF

Preemtive juga tinggi karena CPU selalu dalam keadan sibuk.

Page 156: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

136

Perhatikan table di bawah ini yang menunjukkan nilai waktu rata-rata

selesai semua proses yang dihasilkan dari keenam algoritma tersebut jika data

yang digunakna sama.

Tabel 4.7 Perbandingan nilai waktu rata-rata selesai semua proses

Sampel Data Data I Data II Data III Data IV Data V

AWT

FCFS 7 11 32.2 33.2 32.4

AWT

SJF Nonpreemtive 7 7 27.8 33.8 31.8

AWT

SJF Preemtive 7 7 27.8 28.4 28.2

AWT

RR 9 11 41.2 42.2 41.8

AWT

Priority Nonpreemtive 7 11 27 36.8 37.6

AWT

Priority Preemtive 7 11 27 34.4 35.2

Dengan melihat tabel 4.7 dapat disimpulkan bahwa algoritma SJF

Preemtive menghasilkan solusi yang optimal, yaitu nilai waktu rata-rata selesai

semua proses yang minimum dibandingkan dengan algoritma yang lain.

Page 157: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

137

Jadi dapat disimpulkan bahwa untuk mencapai optimalisasi kinerja

CPU dibutuhkan beberapa criteria penjadwalan, antara lain:

1. Efisinesi : yaitu menjaga agar CPU tetap dalam keadaan sibuk sehingga

efisinesi mencapai maksimal. Pada algoritma SJF Preemtive selalu dalam

keadaan sibuk sehingga efisiensinya tinggi.

2. Waktu penyelesaian (turn around time) : yaitu waktu yang dihabiskan dari

saat proses mulai masuk ke sistem sampai proses diselesaikan sistem. Pada

algoritma SJF Preemtive nilai waktu rata-rata selesai semua proses yang

dihasilkan paling minimum dibandingkan dengan algoritma yang lain, jadi

turn around time-nya tinggi.

3. Penyampaian hasil kerja (throughput) : jumlah kerja yang dapat

diselesaikan dalam satu unit waktu. Semakin banyak pekerjaan yang

mampu diselesaikan oleh proses pada suatu unit waktu maka nilainya akan

semakin baik pula. Pada algoritma SJF Preemtive throughput bagus karena

proses dengan lama proses yang kecil akan dieksekusi terlebih dahulu,

sehingga meminimalkan waktu tunggu bagi proses-proses lain.

4. Waktu tunggu (waiting time) : adalah waktu yang dihabiskan oleh suatu

proses untuk dapat menggunakan alokasi CPU agar proses dapat dijalankan

atau dieksekusi. Pada SJF Preemtive nilai AWT yang dihasilkan paling

minim0um.

Page 158: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

138

BAB V

PENUTUP

5.1 Kesimpulan

Dari hasil analisa, desain, dan implementasi yang telah dilakukan maka

dapat diambil kesimpulan sebagai berikut ini:

1. Aplikasi simulasi algoritma penjadwalan, yaitu: first come first served,

shortest job first non-preemtive, shortest job first preemtive, round robin,

priority non-preemtive dan priority preemtive ini dapat diimplementasikan

dengan menggunakan macromedia flash 8.

2. Penggunaan metodologi prototype membantu dalam membangun aplikasi

simulasi algoritma penjadwalan ini.

3. Setelah dicoba pada beberapa pengguna, aplikasi ini membantu pengguna

untuk mengetahui proses berjalannya suatu algoritma penjadwalan.

5.2 Saran

Saran yang dapat diberikan agar aplikasi ini dapat dibuat lebih baik lagi

adalah sebagai berikut:

1. Tampilan untuk aplikasi dapat dibuat lebih menarik sehingga meningkatkan

minat mahasiswa untuk terus mendalami algoritma penjadwalan tersebut.

Page 159: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

139

2. Aplikasi simulasi ini masih terbatas dengan banyaknya jumlah algoritma

penjadwalan. Jadi dapat ditambahkan lagi dengan algoritma penjadwalan

yang lain, seperti algoritma Highest Ration Next (HRN), Guaranteed

Schedulling (GS), Multiple Queues, dan Multiple Feedback Queues.

Page 160: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

140

DAFTAR PUSTAKA

Binanto, Iwan. 2005. Sistem Operasi. Yogyakarta: Andi Offset.

Herlambang, Ferry. 2007. Membuat Efek Khusus dengan Action Script 2.0 Flash

8. Jakarta: PT Elex Media Komputindo.

Hoover,S.V, Perry,R.F. 1989. Simulation A Problem Solving Approach. New

York : Addison-Weslay Publishing Company, Inc.

Jogianto. 1999. Pengenalan Komputer. Yogyakarta: Andi

Kusumadewi, Sri. Sstem Operasi, Edisi I, Yogyakarta : J&J Learning. 2000

Naga, Dali. 1996 . Sistem Operasi Komputer. Jakarta: Gunadarma

Nugroho, Hery Setiawan. 2009. Metode prototype.

(http://herysetiawanugroho.blogspot.com/2009/03/metode-prototipe.html,

diakses tanggal 3 Juli 2010)

Philipus, Erwin. 2007. 20 Teknik Flash Master untuk Macromedia Flash MX dan

Flash Profesional 8. Yogyakarta: Andi Offset.

Pressman, Roger. 1997. Rekayasa Perangkat Lunak pendekatan praktisi (Buku

Satu). Yogyakarta: Andi Offset.

Suryadi, Kadarsih & Ramdhani, Ali. 1998. Sistem Pendukung Keputusan.

Bandung: PT Remaja Rosdakarya.

Tim Divisi Penelitian dan Pengembangan. 2006. Mahir dalam 7 Hari:

Macromedia Flash Pro 8. Yogyakarta: Andi, Madiun: Madcoms.

Page 161: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

141

LAMPIRAN

Listing Program

Berikut ini ditampilkan beberapa listing yang digunakan untuk

implementasi aplikasi ini.

Listing Pada File Final Menu Layer fungsi tgl n jam

stop (); var days = new Array("Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"); var months = new Array("Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"); watch.onEnterFrame = function () { var _loc2 = new Date(); this.date = days[_loc2.getDay()] + ", " + _loc2.getDate() + " " + months[_loc2.getMonth()] + " " + _loc2.getFullYear(); this.hour = _loc2.getHours(); this.minute = _loc2.getMinutes(); this.second = _loc2.getSeconds(); if (this.second < 10) { this.second = "0" + this.second; } // end if if (this.minute < 10) { this.minute = "0" + this.minute; } // end if if (this.hour < 10) { this.hour = "0" + this.hour; } // end if };

Listing Pada File Final Menu Layer fungsi menu Frame 1 stop(); Listing Pada File Final Menu Layer fungsi menu Frame 2 unloadMovie(1); stop(); menu_bar_materi._visible = false; menu_bar_materi.algo_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.algo_btn.onRollOut = function() { menu_bar_materi._visible = false;

Page 162: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

142

}; menu_bar_materi.fcfs_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.fcfs_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_materi.sjf_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.sjf_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_materi.rr_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.rr_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_materi.prio_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.prio_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_materi.duatingkat_btn.onRollOver = function() { menu_bar_materi._visible = true; }; menu_bar_materi.duatingkat_btn.onRollOut = function() { menu_bar_materi._visible = false; }; menu_bar_simulasi._visible = false; menu_bar_simulasi.simulasi_1.onRollOver = function() { menu_bar_simulasi._visible = true; }; menu_bar_simulasi.simulasi_1.onRollOut = function() { menu_bar_simulasi._visible = false; }; menu_bar_simulasi.simulasi_2.onRollOver = function() { menu_bar_simulasi._visible = true; }; menu_bar_simulasi.simulasi_2.onRollOut = function() { menu_bar_simulasi._visible = false; };

Listing Pada File Final Menu Layer fungsi menu Tombol Menu Utama on (press) { gotoAndStop(2); } Listing Pada File Final Menu Layer fungsi menu Tombol Keluar on (press) { fscommand('quit', ""); }

Page 163: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

143

Listing Pada File Final Menu Layer fungsi menu Tombol Materi on (release) { menu_bar_materi._visible = true; menu_bar_simulasi._visible = false; } Listing Pada File Final Menu Layer fungsi menu Tombol Simulasi on (release) { gotoAndStop(8); } Listing Pada File Final Menu Layer fungsi menu Tombol Bantuan on (press) { if (_root.about == undefined) { dep = _root.getNextHighestDepth(); duplicateMovieClip(_root.bantuan, 'about', dep+1); _root.about._x = 160; _root.about._y = 120; } else { dep = _root.getNextHighestDepth(); _root.about.swapDepths(_root.getInstanceAtDepth(dep-1)); } } Listing Pada File Final SO Layer deklarasi var speed = 1; var trace_click = false; var AT:Array = new Array(); var ST:Array = new Array(); var FT:Array = new Array(); var WT:Array = new Array(); var TAT:Array = new Array(); var StartWait:Array = new Array(); var FinishWait:Array = new Array(); var StartProc:Array = new Array(); var FinishProc:Array = new Array(); var awt; var gambar_is_open = false; var array_hasil:Array = new Array(); var array:Array = new Array(); var array2:Array = new Array(); var rec_array_hasil:Array = new Array(); var array_id:Array = new Array(); var array_temp:Array = new Array(); function FCFS(tiba:Array, bust:Array, k:Number) { var sum = 0; FT[0] = AT[0]+ST[0]; StartWait[0] = 0; FinishWait[0] = 0; StartProc[0] = AT[0]; FinishProc[0] = AT[0]+ST[0]; for (var i = 0; i<k; i++) { if (i == 0) {

Page 164: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

144

WT[i] = 0; } else { if (FT[i-1]<AT[i]) { FT[i] = AT[i]+ST[i]; WT[i] = 0; StartWait[i] = 0; FinishWait[i] = 0; StartProc[i] = AT[i]; FinishProc[i] = AT[i]+ST[i]; } else { FT[i] = FT[i-1]+ST[i]; WT[i] = FT[i-1]-AT[i]; StartWait[i] = AT[i]; FinishWait[i] = FT[i-1]; if (StartWait[i] == StartWait[i]) { } StartProc[i] = FT[i-1]; FinishProc[i] = FT[i-1]+ST[i]; } } sum = sum+WT[i]; } return sum/k; } function diagram_waktu_kedatangan() { for (var i = 0; i<_root.input_proses.text; i++) { _root['name'+(i+1)+'_diagram'].text = "P"+(i+1); _root['p'+(i+1)+'_diagram']._x = (_root.proses[i].saattiba*10)+31; _root['p'+(i+1)+'_diagram']._width = _root.proses[i].lamaproses*10; } } function reset_diagram_waktu_kedatangan() { for (var i = 0; i<5; i++) { _root['name'+(i+1)+'_diagram'].text = ""; _root['p'+(i+1)+'_diagram']._x = 0.9; _root['p'+(i+1)+'_diagram']._width = 0; } } function bubblesort_tiba() { var temp:Number; for (var i = 0; i<rec_array.length; i++) { for (var j = 0; j<rec_array.length-1; j++) { if (Number(rec_array[j].tiba)>Number(rec_array[j+1].tiba)) { temp = rec_array[j]; rec_array[j] = rec_array[j+1]; rec_array[j+1] = temp; } } } } function bubblesort_temp_tiba() { for (var i = 0; i<rec_array_temp.length; i++) { for (var j = 0; j<rec_array_temp.length-1; j++) {

Page 165: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

145

if (Number(rec_array_temp[j].tiba)<Number(rec_array_temp[j+1].tiba)) { temp = rec_array_temp[j]; rec_array_temp[j] = rec_array_temp[j+1]; rec_array_temp[j+1] = temp; } } } } function bubblesort_temp_eksekusi() { for (var i = 0; i<rec_array_temp.length; i++) { for (var j = 0; j<rec_array_temp.length-1; j++) { if (Number(rec_array_temp[j].eksekusi)<Number(rec_array_temp[j+1].eksekusi)) { temp = rec_array_temp[j]; rec_array_temp[j] = rec_array_temp[j+1]; rec_array_temp[j+1] = temp; } } } } function bubblesort_temp_sisa_tiba() { var temp:Number; for (var i = 0; i<rec_array_temp_sisa.length; i++) { for (var j = 0; j<rec_array_temp_sisa.length-1; j++) { if (Number(rec_array_temp_sisa[j].tiba)>Number(rec_array_temp_sisa[j+1].tiba)) { temp = rec_array_temp_sisa[j]; rec_array_temp_sisa[j] = rec_array_temp_sisa[j+1]; rec_array_temp_sisa[j+1] = temp; } } } } function bubblesort_temp_sisa_eksekusi() { var temp:Number; for (var i = 0; i<rec_array_temp_sisa.length; i++) { for (var j = 0; j<rec_array_temp_sisa.length-1; j++) { if (Number(rec_array_temp_sisa[j].eksekusi)<Number(rec_array_temp_sisa[j+1].eksekusi)) { temp = rec_array_temp_sisa[j]; rec_array_temp_sisa[j] = rec_array_temp_sisa[j+1]; rec_array_temp_sisa[j+1] = temp; } } } } function cek_tiba_sama() { for (var i = 0; i<rec_array.length; i++) { for (var j = 0; j<rec_array.length; j++) {

Page 166: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

146

if (rec_array[i].tiba != rec_array[j].tiba && i != j) { return "Tiba --> ada BEDA"; } } } return "Tiba --> semuanya SAMA"; } function bubblesort_tiba() { var temp:Number; for (var i = 0; i<rec_array.length; i++) { for (var j = 0; j<rec_array.length-1; j++) { if (Number(rec_array[j].tiba)>Number(rec_array[j+1].tiba)) { temp = rec_array[j]; rec_array[j] = rec_array[j+1]; rec_array[j+1] = temp; } } } } function bubblesort_prioritas() { var temp:Number; for (var i = 0; i<rec_array.length; i++) { for (var j = 0; j<rec_array.length-1; j++) { if (Number(rec_array[j].prioritas)>Number(rec_array[j+1].prioritas)) { temp = rec_array[j]; rec_array[j] = rec_array[j+1]; rec_array[j+1] = temp; } } } } function bubblesort_temp_prioritas() { var temp:Number; for (var i = 0; i<rec_array_temp.length; i++) { for (var j = 0; j<rec_array_temp.length-1; j++) { if (Number(rec_array_temp[j].prioritas)<Number(rec_array_temp[j+1].prioritas)) { temp = rec_array_temp[j]; rec_array_temp[j] = rec_array_temp[j+1]; rec_array_temp[j+1] = temp; } } } } function bubblesort_temp_prioritas2() { var temp:Number; for (var i = 0; i<rec_array.length; i++) { for (var j = 0; j<rec_array.length-1; j++) { if (Number(rec_array[j].prioritas)<Number(rec_array[j+1].prioritas)) {

Page 167: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

147

temp = rec_array[j]; rec_array[j] = rec_array[j+1]; rec_array[j+1] = temp; } } } } Listing Pada File Final SO Layer FCFS function algo_fcfs() { proses.sortOn("saattiba", Array.NUMERIC); for (var i = 0; i<input_proses.text; i++) { AT[i] = (proses[i].saattiba); ST[i] = (proses[i].lamaproses); } awt = FCFS(AT, ST, input_proses.text); if (cari1(1) == true) { array_proses0.push({nama:rec_array_hasil[0].nama, mulai:StartProc[0], selesai:FinishProc[0]}); duplicateMovieClip(p0, 'p0_'+0, this.getNextHighestDepth()); var my_color1_FCFS:Color = new Color(this['p0_'+0]); my_color1_FCFS.setRGB(proses[0].warna); this['p0_'+0]._x = ((array_proses0[0].mulai)*10)+31; this['p0_'+0]._width = (array_proses0[0].selesai-array_proses0[0].mulai)*10; duplicateMovieClip(wait0, 'wait0_'+0, this.getNextHighestDepth()); this['wait0_'+0]._x = ((array_tunggu0[0].selesai)*10)+31; this['wait0_'+0]._width = (array_tunggu0[0].selesai-array_tunggu0[0].mulai)*10; } if (cari1(2) == true) { array_proses1.push({nama:rec_array_hasil[1].nama, mulai:StartProc[1], selesai:FinishProc[1]}); if (FinishWait[1] != 0) { array_tunggu1.push({mulai:StartWait[1], selesai:FinishWait[1]}); } if (array_proses1[0].mulai<proses[1].saattiba) { array_proses1[0].mulai = proses[1].saattiba; } duplicateMovieClip(p1, 'p1_0', this.getNextHighestDepth()); var my_color2_FCFS:Color = new Color(this['p1_0']); my_color2_FCFS.setRGB(proses[1].warna); this['p1_0']._x = ((array_proses1[0].mulai)*10)+31; this['p1_0']._width = (FinishProc[1]-StartProc[1])*10; duplicateMovieClip(wait1, 'wait1_1', this.getNextHighestDepth()); this['wait1_1']._x = ((array_tunggu1[0].mulai)*10)+31; this['wait1_1']._width = (array_tunggu1[0].selesai-array_tunggu1[0].mulai)*10; }

Page 168: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

148

if (cari1(3) == true) { array_proses2.push({nama:rec_array_hasil[2].nama, mulai:StartProc[2], selesai:FinishProc[2]}); if (FinishWait[2] != 0) { array_tunggu2.push({mulai:StartWait[2], selesai:FinishWait[2]}); } if (array_proses2[0].mulai<proses[2].saattiba) { array_proses2[0].mulai = proses[2].saattiba; } duplicateMovieClip(p2, 'p2_'+2, this.getNextHighestDepth()); var my_color3_FCFS:Color = new Color(this['p2_'+2]); my_color3_FCFS.setRGB(proses[2].warna); this['p2_'+2]._x = ((array_proses2[0].mulai)*10)+31; this['p2_'+2]._width = (array_proses2[0].selesai-array_proses2[0].mulai)*10; duplicateMovieClip(wait2, 'wait2_'+2, this.getNextHighestDepth()); this['wait2_'+2]._x = ((array_tunggu2[0].mulai)*10)+31; this['wait2_'+2]._width = (array_tunggu2[0].selesai-array_tunggu2[0].mulai)*10; } if (cari1(4) == true) { array_proses3.push({nama:rec_array_hasil[3].nama, mulai:StartProc[3], selesai:FinishProc[3]}); if (FinishWait[3] != 0) { array_tunggu3.push({mulai:StartWait[3], selesai:FinishWait[3]}); } if (array_proses3[0].mulai<proses[3].saattiba) { array_proses3[0].mulai = proses[3].saattiba; } duplicateMovieClip(p3, 'p3_'+3, this.getNextHighestDepth()); var my_color4_FCFS:Color = new Color(this['p3_'+3]); my_color4_FCFS.setRGB(proses[3].warna); this['p3_'+3]._x = ((array_proses3[0].mulai)*10)+31; this['p3_'+3]._width = (array_proses3[0].selesai-array_proses3[0].mulai)*10; duplicateMovieClip(wait3, 'wait3_'+3, this.getNextHighestDepth()); this['wait3_'+3]._x = ((array_tunggu3[0].mulai)*10)+31; this['wait3_'+3]._width = (array_tunggu3[0].selesai-array_tunggu3[0].mulai)*10; } if (cari1(5) == true) { array_proses4.push({nama:rec_array_hasil[4].nama, mulai:StartProc[4], selesai:FinishProc[4]}); if (FinishWait[4] != 0) { array_tunggu4.push({mulai:StartWait[4], selesai:FinishWait[4]}); } if (array_proses4[0].mulai<proses[4].saattiba) {

Page 169: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

149

array_proses4[0].mulai = proses[4].saattiba; } duplicateMovieClip(p4, 'p4_'+4, this.getNextHighestDepth()); var my_color5_FCFS:Color = new Color(this['p4_'+4]); my_color5_FCFS.setRGB(proses[4].warna); this['p4_'+4]._x = ((array_proses4[0].mulai)*10)+31; this['p4_'+4]._width = (array_proses4[0].selesai-array_proses4[0].mulai)*10; duplicateMovieClip(wait4, 'wait4_'+4, this.getNextHighestDepth()); this['wait4_'+4]._x = ((array_tunggu4[0].mulai)*10)+31; this['wait4_'+4]._width = (array_tunggu4[0].selesai-array_tunggu4[0].mulai)*10; } for (var i = 0; i<input_proses.text; i++) { _root['name'+(i+1)].text = proses[i].name; } for (var i = 0; i<input_proses.text; i++) { _root['name_p'+(i+1)].text = proses[i].name; } for (var i = 0; i<array_proses0.length; i++) { if (array_proses0[i].selesai>panjang_proses) { panjang_proses = array_proses0[i].selesai; } } for (var i = 0; i<array_proses1.length; i++) { if (array_proses1[i].selesai>panjang_proses) { panjang_proses = array_proses1[i].selesai; } } for (var i = 0; i<array_proses2.length; i++) { if (array_proses2[i].selesai>panjang_proses) { panjang_proses = array_proses2[i].selesai; } } for (var i = 0; i<array_proses3.length; i++) { if (array_proses3[i].selesai>panjang_proses) { panjang_proses = array_proses3[i].selesai; } } for (var i = 0; i<array_proses4.length; i++) { if (array_proses4[i].selesai>panjang_proses) { panjang_proses = array_proses4[i].selesai; } } start_1 = true; duplicateMovieClip(kotak, 'kotak_i', this.getNextHighestDepth()); this['kotak_i']._y = 374; duplicateMovieClip(garis, 'garis_i', this.getNextHighestDepth()); this['garis_i']._y = 374; _root.createEmptyMovieClip('animasi', this.getNextHighestDepth());

Page 170: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

150

_root.animasi.attachMovie('ball_ani', 'animasi', this.getNextHighestDepth()); } Listing Pada File Final SO Layer SJF NP function cek_sama() { for (var i = 0; i<rec_array.length; i++) { for (var j = 0; j<rec_array.length; j++) { if (rec_array[i].tiba != rec_array[j].tiba && i != j) { return "ada beda"; } } } return "sama"; } function SJF_NonP() { bubblesort_tiba(); for (i=0; i<rec_array.length; i++) { trace("KONDISI URUT nama: "+rec_array[i].name+" tiba: "+rec_array[i].tiba+" eksekusi: "+rec_array[i].eksekusi); } var rec_0:Array = new Array(); rec_0.push({name:rec_array[0].name, tiba:rec_array[0].tiba, eksekusi:rec_array[0].eksekusi, mulai:rec_array[0].mulai, selesai:rec_array[0].selesai, selesai:rec_array[0].tunggu}); if (cek_sama() == "sama") { for (i=0; i<rec_array.length; i++) { if (rec_array[i].eksekusi<rec_array[0].selesai) { rec_array_temp.push({name:rec_array[i].name, tiba:rec_array[i].tiba, eksekusi:rec_array[i].eksekusi, mulai:rec_array[i].mulai, selesai:rec_array[i].selesai, selesai:rec_array[i].tunggu}); } else { rec_array_temp_sisa.push({name:rec_array[i].name, tiba:rec_array[i].tiba, eksekusi:rec_array[i].eksekusi, mulai:rec_array[i].mulai, selesai:rec_array[i].selesai, selesai:rec_array[i].tunggu}); } } while (rec_array.length>0) { rec_array.pop(); } bubblesort_temp_sisa_tiba(); bubblesort_temp_tiba(); while (rec_array_temp.length>0) { rec_array.push(rec_array_temp.pop()); } bubblesort_temp_sisa_eksekusi(); while (rec_array_temp_sisa.length>0) { rec_array.push(rec_array_temp_sisa.pop()); }

Page 171: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

151

} rec_array[0].mulai = rec_array[0].tiba; rec_array[0].selesai = rec_array[0].mulai+rec_array[0].eksekusi; var reco:Array = new Array(); for (i=0; i<rec_array.length; i++) { reco.push({name:rec_array[i].name, tiba:rec_array[i].tiba, eksekusi:rec_array[i].eksekusi, mulai:rec_array[i].mulai, selesai:rec_array[i].selesai, tunggu:rec_array[i].tunggu}); } for (i=1; i<rec_array.length; i++) { if (rec_array[i].tiba<=rec_array[i-1].selesai) { rec_array_temp.push({name:rec_array[i].name, tiba:rec_array[i].tiba, eksekusi:rec_array[i].eksekusi, mulai:rec_array[i].mulai, selesai:rec_array[i].selesai, tunggu:rec_array[i].tunggu}); } else { rec_array_temp_sisa.push({name:rec_array[i].name, tiba:rec_array[i].tiba, eksekusi:rec_array[i].eksekusi, mulai:rec_array[i].mulai, selesai:rec_array[i].selesai, tunggu:rec_array[i].tunggu}); } } while (rec_array.length>0) { rec_array.pop(); } bubblesort_temp_sisa_tiba(); bubblesort_temp_tiba(); bubblesort_temp_eksekusi(); while (rec_array_temp.length>0) { rec_array.push(rec_array_temp.pop()); } if (rec_array_temp.length=0) { bubblesort_temp_sisa_eksekusi(); } else { bubblesort_temp_sisa_tiba(); } bubblesort_temp_sisa_eksekusi(); while (rec_array_temp_sisa.length>0) { rec_array.push(rec_array_temp_sisa.pop()); } var rec_1:Array = new Array(); for (i=0; i<rec_array.length; i++) { rec_1.push({name:rec_array[i].name, tiba:rec_array[i].tiba, eksekusi:rec_array[i].eksekusi, mulai:rec_array[i].mulai, selesai:rec_array[i].selesai, selesai:rec_array[i].tunggu}); trace("name: "+rec_array[i].name); } rec_array.splice(0, rec_array.length); rec_array.push({name:rec_0[0].name, tiba:rec_0[0].tiba, eksekusi:rec_0[0].eksekusi, mulai:rec_0[0].mulai, selesai:rec_0[0].selesai, tunggu:rec_0[0].tunggu}); for (i=0; i<rec_1.length; i++) {

Page 172: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

152

rec_array.push({name:rec_1[i].name, tiba:rec_1[i].tiba, eksekusi:rec_1[i].eksekusi, mulai:rec_1[i].mulai, selesai:rec_1[i].selesai, tunggu:rec_1[i].tunggu}); trace("name: "+rec_array[i].name); } rec_array[0].mulai = rec_array[0].tiba; rec_array[0].selesai = rec_array[0].mulai+rec_array[0].eksekusi; for (i=0; i<rec_array.length; i++) { if (rec_array[i].tiba>rec_array[i-1].selesai) { rec_array[i].mulai = rec_array[i].tiba; rec_array[i].selesai = rec_array[i].mulai+rec_array[i].eksekusi; } else if ((rec_array[i].tiba<rec_array[i-1].selesai || rec_array[i].tiba == rec_array[i-1].selesai)) { rec_array[i].mulai = rec_array[i-1].selesai; rec_array[i].selesai = rec_array[i].mulai+rec_array[i].eksekusi; } } for (var i = 0; i<input_proses.text; i++) { proses[i].name = rec_array[i].name; proses[i].saattiba = rec_array[i].tiba; proses[i].lamaproses = rec_array[i].eksekusi; proses[i].warna = _root['warna'+(rec_array[i].name.substr(1, 1))]; } for (var i = 0; i<input_proses.text; i++) { AT[i] = (proses[i].saattiba); ST[i] = (proses[i].lamaproses); } awt = FCFS(AT, ST, input_proses.text); for (var i = 0; i<input_proses.text; i++) { rec_array_hasil.push({nama:proses[i].name, tiba:proses[i].saattiba, StartWait:StartWait[i], FinishWait:FinishWait[i], StartProc:StartProc[i], FinishProc:FinishProc[i], warna:proses[i].warna}); } rec_array_hasil.sortOn(["tiba"], Array.NUMERIC); if (cari1(1) == true) { array_proses0.push({nama:rec_array_hasil[0].nama, mulai:rec_array_hasil[0].StartProc, selesai:rec_array_hasil[0].FinishProc}); trace('prosess0 mulai '+array_proses0[0].selesai); duplicateMovieClip(p0, 'p0_'+0, this.getNextHighestDepth()); var my_color1_SJFNP:Color = new Color(this['p0_'+0]); my_color1_SJFNP.setRGB(rec_array_hasil[0].warna); this['p0_'+0]._x = ((array_proses0[0].mulai)*10)+31; this['p0_'+0]._width = (array_proses0[0].selesai-array_proses0[0].mulai)*10; duplicateMovieClip(wait0, 'wait0_'+0, this.getNextHighestDepth()); this['wait0_'+0]._x = ((array_tunggu0[0].selesai)*10)+31;

Page 173: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

153

this['wait0_'+0]._width = (array_tunggu0[0].selesai-array_tunggu0[0].mulai)*10; } if (cari1(2) == true) { array_proses1.push({nama:rec_array_hasil[1].nama, mulai:rec_array_hasil[1].StartProc, selesai:rec_array_hasil[1].FinishProc}); if (rec_array_hasil[1].FinishWait != 0) { array_tunggu1.push({mulai:rec_array_hasil[1].StartWait, selesai:rec_array_hasil[1].FinishWait}); } if (array_proses1[0].mulai<rec_array_hasil[1].tiba) { array_proses1[0].mulai = rec_array_hasil[1].tiba; } duplicateMovieClip(p1, 'p1_0', this.getNextHighestDepth()); var my_color2_SJFNP:Color = new Color(this['p1_0']); my_color2_SJFNP.setRGB(rec_array_hasil[1].warna); this['p1_0']._x = ((array_proses1[0].mulai)*10)+31; this['p1_0']._width = (array_proses1[0].selesai-array_proses1[0].mulai)*10; duplicateMovieClip(wait1, 'wait1_1', this.getNextHighestDepth()); this['wait1_1']._x = ((array_tunggu1[0].mulai)*10)+31; this['wait1_1']._width = (array_tunggu1[0].selesai-array_tunggu1[0].mulai)*10; } if (cari1(3) == true) { array_proses2.push({nama:rec_array_hasil[2].nama, mulai:rec_array_hasil[2].StartProc, selesai:rec_array_hasil[2].FinishProc}); if (rec_array_hasil[2].FinishWait != 0) { array_tunggu2.push({mulai:rec_array_hasil[2].StartWait, selesai:rec_array_hasil[2].FinishWait}); } if (array_proses2[0].mulai<prec_array_hasil[2].tiba) { array_proses2[0].mulai = rec_array_hasil[2].tiba; } duplicateMovieClip(p2, 'p2_'+2, this.getNextHighestDepth()); var my_color3_SJFNP:Color = new Color(this['p2_'+2]); my_color3_SJFNP.setRGB(rec_array_hasil[2].warna); this['p2_'+2]._x = ((array_proses2[0].mulai)*10)+31; this['p2_'+2]._width = (array_proses2[0].selesai-array_proses2[0].mulai)*10; duplicateMovieClip(wait2, 'wait2_'+2, this.getNextHighestDepth()); this['wait2_'+2]._x = ((array_tunggu2[0].mulai)*10)+31; this['wait2_'+2]._width = (array_tunggu2[0].selesai-array_tunggu2[0].mulai)*10; }

Page 174: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

154

if (cari1(4) == true) { array_proses3.push({nama:rec_array_hasil[3].nama, mulai:rec_array_hasil[3].StartProc, selesai:rec_array_hasil[3].FinishProc}); if (rec_array_hasil[3].FinishWait != 0) { array_tunggu3.push({mulai:rec_array_hasil[3].StartWait, selesai:rec_array_hasil[3].FinishWait}); } if (array_proses3[0].mulai<prec_array_hasil[3].tiba) { array_proses3[0].mulai = rec_array_hasil[3].tiba; } duplicateMovieClip(p3, 'p3_'+3, this.getNextHighestDepth()); var my_color4_SJFNP:Color = new Color(this['p3_'+3]); my_color4_SJFNP.setRGB(rec_array_hasil[3].warna); this['p3_'+3]._x = ((array_proses3[0].mulai)*10)+31; this['p3_'+3]._width = (array_proses3[0].selesai-array_proses3[0].mulai)*10; duplicateMovieClip(wait3, 'wait3_'+3, this.getNextHighestDepth()); this['wait3_'+3]._x = ((array_tunggu3[0].mulai)*10)+31; this['wait3_'+3]._width = (array_tunggu3[0].selesai-array_tunggu3[0].mulai)*10; } if (cari1(5) == true) { array_proses4.push({nama:rec_array_hasil[4].nama, mulai:rec_array_hasil[4].StartProc, selesai:rec_array_hasil[4].FinishProc}); if (rec_array_hasil[4].FinishWait != 0) { array_tunggu4.push({mulai:rec_array_hasil[4].StartWait, selesai:rec_array_hasil[4].FinishWait}); } if (array_proses4[0].mulai<rec_array_hasil[4].tiba) { array_proses4[0].mulai = rec_array_hasil[4].tiba; } duplicateMovieClip(p4, 'p4_'+4, this.getNextHighestDepth()); var my_color5_SJFNP:Color = new Color(this['p4_'+4]); my_color5_SJFNP.setRGB(rec_array_hasil[4].warna); this['p4_'+4]._x = ((array_proses4[0].mulai)*10)+31; this['p4_'+4]._width = (array_proses4[0].selesai-array_proses4[0].mulai)*10; duplicateMovieClip(wait4, 'wait4_'+4, this.getNextHighestDepth()); this['wait4_'+4]._x = ((array_tunggu4[0].mulai)*10)+31; this['wait4_'+4]._width = (array_tunggu4[0].selesai-array_tunggu4[0].mulai)*10; } for (var i = 0; i<input_proses.text; i++) { _root['name'+(i+1)].text = rec_array_hasil[i].nama;

Page 175: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

155

} for (var i = 0; i<input_proses.text; i++) { _root['name_p'+(i+1)].text = rec_array_hasil[i].nama; } for (var i = 0; i<array_proses0.length; i++) { if (array_proses0[i].selesai>panjang_proses) { panjang_proses = array_proses0[i].selesai; } } for (var i = 0; i<array_proses1.length; i++) { if (array_proses1[i].selesai>panjang_proses) { panjang_proses = array_proses1[i].selesai; } } for (var i = 0; i<array_proses2.length; i++) { if (array_proses2[i].selesai>panjang_proses) { panjang_proses = array_proses2[i].selesai; } } for (var i = 0; i<array_proses3.length; i++) { if (array_proses3[i].selesai>panjang_proses) { panjang_proses = array_proses3[i].selesai; } } for (var i = 0; i<array_proses4.length; i++) { if (array_proses4[i].selesai>panjang_proses) { panjang_proses = array_proses4[i].selesai; } } start_1 = true; duplicateMovieClip(kotak, 'kotak_i', this.getNextHighestDepth()); this['kotak_i']._y = 374; duplicateMovieClip(garis, 'garis_i', this.getNextHighestDepth()); this['garis_i']._y = 374; _root.createEmptyMovieClip('animasi', this.getNextHighestDepth()); _root.animasi.attachMovie('ball_ani', 'animasi', this.getNextHighestDepth()); } Listing Pada File Final SO Layer SJFP function cari_index(inp:String) { for (var i = 0; i<array_temp.length; i++) { if (array_temp[i].id == inp) { return i; } } return -1; } function cari_tiba0() { for (var i = 0; i<array.length; i++) { if (array[i].AT == 0) { trace('ada yng 0000000');

Page 176: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

156

return 'ada'; } } return 'tdk'; } function cari_id(inp:String) { for (var i = 0; i<array_id.length; i++) { if (array_id[i].id == inp) { return 'ada'; } } return 'tdk'; } function cari1(k:Number) { for (var i = 1; i<=_root.proses_jumlah; i++) { if (i == k) { return true; } } } function SJFPrem() { for (var i = 0; i<input_proses.text; i++) { array.push({name:rec_array[i].name, id:rec_array[i].id, AT:rec_array[i].tiba, ET:rec_array[i].eksekusi, ST:'', FT:'', WT:'', RT:''}); } rec_array.sortOn(["tiba"], Array.NUMERIC); for (i=0; i<array.length; i++) { //trace("nama: "+array[i].name+" tiba: "+array[i].AT+" eksekusi: "+array[i].ET+" prioritas: "+array[i].Prio); } trace("=================================================================="); array.sortOn(["AT"], Array.NUMERIC); start_time = array[0].AT; max_time = start_time; for (i=0; i<array.length; i++) { array2.push({name:array[i].name, id:array[i].id, AT:array[i].AT, ET:array[i].ET, Prio:array[i].Prio, ST:array[i].ST, FT:array[i].FT, WT:array[i].WT, RT:array[i].ET}); if ((array[i].AT-max_time)<=0) { max_time += array[i].ET; } else { max_time += (array[i].AT-max_time)+array[i].ET; } } for (i=0; i<(max_time-1); i++) { if (i<(start_time-1)) { trace("detik ke: "+(i+1)+" ...."); trace("menunggu di awal............"); continue; } array2.sortOn(["AT", "RT"], Array.NUMERIC); n = 0; for (k=0; k<array2.length; k++) { if (array2[k].RT>0) {

Page 177: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

157

n = k; break; } } if (array2[n].AT>(i+1)) { trace("detik ke: "+(i+1)+" ...."); trace("menunggu ditengah ............"); continue; } array2[n].RT -= 1; array2[n].AT += 1; for (j=(n+1); j<array2.length; j++) { if (array2[j].AT<array2[n].AT) { array2[j].AT += 1; } } array_hasil.push({nama:array2[n].name, tempat:(i+1), id:array2[n].id, mulai:(array2[n].AT)-1, selesai:array2[n].AT}); trace("detik ke: "+(i+1)+" ...."); trace("nama proses: "+array2[n].name+", dengan AT: "+array2[n].AT+" dan ET: "+array2[n].ET+", RT: "+array2[n].RT+", ID : "+array2[n].id); } if (cari_tiba0() == 'ada') { trace('ada saattiba yg 0'); array_hasil.push({nama:array2[n].name, tempat:array_hasil[array_hasil.length-1].tempat+1, id:array_hasil[array_hasil.length-1].id, mulai:(array_hasil[array_hasil.length-1].selesai), selesai:(array_hasil[array_hasil.length-1].selesai)+1}); } for (var i = 0; i<array_hasil.length; i++) { trace("rec_array --> nama : "+array_hasil[i].nama+" nilai : "+array_hasil[i].tempat+' ID '+array_hasil[i].id+' mulai '+array_hasil[i].mulai+' selesai '+array_hasil[i].selesai); } for (var i = 0; i<array_hasil.length; i++) { if (array_hasil[i].nama != array_hasil[i+1].nama) { if (cari_tiba0() == 'ada') { trace('ada yang tibanya NOL'); rec_array_hasil.push({nama:array_hasil[i].nama, id:array_hasil[i].id, nilai:array_hasil[i].tempat, mulai:'', selesai:array_hasil[i].tempat}); } else { rec_array_hasil.push({nama:array_hasil[i].nama, id:array_hasil[i].id, nilai:array_hasil[i].tempat, mulai:'', selesai:array_hasil[i].tempat+1}); } } } for (var i = 0; i<rec_array_hasil.length; i++) { trace("rec_array hasil--> proses: "+rec_array_hasil[i].nama+" nilai : "+rec_array_hasil[i].nilai+'

Page 178: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

158

mulai '+rec_array_hasil[i].mulai+' selesai '+rec_array_hasil[i].selesai); } trace('==================='); rec_array_hasil[0].mulai = array_hasil[0].mulai; for (var i = 1; i<rec_array_hasil.length; i++) { rec_array_hasil[i].mulai = rec_array_hasil[i-1].selesai; } for (var i = 0; i<rec_array_hasil.length; i++) { trace("hasil disederhanakan - > nama proses: "+rec_array_hasil[i].nama+' id '+rec_array_hasil[i].id+' mulai '+rec_array_hasil[i].mulai+' selesai '+rec_array_hasil[i].selesai); } array_id.push({id:rec_array_hasil[0].id}); for (var i = 1; i<rec_array_hasil.length; i++) { if (cari_id(rec_array_hasil[i].id) == 'tdk') { array_id.push({id:rec_array_hasil[i].id}); } } for (var i = 0; i<array_id.length; i++) { trace('array_id ID : '+array_id[i].id); } for (i=0; i<array.length; i++) { array_temp.push({name:array[i].name, AT:array[i].AT, ET:array[i].ET, id:array[i].id}); trace("array_temp -- nama: "+array_temp[i].name+" tiba: "+array_temp[i].AT+" eksekusi: "+array_temp[i].ET); } trace('panjang array_temp '+array_temp.length); for (var i = 0; i<rec_array_hasil.length; i++) { trace("hasil -- nama proses: "+rec_array_hasil[i].nama+' mulai '+rec_array_hasil[i].mulai+' selesai '+rec_array_hasil[i].selesai); } for (var i = 0; i<rec_array.length; i++) { rec_array[i].name = array_temp[cari_index(array_id[i].id)].name; rec_array[i].tiba = array_temp[cari_index(array_id[i].id)].AT; rec_array[i].eksekusi = array_temp[cari_index(array_id[i].id)].ET; rec_array[i].id = array_temp[cari_index(array_id[i].id)].id; } var jml_proses0 = 0; var jml_proses1 = 0; var jml_proses2 = 0; var jml_proses3 = 0; var jml_proses4 = 0; for (var i = 0; i<rec_array_hasil.length; i++) { if (rec_array_hasil[i].nama == rec_array[0].name) { jml_proses0++; } if (rec_array_hasil[i].nama == rec_array[1].name) {

Page 179: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

159

jml_proses1++; } if (rec_array_hasil[i].nama == rec_array[2].name) { jml_proses2++; } if (rec_array_hasil[i].nama == rec_array[3].name) { jml_proses3++; } if (rec_array_hasil[i].nama == rec_array[4].name) { jml_proses4++; } } var jml_tunggu0 = jml_proses0-1; var jml_tunggu1 = jml_proses1-1; var jml_tunggu2 = jml_proses2-1; var jml_tunggu3 = jml_proses3-1; var jml_tunggu4 = jml_proses4-1; for (var i = 0; i<rec_array_hasil.length; i++) { if (rec_array_hasil[i].nama == rec_array[0].name) { array_proses0.push({nama:rec_array_hasil[i].nama, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } if (rec_array_hasil[i].nama == rec_array[1].name) { array_proses1.push({nama:rec_array_hasil[i].nama, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } if (rec_array_hasil[i].nama == rec_array[2].name) { array_proses2.push({nama:rec_array_hasil[i].nama, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } if (rec_array_hasil[i].nama == rec_array[3].name) { array_proses3.push({nama:rec_array_hasil[i].nama, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } if (rec_array_hasil[i].nama == rec_array[4].name) { array_proses4.push({nama:rec_array_hasil[i].nama, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } } for (var i = 0; i<array_proses0.length; i++) { trace("NAMA: "+array_proses0[i].nama+" MULAI: "+array_proses0[i].mulai+" "+"SELESAI: "+array_proses0[i].selesai); } for (var i = 0; i<jml_tunggu0; i++) {

Page 180: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

160

array_tunggu0.push({mulai:array_proses0[i].selesai, selesai:array_proses0[i+1].mulai}); trace("mulai tunggu "+(i+1)+" "+array_proses0[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses0[i+1].mulai); } for (var i = 0; i<array_proses1.length; i++) { trace("NAMA: "+array_proses1[i].nama+" MULAI: "+array_proses1[i].mulai+" "+"SELESAI: "+array_proses1[i].selesai); } if (array_proses1[0].mulai>rec_array[1].tiba) { array_tunggu1.push({mulai:rec_array[1].tiba, selesai:array_proses1[0].mulai}); } for (var i = 0; i<jml_tunggu1; i++) { array_tunggu1.push({mulai:array_proses1[i].selesai, selesai:array_proses1[i+1].mulai}); trace("mulai tunggu ke "+(i+1)+" "+array_proses1[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses1[i+1].mulai); } for (var i = 0; i<array_proses2.length; i++) { trace("NAMA: "+array_proses2[i].nama+" MULAI: "+array_proses2[i].mulai+" "+"SELESAI: "+array_proses2[i].selesai); } if (array_proses2[0].mulai>rec_array[2].tiba) { array_tunggu2.push({mulai:rec_array[2].tiba, selesai:array_proses2[0].mulai}); } for (var i = 0; i<jml_tunggu2; i++) { array_tunggu2.push({mulai:array_proses2[i].selesai, selesai:array_proses2[i+1].mulai}); trace("mulai tunggu ke "+(i+1)+" "+array_proses2[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses2[i+1].mulai); } for (var i = 0; i<array_proses3.length; i++) { trace("NAMA: "+array_proses3[i].nama+" MULAI: "+array_proses3[i].mulai+" "+"SELESAI: "+array_proses3[i].selesai); } if (array_proses3[0].mulai>rec_array[3].tiba) { array_tunggu3.push({mulai:rec_array[3].tiba, selesai:array_proses3[0].mulai}); } for (var i = 0; i<jml_tunggu3; i++) { array_tunggu3.push({mulai:array_proses3[i].selesai, selesai:array_proses3[i+1].mulai}); trace("mulai tunggu ke "+(i+1)+" "+array_proses3[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses3[i+1].mulai); } for (var i = 0; i<array_proses4.length; i++) {

Page 181: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

161

trace("NAMA: "+array_proses4[i].nama+" MULAI: "+array_proses4[i].mulai+" "+"SELESAI: "+array_proses4[i].selesai); } if (array_proses4[0].mulai>rec_array[4].tiba) { array_tunggu4.push({mulai:rec_array[4].tiba, selesai:array_proses4[0].mulai}); } for (var i = 0; i<jml_tunggu4; i++) { array_tunggu4.push({mulai:array_proses4[i].selesai, selesai:array_proses4[i+1].mulai}); trace("mulai tunggu ke "+(i+1)+" "+array_proses4[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses4[i+1].mulai); } for (var i = 0; i<array_proses0.length; i++) { if (array_proses0[i].selesai>panjang_proses) { panjang_proses = array_proses0[i].selesai; } } for (var i = 0; i<array_proses1.length; i++) { if (array_proses1[i].selesai>panjang_proses) { panjang_proses = array_proses1[i].selesai; } } for (var i = 0; i<array_proses2.length; i++) { if (array_proses2[i].selesai>panjang_proses) { panjang_proses = array_proses2[i].selesai; } } for (var i = 0; i<array_proses3.length; i++) { if (array_proses3[i].selesai>panjang_proses) { panjang_proses = array_proses3[i].selesai; } } for (var i = 0; i<array_proses4.length; i++) { if (array_proses4[i].selesai>panjang_proses) { panjang_proses = array_proses4[i].selesai; } } for (var i = 0; i<input_proses.text; i++) { proses[i].name = rec_array[i].name; proses[i].saattiba = rec_array[i].tiba; proses[i].lamaproses = rec_array[i].eksekusi; proses[i].warna = _root['warna'+(rec_array[i].name.substr(1, 1))]; } for (var i = 0; i<proses.length; i++) { trace('urutan id '+cari_index(array_id[i].id)); proses[i].name = array_temp[cari_index(array_id[i].id)].name; proses[i].saattiba = array_temp[cari_index(array_id[i].id)].AT; proses[i].lamaproses = array_temp[cari_index(array_id[i].id)].ET;

Page 182: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

162

proses[i].id[i].id = array_temp[cari_index(array_id[i].id)].id; } for (i=0; i<input_proses.text; i++) { trace("nama proses: "+proses[i].name+" ID : "+proses[i].id+" tiba: "+proses[i].saattiba+" eksekusi: "+proses[i].lamaproses+"warna : "+proses[i].warna); } if (array_proses1[0].mulai<proses[1].saattiba) { array_proses1[0].mulai = proses[1].saattiba; } if (array_proses2[0].mulai<proses[2].saattiba) { array_proses2[0].mulai = proses[2].saattiba; } if (array_proses3[0].mulai<proses[3].saattiba) { array_proses3[0].mulai = proses[3].saattiba; } if (array_proses4[0].mulai<proses[4].saattiba) { array_proses4[0].mulai = proses[4].saattiba; } var my_color1:Color = new Color(p0); my_color1.setRGB(proses[0].warna); var my_color2:Color = new Color(p1); my_color2.setRGB(proses[1].warna); var my_color3:Color = new Color(p2); my_color3.setRGB(proses[2].warna); var my_color4:Color = new Color(p3); my_color4.setRGB(proses[3].warna); var my_color5:Color = new Color(p4); my_color5.setRGB(proses[4].warna); for (i=0; i<input_proses.text; i++) { //trace("hasil proses nama: "+proses[i].name+" tiba: "+proses[i].saattiba+" lama: "+proses[i].lamaproses+"warna : "+proses[i].warna); } for (var i = 0; i<input_proses.text; i++) { _root['name'+(i+1)].text = proses[i].name; } for (var i = 0; i<input_proses.text; i++) { _root['name_p'+(i+1)].text = proses[i].name; } for (var j = 0; j<array_proses0.length; j++) { duplicateMovieClip(p0, 'p0_'+j, this.getNextHighestDepth()); var my_color1_RR:Color = new Color(this['p0_'+j]); my_color1_RR.setRGB(proses[0].warna); this['p0_'+j]._x = ((array_proses0[j].mulai)*10)+31; this['p0_'+j]._width = (array_proses0[j].selesai-array_proses0[j].mulai)*10; } for (var j = 0; j<jml_tunggu0; j++) { duplicateMovieClip(wait0, 'wait0_'+j, this.getNextHighestDepth()); this['wait0_'+j]._x = ((array_proses0[j].selesai)*10)+31;

Page 183: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

163

this['wait0_'+j]._width = (array_proses0[j+1].mulai-array_proses0[j].selesai)*10; } for (var j = 0; j<array_proses1.length; j++) { trace("menggambar prosess "+j); duplicateMovieClip(p1, 'p1_'+j, this.getNextHighestDepth()); var my_color2_RR:Color = new Color(this['p1_'+j]); my_color2_RR.setRGB(proses[1].warna); this['p1_'+j]._x = ((array_proses1[j].mulai)*10)+31; this['p1_'+j]._width = (array_proses1[j].selesai-array_proses1[j].mulai)*10; } if (array_tunggu1.length != 0) { duplicateMovieClip(wait1, 'wait1_pertama', this.getNextHighestDepth()); this['wait1_pertama']._x = ((rec_array[1].tiba)*10)+31; this['wait1_pertama']._width = (array_proses1[0].mulai-rec_array[1].tiba)*10; } for (var j = 0; j<jml_tunggu1; j++) { duplicateMovieClip(wait1, 'wait1_'+j, this.getNextHighestDepth()); this['wait1_'+j]._x = ((array_proses1[j].selesai)*10)+31; this['wait1_'+j]._width = (array_proses1[j+1].mulai-array_proses1[j].selesai)*10; } for (var j = 0; j<array_proses2.length; j++) { duplicateMovieClip(p2, 'p2_'+j, this.getNextHighestDepth()); var my_color3_RR:Color = new Color(this['p2_'+j]); my_color3_RR.setRGB(proses[2].warna); this['p2_'+j]._x = ((array_proses2[j].mulai)*10)+31; this['p2_'+j]._width = (array_proses2[j].selesai-array_proses2[j].mulai)*10; } duplicateMovieClip(wait2, 'wait2_pertama', this.getNextHighestDepth()); this['wait2_pertama']._x = ((rec_array[2].tiba)*10)+31; this['wait2_pertama']._width = (array_proses2[0].mulai-rec_array[2].tiba)*10; for (var j = 0; j<jml_tunggu2; j++) { duplicateMovieClip(wait2, 'wait2_'+j, this.getNextHighestDepth()); this['wait2_'+j]._x = ((array_proses2[j].selesai)*10)+31; this['wait2_'+j]._width = (array_proses2[j+1].mulai-array_proses2[j].selesai)*10; } for (var j = 0; j<array_proses3.length; j++) { duplicateMovieClip(p3, 'p3_'+j, this.getNextHighestDepth()); var my_color4_RR:Color = new Color(this['p3_'+j]); my_color4_RR.setRGB(proses[3].warna);

Page 184: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

164

this['p3_'+j]._x = ((array_proses3[j].mulai)*10)+31; this['p3_'+j]._width = (array_proses3[j].selesai-array_proses3[j].mulai)*10; } duplicateMovieClip(wait3, 'wait3_pertama', this.getNextHighestDepth()); this['wait3_pertama']._x = ((rec_array[3].tiba)*10)+31; this['wait3_pertama']._width = (array_proses3[0].mulai-rec_array[3].tiba)*10; for (var j = 0; j<jml_tunggu3; j++) { duplicateMovieClip(wait3, 'wait3_'+j, this.getNextHighestDepth()); this['wait3_'+j]._x = ((array_proses3[j].selesai)*10)+31; this['wait3_'+j]._width = (array_proses3[j+1].mulai-array_proses3[j].selesai)*10; } for (var j = 0; j<array_proses4.length; j++) { duplicateMovieClip(p4, 'p4_'+j, this.getNextHighestDepth()); var my_color5_RR:Color = new Color(this['p4_'+j]); my_color5_RR.setRGB(proses[4].warna); this['p4_'+j]._x = ((array_proses4[j].mulai)*10)+31; this['p4_'+j]._width = (array_proses4[j].selesai-array_proses4[j].mulai)*10; } duplicateMovieClip(wait4, 'wait4_pertama', this.getNextHighestDepth()); this['wait4_pertama']._x = ((rec_array[4].tiba)*10)+31; this['wait4_pertama']._width = (array_proses4[0].mulai-rec_array[4].tiba)*10; for (var j = 0; j<jml_tunggu4; j++) { duplicateMovieClip(wait4, 'wait4_'+j, this.getNextHighestDepth()); this['wait4_'+j]._x = ((array_proses4[j].selesai)*10)+31; this['wait4_'+j]._width = (array_proses4[j+1].mulai-array_proses4[j].selesai)*10; } duplicateMovieClip(kotak, 'kotak_i', this.getNextHighestDepth()); this['kotak_i']._y = 374; duplicateMovieClip(garis, 'garis_i', this.getNextHighestDepth()); this['garis_i']._y = 374; start_1 = true; _root.createEmptyMovieClip('animasi', this.getNextHighestDepth()); _root.animasi.attachMovie('ball_ani', 'animasi', this.getNextHighestDepth()); }

Page 185: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

165

Listing Pada File Final SO Layer Round R function roundRobin() { var panjang = 80; var proses_a = 0; rec_array.sortOn(["tiba"]); while (proses_a<80) { for (i=0; i<rec_array.length; i++) { if ((rec_array[i].eksekusi>=quantum) && (rec_array[i].tiba<proses_a)) { rec_array_hasil.push({nama:rec_array[i].name, tempat:i, nilai:quantum, mulai:"", selesai:""}); proses_a = proses_a+quantum; rec_array[i].eksekusi = rec_array[i].eksekusi-quantum; } else if ((rec_array[i].eksekusi>0) && (rec_array[i].eksekusi<quantum) && (rec_array[i].tiba<proses_a)) { rec_array_hasil.push({nama:rec_array[i].name, tempat:i, nilai:rec_array[i].eksekusi, mulai:"", selesai:""}); proses_a = proses_a+rec_array[i].eksekusi; rec_array[i].eksekusi = 0; } } proses_a = proses_a+quantum; } rec_array_hasil[0].mulai = rec_array[0].tiba; rec_array_hasil[0].selesai = rec_array_hasil[0].mulai+rec_array_hasil[0].nilai; for (i=1; i<rec_array_hasil.length; i++) { rec_array_hasil[i].mulai = rec_array_hasil[i-1].mulai+rec_array_hasil[i-1].nilai; rec_array_hasil[i].selesai = rec_array_hasil[i].mulai+rec_array_hasil[i].nilai; } rec_array_hasil.sortOn(["tiba"]); for (var i = 0; i<rec_array_hasil.length; i++) { trace("NAMA: "+rec_array_hasil[i].nama+" "+"PROSES: "+rec_array_hasil[i].tempat+" "+"JALAN: "+rec_array_hasil[i].nilai+" "+"MULAI: "+rec_array_hasil[i].mulai+" "+"SELESAI: "+rec_array_hasil[i].selesai); } var jml_proses0 = 0; var jml_proses1 = 0; var jml_proses2 = 0; var jml_proses3 = 0; var jml_proses4 = 0; for (var i = 0; i<rec_array_hasil.length; i++) { if (rec_array_hasil[i].nama == rec_array[0].name) { jml_proses0++; } if (rec_array_hasil[i].nama == rec_array[1].name) { jml_proses1++; } if (rec_array_hasil[i].nama == rec_array[2].name) {

Page 186: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

166

jml_proses2++; } if (rec_array_hasil[i].nama == rec_array[3].name) { jml_proses3++; } if (rec_array_hasil[i].nama == rec_array[4].name) { jml_proses4++; } } var jml_tunggu0 = jml_proses0-1; var jml_tunggu1 = jml_proses1-1; var jml_tunggu2 = jml_proses2-1; var jml_tunggu3 = jml_proses3-1; var jml_tunggu4 = jml_proses4-1; for (var i = 0; i<rec_array_hasil.length; i++) { if (rec_array_hasil[i].nama == rec_array[0].name) { array_proses0.push({nama:rec_array_hasil[i].nama, tempat:rec_array_hasil[i].tempat, nilai:rec_array_hasil[i].nilai, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } if (rec_array_hasil[i].nama == rec_array[1].name) { array_proses1.push({nama:rec_array_hasil[i].nama, tempat:rec_array_hasil[i].tempat, nilai:rec_array_hasil[i].nilai, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } if (rec_array_hasil[i].nama == rec_array[2].name) { array_proses2.push({nama:rec_array_hasil[i].nama, tempat:rec_array_hasil[i].tempat, nilai:rec_array_hasil[i].nilai, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } if (rec_array_hasil[i].nama == rec_array[3].name) { array_proses3.push({nama:rec_array_hasil[i].nama, tempat:rec_array_hasil[i].tempat, nilai:rec_array_hasil[i].nilai, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } if (rec_array_hasil[i].nama == rec_array[4].name) { array_proses4.push({nama:rec_array_hasil[i].nama, tempat:rec_array_hasil[i].tempat, nilai:rec_array_hasil[i].nilai, mulai:rec_array_hasil[i].mulai, selesai:rec_array_hasil[i].selesai}); } } for (var i = 0; i<array_proses0.length; i++) { trace("NAMA: "+array_proses0[i].nama+" "+"PROSES: "+array_proses0[i].tempat+" "+"JALAN: "+array_proses0[i].nilai+" "+"MULAI: "+array_proses0[i].mulai+" "+"SELESAI: "+array_proses0[i].selesai);

Page 187: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

167

} for (var i = 0; i<jml_tunggu0; i++) { array_tunggu0.push({mulai:array_proses0[i].selesai, selesai:array_proses0[i+1].mulai}); trace("mulai tunggu "+(i+1)+" "+array_proses0[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses0[i+1].mulai); } for (var i = 0; i<array_proses1.length; i++) { trace("NAMA: "+array_proses1[i].nama+" MULAI: "+array_proses1[i].mulai+" "+"SELESAI: "+array_proses1[i].selesai); } if (array_proses1[0].mulai>rec_array[1].tiba) { array_tunggu1.push({mulai:rec_array[1].tiba, selesai:array_proses1[0].mulai}); } for (var i = 0; i<jml_tunggu1; i++) { array_tunggu1.push({mulai:array_proses1[i].selesai, selesai:array_proses1[i+1].mulai}); trace("mulai tunggu ke "+(i+1)+" "+array_proses1[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses1[i+1].mulai); } for (var i = 0; i<array_proses2.length; i++) { trace("NAMA: "+array_proses2[i].nama+" MULAI: "+array_proses2[i].mulai+" "+"SELESAI: "+array_proses2[i].selesai); } if (array_proses2[0].mulai>rec_array[2].tiba) { array_tunggu2.push({mulai:rec_array[2].tiba, selesai:array_proses2[0].mulai}); } for (var i = 0; i<jml_tunggu2; i++) { array_tunggu2.push({mulai:array_proses2[i].selesai, selesai:array_proses2[i+1].mulai}); trace("mulai tunggu ke "+(i+1)+" "+array_proses2[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses2[i+1].mulai); } for (var i = 0; i<array_proses3.length; i++) { trace("NAMA: "+array_proses3[i].nama+" MULAI: "+array_proses3[i].mulai+" "+"SELESAI: "+array_proses3[i].selesai); } if (array_proses3[0].mulai>rec_array[3].tiba) { array_tunggu3.push({mulai:rec_array[3].tiba, selesai:array_proses3[0].mulai}); } for (var i = 0; i<jml_tunggu3; i++) { array_tunggu3.push({mulai:array_proses3[i].selesai, selesai:array_proses3[i+1].mulai}); trace("mulai tunggu ke "+(i+1)+" "+array_proses3[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses3[i+1].mulai); }

Page 188: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

168

for (var i = 0; i<array_proses4.length; i++) { trace("NAMA: "+array_proses4[i].nama+" MULAI: "+array_proses4[i].mulai+" "+"SELESAI: "+array_proses4[i].selesai); } if (array_proses4[0].mulai>rec_array[4].tiba) { array_tunggu4.push({mulai:rec_array[4].tiba, selesai:array_proses4[0].mulai}); } for (var i = 0; i<jml_tunggu4; i++) { array_tunggu4.push({mulai:array_proses4[i].selesai, selesai:array_proses4[i+1].mulai}); trace("mulai tunggu ke "+(i+1)+" "+array_proses4[i].selesai+" selesai tunggu "+(i+1)+" "+array_proses4[i+1].mulai); } for (var i = 0; i<input_proses.text; i++) { //proses.push({name: "P"+i, saattiba: _root['p'+i+'_saattiba'], lamaproses: _root['p'+i+'_lamaproses'],warna:_root['warna'+i]}); proses[i].name = rec_array[i].name; proses[i].saattiba = rec_array[i].tiba; proses[i].lamaproses = rec_array[i].eksekusi; proses[i].warna = _root['warna'+(rec_array[i].name.substr(1, 1))]; } } Listing Pada File Final SO Layer Prio NP function priority_NonP() { cek_tiba_sama(); if (cek_tiba_sama() == "Tiba --> semuanya SAMA") { bubblesort_prioritas(); } else { bubblesort_tiba(); rec_array_temp_sisa.push({name:rec_array[0].name, tiba:rec_array[0].tiba, eksekusi:rec_array[0].eksekusi, prioritas:rec_array[0].prioritas, mulai:rec_array[0].mulai, selesai:rec_array[0].selesai}); for (i=1; i<rec_array.length; i++) { rec_array_temp.push({name:rec_array[i].name, tiba:rec_array[i].tiba, eksekusi:rec_array[i].eksekusi, prioritas:rec_array[i].prioritas, mulai:rec_array[i].mulai, selesai:rec_array[i].selesai}); trace("AMBIL nama: "+rec_array[i].name+" tiba: "+rec_array[i].tiba+" eksekusi: "+rec_array[i].eksekusi+" prioritas: "+rec_array[i].prioritas); } bubblesort_temp_prioritas(); while (rec_array.length>0) { rec_array.pop(); } for (i=0; i<rec_array_temp.length; i++) { //trace("AMBIL URUT PRIORITAS nama: "+rec_array_temp[i].name+" tiba: "+rec_array_temp[i].tiba+"

Page 189: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

169

eksekusi: "+rec_array_temp[i].eksekusi+" prioritas: "+rec_array_temp[i].prioritas); } rec_array.push(rec_array_temp_sisa.pop()); while (rec_array_temp.length>0) { rec_array.push(rec_array_temp.pop()); } } trace(rec_array.length); rec_array[0].mulai = rec_array[0].tiba; rec_array[0].selesai = rec_array[0].mulai+rec_array[0].eksekusi; if (rec_array[1].tiba>rec_array[0].selesai) { rec_array[1].mulai = rec_array[1].tiba; rec_array[1].selesai = rec_array[1].mulai+rec_array[1].eksekusi; } else if ((rec_array[1].tiba<rec_array[0].selesai) || (rec_array[1].tiba == rec_array[0].selesai)) { rec_array[1].mulai = rec_array[0].selesai; rec_array[1].selesai = rec_array[1].mulai+rec_array[1].eksekusi; } if (rec_array[2].tiba>rec_array[1].selesai) { rec_array[2].mulai = rec_array[2].tiba; rec_array[2].selesai = rec_array[2].mulai+rec_array[2].eksekusi; } else if ((rec_array[2].tiba<rec_array[1].selesai || rec_array[2].tiba == rec_array[1].selesai)) { rec_array[2].mulai = rec_array[1].selesai; rec_array[2].selesai = rec_array[2].mulai+rec_array[2].eksekusi; } if (rec_array[3].tiba>rec_array[2].selesai) { rec_array[3].mulai = rec_array[3].tiba; rec_array[3].selesai = rec_array[3].mulai+rec_array[3].eksekusi; } else if ((rec_array[3].tiba<rec_array[2].selesai || rec_array[3].tiba == rec_array[2].selesai)) { rec_array[3].mulai = rec_array[2].selesai; rec_array[3].selesai = rec_array[3].mulai+rec_array[3].eksekusi; } if (rec_array[4].tiba>rec_array[3].selesai) { rec_array[4].mulai = rec_array[4].tiba; rec_array[4].selesai = rec_array[4].mulai+rec_array[4].eksekusi; } else if ((rec_array[4].tiba<rec_array[3].selesai || rec_array[4].tiba == rec_array[3].selesai)) { rec_array[4].mulai = rec_array[3].selesai; rec_array[4].selesai = rec_array[4].mulai+rec_array[4].eksekusi; } }

Listing Pada File Final SO Layer Priority P function priorityPrem() {

Page 190: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

170

for (var i = 0; i<input_proses.text; i++) { array.push({name:rec_array[i].name, id:rec_array[i].id, AT:rec_array[i].tiba, ET:rec_array[i].eksekusi, Prio:rec_array[i].prioritas, ST:'', FT:'', WT:'', RT:''}); } rec_array.sortOn(["tiba"], Array.NUMERIC); for (i=0; i<array.length; i++) { //trace("nama: "+array[i].name+" tiba: "+array[i].AT+" eksekusi: "+array[i].ET+" prioritas: "+array[i].Prio); } trace("=================================================================="); array.sortOn(["AT"], Array.NUMERIC); start_time = array[0].AT; max_time = start_time; for (i=0; i<array.length; i++) { array2.push({name:array[i].name, id:array[i].id, AT:array[i].AT, ET:array[i].ET, Prio:array[i].Prio, ST:array[i].ST, FT:array[i].FT, WT:array[i].WT, RT:array[i].ET, OAT:array[i].AT}); if ((array[i].AT-max_time)<=0) { max_time += array[i].ET; } else { max_time += (array[i].AT-max_time)+array[i].ET; } } array2.sortOn(["Prio"], Array.NUMERIC); max_prio = array2[4].Prio; for (i=0; i<(max_time-1); i++) { if (i<(start_time-1)) { trace("detik ke: "+(i+1)+" ...."); trace("menunggu di awal............"); continue; } array2.sortOn(["AT", "Prio", "OAT"], Array.NUMERIC); n = 0; for (k=0; k<array2.length; k++) { if (array2[k].RT>0) { n = k; break; } } if (array2[n].AT>(i+1)) { trace("detik ke: "+(i+1)+" ...."); trace("menunggu ditengah ............"); continue; } array2[n].RT -= 1; array2[n].AT += 1; if (array2[0].RT<=0) { array2[0].Prio = max_prio+1; } for (j=(n+1); j<array2.length; j++) { if (array2[j].AT<array2[n].AT) { array2[j].AT += 1;

Page 191: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

171

} } array_hasil.push({nama:array2[n].name, tempat:(i+1), id:array2[n].id, mulai:(array2[n].AT)-1, selesai:array2[n].AT}); trace("detik ke: "+(i+1)+" ...."); trace("nama proses: "+array2[n].name+", dengan AT: "+array2[n].AT+" dan ET: "+array2[n].ET+", RT: "+array2[n].RT); } if (cari_tiba0() == 'ada') { trace('ada saattiba yg 0'); array_hasil.push({nama:array2[n].name, tempat:array_hasil[array_hasil.length-1].tempat+1, id:array_hasil[array_hasil.length-1].id, mulai:(array_hasil[array_hasil.length-1].selesai), selesai:(array_hasil[array_hasil.length-1].selesai)+1}); } for (var i = 0; i<array_hasil.length; i++) { trace("rec_array --> nama : "+array_hasil[i].nama+" nilai : "+array_hasil[i].tempat+' ID '+array_hasil[i].id+' mulai '+array_hasil[i].mulai+' selesai '+array_hasil[i].selesai); } for (var i = 0; i<array_hasil.length; i++) { if (array_hasil[i].nama != array_hasil[i+1].nama) { if (cari_tiba0() == 'ada') { trace('ada yang tibanya NOL'); rec_array_hasil.push({nama:array_hasil[i].nama, id:array_hasil[i].id, nilai:array_hasil[i].tempat, mulai:'', selesai:array_hasil[i].tempat}); } else { rec_array_hasil.push({nama:array_hasil[i].nama, id:array_hasil[i].id, nilai:array_hasil[i].tempat, mulai:'', selesai:array_hasil[i].tempat+1}); } } } for (var i = 0; i<rec_array_hasil.length; i++) { trace("rec_array hasil--> proses: "+rec_array_hasil[i].nama+" nilai : "+rec_array_hasil[i].nilai+' mulai '+rec_array_hasil[i].mulai+' selesai '+rec_array_hasil[i].selesai); } trace('==================='); rec_array_hasil[0].mulai = array_hasil[0].mulai; for (var i = 1; i<rec_array_hasil.length; i++) { rec_array_hasil[i].mulai = rec_array_hasil[i-1].selesai; } for (var i = 0; i<rec_array_hasil.length; i++) { trace("hasil disederhanakan - > nama proses: "+rec_array_hasil[i].nama+' id '+rec_array_hasil[i].id+' mulai '+rec_array_hasil[i].mulai+' selesai '+rec_array_hasil[i].selesai); } array_id.push({id:rec_array_hasil[0].id});

Page 192: repository.usd.ac.idrepository.usd.ac.id/32357/2/045314064_Full.pdf · ix KATA PENGANTAR Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat dan limpahan kasih karunia

172

for (var i = 1; i<rec_array_hasil.length; i++) { if (cari_id(rec_array_hasil[i].id) == 'tdk') { array_id.push({id:rec_array_hasil[i].id}); } } for (var i = 0; i<array_id.length; i++) { trace('array_id ID : '+array_id[i].id); } for (i=0; i<array.length; i++) { array_temp.push({name:array[i].name, AT:array[i].AT, ET:array[i].ET, id:array[i].id}); trace("array_temp -- nama: "+array_temp[i].name+" tiba: "+array_temp[i].AT+" eksekusi: "+array_temp[i].ET); } trace('panjang array_temp '+array_temp.length); for (var i = 0; i<rec_array_hasil.length; i++) { trace("hasil -- nama proses: "+rec_array_hasil[i].nama+' mulai '+rec_array_hasil[i].mulai+' selesai '+rec_array_hasil[i].selesai); } }