BAB 2 LANDASAN TEORI
2.1
Penjadwalan
2.1.1
Arti Penjadwalan Penjadwalan (Scheduling) menurut Kenneth R. Baker (Baker. p2) yaitu proses pengalokasian sumber untuk memilih sekumpulan tugas dalam jangka waktu tertentu. Pengertian ini dapat dijabarkan menjadi dua arti yang berbeda.Yang pertama, penjadwalan merupakan sebuah fungsi pengambilan keputusan, yaitu menentukan jadwal yang paling tepat. Sedangkan arti kedua penjadwalan adalah sebuah teori yang berisi kumpulan prinsip, model, teknik, dan konklusi logis dalam proses pengambilan keputusan. Pengambilan keputusan banyak berperan penting dalam industri manufaktur dan jasa. Penjadwalan menurut Morton (1993) yaitu bagian pengambilan keputusan tentang penyesuaian aktivitas dan sumber daya dalam rangka menyelesaikan sekumpulan pekerjaan agar tepat pada waktunya dan mempunyai kualitas seperti yang diinginkan. Keputusan yang dimaksud dalam penjadwalan ini meliputi pengurutan pekerjaan (sequencing), waktu mulai dan selesai pekerjaan (timing), dan urutan operasi suatu pekerjaan (routing). Karena masalah penjadwalan selalu berkaitan dengan pengurutan produksi maka definisinya adalah penentuan urutan kedatangan dari bermacam-macam pekerjaan yang harus diselesaikan dalam jangka waktu tertentu.
7
8 Masalah penjadwalan muncul dikarenakan adanya beberapa pekerjaan yang dikerjakan bersamaan, sedangkan peralatan yang dimiliki terbatas. Input penjadwalan meliputi jenis dan banyaknya part yang akan dioperasikan, urutan ketergantungan antar operasi, waktu operasi untuk masing-masing operasikan, serta fasilitas yang dibutuhkan oleh setiap operasi. Sedangkan outputnya berupa dispatch list, yaitu daftar yang menyatakan urutan-urutan pemrosesan part, waktu mulai dan selesai dari pemrosesan part (starting dan completion time).
2.1.2
Tujuan Penjadwalan Tujuan penjadwalan secara umum (Baker, p3) yaitu : 1. Meningkatkan produktivitas mesin dengan mengurangi waktu mesin menganggur 2. Mengurangi persediaan barang setengah jadi dengan jalan mengurangi jumlah rata-rata pekerjaan yang menunggu dalam antrian suatu mesin akibat kesibukan mesin 3. Mengurangi keterlambatan karena batas waktu telah terlampaui dengan cara mengurangi keterlambatan maupun dengan mengurangi jumlah pekerjaan yang terlambat 4. Meminimasi ongkos produksi.
2.1.3. Peranan Penjadwalan Peranan penjadwalan (Pinedo, p1) digunakan dalam pembelian dan produksi, transportasi dan distribusi, pemrosesan informasi dan komunikasi. Penjadwalan di perusahaan menggunakan teknik-teknik matematis atau metode
9 heuristik dalam mengalokasikan sumber yang terbatas ke pemrosesan tugastugas. Sumber yang dimaksud dapat beraneka ragam, yaitu mesin di lantai produksi, landasan di airport, pekerja di proyek konstruksi, atau alat pemroses dalam lingkungan komputer. Sedangkan tugas-tugas dapat berupa operasi, tinggal landas dan mendarat dalam airport, stasiun-stasiun dalam proyek konstruksi, atau program komputer yang menunggu untuk dieksekusi. Setiap tugas mempunyai tingkat prioritas yang berbeda-beda, waktu mulai yang berbeda, dan tenggang waktu pengerjaan yang berbeda juga. Fungsi objektifnya juga dapat berupa meminimasi waktu untuk menyelesaikan semua tugas atau meminimasi jumlah tugas yang terlambat. Penjadwalan dalam suatu organisasi atau sistem berhadapan langsung dengan banyak fungsi. Hubungan ini berupa sistem yang berdiri sendiri dan dapat berbeda-beda dari satu situasi ke situasi yang lainnya. Dalam bidang manufaktur, order harus ditransformasikan menjadi job dengan due date yang bersangkutan. Job-job tersebut diproses dalam mesin dengan menggunakan urutan-urutan. Akibatnya suatu pekerjaan harus menunggu mesin yang sedang sibuk untuk memproses job lain, dan juga sering terjadi kerumitan ketika beberapa job dengan prioritas yang tinggi tiba di mesin dan harus diproses secara bersamaan. Penjadwalan lebih tepat harus ditetapkan di sistem produksi untuk menjaga efisiensi dan mengontrol operasi. Penjadwalan juga berkaitan erat dengan beberapa fungsi penting lainnya dalam organisasi. Hal ini dipengaruhi oleh proses perencanaan produksi, baik jangka menengah maupun panjang. Proses ini harus mempertimbangkan tingkat inventori, peramalan dan pemenuhan sumber daya. Keputusan yang dibuat untuk
10 fungsi perencanaan ini mempunyai dampak pada penjadwalan. Penjadwalan juga mendapatkan input dari kontrol lantai produksi. Kejadian yang tidak diinginkan di lantai produksi, seperti kerusakan mesin atau waktu proses yang lebih lama dari yang diperkirakan juga harus dipertimbangkan, karena hal ini juga dapat sangat mempengaruhi penjadwalan. Gambar 2.1. menunjukkan diagram dari aliran informasi sistem manufaktur. Pabrik-pabrik
modern
seringkali
mengkombinasikan
informasi
manufaktur dalam satu tempat. Sebuah pabrik biasanya mempunyai komputer pusat atau database pusat. Penghubung dari sentral komputer biasanya menggunakan Local Area Connection yang tersambung dengan personal computer, stasiun kerja, dan tempat pemasukan data, yang dapat digunakan untuk memperoleh data dari database atau untuk memasukkan data-data baru. Fungsi penjadwalan biasanya dilakukan oleh personal computer atau stasiun kerja yang terkoneksi dengan komputer pusat. Hubungan dengan komputer yang mengurusi penjadwalan memungkinkan pihak produksi untuk menyediakan sistem penjadwalan dengan informasi-informasi yang relevan, seperti status mesin, perubahan dalam job, dan lain-lain.
11
Gambar 2.1. Aliran Informasi dalam sistem Manufaktur Sumber: Pinedo, Michael. (1995). Scheduling: Theory, Algorithms, and Systems. Prentice-Hall, inc. New Jersey
2.1.4 Klasifikasi Penjadwalan Produksi Model penjadwalan yang ada dalam lantai produksi dapat dibagi menjadi beberapa kriteria yaitu sebagai berikut (Pinedo, p15): 1. Berdasarkan mesin yang dipergunakan dalam proses, penjadwalan produksi dapat diklasifikasikan menjadi:
12 a. Penjadwalan pada mesin tunggal b. Penjadwalan pada mesin jamak 2. Berdasarkan pola aliran proses, penjadwalan produksi dapat diklasifikasikan sebagai berikut. a. Penjadwalan flow shop, dimana dijumpai pola aliran dari suatu mesin ke mesin yang lain. Walaupun dalam flow shop semua tugas akan mengalir pada jalur produksi yang sama, yang dikenal sebagai pure flow shop, tetapi dapat pula berbeda pola aliran karena dua hal. Pertama jika flow shop dapat menangani tugas yang bervariasi. Kedua jika tugas yang dating ke flow shop tidak harus dikerjakan pada semua mesin. Jenis flow shop seperti ini disebut general flow shop. b. Penjadwalan job shop, merupakan penjadwalan dimana setiap pekerjaan mempunyai aliran atau rute proses pada tiap mesin yang spesifik, dan mungkin berbeda untuk tiap job. Akibat aliran proses yang tidak searah ini, maka setiap job yang akan diproses, dan yang akan keluar dari sebuah mesin dapat merupakan job jadi atau job dalam proses. c. Penjadwalan open shop dimana tidak terdapat pola aliran yang spesifik. 3. Berdasarkan
pola
kedatangan
job,
penjadwalan
produksi
dapat
diklasifikasikan menjadi: a. Penjadwalan statis, di mana job yang datang bersamaan dan siap dikerjakan pada mesin yang mengenggur. b. Penjadwalan dinamis, di mana kedatangan job tidak menentu. 4. Berdasarkan sifat informasi yang diterima, penjadalan produksi dapat diklasifikasikan menjadi :
13 a. Penjadwalan deterministic, di mana informasi yang diterima pasti. b. Penjadwalan stokastik, di mana informasi yang diperoleh tidak pasti, tetapi memiliki kecenderungan yang jelas atau menyangkut adanya distribusi probabilitas tertentu. c. Penjadwalan fuzzy, di mana informasi yang diperoleh tidak jelas.
2.1.5
Istilah dan Kriteria Dalam Penjadwalan Dalam penjadwalan terdapat beberapa istilah-istilah yang digunakan (Pinedo, p14) sebagai berikut. •
Processing Time (pij) / Waktu Proses Yaitu waktu yang dibutuhkan untuk menyelesaikan order I pada mesin j.
•
Ready Time (ri) / Saat Siap Yaitu saat order i tiba di dalam system atau saat paling awal order i siap dijadwalkan.
•
DueDate (di) / Saat Jatuh Tempo Yaitu batas akhir order i harus diselesaikan.
•
Weight (Wi) / Bobot Yaitu bobot order i, menunjukkan pentingnya order i relatif terhadap order lainnya dalam system. Bobot dapat mewakili biaya menahan pekerjaan dalam sistem, biaya inventory, dan biaya lainnya yang dapat mewakili kepentingan suatu order terhadap order lainnya.
14 Penjadwalan pada hakikatnya adalah menentukan suatu urutan produksi dengan memberikan solusi yang terbaik dengan kriteria-kriteria sebagai berikut. a. Memenuhi kendala teknologi yang ada (technology constraint), dengan kata lain merupakan penjadwalan yang layak (feasible). b. Memenuhi satu atau beberapa kriteria performansi yang didefinisikan sebelumnya.
Variable ukur performansi yang telah digunakan dalam lingkungan penjadwalan diantaranya adalah sebagai berikut (Baker, p4). •
Completion Time (Ci) / Saat Selesai Yaitu waktu penyelesaian operasi paling akhir suatu order i.
•
Release Time (Rij) / Saat mulai diproses Yaitu waktu order i mulai diproses pada mesin j.
•
Flow Time (Fi) / Waktu Tinggal Yaitu waktu yang dibutuhkan suatu order berada di lantai produksi. Flow Time disebut juga shop time atau manufacturing interal. Fi = Ci - Ri
•
Waiting Time (Wi) / Waktu Tunggu Yaitu waktu menunggu antara waktu suatu proses selesai hingga dimulai operasi berikutnya dari pengerjaan tiap operasi pada order i. Wi = Fi - Σpij
•
Lateness (Li) Yaitu selisih waktu selesai order i terhadap due date order tersebut. Li = Ci - di Li < 0, jika penyelesaian memenuhi batas akhir.
15 Li > 0, jika penyelesaian melewati batas akhir. •
Tardiness (Ti) / Waktu terlambat Yaitu jangka waktu keterlambatan pemenuhan due date order i. Ti = max(0,Li)
•
Makespan Yaitu jangka waktu seluruh order yang dijadwalkan dapat diselesaikan oleh lantai produksi.
2.1.6
Pendekatan Penjadwalan Berikut disajikan beberapa pendekatan penjadwalan secara umum (Morton dkk., p20). •
Interval Schedule Penjadwalan formal diberikan terlebih dahulu. Proses yang paling aktual diharapkan sesuai dengan jadwal, bahkan jika kejadian yang darurat dan tidak
diperkirakan
serta
kejadian
lainnya
mengakibatkan
beberapa
perubahan. Interval Scheduling berguna ketika penggunaan beberapa sumber daya yang kritis harus dikoordinasikan. •
Dispatch Schedule Penjadwalan formal dapat diberikan atau juga tidak diberikan terlebih dahulu, tetapi perubahan yang sederhana dapat ditangani hanya dengan menyesuaikan seluruh jadwal dengan cara yang fleksibel. Perluasannya adalah dengan menjadwalkan sumber daya demi sumber daya, dengan tetap menjaga agar masing-masing sumber daya sibuk dengan aktivitas terpenting
16 yang ada. Ketika sumber daya mengangger, maka aktivitas dengan prioritas tertinggi yang diproses selanjutnya. •
Simple Dispatch Schedule Pendekatan ini disebut juga nondelay dispatch schedule, yaitu sumber daya tidak pernah dibiarkan menganggur untuk mengantisipasi kedatangan hot jobs.
•
Critical Job Scehdule (lot for lot) Pendekatan ini menjadwalkan pekerjaan yang paling kritis terlebih dahulu ke seluruh lantai produksi, baru dilanjutkan dengan pekerjaan paling kritis kedua, dan seterusnya.
•
Critical Resource Schedule (bottleneck schedule) Sumber daya yang bottleneck atau overused dijadwalkan terlebih dahulu, kemudian sumber daya yang lain dijadwalkan mengikutinya. Dengan pendekatan ini maka diharapkan penggunaan sumber daya yang kritis ini menjadi efisien dan menolong banyak pekerjaan-pekerjaan lain yang lebih kritis.
•
Critical Operation Schedule Dengan melihat pekerjaannya, aktivitas/sumber daya yang berpasangan dengan prioritas tertinggi dijadwalkan terlebih dahulu.
•
Forward Scheduling Pendekatan ini menjadwalkan secara maju, di mana order diusahakan selesai sesegera mungkin. Forward Scheduling biasanya menghasilkan jadwal yang selesai sebelum due date-nya.
17 •
Backward Scheduling Pendekatan ini menjadwalkan secara mundur dari due date. Prosedur secara mundur ini menugaskan pekerjaan pada waktu terpanjang suatu pekerjaan dapat diselesaikan tepat pada due date-nya dan bukan sebelumnya.
•
Heuristic Dispatch Scheuling Suatu metode dispatch secara forward di mana setiap prioritas titik pengambilan keputusan (sequencing, timing, routing, dan lain sebagainya) ditentukan dengan suatu aturan tertentu (static, dynamic, iterative) dan pilihan prioritas tertinggi dipilih dalam simulasi.
•
Advanced Dispatch Scheduling Penjadwalan dispatch secara heuristik yang meramalkan masalah due date dan sumber daya secara dinamis.
•
Combinatorial Scheduling Beberapa jadwal yang mungkin dievaluasi melalui pohon pencarian. Pendekatan ini dapat dilakukan secara forward maupun backward. Metode spesifik untuk pendekatan ini antara lain integer programming, approximate integer programming, beam search, dan dynamic programming.
Tujuan penjadwalan dengan kriteria optimalitas yang dibutuhkan dapat dicapai dengan mengembangkan berbagai metode penjadwalan. Metode penjadwalan yang telah dikembangkan secara umum dapat diklasifikasikan ke dalam 3 kelompok berdasarkan metode komputasi penjadwalan, yaitu:
18 1. Metode optimum yang efisien Metode ini menghasilkan jadwal optimum dalam waktu yang relatif singkat. Algoritma yang dikembangkan biasanya untuk permasalahan yang tidak besar. Yang termasuk dalam metode ini misalnya algoritma Johnson. 2. Metode optimal enumeratif Metode ini menghasilkan jadwal optimal berdasarkan formulasi matematis, diikuti oleh metode Brach and Bound, Mixed Integer Linear Programming, dan Dynamic Programming. 3. Metode heuristik Metode heuristik melakukan pendekatan suatu solusi optimal. Dasar pengembangan metode heuristik dikategorikan menjadi 3, yaitu:
Penjadwalan dilakukan setiap mesin selesai melakukan proses atau setiap pekerjaan datang mengantri. Contoh pendekatan ini adalah priority rule
Pendefinisian struktur neighboorhood dan solusi diperoleh berdasarkan struktur tersebut. Contoh pendekatan ini adalah tabu search, simulated annealing, dan genetic algorithm.
Penjadwalan dilakukan pada setiap mesin. Contoh pendekatan ini adalah shifting bottleneck procedure.
2.1.7
Aturan Prioritas Penjadwalan Aturan prioritas penjadwalan (priority rule) yang umumnya digunakan adalah:
19 •
FCFS (First Come First Served) Dengan menggunakan aturan ini, proses dikerjakan sesuai dengan urutan ketika pekerjaan tersebut tiba pada fasilitas yang bersangkutan. Aturan ini umumnya digunakan pada bidang jasa seperti bengkel dan rumah makan.
•
EDD (Earliest Due Date) Aturan ini mengurutkan proses dari yang mempunyai due date terkecil hingga yang terbesar (d1≤ d2≤…≤ dn). Proses dengan due date paling dekat akan diproses terlebih dahulu. Setelah itu penjadwalan dilakukan berdasarkan urutan tersebut.
•
SPT (Shortest Processing Time) Dengan menggunakan aturan ini, proses dengan waktu operasi yang paling pendek akan dijadwalkan terlebih dahulu. Aturan ini sangat sederhana yaitu dengan cara mengurutkan pekerjaan dari yang mempunyai waktu proses terkecil hingga yang terbesar (t1≤ t2≤…≤ tn). Setelah itu penjadwalan dilakukan berdasarkan urutan tersebut.
•
LPT (Longest Processing Time) Dengan menggunakan aturan ini, proses dengan waktu operasi yang paling panjang akan dijadwalkan terlebih dahulu. Aturan ini juga sangat sederhana yaitu dengan cara mengurutkan pekerjaan dari yang mempunyai waktu proses terbesar hingga yang terkecil (t1≥ t2≥…≥ tn). Setelah itu penjadwalan dilakukan berdasarkan urutan tersebut.
20 •
LS (Least Slack) Aturan ini menempatkan pekerjaan dengan slack yang lebih kecil terlebih dahulu. Slack adalah sisa waktu yang ada antara due date dengan waktu ketika pekerjaan itu selesai . Aturan ini mengurutkan pekerjaan dari yang mempunyai waktu slack terkecil hingga yang terbesar (SL1≤ SL 2≤…≤ SLn). Setelah itu penjadwalan dilakukan berdasarkan urutan tersebut.
2.1.8 Pengendalian Prioritas Aliran Produk pada Lantai Produksi Pengendalian lantai produksi sangat diperlukan untuk memastikan orderorder yang dijadwalkan dapat diproses sesuai jadwalnya. Pengendalian ini dilakukan antara lain dengan mengendalikan prioritas release order, pengaturan panjang antrian dan pengendalian keluar-masuk order. Aturan penentuan prioritas menurut Fogarty antara lain: •
First Come First Serve (FCFS)
•
Shortest Processing Time (SPT)
•
Earliest Due Date (EDD)
•
Fewest Operation (FO)
•
Slack Time (ST)
•
Critical Ratio (CR)
•
Longest Processing Time (LPT)
Penentuan prioritas yang dirasa paling adil adalah dengan metode FCFS karena order akan di-release sesuai dengan urutan kedatangan order tersebut.
21 Oleh karena itu, sistem penentuan prioritas ini sering digunakan oleh sistem manufaktur make to order yang berusaha untuk menjaga keadilan dalam menentukan order yang akan diproses. Evaluasi terhadap metode penentuan prioritas perlu dilakukan untuk menentukan efektivitas dari metode tersebut. Evaluasi ini sendiri dapat dilakukan dengan berdasar pada kriteria-kriteria antara lain: a. Persentase ketepatan waktu pemenuhan pesanan kepada pelanggan b. Rata-rata jumlah order yang terlambat c. Rata-rata persediaan produk setengah jadi d. Waktu menganggur e. Minimasi waktu setup f. Efisiensi pemanfaatan energi
2.1.9. Lingkungan Mesin, Batasan Proses dan Fungsi Tujuan (Pinedo, p9) Kemungkinan lingkungan mesin antara lain: •
Single machine (1): Kasus single machine merupakan keumungkinan lingkungan mesin yang paling sederhana
•
Identical machine in parallel (Pm): Terdapat m buah mesin yang identik secara paralel. Job j membutuhkan suatu operasi tunggal dan dapat diproses pada salah satu di antara mesin mana pun yang dipilih
•
Machines in parallel with different speeds (Qm): Terdapat m buah mesin paralel dengan kecepatan yang berbeda; kecepatan mesin i dinotasikan vi. Waktu proses pij yang dihabiskan oleh job j pada mesin i, dengan asumsi
22 hanya diproses pada mesin i, sama dengan pj / vi. Bila semua mesin memiliki kecepatan yang sama, yaitu vi = 1 untuk semua i dan pij = pj, maka lingkungan tersebut identik dengan lingkungan sebelumnya. •
Unrelaled machines in parallel (Rm): Lingkungan ini merupakan perluasan dari sebelumnya. Terdapat m buah mesin yang berbeda secara parallel. Mesin i dapat memproses job j pada kecepatan v;j. Waktu proses pij yang dihabiskan oleh job j pada mesin i, dengan asumsi hanya diproses pada mesin i, sama dengan pj/vij. Apabila kecepatan mesin tidak tergantung pada pesanan, yaitu vij = vi untuk semua i dan j, maka lingkungan tersebut identik dengan lingkungan sebelumnya.
•
Flow shop (Fm): Terdapat m buah mesin seri. Tiap job harus diproses pada setiap mesin. Semua job memiliki rute yang sama, yaitu mereka harus diproses pertama kali pada mesin 1, kemudian pada mesin 2, dan seterusnya. Setelah selesai pada satu mesin, job bergabung dengan antrian pada mesin berikutnya. Pada umumnya, semua antrian diasumsikan beroperasi dengan aturan first in first out (FIFO), sehingga suatu job tidak dapat mendahului pesanan yang lain sewaktu mengantri.
•
Flexible Flow Shop (FFs): Flexible Flow Shop merupakakan perluasan dari flow shop dan lingkungan mesin paralel. Terdapat s tahapan secara seri dengan sejumlah mesin paralel pada tiap tahap. Setiap job harus diproses pertama kali pada tahap 1, kemudian tahap 2, dan seterusnya. Tiap tahapan berfungsi sebagai kumpulan mesin paralel; pada tiap tahap job j membutuhkan hanya satu mesin dan pada umumnya tiap mesin dapat memproses job yang mana saja. Antrian diantara tahapan yang bervariasi biasanya menurut aturan FIFO.
23 •
Open Shop (Om): Terdapat m mesin. Tiap job harus diproses kembali pada salah satu mesin. Waktu proses dapat bernilai nol. Tidak ada pembatas berkaitan dengan rute tiap job melalui mesin. Penjadwalan diijinkan untuk menentukan rute tiap job, dan job yang berbeda dapat memiliki rute yang berbeda.
•
Job Shop (Jm): Pada job shop dengan m mesin, tiap job memiliki rute masing-masing.
Kendala proses dapat meliputi beberapa masukan berikut. o Release dates (rj): Job j tidak dapat mulai diproses sebelum release date o Sequence dependent setup times (sjk): sjk menunjukkan waktu setup yang tergantung pada urutan (sequence) antara job j dan k; s0k adalah waktu setup untuk job k jika merupakan urutan pertama. Apabila waktu setup antara job j dan k tergantung pada mesin, maka dituliskan sijk. Apabila sjk tidak dicantumkan pada β, maka semua waktu setup diasumsikan sama dengan 0 atau sequence independent (tidak tergantung urutan), pada kasus di mana waktu setup tersebut dapat secara sederhana telah dimasukkan pada waktu proses. o Preemptions (prmp): Preemptions menekankan bahwa suatu job tidak perlu dipertahankan pada suatu mesin hingga selesai. Penjadwal diijinkan untuk menginterupsi proses suatu job (preempt) sewaktu-waktu dan meletakkan job lain pada mesin tersebut. Apabila job yang diinterupsi tersebut diletakkan kembali pada mesin (atau pada mesin yang lain, pada kasus mesin paralel), maka hanya dibutuhkan mesin untuk mengerjakan waktu proses yang tersisa.
24 o Precedence constraints (prec): Precedence Constraints dapat timbul pada single machine atau paralel machine, yang mensyaratkan bahwa satu atau lebih job harus diselesaikan sebelum job yang lain diijinkan untuk memulai prosesnya. o Breakdown (brkdwn): Breakdown mesin menunjukkan bahwa mesin tidak tersedia secara terus-menerus o Machine Eligibility restrictions (Mj): Batasan ini mungkin timbul pada lingkungan mesin yang berupa m beahmachine dalam paralel (pm). Dalam hal ini, tidak semua mesin sanggup memproses job j. Himpunan Mj berisi himpunan mesin-mesin yang mampu memproses job j.
Tujuan (objektif) yang akan diminimasi selalu merupakan fungsi dari waktu penyelesaian job, yang tentu saja tergantung pada jadwal. Waktu penyelesaian operasi job j pada mesin i dinotasikan Cij. Waktu saat job j meninggalkan sistem (yaitu waktu penyelesaian pada mesin terakhir di mana job tersebut butuh diproses) dinotasikan Cj. Tujuan juga bisa merupakan fungsi due dates. Salah satu contoh berikut merupakan fungsi objektif yang mungkin diminimasi. Makespan (Cmax) : didefinisikan sebagai max ( C1, … , Cn), ekivalen dengan waktu penyelesaian job terakhir yang meninggalkan sistem.
25 2.2
Metode Simulated Annealing
2.2.1 Pengenalan Terhadap Simulated Annealing (Hakan Yildiz, p1) Simulated Annealing merupakan suatu proses yang berasal dari ilmu material dan fisika. Pada tahun 1953, Metropolis mengusulkan suatu algoritma untuk simulasi yang efisien dari evolusi benda solid menuju keseimbangan termal. Tiga puluh tahun kemudian, Kirkpatrick membentuk suatu analogi antara minimasi fungsi biaya dari kombinasi permasalahan optimasi dan pembekuan benda solid secara bertahap dengan menggunakan proses optimalisasi yang diperkenalkan oleh Metropolis. Algoritma ini telah terbukti merupakan suatu teknik yang baik untuk berbagai macam aplikasi.
2.2.2
Proses Annealing dan Proses Simulated Annealing Annealing adalah suatu pendinginan logam secara lambat setelah logam tersebut dipanaskan pada temperatur yang sangat tinggi. Proses pendinginan logam yang dipanaskan pada temperatur tinggi tersebut berlangsung secara perlahan-lahan. Ketika penurunan temperatur berhenti, logam telah berada pada kondisi dengan energi yang sangat rendah. Dalam proses annealing ada beberapa tahap yang terjadi dalam pendinginan logam. •
Pada temperatur tinggi, atom-atom yang berada dalam logam yang dipanaskan tersebut berorientasi acak dan mempunyai energi yang sangat tinggi.
26 •
Ketika temperatur diturunkan, atom-atom akan cenderung untuk mengikuti arah atom tetangganya. Namun daerah yang berbeda akan memiliki arah yang berbeda pula.
•
Jika temperatur sudah sangat rendah, maka terjadi proses pembekuan sehingga atom-atom tersebut akan berikatan erat, memiliki energi yang sangat rendah dan memiliki arah yang satu dengan yang lain.
Dalam simulated annealing ada beberapa proses yang sering terjadi dalam pencapaian proses pembekuan sehingga atom-atom dapat memperoleh energi yang rendah, yaitu: o Melakukan gangguan secara acak terhadap orientasi atom-atom dan menghitung perubahan energi yang dihasilkan. o Jika energi yang dihasilkan berkurang maka sistem akan bergerak menuju ke status yang baru ini. o Jika energi yang dihasilkan bertambah maka status baru ini dapat diterima dengan mengikuti peraturan hukum termodinamika. Pada temperatur T, probabilitas dari selisih dari energi yang dihasilkan status baru dengan status lama (Y) memenuhi U (bilangan acak) < e (-Y/T)
2.2.3
Istilah-istilah dalam Simulated Annealing Penerapan
simulated
annealing
dalam
menggunakan beberapa istilah sebagai berikut.
permasalahan
optimisasi
27
Simulasi Termodinamika Yaitu permasalahan optimisasi yang hendak dilakukan dengan menggunakan algoritma simulated annealing.
Status Sistem Yaitu solusi feasible yang terpilih karena adanya perubahan status.
Energi Yaitu biaya atau tujuan dari pencarian solusi permasalahan optimisasi, misalnya makespan, keterlambatan.
Perubahan Status Yaitu pergerakan yang menggunakan solusi swap dan insertion.
Temperatur Yaitu parameter yang digunakan sebagai kontrol dalam permasalahan optimisasi.
Status Pembekuan Yaitu solusi final di mana solusi sudah optimal atau mendekati optimal.
2.2.4
Algoritma Simulated Annealing (Marcos Ribeiro Pereira Barretto dkk., p807) Dalam penerapannya Simulated Annealing mengikuti algoritma sebagai berikut. Generate_ state_i; {initial state} T = To; Repeat Repeat
28 k:=0; Generate_ state_j;{neighbour state} Y = C(j) – C(i); If Y < 0 then i:=j Else if random (0,1) < e(-Y/T) then i:=j; k:=k+1; until k=N; T:=R•T; Until T≤ Tf.
Dalam mempelajari algoritma tersebut ada beberapa notasi yang digunakan yaitu: •
C merupakan fungsi objektif atau biaya dari solusi permasalahan optimasi tersebut. Misalnya : makespan, tardiness, dan lain-lain.
•
Y merupakan perbedaan antara solusi yang lama dengan solusi yang baru.
•
T (Iinitial Temperature) merupakan kontrol parameter. Initial temperature harus cukup panas atau temperaturnya tinggi sehingga diharapkan pada solusi final diperoleh suatu solusi yang optimal.
•
R (Cooling Ratio) merupakan konstanta yang berguna untuk melakukan penurunan temperatur. (0
29 •
Final Temperature (FT) merupakan temperatur yang membatasi initial temperature apabila initial temperature sudah lebih rendah dibandingkan final temperature maka proses dibekukan. Nilai ini ditetapkan oleh Johnson (1989) untuk menunjukkan suatu range penerimaan temperatur.
2.3
Peramalan
2.3.1
Pengertian Peramalan Menurut
Assauri
(1984.p1)
peramalan
adalah
kegiatan
untuk
memperkirakan apa yang akan terjadi pada masa yang akan datang. Peramalan diperlukan karena adanya perbedaan waktu antara kesadaran akan dibutuhkannya suatu kebijakan baru dengan waktu pelaksanaan kebijakan tersebut. Jadi dalam menentukan kebijakan itu perlu diperhitungkan kesempatan atau peluang yang ada, sekaligus ancaman yang mungkin terjadi. Gambaran perkembangan pada masa depan diperoleh dari hasil analisis data yang didapat dari penelitian yang telah dilakukan Kegunaan peramalan terlihat pada saat pengambilan keputusan. Keputusan yang baik adalah keputusan yang didasarkan atas pertimbangan, apa yang akan terjadi pada waktu keputusan itu dilaksanakan. Apabila ramalan yang disusun atau dibuat kurang baik, maka makin kurang baik keputusan yang diambil. Ketepatan suatu ramalan merupakan hal yang sangat penting. Walaupun demikian perlu disadari bahwa suatu ramalan adalah suatu perkiraan (estimasi), yang selalu mengandung unsur kesalahannya. Hal penting yang harus diperhatikan adalah usaha untuk memperkecil kemungkinan kesalahan tersebut.
30 2.3.2
Jenis-Jenis Peramalan Menurut Assauri (1984.p3), pada umumnya, peramalan dapat dibedakan dari beberapa segi tergantung dari cara melihatnya. Apabila dilihat dari sifat penyusunnya, maka peramalan dapat dibedakan atas dua macam, yaitu: 1. Peramalan subjektif, yaitu peramalan yang didasarkan atas perasaan atau intuisi orang yang menyusunnya. Dalam hal ini pandangan atau judgement orang yang menyusunnya sangat menentukan baik-tidaknya hasil ramalan tersebut. 2. Peramalan yang objektif, adalah peramalan yang didasarkan atas data yang relevan pada masa lalu, dengan menggunakan teknik-teknik dan metodemetode penganalisisan data tersebut.
Di samping itu, jika dilihat dari jangka waktu ramalan yang disusun, maka peramalan dapat dibedakan atas dua macam, yaitu: 1. Peramalan jangka panjang, yaitu peramalan yang dilakukan untuk penyusunan hasil ramalan yang jangka waktunya lebih dari satu setengah tahun atau tiga semester. 2. Peramalan jangka pendek, yaitu peramalan yang dilakukan untuk penyusunan hasil ramalan dengan jangka waktu yang kurang dari satu setengah tahun atau tiga semester.
Berdasarkan sifat ramalan yang telah disusun, maka peramalan dapat dibedakan atas dua macam, yaitu:
31 1
Peramalan kualitatif, yaitu peramalan yang didasarkan atas data kualitatif masa lalu. Hasil peramalan yang dibuat sangat tergantung pada orang yang menyusunnya. Hal ini penting karena hasil peramalan tersebut ditentukan berdasarkan pemikiran yang bersifat intuisi, judgement atau pendapat, dan pengetahuan serta pengalaman dari penyusunnya.
2
Peramalan kuantitatif, yaitu peramalan yang didasarkan atas data kuantitaif pada masa lalu. Hasil peramalan yang dibuat sangat tergantung pada metode yang dipergunakan dalam peramalan tersebut. Metode yang baik adalah metode yang memberikan nilai-nilai penyimpangan yang sekecil mungkin. Peramalan kualitatif hanya dapat digunakan apabila terdapat tiga kondisi sebagai berikut: a. adanya informasi tentang keadaan yang lain b. informasi tersebut dapat dikuantifikasikan dalam bentuk data c. dapat diasumsikan bahwa pola yang lalu akan berkelanjutan pada masa yang akan datang.
2.3.3
Langkah-langkah Peramalan Menurut Assauri (1984.p5) kualitas dan mutu dari hasil peramalan yang disusun, sangat ditentukan oleh proses pelaksanaan penyusunannya. Pada dasarnya ada tiga langkah peramalan yang penting, yaitu: 1. Menganalisis data yang yang lalu. Tahap ini berguna untuk mengetahui pola yang terjadi pada masa yang lalu. Analisis ini dilakukan dengan cara membuat tabulasi data yang lalu. Dengan tabulasi data, maka dapat diketahui pola data tersebut.
32 2. Menetukan metode yang digunakan. Tiap-tiap metode akan memberikan hasil peramalan yang berbeda. Metode yang baik adalah metode yang menghasilkan nilai peramalan yang mendekati kenyataan. 3. Memproyeksi data historis dengan menggunakan metode yang dipergunakan, serta mempertimbangkan adanya beberapa faktor perubahan.
2.3.4
Pengertian Metode Peramalan Menurut Assauri (1984.p7) metode peramalan adalah cara memperkirakan secara kuantitatif apa yang akan terjadi pada masa depan, berdasarkan data yang relevan pada masa lalu. Oleh karena metode peramalan didasarkan pada data yang relevan pada masa lalu, maka metode peramalan ini dipergunakan dalam peramalan yang bersifat objektif. Sebagaimana diketahui, metode merupakan cara berfikir yang sistematis dan pragmatis atas pemecahan suatu masalah. Dengan dasar ini, maka metode peramalan merupakan cara memperkirakan apa yang akan terjadi pada masa depan secara sistematis dan pragmatis. Metode peramalan sangat berguna untuk memperkirakan secara sistematis dan pragmatis atas dasar data yang relevan pada masa lalu, sehingga metode peramalan diharapkan dapat memberikan objektivitas yang lebih besar.
Metode peramalan kuantitatif dapat dibedakan atas 2 jenis, yaitu: 1. Metode peramalan yang didasarkan atas penggunaan analisis pola hubungan antara variabel yang akan diperkirakan dengan variabel waktu, menurut deret waktu, yaitu:
33 a. Metode Smooting b. Metode Box Jenkins. c. Metode proyeksi trend dengan regresi. 2. Metode peramalan yang didasarkan atas penggunaan analisis pola hubungan antara variabel yang akan diperkirakan dengan variabel lain yang mempengaruhinya, yang bukan waktu, yang disebut metode korelasi atau sebab-akibat, yaitu: a. Metode regresi dan korelasi b. Metode ekonometri c. Metode Input-Output. Di antara metode-metode yang disebutkan, metode peramalan regresi dan korelasi akan digunakan dalam skripsi ini.
2.4
Metode Regresi dan Korelasi (Assauri. p44) Dengan metode regresi, ramalan disusun atas dasar pola hubungan data yang relevan pada masa lalu. Ada tiga kondisi yang dibutuhkan untuk dapat mempergunakan metode regresi ini, yaitu: 1. adanya informasi tentang keadaan yang lalu, 2. informasi tersebut dapat dikuantifikasikan dalam bentuk angka, 3. dapat dianggap atau diasumsikan bahwa pola hubungan yang ada dari data masa lalu akan berkelanjutan pada masa yang akan datang.
34 2.4.1
Pola Hubungan Dalam Penyusunan Ramalan (Assauri. p44) Dalam peramalan,
variabel yang ingin diramalkan disebut sebagai
variabel yang yang dicari atau ditentukan (dependent variabel). Variabel ini ditentukan atau dipengaruhi besarnya oleh variabel lain yang disebut variabelvariabel penentu atau variabel bebas (independent variabel). Hubungan antara variabel bebas dengan variabel yang ditentukan dinyatakan dalam bentuk fungsi. Peramalan mempergunakan fungsi sebagai usaha untuk melihat pola hubungan yang ada pada masa lalu antara variabel yang diramalkan dengan variabel yang menentukan atau mempengaruhinya. Pada dasarnya terdapat dua macam analisis hubungan dalam penyusunan ramalan, yaitu: 1.
Analisis deret waktu (time series). Peramalan ini disusun atas pola hubungan antara variabel yang dicari atau diramalkan dengan variabel waktu yang merupakan satu-satunya varibel yang mempengaruhinya atau bebas. Dalam peramalan dengan analisis deret waktu, dilakukan usaha untuk mencari atau menemukan pola deret data historis dan kemudian mengekstrapolasikan pola tersebut untuk masa yang akan datang.
2.
Analisis cross section atau model sebab akibat (causal model). Peramalan ini disusun atas pola hubungan antara variabel yang dicari atau diramalkan dengan variabel yang mempengaruhinya atau bebas (independent variabel), yang bukan waktu. Dalam analisis atau model ini, diasumaikan bahwa faktor atau variabel yang diramalkan menunjukkan suatu hubungan pengaruh sebab-akibat dengan satu atau lebih variabel
35 bebas. Jadi, maksud analisis cross section atau causal model adalah menemukan bentuk pola hubungan yang saling mempengaruhi antara variabel yang dicari dan variabel yang mempengaruhinya, serta menggunakanya untuk meramalkan nilai-nilai dari variabel (yang diramalkan) pada masa yang akan datang.
2.4.2
Pengukuran Kesalahan Peramalan Tugas utama dalam peramalan adalah memisahkan pola yang ada dari komponen
kesalahan
(error).
Prosedur
yang
umum
dilakukan
untuk
memperkirakan pola hubungan yang ada, baik untuk model causal atau deret waktu, adalah melalui penentuan bentuk fungsional yang meminimalkan komponen kesalahan (error). Salah satu bentuk dari perkiraan atau estimasi tersebut adalah least squares. Metode ini akan meminimumkan jumlah kuadrat kesalahan. Persamaan digunakan untuk menghitung kesalahan (error) dari setiap periode peramalan:
ε t = Yt − Yt di mana
εt :
kesalahan peramalan pada periode t.
Yt :
nilai sebenarnya pada periode t.
Yt :
nilai peramalan pada periode t.
Salah satu cara untuk mengevaluasi teknik peramalan adalah kesalahan rata-rata kuadrat atau mean squared error (MSE). MSE merupakan metode
36 alternatif dalam mengevaluasi suatu teknik peramalan. Setiap kesalahan atau residual dikuadratkan, kemudian dijumlahkan dan dibagi dengan jumlah obsevasi. Pendekatan ini penting karena suatu teknik yang menghasilkan kesalahan kecil kadang-kadang menghasilkan kesalahan yang sangat besar. n
MSE =
2.4.3
∑ (Y t =1
t
ˆ )2 −Y t
n−2
Regresi Linear Sederhana (Assauri. p53) Regresi linear sederhana adalah metode yang menganalogikan suatu pola hubungan yang berbentuk garis lurus antara suatu variabel yang diramalkan dengan satu variabel yang mempengaruhinya atau variabel bebas. Penerapan regresi linear sederhana dapat dilakukan dengan memplot titik-titik dari data observasi pada kertas grafik, kemudian menarik sebuah garis yang mewakili titik-titik tersebut. Model persamaan linier regresi adalah sebagai berikut. Y=α+βX+ε di mana
Y
: variabel yang diramal,
X
: variabel bebas (yang mempengaruhi variabel yang diramal)
α , β : parameter intercept Model persamaan linier regresi diatas dapat diduga dengan menggunakan persamaan berikut. ˆ = a + bX Y
dimana
a , b : koefisien regresi
ˆ Y
: nilai pendugaan terhadap X
37 Kesalahan ramalan (error) dapat dihitung menurut persamaan berikut:
ε i = Yi − Yˆi Sedangkan penyimpangan atau deviasi adalah: d = Yi − Y di mana
ˆ Y
: nilai yang diramalkan
X
: variabel yang mempengaruhi atau variabel bebas
εi
: kesalahan ramalan
d
: penyimpangan atau deviasi
Yi
: nilai observasi
Y
: rata-rata dari nilai observasi.
Kesalahan ramalan dapat dimimalkan dengan dengan cara mengambil turunan pasial atau partial derivative dari jumlah kuadrat kesalahan ramalan dan kemudian menyamakannya dengan nol.
∑ε
2 i
ˆ )2 = ∑ (Yi − Y
ˆ = a + bX pada persamaan di atas, didapat: Dengan mensubtitusikan Y
∑ε
2 i
= ∑ (Yi − a − bX i ) 2
Turunan parsial dari persamaan di atas adalah sebagai berikut. ∂ (∑ ε i ) 2
∂a
∂ (∑ ε i ) 2
∂b
= −2∑ (Yi − a − bX i ) = 0 = −2∑ (Yi − a − bX i )X i = 0
Dari kedua persamaan diatas, didapatkan persamaan baru untuk mencari nilai b, yaitu:
38
di mana
b=
n ∑ X i Yi − ∑ X i ∑ Yi
a=
∑Y
n ∑ X i − (∑ X i )
2
2
i
− b∑ X i n
n : jumlah data observasi
Setelah diperoleh koefisien nilai dari a dan b, maka sudah didapat persamaan regresi yang diinginkan. Menurut Assuari (1984. p58), untuk menggunakan persamaan regresi ini untuk peramalan, perlu dilakukan serangkaian uji lebih lanjut, di antaranya adalah: 1. Uji
mengenai
tepat
tidaknya
pemilihan
variabel
bebas
yang
mempengaruhi variabel terikat. Uji ini disebut test koefisien penentu (coefficient of determination test). 2. Uji untuk mengetahui apakah benar persamaan regresi itu adalah linier. Uji ini dikenal dengan nama significance test.
2.4.4
Uji Koefisien Penentu (Coefficient of Determination Test) atau Uji R2
Nilai uji koefisien penentu (coefficient of determination test) atau R2 tes didapat dengan menggunakan rumus berikut. R
2
∑ε = 1− ∑y
2 i 2 i
di mana:
∑ε
2 i
= ∑ yi − b 2 2
(∑ x ) 2
i
39 dan
∑y
i
∑x
i
( )
2
= ∑ Yi − n Y
2
= ∑ Xi − n X
2
2
2
( )
2
Nilai R2 tersebut berkisar antara 0 s/d 1. Nilai R2 yang mendekati 1 menunjukkan sangat besarnya pengaruh variabel X. Koefisien penentu (coefficient of determination) juga dapat dicari menggunakan koefisien korelasi. Dengan koefisien korelasi dapat ditunjukkan kuatnya hubungan antara dua variabel. Koefisien korelasi (r) adalah suatu ukuran relatif dari asosiasi di antara dua variabel. Nilai koefisien ini bervariasi antara -1 sampai +1. Koefisien korelasi 0 (nol) berarti tidak ada korelasi sedangkan koefisien korelasi 1 menunjukkan adanya korelasi sempurna (perfect competition). Bila koefisien korelasi lebih besar dari nol, maka kedua variabel
tersebut mempunyai hubungan positif. Sebaliknya, jika koefisien korelasi tersebut lebih kecil dari nol, maka kedua variabel itu mempunyai hubungan negatif. Berikut adalah rumus untuk menghitung koefisien korelasi. r=
(n∑ X
n ∑ XY − ∑ X ∑ Y 2
)(
− (∑ X ) n ∑ Y 2 − (∑ Y ) 2
2
)
Sedangkan angka koefisien penentu (coeficient of determination) dapat dihitung dengan menguadratkan koefisien korelasi.
(n ∑ XY − ∑ X∑ Y ) = (n∑ X − (∑ X ) )(n∑ Y − (∑ Y) ) 2
R
atau
2
2
2
2
2
40
jumlah explained variation = R = jumlah variasi total 2
2.4.5
∑ (Yˆ ∑ (Y
i i
) − Y) −Y
2 2
Significance test (Assauri. p61)
Untuk meneliti apakah regresi yang dipergunakan dalam penyusunan ramalan adalah benar linier atau data observasi tepat berada di sekitar garis regresi linier tersebut, maka perlu dilakukan significance test. Significance test dilakukan untuk mendapatkan validitas secara statistik dari persamaan regresi yang mewakili data-data historis yang dimiliki. Untuk melakukan significance test diperlukan dua macam uji sebagai berikut.
F-test yaitu uji untuk mengetahui apakah koefisien b secara statistik
berbeda dari 0 (nol).
T-test yaitu uji untuk mengetahui apakah nilai estimasi dari a dan b dapat
bervariasi karena pengaruh sampling dan/atau pengaruh random.
a. F-test F-test dilakukan dengan menghitung nilai rasio F (F ratio). Nilai rasio F dapat diperoleh menggunakan rumus sebagai berikut.
∑ (Yˆ − Y ) F=
k −1 ∑ Y − Yˆ
(
)
n−k
di mana
n : jumlah observasi (banyaknya sample) k : jumlah variabel regresi (dalam regresi sederhana k = 2)
41 Cara mudah untuk menghitung nilai rasio F adalah dengan mengunakan koefisien penentu (R) dalam rumus sebagai berikut. R2 F = k − 12 1− R n−k di mana
R : koefisien penentu
Setelah nilai rasio F diperoleh, maka lakukan pembandingan antara nilai rasio F yang didapat dengan nilai table F pada “tabel nilai kritik sebaran F” menggunakan tingkat keyakinan atau tingkat kepercayaan tertentu (umumnya adalah 95% atau 99%). Bila nilai rasio F lebih besar dari nilai F tabel, maka secara statistik koefisien b adalah significant berbeda dengan 0 (nol). Sebaliknya bila nilai rasio F lebih kecil dari nilai F tabel, maka secara statistik koefisien b tidak significant berbeda dengan 0 (nol).
b. T-test Nilai a dan b yang diperoleh dalam regresi linear merupakan hasil yang diperoleh dari suatu prosedur sampling. Oleh karena itu nilai a dan b bukanlah merupakan parameter yang riil (α dan β), tetapi merupakan parameter yang diestimasi. Oleh karena itu perlu diuji apakah nilai a dan b tersebut mendekati nilai parameter α dan β sehingga dapat dianggap sama. Ttest didasarkan atas nilai “student-t distribution”, yang menunjukkan seluruh
nilai-nilai yang mungkin, jika a dan b diambil sebagai hasil dari sampling. Varians dari a dan b menggambarkan besarnya dispersi dari nilai sebenarnya secara teoritis. Hasil bagi dari akar varians dengan “degrees of freedom”
42 (dalam regresi linear sederhana adalah n – 2), disebut standart error of estimate. Standard error ini menunjukkan suatu distribusi sampling.
Untuk uji ini perlu dicari standard error dari koefisien a dan b. Standard error dari koefisien a dan b diperoleh menggunakan rumus:
∑X n ∑ (X − X ) 2
sa = su
i
2
i
sb =
su =
di mana
su
∑ (X
i
−X
i
ˆ −Y
∑ (Y
)
2
)
n−2
2
=
∑ε
2 i
n−2
s u : standard deviasi dari regresi (standart error of estimate) s a : standard error dari koefisien a s b : standard error dari koefisien b
Setelah didapat nilai standard error koefisien a dan b, dihitung nilai Ttest untuk tiap koefisien. Nilai T-test atau t-distribution dapat dihitung
menggunakan rumus berikut. t test a =
a sa
t test b =
b sb
Setelah diperoleh nilai T-test, maka dilakukan pembandingan antara nilai T-test yang didapat dengan nilai t-test pada “tabel nilai kritik sebaran t”
dengan tingkat keyakinan atau tingkat kepercayaan tertentu (umumnya 90%,
43 95%, dan 99%). Bila nilai T-test hitung lebih besar dari nilai T-test pada tabel, maka dapat disimpulkan bahwa nilai koefisien regresi a (dan b) secara statistik adalah berbeda nyata (significant) dari 0 (nol). Sebaliknya bila nilai T-test hitung lebih kecil dari nilai T-test pada tabel, maka dapat disimpulkan
bahwa nilai koefisien regresi a (dan b) secara statistik tidak menunjukkan perbedaan nyata (significant) dari 0 (nol).
2.5
Dasar Perancangan Software (Perangkat lunak)
Menurut Pressman (2002.p10): perangkat lunak adalah (1) perintah (program komputer) yang bila dieksekusi akan memberikan fungsi dan unjuk kerja seperti yang diinginkan. (2) struktur data yang memungkinkan program memanipulasi informasi secara proposional, dan (3) dokumen yang menggambarkan operasi dan kegunaan program.
Salah
satu
cara
perancangan
perangkat
lunak
adalah
dengan
menggunakan model air terjun (waterfall model) menurut Sommerville (1995). Tahap-tahap utama dalam model air terjun dapat digambarkan dalam aktivitas dasar pengembangan seperti berikut ini. •
Analisis dan penetuan kebutuhan Tugas, kendala dan tujuan sistem ditentukan melalui konsultasi dengan pengguna sistem, kemudian ditentukan cara yang dapat dipahami baik oleh pengguna maupun staf pengembang.
44 •
Desain sistem dan perangkat lunak Proses desain sistem terbagi dalam kebutuhan perangkat keras dan perangkat lunak. Hal ini menentukan arsitektur perangkat lunak secara keseluruhan. Desain perangkat lunak mewakili fungsi sistem perangkat lunak dalam suatu bentuk yang dapat ditranformasikan ke dalam satu atau lebih program yang dapat dieksekusi.
•
Implementasi dan pengujian unit Dalam tahap ini, desain perangkat lunak direalisasikan dalam suatu himpunan program atau unit-unit program pengujian, mencakup kegiatan verifikasi terhadap setiap unit sehingga memenuhi syarat spesifikasinya.
•
Integrasi dan Pengujian Sistem Unit program secara individual diintegrasikan dan diuji sebagai satu sistem yang lengkap untuk memastikan bahwa kebutuhan perangkat lunak telah terpenuhi. Setelah pengujian, sistem perangkat lunak disampaikan kepada pengguna.
•
Pengoperasian dan pemeliharaan Secara normal, walaupun tidak perlu, tahap ini merupakan fase siklus hidup yang terpanjang. Sistem telah terpasang dan sedang dalam penggunaan. Pemeliharaan mencakup perbaikan kesalahan yang tidak ditemukan dalam tahap-tahap ini sebelumnya, meningkatkan implementasi unit-unit sistem dan mempertinggi pelayanan sistem sebagai kebutuhan baru yang ditemukan.
45
Gambar 2.2. Perancangan Perangkat Lunak Model Air Terjun Sumber: Sommer Ville (1995)
2.6
Alat Bantu Perancangan
2.6.1
State Transition Diagram (STD) State transition diagram menggambarkan jalannya suatu program dalam
kondisi tertentu. Notasi yang digunakan adalah sebagai berikut.
State menunjukkan satu atau lebih kegiatan atau keadaan atau atribut
yang menjelaskan bagian tertentu dari program.
46
kondisi/aksi
Anak panah berarah menunjukkan perubahan state yang disebabkan oleh aksi (action) terhadap kondisi (condition) tertentu. Kondisi merupakan suatu event pada lingkungan eksternal yang dapat dideteksi oleh suatu sistem, misalnya
sinyal, interupsi, atau data. Hal ini akan menyebabkan perubahan dari suatu state ke state yang lainnya atau satu aktivitas ke aktivitas lainnya. Aksi merupakan hal yang dilakukan oleh sistem jika terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi dapat menghasilkan output, tampilan pesan pada layar, kalkulasi atau kegiatan lainnya.
2.6.2
Pseudocode Pseudocode adalah suatu bahasa pemprograman yang informal dan
sangat fleksibel, yang tidak dimaksudkan untuk dieksekusi pada mesin, tetapi hanya digunakan untuk mengatur pemikiran pemprogram sebelum melakukan pengkodean (Pege-Jones.1980, p11). Pseudocode dapat merupakan alternatif lain dalam perancangan
perangkat lunak di samping alat-alat bantu berupa diagram. Tidak ada standarisasi dalam hal penulisan pseudocode. Pemprogram dapat menulisnya dalam bahasa apa saja yang mereka suka, dipadukan dengan bahasa pemprograman tertentu. Pemprogram juga bebas menggunakan teknik dan aturannya sendiri. Robertson (1993, p6-7), menulis pseudocode-nya dengan perjanjian
47 sebagai berikut. •
Pernyataan ditulis dalam bahasa inggris sederhana.
•
Setiap perintah ditulis pada baris tersendiri.
•
Kata kunci atau indentasi (penulisan yang menjorok ke dalam) digunakan untuk menandai struktur kontrol khusus.
•
Setiap bimbingan perintah ditulis dari atas ke bawah dengan hanya satu awal dan satu akhir program.
•
Kumpulan pernyataan-pernyataan dapat dibentuk dalam modul-modul yang diberi nama tertentu.