IMPLEMENTASI ALGORITMA ROUND ROBIN DAN FCFS (FIRST COME FIRST SERVE) PADA PENJADWALAN PROSES PROCESSOR TUNGGAL SKRIPSI Disusun Oleh : MOH. SYAHRUL RAMADHAN 1209428 PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNGPINANG 2013 IMPLEMENTASI ALGORITMA ROUND ROBIN DAN FCFS (FIRST COME FIRST SERVE) PADA PENJADWALAN PROSES PROCESSOR TUNGGAL SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Kelulusan Diajukan Untuk Memenuhi Salah Satu Syarat Kelulusan Memperoleh Gelar Sarjana Program Studi Teknik Informatika MOH. SYAHRUL RAMADHAN 1209428 PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG 2013 KATA PENGANTAR Puji syukur kehadirat Tuhan Yang Maha Esa yang Maha Pengasih atas berkat rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Laporan skripsi ini dengan judul : “ Implementasi Algoritma Round Robin dan FCFS (First Come First Serve) Pada Penjadwalan Proses Processor Tunggal” Dalam kesempatan ini penulis ingin mengucapkan terima kasih kepada semua pihak yang telah membantu dalam menyelesaikan laporan ini dan secara khusus penulis sampaikan kepada : 1. Bapak Said Thaha Ghafara, S.Kom., M.SI sebagai dosen pembimbing I yang telah memberikan kontribusi yang berarti sehingga terselesainya Laporan skripsi ini. 2. Ibu Siti Yuliyanti.ST, sebagai dosen pembimbing II yang telah memberikan kontribusi yang berarti sehingga terselesainya Laporan skripsi ini. 3. Serta semua pihak yang telah membantu terselesainya laporan skripsi ini. Penulis menyadari bahwa masih banyak kekurangan dari laporan ini dan masih jauh dari kesempurnaan, baik dari materi maupun teknik penyajiannya. Mengingat kurangnya pengetahuan dan pengalaman penulis, maka dengan 3 kerendahan hati penulis mengharapkan adanya saran dan kritikan yang membangun dari semua pihak demi penyempurnaan laporan ini. Akhirnya tidak lupa penulis mengucapkan terimakasih kepada semua pihak yang telah membantu dalam menyelesaikan laporan ini, mudah – mudahan laporan ini dapat bermanfaat bagi pembaca. Tanjungpinang, Januari 2013 Penulis ABSTRAK Penjadwalan proses merupakan basis sistem operasi multiprogramming. Sasaran multiprogramming adalah mempunyai proses yang berjalan (dieksekusi) di setiap waktu untuk memaksimumkan utilisasi pemroses, dimana komputer harus dapat mengelola semua proses aktif dan mengalokasikan sumber daya ke proses-proses itu sesuai kebijaksanaan yang diambil untuk memenuhi sasaran kinerja. Ada berbagai macam teknik penjadwalan diantaranya adalah Round Robin dan FCFS. Beberapa jenis algoritma membutuhkan suatu pemahaman yang baik maka harus melihat langsung gambaran dari penjadwalan proses yang dilakukan oleh sistem operasi tersebut. Implementasi ini dirancang untuk menggambarkan secara simbolis bagaimana proses penjadwalan pada CPU yang dilakukan oleh sistem operasi dan diharapkan dapat memudahkan user dalam memahaminya dengan menggunakan bahasa pemrograman Delphi 7.0. Kata kunci : Penjadwalan, Proses, FCFS, Round Robin ABSTRACT Scheduling process is the basis of multiprogramming operating system. Target multiprogramming is to have processes running (executable) at any time to maximize processor utilization, which the computer must be able to manage all active processes and allocate resources to the processes that discretion is taken to meet performance goals. There are a variety of techniques such as Round Robin scheduling and FCFS. Several types of algorithms require a good understanding of the need to see immediate overview of the scheduling process is done by the operating system. The implementation is designed to symbolically illustrate how the scheduling process performed by the CPU and the operating system is expected to allow a user to understand by using Delphi 7.0 programming language. Keywords : Scheduling, Process, FCFS, Round Robin DAFTAR ISI KATA PENGANTAR ...................................................... ............................. i ABSTRAKSI ................................................................................................. iii ABSTRACTION ........................................................................................... iv DAFTAR ISI .................................................................................................. v DAFTAR GAMBAR ..................................................................................... ix DAFTAR TABEL .......................................................................................... x DAFTAR SIMBOL ........................................................................................ xi BAB I PENDAHULUAN 1.1. LatarBelakang ........................................................................................ 1 1.2. IndentifikasiMasalah .............................................................................. 3 1.3. Rumusan Masalah ................................................................................. 4 1.4. Batasan Masalah .................................................................................... 4 1.5. Tujuan Penulisan Skripsi ....................................................................... 5 1.6. Metodologi Penelitian ............................................................................ 5 1.7. Perencanaan Jadwal Skripsi ................................................................... 7 1.8. Sistematika Penulisan ............................................................................. 8 BAB II LANDASAN TEORI . 2.1. Definisi Implementasi ............................................................................10 2.2. Pengertian Visualisasi ............................................................................10 2.3 Sistem Operasi ...................................................................................... 11 2.4 Manajemen Proses ............................................................................... 11 2.5 Penjadwalan Pada Processor ...................................................................13 2.5.1 Penjadwalan Satu Processor .............................................................. 13 2.5.2 Penjadwalan ProcessorJamak ................................................................13 2.5.3 Algoritma Penjadwalan ....................................................................... 14 2.5.4 Algoritma ............................................................................................14 2.5.5 Algoritma Round Robin (RR) ..............................................................16 2.5.6 Algoritma First Come First Serve (FCFS) ............................................17 2.6 Pengertian Prosessor ........................................................................... 18 2.7 Perancangan Terstruktur ...................................................................... 19 2.7.1 Data Flow Diagram (DFD) ......................................................... 19 2.7.2 Flowchart ................................................................................... 19 2.8 Tools Yang Digunakan ......................................................................... 20 2.8.1 Windows 7 ................................................................................. 20 2.8.2 Delphi 7 ...................................................................................... 21 BAB III ANALISA SISTEM 3.1 Analisis prosedur yang sedang berjalan ............................................... 22 3.2 Analisis Algoritma FCFS ................................................................... 24 3.3 Analisis Algoritma Round Robin ........................................................ 26 3.4 Contoh Kasus ...................................................................................... 29 3.4.1 Contoh Kasus Algoritma FCFS .................................................. 29 3.4.2 Contoh Kasus Algoritma Round Robin .................................... 32 3.5 Analisis SWOT Terhadap Penjadwalan Proses Processor Tunggal Algoritma FCFS dan Round Robin .......................................................................... 35 3.6 Hasil Analisis ......................................................................................... 36 3.7 Analisis Kebutuhan Sistem .................................................................... 37 3.7.1 Analisis Kebutuhan Perangkat Lunak .......................................... 37 3.7.2 Analisis Kebutuhan Perangkat Keras ............................................ 37 3.7.3 Analisis Kebutuhan Pengguna ..................................................... 37 3.8 Evaluasi Algoritma ................................................................................... 38 BAB IV PERANCANGAN SISTEM 4.1. Tujuan Perancanngan perangat lunak ....................................................... 40 4.2 Perancangan system .................................................................................. 40 4.2.1 Flowchart .............................................................................. 40 4.3 Diagram Konteks .................................................................................... 44 4.3.1 Data Flow Diagram ............................................................... 44 4.4 PerancanganAntarMuka ......................................................................... 47 4.4.1 Rancangan Struktur Program ................................................. 47 4.4.2 Struktur Menu ........................................................................ 48 4.4.3 Perancangan Input ................................................................. 49 BAB V IMPLEMENTASI SISTEM 5.1 Tujuan Implementasi Sistem .............................................................. 51 5.3 Kebutuhan Perangkat Lunak ................................................................ 51 5.3 Uji coba aplikasi ................................................................................. 51 5.4 Instalasi aplikasi ................................................................................ 52 BAB VI PENUTUP 6.1 Kesimpulan ......................................................................................... 54 6.2 Saran ................................................................................................... 54 DAFTAR PUSTAKA LAMPIRAN LISTING CODING DAFTAR GAMBAR Gambar 1.1 Metode sekuensial linier ................................................................ 6 Gambar 2.1 Urutan kejadian Round Robin ...................................................... 17 Gambar 3.1 Gant chart algoritma FCFS .......................................................... 29 Gambar 3.2 Gant chart algoritma FCFS .......................................................... 31 Gambar 3.3 Gant chart algoritma Round Robin. ............................................. 32 Gambar 3.4 Gant chart algoritma Round Robin ............................................... 34 Gambar 4.1 Flowchart algoritma FCFS .......................................................... 42 Gambar 4.2 Flowchart algoritma Round Robin ............................................. 43 Gambar 4.3 Diagram konteks implementasi algoritma Round Robin dan FCFS 44 Gambar 4.4 DFD level 0 implementasi algoritma Round Robin dan FCFS ..... 45 Gambar 4.5 DFD level 1 implementasi algoritma Round Robin dan FCFS ...... 46 Gambar 4.6 Struktur program........................................................................... 48 Gambar 4.7 Struktur menu .............................................................................. 48 Gambar 4.8 Form input data proses ................................................................. 49 Gambar 4.9 Form algoritma FCFS .................................................................. 50 Gambar 4.10 Form algoritma Round Robin .................................................... 50 DAFTAR TABEL Tabel 1.1 Perencanaan jadwal skripsi .............................................................. .7 Tabel 3.1 Proses-proses yang berjalan ............................................................. 29 Tabel 3.2 Proses-proses yang berjalan ............................................................. 30 Tabel 3.3 Proses-proses yang berjalan ............................................................ 32 Tabel 3.4 Proses-proses yang berjalan ............................................................. 33 Tabel 5.1 Pengujian aplikasi dengan metode black box ................................... 52 DAFTAR SIMBOL Simbol Data Flow Diagram (DFD) Simbol Nama Keterangan Entitas Menunjukan Entitas luar sistem yang menghubungkan dengan sistem Proses Menunjukan kegiatan proses dari operasi-operasi pada sistem Storage Menunjukan media penyimpanan data berupa tabel-tabel yang ada pada database Aliran Data Menunjukan aliran data sebagai input / output dari suatu proses ke proses lain Simbol Diagram Hubungan Entitas (ERD) Simbol Nama Entitas Jenis entitas dapat berupa elemen lingkungan, sumber daya atau transaksi yang field-fildnya digunakan dalam aplikasi program Hubungan / Relasi Menunjukan nama relasi antara satu entitas dengan entitas lainnya Garis Relasi 1 1 1 N N M Keterangan Kardinalitas Kardinalitas Kardinalitas Menunjukan hubungan ( keterkaitan ) antar entitas Relasi satu ke satu Relasi satu ke banyak Relasi banyak ke banyak Simbol Bagan Alir Sistem ( Sistem Flow Map ) Simbol Nama Keterangan Dokumen Menunjukan dokumen input atau output untuk proses manual atau proses komputer Proses Menunjukan kegiatan/proses dan operasioperasi program komputer Keputusan Menunjukan suatu keputusan Proses Manual Database Input Manual Arsip Aliran Menunjukan pekerjaan manual Menunjukan media penyimpanan ke hardisk Menujukan proses inputan ke komputer Menunjukan media penyimpanan non komputer Menunjukan arus dari suatu proses BAB I PENDAHULUAN 1.1 Latar Belakang Sistem operasi melakukan beragam tugas, salah satu tugas yang paling penting adalah manajemen proses, dimana komputer mengelola semua proses aktif dan mengalokasikan sumber daya ke proses-proses itu sesuai kebijaksanaan yang diambil untuk memenuhi sasaran kinerja. Penjadwalan proses dapat memutuskan proses mana dahulu yang harus berjalan serta kapan dan berapa lama proses tersebut berjalan.. Penjadwalan proses merupakan basis sistem operasi multiprogramming. Sasaran multiprogramming adalah mempunyai proses yang berjalan (dieksekusi) di setiap waktu untuk memaksimumkan utilisasi pemroses. Sistem komputer yang memiliki pemroses tunggal (disebut sistem singleprosessor atau prosessor tunggal) maka tidak pernah lebih dari satu proses yang berjalan (running). Jika terdapat beberapa proses di sistem, satu proses berjalan sedangkan sisanya menunggu sampai pemroses bebas dan proses itu dijadwalkan untuk dijalankan. Oleh karena itu dibutuhkan manajemen proses. Manajemen proses merupakan salah satu tugas terpenting yang dikerjakan oleh sistem operasi, pada manajemen proses ini komputer mengelola semua proses aktif dan mengalokasikan sumber daya ke proses-proses itu sesuai kebijaksanaan yang diambil untuk memenuhi sasaran kinerja. Manajemen proses mengelola semua proses tersebut dengan menjadwalkan semua proses-proses. Penjadwalan proses dapat memutuskan proses mana dahulu yang harus berjalan serta kapan dan berapa lama proses tersebut berjalan. Ada berbagai macam teknik penjadwalan diantaranya adalah Round Robin dan teknik penjadwalan yang paling sederhana yaitu FCFS atau FIFO. Penjadwalan Round Robin adalah penjadwalan proses yang menerapkan strategi preemptive (Proses yang sedang dieksekusi dapat diinterupsi dan dipaksa untuk menyerahkan CPU), penjadwalan Round Robin bukan di preemptive oleh proses lain tapi oleh penjadwal berdasarkan jatah waktu pemroses yang disebut kwanta (quantum). Sedangkan penjadwalan FCFS merupakan penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini setiap proses yang berada pada status siap ( ready) dimasukkan ke dalam FCFS (FIFO) queue atau antrian dengan prinsip First In First Out, sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi. Beberapa jenis algoritma membutuhkan suatu pemahaman yang baik sehingga harus melihat langsung gambaran dari penjadwalan proses yang dilakukan oleh sistem operasi tersebut. Dalam pengkajian masalah penjadwalan proses pada prosesor tunggal ini, maka penulis tertarik untuk merancang sebuah “IMPLEMENTASI ALGORITMA ROUND ROBIN DAN FCFS (FIRST COME FIRST SERVE) PADA PENJADWALAN PROSES PROCESSOR TUNGGAL” untuk menggambarkan secara simbolis bagaimana proses penjadwalan pada CPU yang dilakukan oleh sistem operasi dan diharapkan dapat memudahkan user dalam memahaminya. 1.2 Identifikasi Masalah Untuk mempermudah pembahasan dan tetap berdasar pada latar belakang masalah, maka penyusunan skripsi mengambil pokok permasalahan yaitu: 1. Dalam masalah penjadwalan proses dengan proses yang masih sedikit tidaklah bermasalah, namun jika jumlah proses yang berjalan ada banyak sangatlah sulit menghitung berapa waktu tunggu rata-rata setiap prosesnya. 2. Beberapa jenis algoritma butuh suatu pemahaman yang baik dengan cara melihat langsung gambaran dari penjadwalan proses yang dilakukan oleh sistem operasi. 3. Membandingkan 2 algoritma penjadwalan proses, yaitu algoritma FCFS dan algoritma Round Robin untuk menilai algoritma mana yang mempunyai waktu tunggu rata-rata terbaik. 4. Belum adanya implementasi serta visualisasi mengenai algoritma penjadwalan proses. 1.3 Rumusan Masalah Rumusan masalah dari penelitian ini adalah: 1. Bagaimana mengimplementasikan algoritma penjadwalan proses dengan jumlah proses lebih banyak? 2. Bagaimana membuat sebuah aplikasi yang langsung menggambarkan penjadwalan proses sistem operasi? 3. Bagaimana mengimplementasi perbandingan 2 algoritma yaitu, algoritma FCFS dan algoritma Round Robin? 4. Bagaimana mengimplementasikan serta menvisualisasikan algoritma penjadwalan proses? 1.4 Batasan Masalah Agar penelitian lebih terarah, ruang lingkup masalah dibatasi pada: 1. Hanya membahas implementasi algoritma Round Robin dan FCFS 2. Penjadwalan proses yang diimplementasi dibatasi dari 1 sampai 15 proses 3. Waktu kerja proses dibatasi sampai dengan 15 milisecond. 4. Kuantum proses untuk algoritma Round Robin dibatasi sampai dengan 9 kuantum. 1.5 Tujuan Penulisan Skripsi Adapun maksud dan tujuan skripsi ini adalah sebagai berikut : 1. Membuat aplikasi penjadwalan proses pada CPU (Central Processing Unit) menggambarkan secara simbolis bagaimana proses penjadwalan pada CPU yang dilakukan oleh sistem operasi, yakni pada algoritma Round Robin dan FCFS (First Come First Served). 2. Memudahkan pengguna dalam memahami dan melakukan proses perhitungan pada algoritma FCFS (First Come First Serve) dan Round Robin. 3. Membandingkan proses penjadwalan pada algoritma Round Robin dan FCFS (First Come First Served). 1.6 Metodologi Penelitian 1. Metode pengumpulan data Metode pengumpulan data yang digunakan dalam penyusunan skripsi ini adalah dengan melakukan studi pustaka. Studi pustaka dilakukan dengan cara-cara mempelajari teori-teori, buku-buku, dan sumber-sumber lain yang berhubungan dengan objek permasalahan yang dibahas. 2. Metode Pengembangan Perangkat Lunak Pengembangan sistem informasi perlu digunakan metodologi sebagai pedoman bagaimana dan apa yang harus dilakukan selama melaksanakan pengembangan sistem. Adapun pengembangan sistem yang digunakan adalah model siklus kehidupan klasik atau model air terjun (sekuensial linier). Tahapan-tahapannya adalah sebagai berikut : Permodelan Sistem informasi Analisis Desain Kode Tes Gambar 1.1 Model Sekuensial Linier 1 Keterangan : 1. Rekayasa dan permodelan sistem informasi (system engineering), melakukan pengumpulan data dan penetapan kebutuhan semua elemen sistem. 2. Analisis kebutuhan perangkat lunak, melakukan analisis terhadap permasalahan yang dihadapi dan menetapkan kebutuhan perangkat lunak, fungsi performasi dan interfacing. 3. Desain, menetapkan domain informasi untuk perangkat lunak, fungsi dan interfacing. 1 Pressman, Roger S, Rekayasa Perangkat Lunak, hal 37 - 38 4. Generasi kode, pengkodean yang mengimplementasikan hasil desain kedalam kode atau bahasa yang dimengerti oleh mesin komputer dengan menggunakan bahasa pemprograman tertentu. 5. Pengujian, kegiatan untuk melakukan pengetesan program yang sudah dibuat apakah sudah benar atau belum diuji secara manual. Jika testing sudah benar maka program boleh digunakan. 6. Pemeliharaan, menangani perangkat lunak yang sudah selesai supaya dapat berjalan lancar dan terhindar dari gangguan-gangguan yang dapat menyebabkan kerusakan. 1.7 Perancangan Jadwal Skripsi Tabel 1.1 Perencanaan jadwal skripsi Jadwal Pelaksanaan Skripsi No 1 2 3 Jenis Juni Kegiatan I II III IV Pengumpulan Data Menganalisa Kebutuhan Perencanaan/ Design 4 Pengkodean 5 Pengujian Agustus Juli I II III IV I September II III IV I II III IV 1.8 Sistematika Penulisan Agar hasil penelitian ini dapat digunakan semaksimal mungkin maka secara garis besar penulis menyajikan laporan ini sebanyak 6 (enam) bab, yang setiap isi babnya adalah sebagai berikut : BAB I PENDAHULUAN bab ini berisi tentang latar belakang masalah, maksud dan tujuan, identifikasi masalah, metodologi penelitian dan perencanaan jadwal skripsi. BAB II LANDASAN TEORI bab ini menjelaskan tentang pengertian atau teoriteori yang digunakan sebagai penjelasan dari permasalahan yang dibahas. BAB III ANALISIS SISTEM bab ini menjelaskan tentang gambaran umum atau objek penelitian tersebut, pendeskripsian masalah tersebut, pendeskripsian sistem yang sedang berjalan, penganalisisan dokumen atau sistem yang sedang berjalan. Disini juga dituliskan tentang pembangunan perangkat lunak sesuai dengan metodologi pengembangan yang dipakai serta menjelaskan dan menyajikan kesimpulan analisis dengan hasil berupa diagram analisis berjalan. BAB IV PERANCANGAN SISTEM bab ini menjelaskan tentang flowmap (alur dokumen), yang diusulkan dataflow diagram (DFD), entity relationship diagram (ERD) perancangan database,perancangan spesifikasi rinci yang terdiri atas struktur program, struktur menu, format masukan dan format keluaran. BAB V IMPLEMENTASI SISTEM bab ini berisi tentang pemilihan bahasa program, kebutuhan alat dan spesifikasi perangkat keras, software dan brainware. BAB VI PENUTUP bab ini berisi kesimpulan dari seluruh laporan dan saran dari penulis. Kesimpulan dapat mengemukakan masalah skripsi dan mampu menjawab pertanyaan dalam identifikasi masalah. Saran merupakan manifestasi dari penulis untuk dilaksanakan terlepas dari ruang lingkup tugas. Daftar Pustaka berisikan literatur-literatur yang berhubungan dengan skripsi. Lampiran-lampiran BAB II LANDASAN TEORI 2.1 Pengertian Implementasi Pengertian implementasi secara umum dapat diuraikan sebagai proses interpretasi dari suatu konsep yang dapat diterapkan kedalam bentuk yang mudah dimengerti. Sebagai contoh suatu bahasa pemrograman (programming language) dapat menguraikan bagaimana kita menterjemahkan suatu istilah-istilah yang digunakan dalam perancangan kedalam istilah-istilah implementasi (actual language). Contoh lainnya adalah implementasi source code dengan bahasa pemrograman tertentu. 2.2 Pengertian Visualisasi Visualisasi adalah rekayasa dalam pembuatan gambar, diagram atau animasi untuk penampilan suatu informasi. Secara umum, visualisasi dalam bentuk gambar baik yang bersifat abstrak maupun nyata telah dikenal sejak awal dari peradaban manusia. Contoh dari hal ini meliputi lukisan di dinding-dinding gua dari manusia purba, bentuk huruf hiroglip Mesir, sistem geometri Yunani, dan teknik pelukisan dari Leonardo da Vinci untuk tujuan rekayasa dan ilmiah, dan lain-lain. Pada saat ini visualisasi telah berkembang dan banyak dipakai untuk keperluan ilmu pengetahuan, rekayasa, visualisasi disain produk, pendidikan, multimedia interaktif, kedokteran, dan lain-lain. Pemakaian dari grafika komputer merupakan perkembangan penting dalam dunia visualisasi, setelah ditemukannya teknik garis perspektif pada zaman Renaissance. Perkembangan bidang animasi juga telah membantu banyak dalam bidang visualisasi yang lebih kompleks dan canggih. 2.3 Sistem Operasi Sistem Operasi adalah program yang bertindak sebagai perantara antara user dengan perangkat keras komputer. Sistem operasi digunakan untuk mengeksekusi program user dan memudahkan menyelesaikan permasalahan user. Selain itu dengan adanya sistem operasi membuat sistem komputer nyaman digunakan. Sistem operasi mempunyai tujuan untuk menggunakan perangkat keras komputer secara efisien. 2.4 Manajemen Proses Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat Masukan/Keluaran. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses atau dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya. Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti: 1. Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya. 2. Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar. 3. Menyediakan mekanisme untuk proses sinkronisasi. Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar 4. Menyediakan mekanisme untuk proses komunikasi. Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya. 5. Menyediakan mekanisme untuk penanganan deadlock. Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock (kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya. 2.5 Penjadwalan Pada Prosesor 2.5.1 Penjadwalan Satu Prosesor Yang dimaksud satu buah prosesor ini adalah satu buah prosesor sebagai CPU/ Central Processing Unit . Hal ini ditekankan sebab ada beberapa perangkat yang memang memiliki prosesor tersendiri di dalam perangkatnya seperti VGA Card AGP, Optical Mouse, dan lain-lain. 2.5.2 Penjadwalan Processor Jamak (Multi-Processor) Prosesor-prosesor yang memiliki fungsi yang identik atau homogen. Maka setiap prosesor dapat digunakan untuk menjalankan proses-proses yang ada di antrian. Dua pendekatan penjadwalan CPU dalam sistem prosesor jamak: 1. Proses Jamak Asimetris 2. Proses Jamak Simetris Dari kedua penjadwalan di atas erat kaitannya dengan penjadwalan CPU. Konsep dasarnya yaitu Pada saat proses dijalankan terjadi siklus eksekusi CPU dan menunggu I/O yang disebut dengan siklus CPU-I/O burst. Eksekusi proses dimulai dengan CPU burst dan dilanjutkan dengan I/O burst, diikuti CPU burst lain, kemudian I/O burst lain dan seterusnya. 2.5.3 Algoritma Penjadwalan Penjadwalan CPU menyangkut penentuan proses-proses yang ada dalam ready queue yang akan dialokasikan pada CPU. Terdapat beberapa algoritma penjadwalan CPU seperti dijelaskan pada sub bab di bawah ini. 2.5.4 Algoritma Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Masalah timbul pada saat akan menuangkan bagaimana proses yang harus dilalui dalam suatu/sebuah sistem (program) bagi komputer sehingga pada saat eksekusinya, komputer dapat bekerja seperti yang diharapkan. Programer komputer akan lebih nyaman menuangkan prosedur komputasinya atau urutan langkah proses dengan terlebih dahulu membuat gambaran (diagram alur) diatas kertas. “Algoritma adalah urutan logis langkah-langkah penyelesaian masalah. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.” (Rinaldi, 2001 : 4). Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda. 1. Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk. 2. Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi. 3. Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu. 2.5.3 Algoritma Round Robin (RR) Algoritma ini menggilir proses yang ada di antrian. Proses akan mendapat jatah sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya. Tentu proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses mendapat jatah waktu yang sama dari CPU yaitu (1/n), dan tak akan menunggu lebih lama dari (n-1)q dengan q adalah lama 1 quantum. Algoritma ini sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma ini akan sama saja dengan algoritma first come first served. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang. Permasalahan utama pada Round Robin adalah menentukan besarnya time quantum. Jika time quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai dalam 1 quantum. Hal ini tidak baik karena akan terjadi banyak switch, padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (disebut dengan context switches time). Sebaliknya, jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma first come first served. Time quantum yang ideal adalah jika 80% dari total proses memiliki CPU burst time yang lebih kecil dari 1 time quantum. Gambar 2.1 Urutan kejadian Round Robin 2.5.4 Algoritma First Come First Serve (FCFS) Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan kedalam FIFO queue atau antrian dengan prinsip first in first out, sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi. 2.6 Pengertian Prosessor Processor sering disebut sebagai otak dan pusat pengendali komputer yang didukung oleh kompunen lainnya. Processor adalah sebuah IC yang mengontrol keseluruhan jalannya sebuah sistem komputer dan digunakan sebagai pusat atau otak dari komputer yang berfungsi untuk melakukan perhitungan dan menjalankan tugas. Processor terletak pada socket yang telah disediakan oleh motherboard, dan dapat diganti dengan processor yang lain asalkan sesuai dengan socket yang ada pada motherboard. Salah satu yang sangat besar pengaruhnya terhadap kecepatan komputer tergantung dari jenis dan kapasitas processor. Prosesor adalah chip yang sering disebut “Microprosessor” yang sekarang ukurannya sudah mencapai Gigahertz (GHz). Ukuran tersebut adalah hitungan kecepatan prosesor dalam mengolah data atau informasi. Merk prosesor yang banyak beredar dipasatan adalah AMD, Apple, Cyrix VIA, IBM, IDT, dan Intel. Bagian dari Prosesor Bagian terpenting dari prosesor terbagi 3 yaitu : 1. Aritcmatics Logical Unit (ALU) 2. Control Unit (CU) 3. Memory Unit (MU) 2.7 Perancangan Terstruktur 2.7.1 Data Flow Diagram (DFD) Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi-notasi untuk menggambarkan arus dari data sistem, yang penggunaannya sangat membantu untuk memahami sistem secara logika, tersruktur dan jelas. DFD merupakan alat bantu dalam menggambarkan atau menjelaskan sistem yang sedang berjalan logis. Suatu yang lazim bahwa ketika menggambarkan sebuah sistem kontekstual data flow diagram yang akan pertama kali muncul adalah interaksi antara sistem dan entitas luar. DFD didisain untuk menunjukkan sebuah sistem yang terbagi-bagi menjadi suatu bagian sub-sistem yang lebih kecil adan untuk menggarisbawahi arus data antara kedua hal yang tersebut diatas. Diagram ini lalu "dikembangkan" untuk melihat lebih rinci sehingga dapat terlihat model-model yang terdapat di dalamnya. 2.7.2 Flowchart Flowchart atau diagram alir merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut. 2.8 Tools yang digunakan 2.8.1 Windows 7 Windows 7 adalah rilis terkini Microsoft Windows yang menggantikan Windows Vista. Windows 7 dirilis untuk pabrikan komputer pada 22 Juli 2009 dan dirilis untuk publik pada 22 Oktober 2009, kurang dari tiga tahun setelah rilis pendahulunya, Windows Vista. Tidak seperti pendahulunya yang memperkenalkan banyak fitur baru, Windows 7 lebih fokus pada pengembangan dasar Windows, dengan tujuan agar lebih kompatibel dengan aplikasi-aplikasi dan perangkat keras komputer yang kompatibel dengan Windows Vista. Presentasi Microsoft tentang Windows 7 pada tahun 2008 lebih fokus pada dukungan multi-touch pada layar, desain ulang taskbar yang sekarang dikenal dengan nama Superbar, sebuah sistem jaringan rumahan bernama HomeGroup, dan peningkatan performa. Beberapa aplikasi standar yang disertakan pada versi sebelumnya dari Microsoft Windows, seperti Windows Calendar, Windows Mail, Windows Movie Maker, dan Windows Photo Gallery, tidak disertakan lagi di Windows 7, kebanyakan ditawarkan oleh Microsoft secara terpisah sebagai bagian dari paket Windows Live Essentials yang gratis. 2.8.2 Delphi 7 Delphi merupakan bahasa pemrograman berbasis Windows yang menyediakan fasilitas pembuatan aplikasi visual seperti Visual Basic. Delphi memberikan kemudahan dalam menggunakan kode program, kompilasi yang cepat, penggunaan file unit ganda untuk pemrograman modular, pengembangan perangkat lunak, pola desain yang menarik serta diperkuat dengan bahasa pemrograman yang terstruktur dalam bahasa pemrograman Object Pascal. Delphi memiliki tampilan khusus yang didukung suatu lingkup kerja komponen Delphi untuk membangun suatu aplikasi dengan menggunakan Visual Component Library (VCL). Sebagian besar pengembang Delphi menuliskan dan mengkompilasi kode program dalam IDE (Integrated Development Environment). BAB III ANALISIS SISTEM 3.1 Analisis Masalah Penjadwalan Proses Penjadwalan proses merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Adapun penjadwalan bertugas memutuskan : 1. Proses yang harus berjalan 2. Kapan dan selama berapa lama proses itu berjalan Kriteria untuk mengukur dan optimasi kinerja penjadwalan : 1. Adil (fairness) Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu. 2. Efisiensi (eficiency) Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses. 3. Waktu tanggap (response time) Waktu tanggap berbeda untuk : a. Sistem interaktif Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dariperintah dimasukkan atau transaksi sampai hasil pertama muncul di layar.Waktu tanggap ini disebut terminal response time. b. Sistem waktu nyata Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampaiinstruksi pertama rutin layanan yang dimaksud dieksekusi, disebut eventresponse time. 4. Turn around time Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan didalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu. 5. Throughput Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapatdieksekusi dalam satu unit/interval waktu. Kriteria-kriteria tersebut saling bergantung dan dapat pula saling bertentangan sehingga tidak dimungkinkan optimasi semua kriteria secara simultan. Contoh : untuk memberi waktu tanggap kecil memerlukan penjadwalan yang sering beralih ke antara proses-proses itu. Cara ini meningkatkan overhead sistem dan mengurangi throughput. Oleh karena itu dalam menentukan kebijaksanaan perancangan penjadwalan sebaiknya melibatkan kompromi diantara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini bergantung sifat dan penggunaan sistem komputer. 3.2 Analisis Algoritma FCFS Merupakan penjadwalan yang tidak berprioritas.FIFO adalah penjadwalan paling sederhana, yaitu : 1. Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan. 2. Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai. Penilaian penjadwalan ini berdasarkan kriteria optimasi : 1. Adil dalam arti resmi (proses yang datang duluan akan dilayani lebih dulu), tapidinyatakan tidak adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job yang tidak penting dapat membuat job-job penting menunggu lama. 2. Efisiensinya sangat efisien. 3. Waktu tanggapnya sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem waktu nyata. 4. Turn around time algoritma FCFS jelek. 5. Throughtputnya jelek. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema lain, misalnya keputusan berdasarkan prioritas proses. Untuk proses-proses berprioritas sama diputuskan berdasarkan FIFO. Penjadwalan algoritma FCFS ini : 1. Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai. Contoh : aplikasi analisis numerik, maupun pembuatan tabel. 2. Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik. 3. Tidak dapat digunakan untuk sistem waktu nyata (real-time applications). 3.3 Analisis Algoritma Round Robin Merupakan penjadwalan yang paling tua, sederhana, adil, banyak digunakan algoritmanya dan mudah diimplementasikan. Penjadwalan ini bukan dijalankan oleh proses lain tetapi oleh penjadwal berdasarkan lama waktu berjalannya proses (preempt by time). Penjadwalan tanpa prioritas berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas tertentu.Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan. Jika proses masih running sampai akhir quantum, maka CPU akan mem-preempt proses itu dan memberikannya ke proses lain. Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable. Ketika quantum habis untuk satu proses tertentu, maka proses tersebut akan diletakkan diakhir daftar (list). Algoritma yang digunakan : 1. Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan pemroses dialihkan ke proses lain. 2. Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain. 3. Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain. Diimplementasikan dengan : 1. Mengelola senarai proses ready (runnable) sesuai urutan kedatangan. 2. Ambil proses yang berada di ujung depan antrian menjadi running. 3. Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses ready. 4. Jika kwanta habis dan proses belum selesai, maka tempatkan proses running keekor antrian proses ready dan ambil proses di ujung depan antrian proses ready. Masalah yang timbul adalah menentukan besar kwanta, yaitu : 1. Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah. 2. Kwanta terlalu kecil menyebabkan peralihan proses terlalu banyak sehingga menurunkan efisiensi proses. 3. Switching dari satu proses ke proses lain membutuhkan kepastian waktu yang digunakan untuk administrasi, menyimpan, memanggil nilai-nilai register, pemetaan memori, memperbaiki tabel proses dan senarai dan sebagainya. Mungkin proses switch ini atau konteks switch membutuhkan waktu 5 msec disamping waktu pemroses yang dibutuhkan untuk menjalankan proses tertentu. Dengan permasalahan tersebut tentunya harus ditetapkan kwanta waktu yang optimal berdasarkan kebutuhan sistem dari hasil percobaan atau data historis. Besar kwanta waktu beragam bergantung beban sistem. Apabila nilai quantum terlalu singkat akan menyebabkan terlalu banyak switch antar proses dan efisiensi CPU akan buruk, sebaliknya bila nilai quantum terlalu lama akan menyebabkan respon akan lambat sehingga proses yang singkat akan menunggu lama. Sebuah quantum sebesar 100 msec merupakan nilai yang dapat diterima. Penilaian penjadwalan ini berdasarkan kriteria optimasi yaitu: 1. Adil bila dipandang dari persamaan pelayanan oleh pemroses. 2. Efisiensi cenderung efisien pada sistem interaktif. 3. Waktu tanggap memuaskan untuk sistem interaktif, tidak memadai untuk sistem waktu nyata. 4. Turn around time cukup baik. 5. Throughtputcukup baik. Penjadwalan ini : 1. Baik untuk sistem interactive-time sharing dimana kebanyakan waktu dipergunakan menunggu kejadian eksternal. Contoh : text editor, kebanyakan waktu program adalah untuk menunggu keyboard, sehingga dapat dijalankan proses-proses lain. 2. Tidak cocok applications. 3.4 Contoh Kasus untuk sistem waktu nyata apalagi hard-real-time 3.4.1 Contoh Kasus Algoritma FCFS Berikut adalah contoh kasus penjadwalan proses dengan menggunakan Algoritma FCFS dengan mencari waktu tunggu rata-rata setiap proses. 1. Jika terdapat 4 Proses dengan nama Proses P1, P2, P3, P4 dengan urutan kedatangan P1, P2, P3, P4 yang terlihat dalam tabel berikut : Tabel 3.1 Proses-proses yang berjalan Waktu Tiba Waktu Kerja P1 0 5 P2 2 3 P3 3 4 P4 5 5 Carilah waktu tunggu rata-rata setiap proses dengan algoritma FCFS! P1 0 P2 1 5 P4 P3 8 12 Gambar 3.1 Gant Chart Algoritma FCFS Waktu tunggu rata-rata setiap proses : P0 = 0 17 P2 = 5 P3 = 5+3 =8 P4 = 5+3+4 = 12 Rata-rata waktu tunggu = Total waktu tunggu / jumlah proses = (0 + 5 + 8 + 12 ) /4 = 25 / 4 = 6, 25 Jadi waktu tunggu rata-rata adalah 6, 25 satuan waktu. Rumus menghitung : Rata-rata waktu tunggu = Total waktu tunggu / jumlah proses 2. Jika terdapat 5 Proses dengan nama Proses P1, P2, P3, P4, P5 dengan urutan kedatangan P1, P2, P3, P4,P5 yang terlihat dalam tabel berikut : Tabel 3.2 Proses-proses yang sedang berjalan Proses Waktu Tiba Waktu Kerja P1 0 4 P2 1 2 P3 2 4 P4 3 2 P5 4 3 Carilah waktu tunggu rata-rata setiap proses dengan algoritma FCFS! P1 P2 P3 P4 P5 0 1 4 6 10 12 15 Gambar 3.2 Gant Chart Algoritma FCFS Waktu tunggu rata-rata setiap proses : P0 = 0 P2 = 4 P3 = 4+2 =6 P4 = 4+2+4 = 10 P5 = 4 + 2 + 4 + 2 = 12 Rata-rata waktu tunggu = Total waktu tunggu / jumlah proses = (0 + 4 + 6 + 10 + 12 ) /5 = 32 / 5 = 6,4 Jadi waktu tunggu rata-rata adalah 6,4 satuan waktu. 3.4.2 Contoh Kasus Algoritma Round Robin Berikut adalah contoh kasus penjadwalan proses dengan menggunakan Algoritma Round Robin dengan mencari waktu tunggu ratarata setiap proses. 1. Jika terdapat 4 Proses dengan nama Proses P1, P2, P3, P4 dengan urutan kedatangan P1, P2, P3, P4 (terlihat dalam tabel dibawah) dan quantum yang diberikan = 2 ms, carilah waktu tunggu rata-rata setiap proses dengan algoritma Round Robin ! Tabel 3.3 Proses-proses yang sedang berjalan P1 0 Proses Waktu Tiba Waktu Kerja P1 0 5 P2 2 3 P3 3 4 P4 5 5 P2 2 P3 P4 4 6 P2 P1 8 10 P3 11 P4 13 P1 15 16 Gambar 3.3 Gant chart algoritma Round Robin Waktu tunggu rata-rata setiap proses : P0 = 0+ 6 + 5 = 11 P2 = 2+6 =8 P3 = 4+5 =9 P4 = 6+5+1 = 12 Rata-rata waktu tunggu = Total waktu tunggu / jumlah proses P4 = (11 + 8 + 9 + 12 ) /4 = 40 / 4 = 10 Jadi waktu tunggu rata-rata adalah 10 satuan waktu. 2. Jika terdapat 5 Proses dengan nama Proses P1, P2, P3, P4, P5 dengan urutan kedatangan P1, P2, P3, P4, P5 (terlihat dalam tabel dibawah) dan quantum yang diberikan = 1 ms, carilah waktu tunggu rata-rata setiap proses dengan algoritma Round Robin ! Tabel 3.4 Proses - proses yang sedang berjalan P1 Proses Waktu Tiba Waktu Kerja P1 0 4 P2 1 2 P3 2 4 P4 3 2 P5 4 3 P2 P3 P4 P5 P1 0 2 4 P2 8 P3 P4 P5 10 P1 12 P3 P5 P1 14 Gambar 3.4 Gant Chart algoritma Round Robin Waktu tunggu rata-rata setiap proses : P0 = 0+ 4 + 4 + 2 = 10 P2 = 1+ 4 =5 P3 16 P3 = 2 + 4 + 3 + 2 = 11 P4 = 3+ 4 =7 P5 = 4 + 4 +2 = 10 Rata-rata waktu tunggu = Total waktu tunggu / jumlah proses = (10 + 5 + 11 + 7+10 ) /5 = 43/ 5 = 8, 6 Jadi waktu tunggu rata-rata adalah 8,6satuan waktu. 3.5 Analisis SWOT Terhadap Penjadwalan Proses Processor Tunggal Algoritma FCFS dan Round Robin Analisis SWOT adalah suatu metode untuk menggambarkan kondisi dan mengevaluasi suatu masalah. 1. Strengths (kekuatan): a. Mencari rata-rata waktu tunggu terbaik untuk semua proses yang ada b. Waktu tunggu akan menjadi baik, apabila semua proses memiliki waktu kerja yang sama. 2. Weaknesses (kelemahan): a. Untuk semua algoritma penjadwalan proses harus diketahui terlebih dahulu waktu kerja setiap prosesan urutan kedatangan proses . b. Kemungkinan terjadi kekeliruan dalam proses perhitungannya. 3. Opportunities (peluang): a. Membandingkan 2 algoritma penjadwalan proses FCFS dan Round Robin b. Perhitungan dilakukan secara otomatis disertai dengan Gant Chart untuk memudahkan dalam menganalisis. 4. Threats (ancaman): a. Jika jumlah waktu kerja yang diinputkan dalam skala yang besar dan jumlah prosesnya banyak akan menyebabkan terjadinya gagal perhitungan, karena melebihi batas. b. Jika kuantum diinputkan dalam skala yang besar akan menyebabkan terjadinya proses kekeliruan dalam perhitungan. 5. Strengths to Opportunities a. Dengan membandingkan algoritma Round Robin dan FCFS dapat mempermudah user mengetahui waktu tunggu rata-rata yang tepat. 6. Strengths to Threats a. Sulitnya menghitung waktu rata-rata proses apabila waktu kerjanya besar 7. Weaknesses to Opportunities a. Seluruh proses perhitungan dapat diotomasi untuk menghemat waktu. b. Otomasi proses perhitungan dapat menurunkan tingkat kekeliruan. 8. Weaknesses to Threats a. Jika waktu kerja proses tidak diketahui, rata-rata waktu tunggu juga tidak dapat diketahui. b. Jika urutan kedatangan proses tidak diketahui, rata-rata waktu tunggu juga tidak dapat diketahui. 3.5 Hasil Analisis Hasil dari analisis dari kedua algoritma tersebut adalah sebagai berikut : 1. Rata-rata waktu tunggu algoritma FCFS lebih kecil dibandingkan dengan algoritma Round Robin 2. Tidak efisien apabila waktu kerja proses pertama yang datang lebih besar waktu kerjanya (untuk kasus dengan menggunakan Algoritma FCFS). 3. Tidak efisien apabila kuantum yang diinputkan dalam ukuran yang besar (untuk kasus dengan menggunakan Algoritma Round Robin). 3.6 Analisis Kebutuhan Sistem 3.6.1 Analisis Kebutuhan Perangkat Lunak Dari kesimpulan analisis Algoritma FCFS dan Round Robin dibutuhkan suatu perangkat yang dapat membantu menyelesaikan masalah tersebut. Selain itu juga perangkat lunak yang dapat memberikan keamanan data dari gangguan internal maupun eksternal. Implementasi ini dikembangkan dengan bahasa pemrograman Delphi 7.0 dengan sistem operasi Microsoft Windows 7. 3.6.2 Analisis Kebutuhan Perangkat Keras Demi menunjang kelancaran perangkat lunak yang akan digunakan pada pengolahan data perparkiran, diperlukan juga perangkat keras yang menunjang sistem kerja dari perangkat lunak. Perangkat keras yang diperlukan untuk keperluan membangun Implementasi Algoritma Round Robin dan FCFS (First Come First Serve) Pada Penjadwalan Proses Processor Tunggal sesuai dengan rekomendasi yang diberikan sebagai berikut : 1. Processor yang digunakan Intel® CellTM 2 Duo Processor T6400 (2.0GHz, 800MHz FSB, 2MB L2 cache) 2. Harddisk terpasang 40GB 3. Memori terpasang 1GB 4. VGA Card terpasang 128MB, rekomendasi minimum adalah 64MB 5. Mouse dan Keyboard 6. Layar Monitor SVGA 3.6.3 Analisis Kebutuhan Pengguna Bagian yang dapat menggunakan Implementasi Algoritma Round Robin dan FCFS (First Come First Serve) Pada Penjadwalan Proses Processor Tunggal yang akan dibangun adalah user yang membutuhkan informasi mengenai penjadwalan proses sistem operasi. 3.7. Evaluasi Algoritma Berdasarkan hasil analisis, penyusun dapat mengevaluasi bagaimana memilih sebuah algoritma penjadwalan CPU untuk sistem-sistem tertentu. Yang menjadi pokok permasalahan adalah kriteria seperti apa yang digunakan untuk memilih sebuah algoritma, pertama-tam yang harus dilakukan adalah menentukan ukuran dari suatu kriteria berdasarkan : 1. Memaksimalkan penggunaan CPU dibawah waktu responnya, yaitu 1 detik 2. Memaksimalkan throughput karena turn around bergerak secara linier pada saat eksekusi proses. Pada pokok permasalahan evaluasi algoritma penjadwalan CPU, ada tiga pokok permasalahan, antara lain : 1. Analisis Evaluation, mengambil beban kerja ditentukan dan mendefinisikan kemapuan dari tiap algoritma untuk beban kerja 2. Quequening models (model antrian proses) 3. Implementasi dan Visualisasi. BAB IV PERANCANGAN SISTEM 4.1 Tujuan Perancangan Perangkat Lunak Tujuan dari perangkat lunak ini adalah penanganan atas permasalahanpermasalahan yang ada dan mendapatkan gambaran dari sistem perangkat lunak yang akan dibangun sesuai dengan ruang lingkup masalah yang telah ditentukan. 4.2 Perancangan Sistem Untuk merancang sebuah aplikasi yang mempunyai kemampuan yang baik, maka harus dilakukan terlebih dahulu suatu analisis terhadap suatu aplikasi yang akan dibangun. Dan dalam perancangan aplikasi ini, telah dilakukan analisis terhadap sistem dan prosedur yang ada pada saat ini dan semuanya telah dibahas dalam bab sebelumnya. Pada bab ini akan dijelaskan mengenai prilaku yang terjadi dalam sistem dan bagaimana sistem berinteraksi dengan user (pemakai). Pada bagian ini perancangan ini akan membahas tentang Flowchart, Diagram Konteks, Data Flow Diagram. 4.2.1 Flowchart Flowchart atau diagram alir merupakan sebuah diagram dengan simbolsimbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut. 4.2.1.1 Flowchart Algoritma FCFS Berikut adalah prosedur Algoritma FCFS: 1. User menginputkan jumlah proses dan nama proses sebanyak n proses. 2. User menginputkan waktu kedatangan dan waktu pengerjaan setiap proses. 3. Aplikasi akan melakukan pengecekan urutan kedatangan proses. 4. Aplikasi akan menghitung rata-rata waktu tunggu semua proses. Mulai Jumlah proses = N Input nama proses Tidak Jika Nama proses = N Ya Jika Waktu kedatangan =N Waktu kedatangan Tidak Cek urutan kedatangan proses YA Waktu pengerjaan Tidak Urutan Kedatangan proses Yang pertama Ya Proses = Waktu tunggu + Waktu pengerjaan Proses sebelumnya Waktu tunggu rata-rata = Total proses / N proses Selesai Gambar 4.1 Flowchart Algoritma FCFS 4.2.1.2 Flowchart Algoritma Round Robin Berikut adalah prosedur Algoritma Round Robin: 1. User menginputkan jumlah proses dan nama proses sebanyak n proses. 2. User menginputkan waktu kedatangan dan waktu pengerjaan setiap proses. 3. Aplikasi akan melakukan pengecekan urutan kedatangan proses. 4. User menginputkan quatum proses. 5. Aplikasi akan menghitung rata-rata waktu tunggu semua proses Mulai Jumlah proses = N Input nama proses Tidak Jika Nama proses = N Ya Jika Waktu kedatangan =N Waktu kedatangan ya Tidak Cek urutan kedatangan proses Waktu pengerjaan Tidak Urutan Kedatangan proses Yang pertama Ya Quantum = q Cek waktu kerja sampai 0 (habis) Waktu kerja = waktu kerja / quantum Proses = Waktu tunggu + Waktu pengerjaan Proses sebelumnya Tidak Ya Waktu tunggu rata-rata = Total proses / N proses Selesai Gambar 4.2 Flowchart Algoritma Round Robin 4.3 Diagram Konteks Untuk menggambarkan sistem secara umum yang mewakili seluruh proses yang terjadi dan menggambarkan bagaimana hubungan antara proses utama dengan entitas ekternal yang terlibat dalam sistem, maka penyusun menggambarkan diagram konteks dari sistem yang diusulkan sebagai berikut : Jumlah Proses, Kwanta, Waktu Proses, Urutan Implementasi Algoritma Round Robin Dan FCFS (First Come First Serve) Pada Penjadwalan Proses Processor Tunggal User Waktu tunggu, gant chart Gambar 4.3 Diagram Konteks Implementasi Algoritma Round Robin dan FCFS 4.3.1 Data Flow Diagram Data Flow Diagram merupakan peralatan yang berfungsi untuk menggambarkan secara rinci mengenai sistem sebagai jaringan kerja antar fungsi yang berhubungan satu sama lain dengan menunjukan dari dan kemana data mengalir serta penyimpanannya. Berikut adalah DFD Implementasi algoritma FCFS dan Round Robin : 1. DFD level 0 DFD level 0 menjelaskan mengenai proses-proses yang terjadi pada implementasi secara terperinci. Gambar dibawah ini menjelaskan Data Flow Diagran level 0 1.0* Input Proses Jumlah proses, urutan, waktu proses User Waktu tunggu, gant chart 2.0 Penjadwalan FCFS Kwanta Waktu tunggu, gant chart 3.0 Penjadwalan Round Robin Gambar 4.4 DFD Level 0 Implementasi Algoritma Round Robin dan FCFS DFD level 0 memberikan gambaran umum proses-proses dalam aplikasi beserta input dan output. Pada level ini, terdapat 3 proses, yaitu: 1. Proses 1.0, Penginputan proses. Yang terdiri dari input jumlah proses, nama proses, waktu tiba proses, waktu pengerjaan proses. 2. Proses 2.0, FCFS. Pada proses ini akan dicari nilai rata-rata setiap proses, dan akan dtampilkan simulasi gant chart FCFS. 3. Proses 3.0, Round Robin. Pada proses ini akan dicari nilai rata-rata setiap proses, dan akan dtampilkan simulasi gant chart Round Robin. 2. DFD level 1 Proses 1.0 Input Proses DFD level 1 proses 1.0 merupakan perincian dari proses 1.0 pada implementasi. Gambar dibawah ini menjelaskan Data Flow Diagram level 1 proses 1.0 Jumlah proses 1.1 Input Jumlah Proses User Urutan 1.2 Input Urutan Kedatangan Waktu proses 1.3 Input Waktu Pengerjaan Proses Gambar 4.5 DFD Level 1 Implementasi Algoritma Round Robin dan FCFS DFD level 1 terdiri dari 3 proses yaitu : 1. Proses 1.1. Input jumlah proses sekaligus menginputkan nama-nama proses tersebut. 2. Proses 1.2 Input urutan kedatangan setiap proses, untuk menentukan proses mana yang dating duluan. 3. Proses 1.3 Input waktu pengerjaan setiap proses untuk menentukan berapa lama sebuah proses menunggu disistem untuk dikerjakan. 4.4 Perancangan Antar Muka Perancangan antar muka digunakan untuk membantu merancang system yang akan dibangun 4.4.1 Rancangan Struktur Program Struktur program merupakan suatu gambaran dalam bentuk bagan yang dibuat untuk mengidentifikasikan dan mengilustrasikan program ke dalam bentuk pemodelan. Rancangan Struktur Program ini berguna untuk menggambarkan model-model yang membangun sistem Informasi tersebut diatas. Adapun struktur program untuk Implementasi adalah sebagai berikut : Struktur Program Proses Input Data Proses Qutput FCFS Waktu tunggu FCFC RR Waktu tunggu RR Gambar 4.5 Struktur Program 4.4.2 Struktur Menu Struktur menu adalah bentuk umum dari suatu perancangan program untuk memudahkan melihat dan memfungsikan sesuai dengan kebutuhan. Perancangan Struktur program aplikasi merupakan perancangan program secara keseluruhan baik itu dari tampilan menu aplikasi, menu inputan. Menu Proses File Data Proses Exit Help FCFS About Waktu tunggu FCFC RR Waktu tunggu RR Gambar 4.6 Struktur Menu 5.1 Perancangan Input Perancangan Input, tampilan dirancang sedemikian rupa agar mudah dioperasikan oleh pemakai. Untuk setiap eksekusi peralatan yang digunakan berupa keyboard dan mouse. Adapun form inputan yang penyusun rancang meliputi beberapa form yang akan dibutuhkan pada implementasi algoritma FCFS dan Round Robin yang penyusun bangun. Berikut gambaran serta penjelasan dari masing – masing form yang penyusun rancang. INPUT PROSES Jumlah Proses Create Reset Nama Proses Waktu Kerja Simpan FCFS Kuantum, ROUND ROBIN Gambar 4. 7 Form Input Data Proses FCFS Nama Proses Waktu Tiba Waktu Kerja Gant Chart Rata-rata Waktu Tunggu Gambar 4. 10 Form Algoritma FCFS Waktu Tunggu Round Robin Nama Proses Waktu Tiba Waktu Kerja Waktu Tunggu Quantum Gant Chart Rata-rata Waktu Tunggu Gambar 4.11 Form Algoritma Round Robin BAB V IMPLEMENTASI 5.1 Kebutuhan Perangkat Lunak Aplikasi pengamanan dokumen teks ini dibangun dengan menggunakan kompilator Borland Delphi 7.0. Agar proses implementasi aplikasi dapat berjalan lancar, dan menggunakan sistem operasi Microsoft Windows 7. 5.2 Kebutuhan Perangkat Keras Perangkat keras komputer user yang akan menggunakan aplikasi ini minimal harus memiliki : 1. Processor Intel Pentium IV CPU 300 GHz 2. Harddisk terpasang 160 GB 3. RAM 512 MB 4. Monitor 5. Keyboard 5.3 Ujicoba Aplikasi Proses ujicoba dilakukan agar aplikasi yang telah dibuat sesuai dengan apa yang diharapkan dan bebas dari kesalahan. Tahap ujicoba dilakukan dengan metode black box testing yang fokus pada keperluan fungsional dari software. Berikut adalah tahapan-tahapan ujicoba aplikasi yang telah dibuat. Tabel 5.1 Pengujian Aplikasi dengan Metode Black Box No. 1 2 Deskripsi Pengujian Cara Uji Jumlah Jumlah proses Jumlah proses sesuai proses ditampilkan dengan inputan Waktu kerja Waktu kerja Waktu kerja proses proses ditampilkan sesuai dengan inputan Uji coba 3 button Klik button 5 masuk kedalam tabel Waktu tunggu proses waktu tunggu muncul didalam tabel proses penampungan Rata-rata Menghitung rata- Rata-rata waktu tunggu waktu tunggu rata waktu tunggu proses muncul beserta proses proses tunggu proses Sesuai Sesuai penampungan Menghitung Waktu Keterangan Proses-proses tersebut simpan 4 Hasil yang Diharapkan Sesuai Sesuai Gant Chart Kuantum dapat 6 Kuantum Kuantum tampil diinputkan dan dapat di Gant Chart ditampilkan di dalam Gant Chart Sesuai 5.4 Instalasi Aplikasi Agar aplikasi yang dibangun dengan Borland Delphi 7.0 ini dapat berjalan dengan baik, komputer dimana aplikasi akan berjalan sebaiknya menggunakan sistem operasi Microsoft Windows XP, Microsoft Windows 7 atau sistem operasi yang diluncurkan setelah itu. Setelah proses instalasi, perlu diperhatikan bahwa aplikasi harus dipelihara secara berkala agar aplikasi dapat terus digunakan tanpa gangguan yang berarti. Untuk itu, user hendaknya memperhatikan kekurangan aplikasi agar proses pemeliharaan aplikasi dapat berjalan dengan baik. BAB VI PENUTUP 6.1 Kesimpulan Kesimpulan dari proses penyusunan skripsi serta pembuatan adalah: 1. Dengan adanya aplikasi ini proses dengan jumlah yang banyak dapat dihitung secara otomatis. 2. Lebih mudah memahami algoritma penjadwalan proses dengan melihat gambarannya secara langsung ke dalam aplikasi. 3. Dapat terlihat waktu tunggu rata-rata terbaik dari kedua algoritma penjadwalan proses tersebut. 4. Dengan aplikasi ini algoritma penjadwalan proses dapat diimplementasikan dan divisualiasikan. 6.2 Saran Berikut adalah saran dari penyusun setelah pembuatan aplikasi pengamanan dokumen teks. 1. Aplikasi ini harus terus dievaluasi dan dikembangkan dengan menggunakan algoritma-algoritma penjadwalan lainnya. 2. Disarankan agar aplikasi dipelihara secara berkala. 3. Pengguna hendaknya memperhatikan kekurangan dari aplikasi agar aplikasi dapat diperbaiki. DAFTAR PUSTAKA Ali Pangera, Abas, Dony Ariyus, 2005. Sistem Operasi, Andi Yogyakarta Hariyanto, Bambang, 2009. Sistem Operasi, Informatika Bandung Kadir, Abdul, 2001. Dasar Pemrograman Delphi, Andi Yogyakarta Kusnadi, dkk, 2008. Sistem Operasi, Andi Yogyakarta Munir, Rinaldi, 2004. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C edisi ke-3 (Buku Satu), Informatika Bandung Pressman, Roger S, 2002. Rekayasa Perangkat Lunak (Buku Satu), ANDI Yogyakarta.