BAB II LANDASAN TEORI
2.1
Model Proses Incremental
Model incremental mengkombinasikan elemen dari waterfall model yang diaplikasikan terhadap pola iteratif. Model incremental mengaplikasikan sekuen linear pada pola sebagai suatu kemajuan waktu. Setiap sekuen linear menghasilkan “increment” deliverable dari suatu Perangkat lunak [McDonald, 1993]. Misalnya, perangkat lunak pengolah kata dibangun menggunakan paradigma incremental mungkin menghasilkan file management dasar, editing, dan fungsi produksi dokumen di increment pertama, kemampuan editing dan produksi dokumen yang lebih canggih di increment kedua, pemeriksa spelling and grammar di increment ketiga, dan kemajuan kemampuan tata letak (layout) halaman di increment keempat. Perlu dicatat bahwa aliran proses untuk setiap increment mungkin memasukkan paradigma prototyping. Saat model incremental digunakan, increment pertama biasanya berupa produk inti (core product). Yakni kebutuhan dasar yang ditargetkan, tetapi banyak fitur tambahan yang tidak disampaikan. Produk inti adalah sesuatu yang digunakan oleh pelanggan. Sebagai hasil penggunaan atau evaluasi, rencana dibangun untuk increment berikutnya.
7
8
Gambar 2. 1 Incremental Process (Craig Larman, Victor R. Basili (June 2003))
2.1.1
Communication
Sebelum kebutuhan dapat dianalisis, dimodelkan,
atau dispesifikasikan,
kebutuhan tersebut harus dikumpulkan melalui aktivitas communication (disebut juga pemancing kebutuhan). Craig Larman, Victor R. Basili (June 2003) 2.1.2
Planning
Aktivitas communication membantu mendefinisikan gol keseluruhan dan sasaran. Pada aktivitas planning mencakup himpunan dari management dan technical practices yang memungkinkan untuk mendefinisikan road map sebagaimana perjalanannya terhadap gol strategi dan sasaran taktikal. Planning memiliki beberapa filosofi diantaranya “minimalis”, berargumen bahwa perubahan selalu menyingkirkan kebutuhan rencana yang detail. Yang lainnya adalah “tradisionalis”, berargumen bahwa rencana menyediakan sebuah peta jalan yang efektif, dan lebih detail. Yang lainnya lagi adalah “agilist,” berargumen
9
bahwa sebuah “planning game” cepat mungkin perlu, tetapi suatu peta jalan akan digabungkan sebagai “real work” pada permulaan perangkat lunak. 2.1.3
Modeling
Dalam rekayasa perangkat lunak, ada dua kelas dari model dibuat: model analisis dan model desain. Model analisis merepresentasikan kebutuhan customer dengan menggambarkan suatu perangkat lunak kedalam tiga domain berbeda: domain informasi,
domain
fungsional,
dan
domain
behavioral.
Model
desain
mereprensentasikan karakteristik dari perangkat lunak yang membantu pelaksana untuk mengkonstruksi secara efektif, seperti: arsitektur, user interface, dan component–level detail. 2.1.4
Construction
Aktifitas construction merangkum kumpulan dari contoh coding dan testing yang menuntun perangkat lunak secara operasional, yaitu perangkat lunak yang sudah siap untuk diantar ke customer atau end-user. Dalam dunia rekayasa perangkat lunak modern, coding bisa berupa: (1) kreasi langsung dari source code bahasa pemrograman, (2) ganerasi otomatis source code seperti menggunakan representasi desain intermediate dari komponen untuk dibangun, (3) generasi otomatis dari executable code menggunakan bahasa pemrograman generasi ke-4 (misalnya, Visual C++). Fokus awal dari testing adalah pada level komponen, sering disebut juga unit testing. Level lainnya yaitu: (1) integration testing (diadakan sebagai sistem yang telah dikonstruksi), (2) validation testing yang mengkaji kebutuhan apakah telah cocok untuk sistem keseluruhan (atau software incrementnya), dan (3) acceptance testing yang diadakan oleh pengguna dalam sebuah usaha untuk mengetest semua fitur dan fungsi yang dibutuhkan. 2.1.5
Deployment
Aktifitas deployment merangkum tiga action: delivery, support, and feedback. Karena model proses perangkat lunak modern adalah evolusioner secara alamiah, deployment tidak terjadi sekali, tetapi sejumlah waktu pada pergerakan perangkat lunak menuju penyelesaian. Setiap delivery cycle memperkenalkan customer dan
10
end-user dengan sebuah operational software increment yang menyediakan fungsi dan fitur bermanfaat setiap support cycle menyediakan dokumentasi dan bantuan orang untuk semua fungsi dan fitur yang diperkenalkan selama semua siklus deployment berlangsung. Setiap feedback cycle menyediakan tim perangkat lunak dengan suatu petunjuk penting yang menghasilkan modifikasi fungsi, fitur, dan pendekatan yang diambil untuk increment berikutnya. Penyampaian dari software increment merepresentasikan milestone penting untuk beberapa software project.
2.2
Konsep Pemodelan UML
UML (Unified Modelling Language) adalah salah satu alat bantu yang sangat handal di dunia pengembangan sistem yang berorientasi objek. Hal ini disebabkan karena UML menyediakan bahasa pemodelan visual yang memungkinkan bagi pengembang sistem untuk membuat cetak biru atas visi mereka dalam bentuk yang baku, mudah dimengerti serta dilengkapi dengan mekanisme yang efektif untuk berbagi (sharing) dan mengkomunikasikan rancangan mereka dengan yang lain. UML merupakan kesatuan dari bahasa pemodelan yang dikembangkan oleh Booch, Object modelling Technique (OMT) dan Object Oriented Software Engineering (OOSE). Metode Booch dari Grady Booch sangat terkenal dengan nama metode Desain Object Oriented. Metode ini menjadikan proses analisis dan desain kedalam empat tahapan iteratif, yaitu : identifikasi class-class dan objekobjek, identifikasi semantik dari hubungan objek dan class tersebut, perincian interface dan implementasi. Keunggulan metode Booch adalah pada detil dan kayanya akan notasi dan elemen. UML Dibangun atas model 4+1 view. Model ini didasarkan pada fakta bahwa struktur sebuah sistem dideskripsikan dalam 5 view dimana salah satu diantaranya usecase view. Usecase view ini memegang peran khusus untuk mengintegrasikan content ke view yang lain.
11
Implementation View
Design View Use Case View
Deployment View
Process View
Gambar 2. 2 Model 4+1 view (Kruchten, Philippe (November 1995))
Use Case view mendefinisikan perilaku eksternal system. Hal ini menjadi daya tarik bagi end user, analis dan tester. Pandangan ini mendefinisikan kebutuhan system karena mengandung semua view yang lain yang mendeskripsikan aspekaspek tertentu dari rancangan sistem. Itulah sebabnya usecase view menjadi pusat peran dan sering dikatakan yang mendrive proses pengembangan perangkat lunak. Design view mendefinisikan struktur logika yang mendukung fungsi-fungsi yang dibutuhkan di use case. Design view ini berisi definisi komponen program, classclass utama bersama-sama dengan spesifikasi data, perilaku dan interaksinya. Informasi yang terkandung di view ini menjadi perhatian para programer karena menjelaskan
secara
detil
bagaimana
fungsionalitas
sistem
akan
diimplementasikan. Implementasi view menjelaskan komponen-komponen fisik dari sistem yang akan dibangun. Hal ini berbeda dengan komponen logic yang dideskripsikan pada design view, termasuk disini diantaranya file exe, library, dan database. Informasi yang ada di view ini relevan dengan aktifitas-aktifitas seperti manajemen konfigurasi dan integrasi sistem.
12
Process view berhubungan dengan hal-hal yang berkaitan dengan concurrency didalam sistem. Sedangkan deployment view menjelaskan bagaimana komponenkomponen fisik didistribusikan ke lingkungan fisik seperti jaringan komputer dimana sistem akan dijalankan. Kedua view ini menunjukkan kebutuhan non fungsional dari sistem seperti toleransi kesalahan dan hal-hal yang berhubungan dengan kinerja. Untuk menggambarkan atau mendokumentasikan beberapa aspek dari sebuah sistem diperlukan sebuah diagram. UML mempunyai sejumlah elemen grafis yang bisa dikombinasikan menjadi diagram.
2.2.1
Use Case Diagram
Use case diagram adalah deskripsi dari fungsionalitas pada sistem. Penjelasan dari use case biasanya dibuat dalam teks sederhana sebagai pendokumentasian pada simbol use case, tetapi dapat juga digambarkan menggunakan activity diagram. Use case digambarkan sebagai cara pandang terhadap sistem dari luar oleh actor. Use case mempertegas kebutuhan fungsioional sistem.
Gambar 2. 3 Use Case Diagram (Schulz, Joseph D., 2003)
13
Use case adalah deskripsi dari sekumpulan aksi yang berurutan sebagai akibat dari interaksinya dengan actor.
Actor adalah representasi dari pengguna sistem yang berinteraksi dengan use case tetapi tidak memiliki kontrol terhadap use case tersebut dan berada di luar sistem. Actor digambarkan sebagai berikut :
Gambar 2. 4 Actor (Schulz, Joseph D., 2003)
2.2.2
Class Diagram
Class diagram adalah diagram yang menunjukkan sekumpulan class, interface dan collaboration serta relationship. Diagram ini biasa ditemukan pada pemodelan object oriented system. Class Diagram menunjukkan aspek statis dari sebuah sistem. Class diagram yang termasuk active class menunjukkan proses dari aspek statis sebuah sistem.
14
Gambar 2. 5 Class Diagram (Schulz, Joseph D., 2003)
2.2.3
Sequence Diagram
Sequence diagram merupakan diagram interaksi yang menekankan pada waktu pengiriman message. Sequence diagram juga menunjukkan sekumpulan objek dan pengiriman serta penerimaan message antar objek. Objek yang umumnya memiliki nama atau instansiasi dari class, tapi dapat pula merupakan turunan dari hal-hal lain, seperti collaboration, component dan node. Diagram ini digunakan untuk mengilustrasikan aspek dinamis dari sistem.
15
Gambar 2. 6 Sequence Diagram (Schulz, Joseph D., 2003)
2.2.4
Deployment Diagram
Deployment diagram menggambarkan arsitektur fisik dari perangkat keras dan perangkat lunak pada sebuah sistem. Dengan Deployment diagram dapat diperlihatkan keterhubungan antara Komputer dengan alat yang terhubung (nodes), serta ketergantungan antar-komponen.
16
Gambar 2. 7 Deployment Diagram (Schulz, Joseph D., 2003)
2.3
Perancangan Basis Data
Basis data sebagai kumpulan dari data yang saling berhubungan yang diorganisasi sedemikian rupa agar kemudian dapat dimanfaatkan lagi dengan cepat dan mudah (Abdul Kadir, 2002: 39). Definisi basis data (database) sangatlah bervariasi. Basis data dapat dianggap sebagai kumpulan data yang terkomputerisasi, diatur dan disimpan menurut salah satu cara yang memudahkan pengambilan kembali. Secara sederhana basis data dapat diungkapkan sebagai suatu pengorganisasian
data dengan bantuan
komputer yang memungkinkan data dapat diakses dengan mudah dan cepat. Tujuan awal dan utama dalam pengolahan data pada sebuah basis data adalah agar dapat menentukan kembali data (data yang dicari) dengan mudah dan cepat. Di samping itu, pemanfaatan data untuk pengolahan data juga memiliki tujuan-tujuan tertentu. Secara lengkap, pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan sebagai berikut : 1. Kecepatan dan kemudahan (Speed)
17
Pemanfaatan basis data memungkinkan untuk dapat menyimpan data atau melakukan perubahan/manipulasi terhadap data atau menampilkan kembali data tersebut dengan cepat dan mudah. 2. Efesiensi ruang penyimpanan (Space) Penggunaan ruang penyimpanan di dalam basis data dilakukan untuk mengurangi jumlah redundansi (pengulangan) data, baik dengan melakukan penerapan sejumlah pengkodean atau dengan membuat relasi-relasi (dalam bentuk file) antar kelompok data yang saling berhubungan. 3. Keakuratan (Accuracy) Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan tipe data, domain data, keunikan data dan sebagainya dan diterapkan
dalam
basis
data,
sangat
berguna
untuk menentukan
ketidakakuratan pemasukan atau penyimpanan data. 4. Ketersediaan (Availability) Pertumbuhan data (baik dari jumlah maupun jenisnya) sejalan dengan waktu akan semakin membutuhkan ruang penyimpanan yang besar. Data yang sudah jarang atau bahkan tidak pernah lagi digunakan dapat diatur untuk dilepaskan dari sistem basis data dengan cara penghapusan atau dengan memindahkannya ke media penyimpanan. 5. Kelengkapan (Completeness) Lengkap atau tidaknya data yang dikelola bersifat relatif baik terhadap kebutuhan pemakai maupun terhadap waktu. Dalam sebuah basis data, struktur dari basis data tersebut juga harus disimpan. Untuk mengakomodasi kebutuhan kelengkapan data yang semakin berkembang, maka tidak hanya menambah record-record data, tetapi juga melakukan penambahan struktur dalam basis data. 6. Keamanan (Security)
18
Sistem keamanan digunakan untuk dapat menentukan siapa saja yang boleh menggunakan basis data dan menentukan jenis operasi apa saja yang boleh dilakukan. 7. Kebersamaan pemakai Pemakai basis data sering kali tidak terbatas hanya pada satu pemakaian saja atau oleh satu sistem aplikasi saja. Basis data yang dikelola oleh sistem (aplikasi) yang mendukung lingkungan multiuser, akan dapat memenuhi kebutuhan ini, tetapi dengan menjaga/menghindari terhadap munculnya persoalan baru seperti inkonsistensi data (karena data yang sama diubah oleh banyak pemakai pada saat bersamaan).
2.4
Interaksi Manusia dan Komputer
Interaksi manusia dan komputer adalah user interface yang berkaitan dengan evaluasi, desain dan implementasi sistem komputer interaktif untuk digunakan manusia dalam konteks sosial, dan dengan studi utama fenomena di sekitar mereka (Claude Ghaoui, 2006). Interaksi manusia dan komputer (IMK) berkembang sebagai suatu disiplin ilmu yang
menjalankan penuh inovasi dan kreativitas.
Munculnya
Internet,
dikombinasikan dengan jatuhnya harga komputer sehingga meningkatkan kemampuan seseorang memiliki komputer pribadi, membuat sebuah perubahan yang sangat cepat dalam bidang teknologi. Hal ini memiliki implikasi besar pada bidang penelitian, dimana tuntutan masyarakat dan harapan sebagai pengguna teknologi meningkat. IMK mempelajari tentang interaksi antara manusia dengan komputer. Interaksi yang dimaksud bisa terjadi lewat antarmuka suatu perangkat lunak maupun perangkat keras. Salah satu tujuan dari IMK adalah membuat agar pengguna yang sedang berinteraksi tidak menjadi kebingungan dengan antarmuka yang ada pada perangkat lunak dan perangkat keras. Web interface termasuk kepada kategori antarmuka perangkat lunak.
19
Sebagai suatu disiplin ilmu, IMK relatif masih muda. Sepanjang sejarah peradaban, inovasi teknologi termotivasi oleh aspirasi dasar manusia dan masalah yang timbul dari interaksi manusia dan komputer. Desain, kegunaan dan interaksi diakui sebagai isu-isu inti dalam IMK. Saat ini
perubahan besar sedang terjadi yang menyentuh semua aspek
masyarakat, perubahan dalam pekerjaan, rumah, bisnis, komunikasi, ilmu pengetahuan, teknologi, dan rekayasa. Perubahan ini karena melibatkan manusia, tidak bisa tidak mempengaruhi masa depan IMK karena mereka berhubungan dengan bagaimana orang berinteraksi dengan teknologi yang semakin dinamis dan kompleks di dunia. Hal ini membuat IMK memainkan peran penting dalam membentuk masa depan. Hal-hal yang perlu diperhatikan didalam IMK diantaranya adalah usability, user experience, dan user interface.
2.4.1
Usability
Apa itu usability? Usability adalah kualitas atribut yang berhubungan dengan seberapa mudah sesuatu digunakan. Lebih khusus, mengacu pada seberapa cepat orang dapat belajar untuk menggunakan sesuatu, seberapa efisien mereka saat menggunakan, seberapa mudah diingat, seberapa rawan kesalahan dapat terjadi, dan berapa banyak pengguna menyukai menggunakannya. Jika orang tidak dapat atau tidak akan menggunakan fitur tersebut, sebaiknya fitur tersebut ditiadakan (Jakob Nielsen, 2006).. Ringkasnya, usability merupakan ukuran seberapa mudah suatu perangkat lunak atau perangkat keras digunakan. Tujuan dari aspek usabilitas diantaranya:
Efektif digunakan
Efisien digunakan
Aman digunakan
Punya utilitas yang baik
Mudah dipelajari
20
Mudah diingat bagaimana menggunakannya
Usability didefinisikan melalui lima komponen yakni : 1. Learnability Learnability menjelaskan tingkat kemudahan pengguna untuk memenuhi tugastugas dasar ketika pertama kali mereka melihat/menggunakan hasil perancangan. 2. Efficiency Efficiency menjelaskan tingkat kecepatan pengguna dalam menyelesaikan tugastugas setelah mereka mempelajari hasil perancangan. 3. Memorability Memorability menjelaskan tingkat kemudahan pengguna dalam menggunakan rancangan dengan baik, setelah beberapa lama tidak menggunakannya. 4. Errors Errors menjelaskan jumlah error yang dilakukan oleh pengguna, tingkat kesalahan terhadap error dan cara memperbaiki error. 5. Satisfaction Satisfaction menjelaskan tingkat kepuasan pengguna dalam menggunakan rancangan
2.4.2
User Experience
Merupakan pengalaman yang didapat oleh pengguna selama dia berinteraksi dengan suatu perangkat
lunak atau
perangkat
keras.
Aspek usability
mempengaruhi langsung experience yang didapat oleh pengguna selama berinteraksi. Usability yang baik akan membangun experience yang baik pula di sisi pengguna, dan sebaliknya.
21
2.4.3
User Interface
Pengguna atau pengunjung suatu website merupakan salah satu alasan yang membuat mengapa suatu website masih tetap ada. Jika pengunjung suatu website tidak ada, mengapa website tersebut masih dipertahankan? Suara pengguna atau pengunjung akhirnya mulai didengar. Pengguna tidak mau lagi dipusingkan dengan prosedur yang rumit dan antarmuka yang sulit dimengerti. Web dengan antarmuka yang rumit akan ditinggalkan oleh penggunanya. Hal-hal lain yang membuat pengguna akan meninggalkan suatu halaman web diantaranya pengguna tidak menemukan sesuatu yang dicarinya pada web tersebut, banyaknya kesalahan pada web, dan cara penyajian informasi yang tidak menarik. Desain antarmuka dari suatu halaman web merupakan suatu masalah bagaimana menyeimbangkan struktur dan hubungan antara menu, isi, dan dokumen atau gambar yang terkait. Tujuan desain tersebut adalah untuk membangun hirarki yang baik dari menu dan halaman, terstruktur dengn baik, mudah untuk digunakan, dan sesuai dengan keadaan yang sebenarnya (Wilbert O. Galitz 2007).
2.5
SENAYAN
SENAYAN adalah Open Source Software (OSS) berbasis web untuk memenuhi kebutuhan automasi perpustakaan (library automation) skala kecil hingga skala besar. Dengan fitur yang cukup lengkap dan masih terus aktif dikembangkan, SENAYAN sangat cocok digunakan bagi perpustakaan yang memiliki koleksi, anggota dan staf banyak di lingkungan jaringan, baik itu jaringan lokal (intranet) maupun Internet. Keunggulan SENAYAN lainnya adalah multi-platform, yang artinya bisa berjalan secara baik hampir di semua Sistem Operasi yang bisa menjalankan bahasa pemrograman
PHP
(http://www.php.net)
dan
RDBMS
MySQL
(http://www.mysql.com) . SENAYAN sendiri dikembangkan di atas platform GNU/Linux dan berjalan dengan baik di atas platform lainnya seperti Unix *BSD dan Windows.
22
Senayan merupakan aplikasi berbasis web dengan pertimbangan cross-platform. Sepenuhnya dikembangkan menggunakan Aplikasi Kode Terbuka yaitu: PHP Web Scripting Language, (www.php.net) dan MySQL Database Server (www.mysql.com). Untuk meningkatkan interaktifitas agar bisa tampil seperti aplikasi desktop, juga digunakan teknologi AJAX (Asynchronous JavaScript And XML). Senayan juga menggunakan Software Kode Terbuka untuk menambah fitur seperti PhpThumb dan Simbio (development platform yang dikembangkan dari proyek Igloo). Untuk itu Senayan dilisensikan dibawah GPLv3 yang menjamin kebebasan dalam mendapatkan, memodikasi dan mendistribusikan kembali (rights to use, study, copy, modify, and redistribute computer programs).
2.6
Aplikasi Sirkulasi The Jakarta Post
Dalam menangani tugas bagian sirkulasi The Jakarta Post yang semakin kompleks dan kebutuhan akan laporan-laporan yang semakin beraneka ragam, dibutuhkan suatu sistem informasi yang mampu memenuhi kebutuhan bagian sirkulasi The Jakarta Post. Sirkulasi koran adalah salah satu sumber penting pendapatan media cetak selain iklan. Sirkulasi media cetak adalah proses pengiriman, penyebaran, dan pemasaran koran oleh penerbit dari percetakan hingga tiba ke tangan konsumen secara tepat waktu. Untuk mendistribusikan koran mulai dari proses pemesanan koran hingga tiba ke tangan konsumen diperlukan suatu sistem informasi yang dapat mengatur keseluruhan proses yang terjadi di bagian sirkulasi. Aplikasi sirkulasi The Jakarta Post dibangun dengan melakukan perubahan terhadap aplikasi kode terbuka senayan yang didalamnya terdapat perubahan interface, database, dan penambahan fitur-fitur sehingga dapat memenuhi semua kebutuhan bagian sirkulasi The Jakarta Post. Karena bila dilihat secara fungsional ada kesamaan antara aplikasi kode terbuka senayan dengan aplikasi yang dibutuhkan bagian sirkulasi The Jakarta Post. Perbedaannya hanya dari segi jenis data yang disimpan di database, sehingga jika dilakukan modifikasi di bagian interface, database, dan dilakukan penambahan fitur-fitur yang dibutuhan bagian
23
sirkulasi. Maka aplikasi kode terbuka senayan dapat dirubah menjadi aplikasi lain yang nantinya dapat digunakan oleh bagian sirkulasi The Jakarta Post. Saat ini banyak sekali aplikasi kode terbuka yang dikembangkan menjadi aplikasi lain seperti Mozilla yang merupakan hasil modifikasi dari kode terbuka Netscape. Oleh karena itu pengembangan aplikasi berbasiskan kode terbuka merupakan hal sangat mungkin dilakukan dilihat dari banyaknya manfaat yang dihasilkan dari aplikasi berbasis kode terbuka.
2.7
Algoritma Penjadwalan
Algoritma penjadwalan memiliki berbagai variasi constraint yang harus dipenuhi dalam pencarian solusi. Berbagai algoritma penjadwalan ditujukan untuk menyelesaikan masalah penjadwalan tertentu. Algoritma penjadwalan yang paling sederhana merupakan algoritma dasar yang menentukan kapan suatu operasi dikerjakan tanpa memperhatikan resource yang diperlukan untuk mengerjakan operasi tersebut. Berikut beberapa jenis-jenis algoritma penjadwalan : 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.
24
• 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 masingmasing 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.
25
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