Jenis-Jenis ALGORITMA Penjadwalan

Kategori: Welcome
Diposting oleh whoefri pada Minggu, 27 Desember 2009
[6488 Dibaca] [6 Komentar]Post to TwitterPost to Facebook

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. 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.

Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.

Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

Sejarah istilah "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.

Jenis-jenis Algoritma

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.

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

Beberapa istilah yang perlu diketahui dalam dunia pemrograman antara lain adalah sebagai berikut.

1.      Program

Program adalah kumpulan instruksi/perintah yang disusun sebagai satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa pemrograman sehingga dapat dieksekusi oleh komputer Bahasa pemrograman merupakan prosedur atau tata cara penulisan program.

2.      Pemrograman

Pemrograman adalah proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa  pemrograman. Algorithma berasal dari kata algoris dan ritmis, yang pertama kali diungkapkan oleh Abu Ja’far Mohammed Ibn Musa al Khowarismi (825 M) dalam buku Al-Jabr Wa-al Muqabla. Dalam bidang pemrograman algorithma didefinisikan sebagai suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur dan dituliskan secara sistematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer.

3.      Bahasa Pemrograman

Bahasa pemrograman berfungsi sebagai media untuk menyusun dan memahami suatu program komputer serta sebagai alat komunikasi antara programmer dengan komputer. Bahasa pemrograman digolongkan menjadi beberapa tingkatan yaitu :

·         Bahasa tingkat rendah (Low Level Language)

Bahasa tingkat rendah merupakan bahasa pemrograman yang berorientasi  pada mesin. Disebut tingkat rendah karena bahasa ini lebih dekat ke bahasa mesin daripada bahasa manusia. Yang tergolong dalam bahasa tingkat rendah adalah bahasa assembly.

Kelemahan bahasa tingkat rendah antara lain :

o   sulit dipelajari karena programmer harus mengetahui seluk beluk  perangkat keras yang digunakan

o   bahasa assembly untuk satu jenis mikroprosesor satu dengan yang lain sangat jauh berbeda karena belum ada standardisasi. Contoh : bahasa  assembly untuk mikroprosesor Intel 8088 dengan bahasa assembly untuk mikroprosesor Z-80 sangat jauh berbeda

o   fungsi-fungsi yang tersedia sangat terbatas, misalnya tidak ada fasilitas  untuk pemrograman grafik, fungsi-fungsi numerik & string, dll.  Selain memiliki kelemahan seperti tersebut di atas, bahasa assembly memiliki beberapa kelebihan yang tidak dimiliki oleh bahasa lain yaitu :

o   kecepatan eksekusi dari program yang ditulis dengan bahasa assembly sangat tinggi, paling cepat dibanding dengan program-program yang dibuat menggunakan bahasa yang lain

o   executable file yang dihasilkan oleh bahasa assembly ukurannya paling kecil. Buktinya : hampir semua program virus yang banyak beredar adalah dibuat dengan menggunakan bahasa assembly karena ukurannya paling kecil, sehingga kehadiran virus tersebut menjadi lebih sulit  terdeteksi.

·         Bahasa tingkat tinggi (High Level Language)

Bahasa tingkat tinggi lebih dekat ke bahasa manusia dari pada bahasa mesin.  Bahasa tingkat tinggi merupakan bahasa pemrograman yang memiliki aturan-aturan gramatikal dalam penulisan ekspresi atau pernyataan dengan standar yang mudah dipahami oleh manusia. Yang tergolong bahasa sebagian para pakar yang menyebut bahasa C sebagai bahasa tingkat menengah (middle level language), karena dianggap bahasa C adalah bahas  tingkat tinggi yang mempunyai kelebihan hampir menyamai bahasa  assembly karena kelengkapan fungsinya dalam mengakses perangkat keras. Kelebihan bahasa tingkat tinggi antara lain : tingkat tinggi antara lain : BASIC, Fortran, COBOL, Pascal, Prolog, C, dll. Ada

o   mudah dipelajari

o   mempunyai fasilitas trace & debug untuk mendeteksi adanya kesalahan (error)

o   mempunyai fungsi/library yang lengkap sehingga dapat mempermudah dan mempercepat pembuatan program Algorithma Algorithma berasal dari kata algoris dan ritmis, yang pertama kali diungkapkan oleh Abu Ja’far Mohammed Ibn Musa al Khowarismi (825 M) dalam buku Al-Jabr Wa-al Muqabla. Dalam bidang pemrograman algorithma didefinisikan sebagai suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur dan dituliskan secara sistematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer. Algoritma merupakan pola pikir terstruktur yang berisi tahap-tahap penyelesaian masalah yang dapat disajikan dengan teknik tulisan maupun dengan gambar. Penyajian algoritma dalam bentuk tulisan biasanya menggunakan metode Structure English atau Pseudo Code (kode semu). Penyajian algoritma dalam bentuk gambar biasanya menggunakan flowchart (diagram alir). Selain flow chart sebenarnya masih ada beberapa metode untuk menggambarkan algoritma yaitu structure chart, HIPO (Hierarchy Input-Process-Output), Data Flow Diagram, dll tetapi tidak dibahasa Pseudo Code (Kode Semu) Pseudo Code (kode semu) merupakan metode yang cukup efisien untuk  menggambarkan suatu algoritma . Pseudo Code dituliskan dengan menggunakan bahasa yang mudah dipahami (boleh menggunakan bahasa logika yang digambarkan dapat dimengeti oleh orang awam sekalipun.  Flowchart  Pseudo Code (kode semu) disusun dengan tujuan untuk menggambarkan tahap-tahap penyelesaian suatu masalah dengan kata-kata (teks). Metode ini mempunyai kelemahan, dimana penyusunan algoritma dengan kode semubahasa pembuatnya, sehingga kadang-kdang sulit dipahami oleh orang lain. Oleh karena itu kemudian dikembangkan suatu metode lain  yang dapat menggambarkan suatu algoritma program secara lebih mudah dan sederhana yaitu dengan menggunakan flowchart (diagram alir). Terdapat 2 jenis flow chart yaitu sistem flowchart dan program flowchart.  Sistem Flowchart  Sistem flowchart merupakan diagram alir yang menggambarkan suatu system peralatan komputer yang digunakan dalam proses pengolahan data serta  hubungan antar peralatan tersebut. Sistem flow chart tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah , tetapi hanya untuk menggambarkan prosedur dalam sistem yang dibentuk. Simbol-simbol yang digunakan dalam sistem flowchart antara lain yaitu : Indonesia) agar alur sangat dipengaruhi oleh tata

                                           I.            Sequential Access

                                        II.            Storage

                                     III.            Manual input

                                     IV.            Punched Paper Tape

                                        V.            Display

                                     VI.            Input / Output

                                  VII.            Direct Acces

                               VIII.            Storage

                                     IX.             Process

                                        X.            Stored Data

                                     XI.            Magnetic Disc

                                  XII.            Manual Operation

                               XIII.            Card

                               XIV.            Internal Storage

                                  XV.            Multi Document

                               XVI.            Proses Sortir

                            XVII.            Proses Merge

Bentuk   Algoritma
Algoritma merupakan runtunan asli yang berarti :
a. Tiap aksi dikerjakan satu persatu.
b. Tiap aksi dilaksanakan tepat sekali, tidak ada aksi yang diulang.
c. Urutan aksi yang dilaksanakan pemroses sama dengan urutan aksi sebagai mana yang    tertulis didalam algoritmanya.
d. Akhir dari aksi terakhir merupakan akhir algoritma.
2. Percabangan (Brauching)
3. Perulangan (Looping)

 

Pemmograman
Belajar pemrograman meliputi banyak hal terutama adalah belajar memecahkan masalah atau merumuskan algoritma, mulai dari penentuan garis besar pemecahan sampai langkah-langkah rinci. Belajar bahasa pemograman adalah belajar pemakaian suatu bahasa yang mengikuti aturan sintaks, instruksi yang tersedia, dan cara pengoperasian kompilator bahasa pada mesin tertentu. Algoritma harus dituliskan kembali dalam bahasa pemrograman untuk dapat dieksekusi oleh komputer. jika Algoritma yang dikembangkan sudah cukup rinci, dan jika aturan bahasa pemrograman dikuasai, maka penerjemahannya kedalam bahasa pemrograman akan sangat mudah. penerjemahan akan sangat berbeda untuk setiap bahasa pemrograman.

 

Program adalah kumpulan instruksi (statements) yang disusun secara logis untuk memecahkan suatu masalah. Instruksi-instruksi yang digunakan disesuaikan dengan jenis bahasa pemrograman yang digunakan (reserved word yang disediakan).

Program yang baik memiliki kriteria antara lain :

  1. Menghasilkan keluaran (output) yang sesuai dan benar.
  2. Memiliki kompleksitas algoritma yang minimal.
  3. Memiliki kecocokan dengan peruntukan bahasa pemrogramannya.
  4. Memiliki batas akhir penyelesaian.

Mengenal Kesalahan Pada Komputer

Sebelum mengupas tentang cara kerja dari komputer, ada baiknya kita mengenal hal-hal yang berkaitan dengan kesalahan yang ditemukan dalam sistem komputer ini, kesalahan ini ditemukan dalam bermacam-macam kasus, baik pemrograman, maupun dalam bidang lainnya dalam proses yang dilakukan dengan menggunakan komputer.

Pengertian Error

Error dapat diartikan sebagai Kekeliruan, tidak tepat, kesalahan secara perangkat lunak, atau kerusakan pada perangkat keras. Dengan terjadinya error ini, maka pelaksanaan perintah tidak sesuai dengan yang diharapkan.

Pada beberapa kejadian, apabila terjadi error, maka perintah yang sedang dikerjakan diberhentikan karena tidak bisa dilanjutkan, seperti tidak ada printer. Namun pada kondisi lainnya, pekerjaan masih bisa dilanjutkan, karena error yang terjadi tersebut tidak terlalu mempengaruhi sistemsound card, proses masih bisa dilanjutkan untuk melihat presentasi tersebut, meskipun dalam kondisi bisu. dan bisa diabaikan, seperti pemutaran suatu media presentasi pada komputer yang tidak mempunyai

Ada bermacam-macam jenis error antara lain :

a)      Syntax Error

b)      Logical Error

c)      Run Time Error

d)     Human Error

e)      Command Error

a)      Syntax Error

Syntax Error adalah kesalahan yang diakibatkan karena penulisan atau tata bahasa yang tidak benar. Error ini membuat pihak yang diminta untuk mengerjakan sesuatu menjadi bingung, sehingga tidak bisa melakukan perintah tersebut. Contohnya adalah
”Nasi Budi makan”, penulisan kalimat tersebut tidak mengikuti kaedah penulisan tata bahasa Indonesia yang benar, yang benarnya adalah “Budi makan nasi”. Apabila terjadi kesalahan jenis ini, proses tidak akan diberhentikan, atau tidak dilanjutkan, sampai yang bersangkutan menulis perintah membenarkan perintah tersebut.

b)      Logical Error

Logical Error adalah jenis kesalahan secara logika. Jika ditemukan kesalah dengan jenis ini, proses tetap dilanjutkan, namun tidak berjalan sebagaimana mestinya. Misalnya
Buka halaman 6, padahal yang dimaksud adalah halaman 9. bagaimana informasi yang anda temukan? Tentu berbeda dengan yang semestinya anda inginkan.
Kesalahan dalam logika ini akan mengakibatkan hasil suatu proses tidak sesuai dengan yang diharapkan, umumnya proses ini tidak berhenti karena kesalahan logika ini. Nah, kita memang harus hati-hati dengan kesalahan secara logic ini. Sistem akan memberikan informasi sesuai dengan yang anda berikan. Makanya ketelitian diperlukan di sini.

Logical Error dapat juga diartikan sebagai suatu kesalahan hasil yang diharapkan yang diakibatkan karena kesalahan dalam hal logika. Kesalahan logika disini bisa karena salah pengisian, seperti salah mengisikan jenis kelamin misalnya seorang laki-laki mengisi jenis kelamin pada datanya dengan perempuan, sehingga ketika dipanggil atau disapa oleh komputer akan muncul pesan, {Selamat datang, bu…}. Selain kesalahan ini karena kesalahan pengisian, juga diakibatkan oleh kesalahan logika pada program. Apabila terjadi kesalahan logika ini, komputer akan tetap melaksanakan perintah yang disampaikan, akan tetapi hasil dari proses tersebut tidak benar. Kesalahan ini termasuk yang cukup sulit dilacak, karena pada kondisi tertentu, hasilnya kadang-kadang tidak terdeksi dalam jangka waktu dekat, disinilah dibutuhkan ketelitian baik bagi programmer maupun bagi pengentri data.

c)      Run Time Error

Kesalahan jenis ini disebabkan karena waktu suatu perintah dieksekusi, sistemnya sendiri yang tidak siap menerima perintah tersebut, bisa saja disebabkan permintaan yang anda lakukan sedang tidak tersedia, atau karena penyebab secara teknis lainnya. Misalnya:
Anda mau mendengarkan radio, listriknya belum disambungkan, ya harus disambungkan dulu listriknya, baru bisa menikmati suara radio.
Mau melihat berita di situs berita, alamat yang diketikkan sudah benar, komputer juga udah terhubung dengan internet, situs lain yang dikunjungi tidak ada masalah, tetapi kok situs berita tersebut nggak bisa diakses-akses. Ternyata server situs berita itu sendiri yang sedang down (istilah yang digunakan kalau server tidak aktif atau mati)
Ketika sedang jalan-jalan di internet, anda tertarik dengan suatu gambar atau informasi, lalu anda ingin menyimpannya ke disket, tetapi kok waktu menyimpan informasi tersebut selalu saja gagal. Disket sudah dimasukkan dengan benar. Ternyata penyebabnya adalah disket yang digunakan rusak.
Kesalahan jenis run-time error ini mengakibatkan proses dihentikan seketika, umumnya sistem memberitahukan kondisi yang diketahuinya jika ditemukan masalah seperti ini.

d)     Human Error

Human Error adalah kesalahan yang terjadi akibat adanya kesalahan pengguna dalam memasukkan data. Misalnya salah masukkan nama akibat kurangnya huruf yang terdapat pada nama tersebut.

e)      Command Error

Command Error adalah kesalahan dalam perintah yang diinginkan komputer yang diakibatkan karena kesalahan pengguna yang tidak mengikuti perintah yang timbul pada komputer.


Jenis-jenis algoritma penjadwalan adalah sebagai berikut :

1.  Nonpreemptive, menggunakan konsep :

a. FIFO (First In First Out) atau FCFS (First Come First Serve)

b. SJF (Shortest Job First)

c. HRN (Highest Ratio Next)

d. MFQ (Multiple Feedback Queues)

2.  Preemptive, menggunakan konsep :

a. RR (Round Robin)

b. SRF (Shortest Remaining First)

c. PS (Priority Schedulling)

d. GS (Guaranteed Schedulling)

Klasifikasi lain selain berdasarkan dapat/tidaknya suatu proses diambil secara paksa adalah klasifikasi berdasarkan adanya prioritas di proses-proses, yaitu :

1.  Algoritma penjadwalan tanpa berprioritas.

2.  Algoritma penjadwalan berprioritas, terdiri dari :

a. Berprioritas static

b. Berprioritas dinamis

 

Algoritma Nonpreemptive

 

1)      First In First Out (FIFO)

First In First Out (FIFO) merupakan penjadwalan tidak berprioritas. FIFO adalah penjadwalan paling sederhana, yaitu proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan. Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.

Penilaian penjadwalan ini berdasarkan kriteria optimasi :

        Adil, dalam arti resmi (proses yang datang duluan akan dilayani lebih dulu), tapi dinyatakan 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.

         Efisiensi, sangat efisien.

        Waktu tanggap sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem waktu nyata.

         Turn around time kurang baik.

       Throughtput kurang baik. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema lain.

         Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.

      Contoh : aplikasi analisis numerik, maupun pembuatan tabel.

         Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik.

         Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).

 

2)      Shortest Job First (SJF)

Penjadwalan ini mengasumsikan waktu berjalannya proses sampai selesai telah diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan penjadwalannya tak berprioritas.

Contoh :

Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing adalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka turn around time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 dan untuk D adalah 20. Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt, maka turn around time untuk B adalah 4, untuk C adalah 8, untuk D adalah 12 dan untuk A adalah 20.

Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya. Masalah yang muncul adalah tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan kelakukan sebelumnya. Prosesnya tidak datang bersamaan, sehingga penetapannya harus dinamis. Penjadwalan ini jarang digunakan karena merupakan kajian teoritis untuk pembandingan turn around time.

 

3)      Highest Ratio Next (HRN)

Highest Ratio Next merupakan strategi penjadwalan dengan prioritas proses tidak hanya berdasarkan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses, proses berjalan sampai selesai.

Prioritas dinamis HRN dihitung berdasarkan rumus : Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan Karena waktu layanan muncul sebagai pembagi, maka job lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus. Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap, yang berarti waktu tanggap tertinggi yang harus dilayani.

 

4)      Multiple Feedback Queues (MFQ)

Merupakan penjadwalan berprioritas dinamis. Penjadwalan ini untuk mencegah (mengurangi) banyaknya swappingdengan proses-proses yang sangat banyak menggunakan pemroses (karena menyelesaikan tugasnya memakan waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu. Penjadwalan ini juga menghendaki kelas-kelas prioritas bagi proses-proses yang ada. Kelas tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan selama dua kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya. Ketentuan yang berlaku adalah sebagai berikut :

      Jalankan proses pada kelas tertinggi.

      Jika proses menggunakan seluruh kwanta yang dialokasikan, maka diturunkan kelas prioritasnya.

      Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi.
Mekanisme ini mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses interaktif yang singkat harus menunggu lama.

 

Algoritma Preemptive

 

1)      Round Robin (RR)

Merupakan :

o Penjadwalan yang paling tua, sederhana, adil, banyak digunakan algoritmanya dan mudah diimplementasikan.

o Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal berdasarkan lama waktu berjalannya proses (preempt by time).

o  Penjadwalan tanpa prioritas.

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

 

2)      Shortest Remaining First (SRF)

Merupakan :

• Penjadwalan berprioritas.dinamis.

• preemptive untuk timesharing

• Melengkapi SJF

Pada SRF,  proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk proses-proses yang baru tiba.Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.Pada SRF, proses yang sedang berjalan (running) dapat diambil alihproses baru dengan sisa waktu jalan yang diestimasi lebih rendah.

Kelemahan :

         Mempunyai overhead lebih besar dibanding SJF. SRF perlu penyimpanan waktu layanan yang telah dihabiskan job dan kadang-kadang harus menangani peralihan.

         Tibanya proses-proses kecil akan segera dijalankan.

         Job-job lebih lama berarti dengan lama dan variasi waktu tunggu lebih lama dibanding pada SJF.

SRF perlu menyimpan waktu layanan yang telah dihabiskan , menambah overhead. Secara teoritis, SRF memberi waktu tunggu minimum tetapi karena overhead peralihan, maka pada situasi tertentu SFJ bisa memberi kinerja lebih baik dibanding SRF.

 

3). Priority Schedulling (PS)

Setiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Diasumsikan bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya. Dalam UNIX perintah untuk mengubah prioritas menggunakan perintah nice. Pemberian prioritas diberikan secara:

1)      Statis (Static Priorities) berarti prioritas tidak berubah.

Keunggulan :

• Mudah diimplementasikan.

• Mempunyai overhead relatif kecil.

Kelemahan :

• Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki penyesuaian prioritas.

2)      Dinamis (Dynamic Priorities) merupakan mekanisme untuk menanggapi perubahan lingkungan system beroperasi. Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai lingkungan.

Kelemahan :

Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar. Overhead ini diimbangi dengan peningkatan daya tanggap sistem.

Contoh penjadwalan berprioritas :

Proses-proses yang sangat banyak operasi masukan/keluaran menghabiskan kebanyakan waktu menunggu selesainya operasinya masukan/keluaran. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses Memerlukan pemroses segera diberikan, proses akan segera memulai permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses dapat dipergunakan proses-proses lain. Proses-proses I/O berjalan paralel bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara proses-proses I/O itu menunggu selesainya operasi DMA.

Proses-proses yang sangat banyak operasi I/O-nya, kalau harus menunggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani memori, karena harus disimpan tanpa perlu proses-proses itu dimemori karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah pemroses.

 

4)   Guaranteed Schedulling (GS)

Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk membuat dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses (pemakai) akan mendapatkan 1/N dari daya pemroses CPU. Untuk mewujudkannya, sistem harus selalu menyimpan informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga berapa lama pemakai sedang login. Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi dengan n, sehingga lebih mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap pemakai dapat diketahui, maka dapat dihitung rasio antara waktu pemroses yang sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu pemroses yang telah diperuntukkan proses itu. Rasio 0,5 berarti sebuah proses hanya punya 0,5 dari apa yang waktu CPU miliki dan rasio 2,0 berarti sebuah proses hanya punya 2,0 dari apa yang waktu CPU miliki. Algoritma akan menjalankan proses dengan rasio paling rendah hingga naik ketingkat lebih tinggi diatas pesaing terdekatnya. Ide sederhana ini dapat diimplementasikan ke sistem real-time dan memiliki penjadwalan berprioritas dinamis.

 

 

 

 

 

 

 

 





PDF | DOC | DOCX


Komentar:

31 Oktober 2012 pukul 14:16 WIB
hasbullah mengatakan...
tolong donk di taruhin kelemahan dan kelebihan algoritma penjadwalan..... ok...

17 Februari 2012 pukul 08:42 WIB
Ian Deziva mengatakan...
Informasinya sangat bermanfaat, tp akan lebih bermanfaat jika disertai contoh!!

18 April 2011 pukul 09:49 WIB
alip mengatakan...
ijin co-pas om.... buat tugas kuliah... thanks..

22 November 2010 pukul 10:44 WIB
kanti mengatakan...
kok ga ad cntohnya? kasih conth untuk pnghitungan penjadwalan diselesaikan dengan anlisis network algoritma dunk? grin grin

25 Juni 2010 pukul 16:03 WIB
Anggara Permana mengatakan...
terima kasih... sangat bermanfaat...

17 April 2010 pukul 08:33 WIB
endang sri wahyuni mengatakan...
Tolong berikan contoh dari : -HRN, -MFQ, -RR, -SRF, -PS


Kirim Komentar Anda:

Nama Anda (wajib diisi) E-Mail (tidak dipublikasikan) http:// Website, Blog, Facebook, dll (wajib diisi)


<-- isi kode di atas (wajib diisi)

grinLOLcheesesmilewinksmirkrolleyesconfused
surprisedbig surprisetongue laughtongue rolleyetongue winkraspberryblank starelong face
ohhgrrrgulpoh ohdownerred facesickshut eye
hmmmmadangryzipperkissshockcool smilecool smirk
cool grincool hmmcool madcool cheesevampiresnakeexcaimquestion

Favicon maker- Create a favicon from any image