12 BAB II LANDASAN TEORITIS 2.1. Network Flow Models 2.1.1 Pengertian Network Menurut Taylor (1999, p408), Network atau jaringan merupakan suatu bentuk penyusunan dari jalur-jalur yang terhubung pada titik-titik yang bervariasi, yang dimana melalui jalur-jalur tersebut dapat dialirkan satu atau lebih barang dari satu titik ke titik lainnya. Penggunaan network dapat menggambarkan suatu sistem dengan jelas, karena pada umumnya, hampir semua sistem dapat dengan mudah dimodelkan menggunakan network. 2.1.2 Komponen Network Network memiliki dua komponen utama, yaitu nodes dan branches. Nodes menyatakan titik pertemuan pertemuan yang menghubungkan beberapa branches, sedangkan branches menghubungkan nodes dan memperlihatkan aliran dari satu titik ke titik lainnya. Biasanya, branches mempunyai suatu nilai / value yang menunjukkan suatu jarak, waktu, atau biaya. x node value branch Gambar 2.1 Komponen Network 2.2. Manajemen Proyek 2.2.1 Elemen Manajemen Proyek 13 Pada umumnya kegiatan manajemen berfokus pada kegiatan perencanaan, pengorganisasian, dan pengendalian dari proses yang akan berlangsung seperti proses produksi atau penghantaran jasa. Manajemen proyek memiliki perbedaan dari kegiatan manajemen pada umumnya, karena sebuah proyek memiliki batasan-batasan seperti adanya batasan jumlah bahan baku dan tenaga kerja untuk suatu kegiatan yang penting, yang dibatasi oleh waktu. Menurut Taylor (1999, p452), ada 3 elemen utama dalam manajemen proyek, yaitu: tim proyek (project team), perencanaan proyek (project planning), dan pengendalian proyek (project control). Pada bagian ini, elemen yang diuraikan lebih detil adalah elemen perencanaan proyek dan pengendalian proyek. 2.2.1.1 Perencanaan Proyek Pada tahap perencanaan proyek, walaupun bukan pekerjaan yang sederhana, semua aktifitas / kegiatan atau langkah-langkah di dalam proyek harus diidentifikasi selengkap-lengkapnya. Aktifitas yang dimaksud disini ialah suatu pekerjaan / usaha individu yang membutuhkan tenaga kerja, bahan baku / resources, dan waktu, yang berada dibawah pengendalian manajemen. Semua aktifitas yang telah diidentifikasi tersebut harus ditentukan kesalingtergantungannya (precedence relationship), yaitu aktifitas mana yang dilakukan pertama kali dan aktifitas mana yang mengikuti suatu aktifitas tertentu. Biasanya, untuk mempermudah penentuannya, maka hubungan ini dituangkan kedalam tabel ‘immediate predecessors’. Untuk lebih jelasnya dapat dilihat pada tabel 2.1, yang menunjukkan contoh kesalingtergantungan dari aktifitas ‘proyek turun mesin’. Activity Code Activity Description Immediate Predecessors 14 A B C D E Remove and diassemble motor Clean paint housing Rewind armature Replace bearings Assemble and install motor in housing A A A B, C, D Tabel 2.1 Daftar aktifitas dan predecessors ‘proyek turun mesin’ Setelah itu, seluruh kegiatan proyek harus dibuat penjadwalannya, yang dapat dilakukan dengan cara menentukan perkiraan waktu yang dibutuhkan oleh setiap kegiatan, sehingga dapat ditentukan waktu penyelesaian proyek secara keseluruhan. Penjadwalan proyek yang telah dibuat harus dibandingkan dengan sasaran akhir dari proyek, yang jika ditemukan bahwa penjadwalan yang dibuat tidak memungkinkan, maka harus dilakukan usaha-usaha tambahan, seperti mempersingkat waktu dengan cara menambah mesin dan tenaga kerja. 2.2.1.2 Pengendalian Proyek Fokus dari pengendalian proyek yaitu memastikan apa yang telah direncanakan sebelumnya dapat berjalan pada pelaksanaannya, sesuai dengan rencana yang telah dibuat. Dalam kebanyakan kasus, fokus utamanya yaitu menjaga proyek agar tetap konsisten pada penjadwalan yang telah dibuat dan memastikan supaya proyek dapat selesai tepat waktu. Metodologi yang banyak digunakan adalah metode WBS (Work Breakdown Structure), dimana sebuah proyek dipecah-pecah menjadi komponen-komponen yang lebih kecil, dan setiap komponen kecil tersebut dipecah-pecah lagi menjadi komponen yang lebih detil, dan 15 seterusnya, sehingga pada akhirnya didapatkan daftar aktifitas dan tugastugas individu. 2.2.2 Jaringan Proyek (Project Network) Dengan menggunakan Network Flow Models, maka pada jaringan proyek, branches dapat dilihat sebagai suatu aktifitas dari sebuah proyek, sedangkan nodes dapat dilihat sebagai titik awal dan titik akhir dari suatu aktifitas, yang sering juga disebut sebagai kejadian / events. Branches yang digunakan disini adalah directed branches / arrows , dimana tanda panah ini menunjukkan suatu precedence relationship diantara tiga buah aktifitas. Untuk lebih jelasnya, lihat gambar 2.2. 1 Activity 1 x months 2 Activity 2 y months 3 Gambar 2.2 Jaringan proyek Tujuan dibuatnya jaringan proyek ini adalah untuk membantu perencanaan dan penjadwalan suatu proyek. 2.2.2.1 Concurrent Activities dan Dummy Activities Concurrent activities merupakan suatu kegiatan yang dapat berlangsung pada waktu yang bersamaan. Pada umumnya suatu proyek pasti memilikinya. Dalam merancang jaringan proyek, untuk menghadapi concurrent activities ini, seringkali diperlukan apa yang dinamakan dummy activities. Dummy ini diperlukan karena terdapat aturan dalam membangun jaringan proyek, yaitu bahwa dua atau lebih aktifitas tidak boleh mempunyai start dan end nodes yang sama. Dummy activities ini digunakan untuk 16 menunjukkan precedence relationship, akan tetapi dummy activities tidak menunjukkan suatu lintasan waktu. Activity 1 x months 1 2 Activity 2 y months Gambar 2.3 Concurrent activities Pada gambar 2.3 diatas, dapat dilihat bahwa aktifitas 1 dengan aktifitas 2 mempunyai node awal dan akhir yang sama, sehingga untuk memisahkan node akhirnya, disisipkan sebuah dummy activity yang nilai waktunya 0, seperti yang dapat dilihat pada gambar 2.4 berikut ini. 2 Activity 1 x months Dummy activity 0 month Activity 2 y months 1 3 Gambar 2.4 Dummy activity Salah satu contoh logika ketergantungan yang sangat terbantu dengan adanya dummy activities ini adalah sebagai berikut: aktifitas C tergantung oleh aktifitas A dan B, dan aktifitas D tergantung oleh aktifitas B (aktifitas ini berasal dari proyek instalasi mesin). Untuk lebih jelasnya dapat dilihat pada tabel 2.2. Tanpa adanya dummy activities, logika ketergantungan menjadi salah, seperti yang dapat dilihat pada gambar 2.5(a). 17 Dengan memakai dummy activities, maka diperoleh suatu bentuk logika ketergantungan yang benar. Seperti network yang ada pada gambar 2.5(b). Activity Code A B C D Activity Description Immediate Predecessors A, B A Install machine Hire operator Train operator Inspect machine Tabel 2.2 Aktifitas dan predecessors ‘proyek instalasi mesin’ 1 A C 3 2 B D 4 6 Gambar 2.5(a) Logika ketergantungan yang salah dari proyek instalasi mesin 1 4 A B 2 5 C D 3 6 Gambar 2.5(b) Logika ketergantungan yang benar dari proyek instalasi mesin – membutuhkan dummy activity 2.2.2.2 Lintasan Kritis (The Critical Path) Path dapat diartikan sebagai suatu urutan dari aktifitas yang dilewati dalam pergerakan dari starting event / node hingga ke ending event / node dari suatu network (Davis/McKeown/Rakes, 1999, p268). Selanjutnya, dikatakan bahwa pada setiap network, pasti mempunyai sekurang-kurangnya dua buah path, yang minimal satu dari path tersebut 18 bersifat kritis. Karena penyelesaian suatu proyek mengharuskan agar semua path dilewati, maka durasi dari path yang terpanjang (waktu yang dibutuhkan agar path dapat dilewati semuanya) merupakan lintasan / jalur kritis (Critical Path). Sedangkan menurut Taylor (1999, p457), Critical Path atau lintasan kritis ialah jalur terpanjang yang dilalui di dalam suatu jaringan. Lintasan kritis juga dapat diartikan sebagai lintasan yang mempunyai waktu yang paling cepat untuk menyelesaikan suatu jaringan proyek. Salah satu pendekatan matematis yang digunakan untuk menemukan lintasan kritis di dalam suatu jaringan proyek, yang sangat banyak digunakan ialah metode PERT/CPM, yang akan dibahas lebih mendetil pada bagian selanjutnya. 2.2.2.3 Membangun Jaringan Proyek Setelah memahami konsep dari Concurrent activities, dummy activities dan critical path, jaringan proyek dapat dibangun secara akurat. Berikut ini adalah beberapa aturan dan tips dalam mengembangkan suatu jaringan proyek secara akurat: 1. Sebelum seluruh aktifitas dapat berjalan, semua aktifitas yang mendahuluinya (preceding activities) haruslah selesai terlebih dahulu 2. Garis panah hanya menunjukkan hubungan saling mendahului secara logika saja, baik panjangnya maupun arahnya tidak mempunyai suatu arti apapun. 3. Setiap daripada garis panah (aktifitas) harus diawali dan diakhiri dengan sebuah node event. 19 4. Tidak ada dua buah node di dalam jaringan yang dihubungkan secara langsung oleh lebih dari satu garis panah. 5. Dalam melakukan penomoran pada nodes, sangat dianjurkan untuk melakukan penomoran dengan kelipatan sepuluh pada jaringan yang besar, supaya jika terjadi perubahan di waktu yang akan datang, dapat dengan mudah dilakukan. 6. Seluruh garis panah di dalam jaringan haruslah mempunyai arah, lebih kurang, dari kiri ke kanan. 7. Perincian dari aktifitas haruslah selengkap-lengkapnya, sesuai dengan yang dibutuhkan untuk menggambarkan hubungan logika dan perencanaan dari aktifitas-aktifitasnya. Salah satu kesalahan yang paling sering terjadi dalam membangun logika jaringan ini adalah meletakkan suatu aktifitas dalam jaringan berdasarkan urutan waktu seperti yang biasanya terjadi secara kronologis (sequential activities), yang seharusnya bisa digambarkan secara paralel (concurrent activities). Untuk lebih jelasnya dapat dilihat pada gambar 2.6(a) dan 2.6(b) yang menunjukkan contoh diagram “paying bills” Examine Bills 1 Make Out Checks 2 Insert Checks In Envelopes 3 Address Envelopes 4 Place Stamps 5 Mail 6 Gambar 2.6(a) Sequential network diagram untuk ‘paying bills’ 7 20 Make Out Checks 1 Examine Bills 2 3 Insert Checks In Envelopes 4 Dummy Mail Address Envelopes Place Stamps 6 7 Dummy 5 Gambar 2.6(b) Proper network diagram untuk ‘paying bills’ 2.3. Metode PERT/CPM Diasumsikan para pembaca sudah memahami teknik pengembangan suatu jaringan proyek, mulai dari penentuan aktifitas proyek secara mendetil, penentuan logika kesalingtergantungannya, hingga kepada penggunaan dummy activities, sehingga pada sub-judul ini akan lebih difokuskan pada tinjauan latar belakang metode PERT/CPM ini dan proses perhitungannya secara matematis. 2.3.1 Latar Belakang PERT/CPM PERT (Program Evaluation and Review Technique) pertama kali dikembangkan di tahun 1950 akhir, dan digunakan secara umum untuk mengatur penelitian militer dan proyek pembangunan. PERT pertama kali diaplikasikan dalam ‘Polaris missile project’ untuk U.S Navy. Faktanya, PERT dikembangkan oleh departemen pertahanan secara spesifik untuk mendukung proses perencanaan, penjadwalan dan pengendalian dari seluruh aktifitas yang jumlahnya sangat banyak dan bertumpuk, yang terkait pada proyek tersebut. PERT juga banyak diaplikasikan pada bidang pembangunan, industri, 21 penjadwalan maskapai penerbangan, dan sebagainya. Salah satu fitur utama dari PERT , sebagai tambahan dari kemampuannya dalam mengidentifikasi penjadwalan dan perencanaan aktifitas, ialah bahwa PERT dapat menangani ketidakpastian yang terjadi dalam memperkirakan waktu penyelesaian aktifitas yang beragam. Sedangkan CPM (Critical Path Method) dikembangkan terpisah dari PERT, akan tetapi hubungan keduanya sangatlah erat. Pada dasarnya, CPM berfokus kepada pertukaran antara biaya proyek dengan waktu penyelesaian proyek, bukan berfokus kepada ketidakpastian waktu dari suatu aktifitas seperti yang difokuskan oleh PERT. Hingga saat ini, PERT dan CPM merupakan dua teknik utama dari manajemen proyek yang sangat banyak dipakai. Metode PERT biasanya digunakan untuk menentukan waktu penyelesaian proyek yang diharapkan secara keseluruhan dan dapat mengidentifikasi lintasan kritisnya, yang dimana jika tidak diselesaikan sesuai dengan jadwalnya, akan menunda penyelesaian proyek tersebut. Sedangkan metode CPM biasanya digunakan untuk mempersingkat waktu pelaksanaan proyek secara keseluruhan, dengan syarat, pihak manajemen bersedia untuk mengalokasikan sumber daya lebih banyak pada proyek tersebut. 2.3.2 Algoritma Perhitungan PERT Urutan langkah-langkah dasar yang digunakan dalam proses perhitungan PERT adalah sebagai berikut: 1. Identifikasi seluruh tugas / aktifitas yang berhubungan dengan proyek. 2. Identifikasi “immediate predecessor relationship’ untuk seluruh aktifitas. 22 3. Gambarkan jaringan dasar dari proyek untuk menunjukkan semua hubungan yang terkait. 4. Perkirakan durasi waktu yang diharapkan dari setiap aktifitas. 5. Dengan Forward Pass, hitung earliest start dan earliest finish time untuk setiap aktifitas. 6. Dengan waktu penyelesaian proyek yang telah dihitung dengan forward pass, gunakan backward pass untuk menghitung latest start dan latest finish time untuk setiap aktifitas. 7. Hitung float / slack time pada setiap aktifitas. 8. Temukan jalur / lintasan kritis dari jaringan proyek tersebut, dimana jalur kritis adalah jalur yang memuat aktifitas yang mempunyai nilai slack nol. 2.3.3 Perhitungan Penjadwalan Dasar Dalam melakukan perhitungan, simbol-simbol yang digunakan didalam jaringan proyek ini dapat dilihat pada gambar 2.7 berikut ini. i Activity Code [ESij, Dij, EFij] (LSij, Fij, LFij) j Gambar 2.7 Simbol-simbol yang digunakan di dalam jaringan Arti dari simbol-simbol diatas, yang akan dipergunakan dalam proses perhitungan dan analisis dari metode PERT ialah: ESij = early start time EFij = early finish time LSij = latest finish time LFij = latest finish time 23 Dij = expected activity time Fij = float / slack time 2.3.3.1 Forward Pass Forward pass pada dasarnya adalah kegiatan yang melakukan perhitungan waktu tercepat untuk dimulainya dan berakhirnya suatu aktifitas, sehingga dapat ditentukan waktu yang dibutuhkan untuk selesainya sebuah proyek. Early start time untuk sebuah aktifitas adalah waktu tercepat yang mungkin bagi suatu aktifitas untuk dimulai, yang dilambangkan dengan ESij, dimana i dan j melambangkan node awal dan node akhir yang berhubungan dengan aktifitas tersebut. Sedangkan early finish time untuk sebuah aktifitas merupakan early start time ditambahkan dengan durasi waktu yang diperlukan untuk menyelesaikan aktifitas tersebut (duration time), yang dilambangkan dengan EFij = ESij + Dij. Beberapa aturan yang digunakan pada forward pass ini ialah: 1. Semua aktifitas yang tidak mempunyai aktifitas pendahulu, diasumsikan dapat dimulai dengan segera, sehingga nilai ESij = 0. 2. Jika ada beberapa aktifitas yang ada mendahului sebuah aktifitas, maka earliest start time untuk aktifitas tersebut adalah nilai terbesar dari earliest finish time dari seluruh aktifitas pendahulu. Aturan ini dapat dituliskan secara matematis sebagai: ESij = maximum(EFk1.i, EFk2.i, …, EFkn.i). 2.3.3.2 Backward Pass 24 Backward pass pada dasarnya adalah kegiatan yang melakukan perhitungan waktu paling lambat untuk dimulainya dan berakhirnya suatu proyek. Backward pass ini digunakan untuk memberikan jawaban kepada pertanyaan: Seberapa banyak – jika memungkinkan – suatu aktifitas dapat terlambat, tanpa memperpanjang waktu proyek? Latest start time untuk sebuah aktifitas LSij adalah waktu paling lambat yang mungkin bagi suatu aktifitas untuk dimulai, tanpa menunda waktu selesainya proyek. Sedangkan latest finish time untuk sebuah aktifitas LFij merupakan latest start time ditambahkan dengan durasi waktu yang diperlukan untuk menyelesaikan aktifitas tersebut (duration time), yang dilambangkan dengan LFij = LSij + Dij. Akan tetapi. Pada penggunaannya, bentuk yang lebih praktis ialah: LSij = LFij - Dij., karena perhitungan dilakukan secara backward, yaitu dengan diketahui LFij maka dapat dihitung ESij. Beberapa aturan yang digunakan pada backward pass ini ialah: 1. Perhitungan dimulai pada event yang paling terakhir, dimana nilai latest finish timenya merupakan total duration time yang telah dihitung dengan forward pass. Dengan kata lain, untuk aktifitas yang paling terakhir, LFij = EFij. 2. Jika ada beberapa aktifitas yang ada yang meninggalkan sebuah node, maka latest finish time untuk aktifitas yang memasuki node tersebut adalah nilai terkecil dari latest starting time dari seluruh aktifitas yang meninggalkan node tersebut. Aturan ini dapat dituliskan secara matematis sebagai: LFij = minimum(LSi..j1, LSi..j2, …, LSi..jn). 25 2.3.3.3 Float (Slack) Time Float / slack time merupakan lama waktu untuk sebuah aktifitas dapat terlambat, tanpa menyebabkan tertundanya waktu keseluruhan proyek. Float time untuk setiap aktifitas dapat dihitung jika forward pass dan backward pass telah dilakukan sebelumnya untuk menghitung batasan waktu yang ada (start dan finish time). Cara menghitungnya adalah dengan mengambil selisih dari LS dengan ES, atau selisih dari LF dengan EF, yang secara matematis dapat dituliskan sebagai: Fij = LSij – EFij atau Fij = LFij – EFij. Perhitungan float time untuk aktifitas apapun mempunyai asumsi bahwa aktifitas lain berlangsung dengan duration time yang diharapkan, dengan kata lain, bahwa aktifitas lainnya akan terlaksana sesuai jadwal. Sesuai dengan pembahasan sebelumnya, lintasan kritis dapat ditentukan dengan melihat jalur yang melewati aktifitas-aktifitas yang mempunyai float time Fij = 0. 2.3.4 Ketidakpastian pada Jaringan PERT Dalam penerapan metode jaringan PERT, pada kenyataannya sulit untuk menentukan waktu aktifitas secara akurat, dikarenakan teknologi yang selalu berubah dan produk yang tidak standar. Oleh karena itu, untuk mengakomodasi ketidakpastian ini, maka pengembang awal PERT menyediakan tiga perkiraan waktu untuk setiap waktu aktifitas: (1) most probable time (tm) – waktu yang diperlukan untuk menyelesaikan aktifitas dengan kondisi normal; (2) pessimistic time (tp) – waktu paling lama yang diperlukan untuk menyelesaikan aktifitas jika terjadi penundaan yang signifikan di dalam proyek; (3) optimistic time (to) – waktu paling cepat yang dibutuhkan untuk menyelesaikan aktifitas jika segala 26 sesuatunya terjadi secara ideal. Dengan menggunakan tiga perkiraan waktu ini, maka expected time – waktu yang cenderung terjadi jika aktifitas dilakukan secara berulang-ulang – untuk setiap aktifitas dapat ditentukan dengan rumus sebagai berikut: te = to + 4tm + t p 6 Pada kenyataannya, aktifitas yang ada tidak dilakukan secara berulang, bahkan kebanyakan hanya terjadi sekali saja. Bagaimanapun juga, te tetap merupakan perkiraan tunggal yang terbaik untuk memperkirakan waktu yang dibutuhkan untuk menyelesaikan aktifitas, yang banyak digunakan pada penerapannya. Pembobotan yang digunakan untuk menghitung te ini didasarkan pada pendekatan distribusi peluang beta, karena pengembang PERT menemukan bahwa distribusi ini dapat mendekati 4 karakteristik yang diharapkan untuk waktu aktifitas, yaitu: 1. Mempunyai probabilitas yang kecil (1 dari 100) untuk mencapai waktu yang paling optimis (waktu paling pendek), yang disimbolkan dengan to. 2. Mempunyai probabilitas yang kecil (1 dari 100) untuk mencapai waktu yang paling pesimis (waktu paling lama), yang disimbolkan dengan tp. 3. Hanya ada satu nilai waktu yang paling mendekati (most likely time), yang disimbolkan dengan tm, yang nilainya bebas selama dalam batasan dua nilai ekstrim to dan tp. 4. Mempunyai kemampuan untuk mengukur ketidakpastian dalam mengestimasi. 27 Distribusi beta sendiri memiliki sifat unimodal (mempunyai satu nilai puncak), mempunyai titik akhir yang positif dan berhingga dengan kesimetrisan yang tidak terlalu dipentingkan. Jadi, rumusan / formula untuk menghitung waktu yang diharapkan merupakan kombinasi dari ketiga waktu yang ada, yang dirumuskan dengan aljabar menggunakan rataan tertimbang. Keuntungan dari penggunaan tiga perkiraan waktu ini adalah bahwa kita dapat menghitung dispersi dari waktu aktifitas dan dapat menggunakan informasi ini untuk mengevaluasi faktor ketidakpastian yang ada di dalam pelaksanaan proyek agar dapat sesuai dengan penjadwalan yang telah dibuat. Dengan menggunakan tiga buah nilai dari setiap waktu aktifitas ini, maka dapat dihitung standar deviasi untuk setiap aktifitas. Perbedaan antara to dengan tp menunjukkan jarak antara titik ekstrim ujung kanan dan titik ekstrim ujung kiri dari distribusi peluang waktu aktifitas yang mungkin. Jarak ini mempunyai besaran sekitar ±3 standar deviasi (luas kurva 1% mempunyai jarak 3 standar deviasi), maka tp – to = 6 standar deviasi. Sehingga, faktor ketidakpastian ini / dispersi dari waktu aktifitas ini dapat diukur menggunakan alat bantu statistik variance, yang merupakan kuadrat dari standar deviasinya dengan rumusan sebagai berikut: t p −to Variansi waktu aktifitas = σ = 6 2 2 t Dengan rumus diatas, maka variansi waktu untuk setiap aktifitas dapat dihitung, dan setelah semuanya dihitung, maka diperoleh variansi waktu penyelesaian proyek dengan cara menjumlahkan seluruh variansi waktu aktifitas kritis yang dapat dirumuskan sebagai berikut: Variansi waktu proyek = σ 2 = ∑ ∀critical _ activities σ t2.critical _ activities 28 Variansi waktu proyek diperoleh hanya dengan menjumlahkan seluruh variansi aktifitasnya saja, karena masing-masing aktifitas saling bebas, dengan kata lain durasi waktu aktifitas yang satu tidak mempengaruhi durasi waktu aktifitas lainnya, sehingga kovarians antar aktifitas bernilai 0. Dengan adanya variansi ini, maka dengan mudah standar deviasi dari waktu penyelesaian proyek dapat dihitung dengan rumus σ = σ 2 . Secara statistik telah diketahui bahwa waktu penyelesaian proyek tidak dapat digambarkan oleh distribusi beta, akan tetapi lebih mengikuti kepada pendekatan distribusi normal. Asumsi ini didasarkan kepada central limit theorem of probability / teorema probabilitas terpusat, yang dimana untuk kasus analisis PERT pada proyek yang kita lakukan, mengatakan bahwa jika jumlah aktifitas yang dilakukan cukup banyak dan masing-masing aktifitas bebas secara statistik, maka penjumlahan variansi waktu aktifitas kritis akan mendekati mean atau nilai tengah dari distribusi normal. Sehingga dengan menggunakan asumsi ini, kita dapat menginterpretasikan waktu penyelesaian proyek yang diharapkan (tp) dan variansinya (vp) sebagai mean (µ) dan variance (σ2) dari distribusi normal yang dapat dilihat pada gambar 2.8 berikut. Probability x−µ Z= σ Zσ µ x Time (x scale) Gambar 2.8 Pendekatan kurva normal terhadap waktu penyelesaian proyek 29 Nilai Z yang dihitung dengan rumus Z = x−µ σ , dapat digunakan untuk menentukan tingkat keyakinan atau tingkat kepercayaan (confidence level) dari waktu proyek. Dengan kata lain, nilai Z dapat menentukan besarnya peluang bahwa proyek dapat diselesaikan pada waktu x, dengan melihat tabel sebaran distribusi normal (tabel luas kurva statistik Z). Selain itu, dapat pula dilakukan perhitungan invers normal dengan suatu data probabilitas tertentu (luas area dibawah kurva normal), untuk menghitung nilai harapannya. 2.3.5 Time / Cost Trade-offs Penjadwalan yang dibentuk dengan apa yang telah dibahas sejauh ini hanya melihat dari aspek waktu saja. Namun sesungguhnya, waktu pelaksanaan proyek bisa dipercepat dengan mengalokasikan sejumlah resources yang akan menambah biaya (menggunakan metode CPM), seperti yang dapat dilihat pada gambar 2.9 berikut. Project Cost Minimum Time Minimum Cost Minimu m Minimu m Project Completion Time Gambar 2.9 Kurva time / cost trade-offs 30 Akan tetapi, mengacu kepada pembatasan pada perancangan ini, maka sesuai dengan asumsi bahwa resources yang ada tetap, maka bagian ini tidak diuraikan lebih lanjut secara mendetil. 2.4. Perencanaan Produksi Perencanaan produksi merupakan suatu teknik yang dapat digunakan untuk memprediksi dan menyusun terlebih dahulu seluruh rangkaian kegiatan sedemikian rupa, sehingga terjamin penyelesaiannya. Ada 4 macam teknik utama yang biasanya dilakukan di dalam merencanakan produksi, yaitu: 1. Routing: menyusun rangkaian langkah-langkah operasionil (What, How, When). 2. Scheduling: menyusun jadwal waktu untuk pelaksanaan kegiatan operasionil secara terperinci (When). 3. Dispatching: penetapan tugas dan pelaksanaan dari kegiatan yang telah dirumuskan dalam routing dan scheduling (Who). 4. Follow up dan Control: mengadakan pengendalian dan penyesuaian pada waktu pelaksanaan. Perencanaan produksi dibagi ke dalam 3 tingkat, yaitu: 1. Perencanaan tingkat pabrik. Perencanaan tingkat awal, dimana perencanaan yang dilakukan meliputi pemilihan jenis bahan dan fasilitas yang diperlukan (gedung, mesin, proses, dll). 31 2. Perencanaan tingkat proses. Perencanaan yang lebih mendalam dari perencanaan tingkat pabrik, misalnya: penetapan unit mesin tertentu, perlengkapan produksi tertentu, tata letak mesin, dll. 3. Perencanaan tingkat operasional. Perencanaan tingkat akhir ini dilakukan untuk mendapatkan rangkaian perincian elemen-elemen kerja, dengan menganalisa pusat kerja dan kegiatan pokok operasional. Tingkat variasi dan kompleksitas dari suatu perencanaan produksi dapat dipengaruhi oleh faktor-faktor, seperti: • Jumlah komponen dari suatu produk. • Keragaman jumlah dan jenis kegiatan operasional. • Kesalingtergantungan antar kegiatan satu dengan kegiatan lainnya. • Ketersediaan kapasitas mesin. • Waktu pengiriman yang ketat. • Adanya produk sampingan selain produk standar. • Frekuensi perubahan pesanan. • Proses produksi yang berdasarkan “Job-order”, “Intermittent / Batch”, atau “Continuous production”. 2.5. Rekayasa Piranti Lunak 32 2.5.1 Pengertian Rekayasa Piranti Lunak Pengertian dari rekayasa piranti lunak untuk pertama kalinya diperkenalkan oleh Fritz Bauer sebagai: penetapan dan penggunaan prinsipprinsip rekayasa dalam usaha mendapatkan piranti lunak yang ekonomis, yaitu piranti lunak yang terpercaya dan bekerja efisien pada mesin atau komputer (Pressmann, 1992, p19). 2.5.2 Paradigma Rekayasa Piranti Lunak Terdapat lima paradigma dasar atau model proses dasar dalam melakukan rekayasa suatu piranti lunak, yaitu: The Classic Life Cycle atau sering disebut dengan Waterfall Model, Prototyping Model, Fourth Generation Techniques (4GT), Spiral Model, dan Combine Model. Disamping itu, paradigma atau model proses dalam rekayasa piranti lunak terkini yang banyak digunakan ialah Rational Unified Process (RUP) dan Extreme Programming (XP). Perancangan program aplikasi dibuat menggunakan Waterfall Model sebagai paradigma rekayasa piranti lunaknya. Menurut Pressman (1992, p20-21), ada enam tahapan dalam Waterfall Model yang dapat dilihat pada gambar 2.10 berikut ini. Gambar 2.10 Waterfall Model 33 Penjelasan dari setiap tahapan di dalam Waterfall Model diatas adalah sebagai berikut: • Rekayasa sistem (System Engineering) Perangkat lunak merupakan bagian dari sebuah sistem yang lebih besar, maka pada tahapan awalnya, aktifitas ini dimulai dengan penetapan kebutuhan dari semua elemen sistem. Gambaran sistem ini sangat penting, terutama jika perangkat lunak yang dibangun harus berinteraksi dengan elemen sistem lainnya, seperti hardware, manusia, dan database. • Analisis kebutuhan perangkat lunak (Software Requirement Analysis) Analisis yang dilakukan pada tahap ini adalah untuk mengetahui kebutuhan piranti lunak, sumber informasi piranti lunak, fungsi-fungsi yang dibutuhkan, kemampuan piranti lunak, dan perancangan antarmuka piranti lunak tersebut. • Perancangan (Design) Perancangan piranti lunak dititikberatkan pada empat atribut program, yaitu struktur data, arsitektur piranti lunak, rician prosedur dan karakter antarmuka. Proses perancangan ini menterjemahkan kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat dinilai kualitasnya, sebelum dilanjutkan ke tahapan pengkodean. • Pengkodean (Coding) 34 Aktifitas yang dilakukan adalah mengubah hasil perancangan menjadi suatu bentuk yang dapat dimengerti oleh mesin, yaitu dengan membuat program. • Pengujian (Testing) Pengujian merupakan suatu kegiatan yang dilakukan untuk mencari kelemahan dan kesalahan yang terjadi pada program aplikasi dan kemudian memperbaiki kelemahan dan kesalahan tersebut. Ada beberapa metode pengujian untuk menguji fungsi – fungsi dari suatu program aplikasi. Metode tersebut adalah : ⇒ Metode Pengujian White-Box Metode ini menerapkan pengujian terhadap struktur logika program dan detail procedural. Pengujian dilakukan terhadap setiap baris kode program untuk meyakinkan bahwa semua operasi internal bekerja sesuai dengan spesifikasi dan semua komponen internal telah dicoba. ⇒ Metode Pengujian Black-Box Metode ini merupakan pengujian interface dari perangkat lunak oleh pemakai untuk mengetahui spesifikasi dari suatu fungsi dalam program aplikasi. Pengujian dilakukan dengan memberi input pada program aplikasi, kemudian diproses, dan hasil keluarannya dibandingkan apakah telah sesuai dengan kebutuhan fungsional yang diinginkan pemakai. ⇒ Metode pengujian Gray-Box Metode ini merupakan gabungan dari metode pengujian White-Box dan metode pengujian Black-Box yaitu 35 memvalidasi interface perangkat lunak dan pemilihan beberapa logika internal. • Pemeliharaan (Maintenance) Kebutuhan pemakai selalu akan meningkat, maka piranti lunak yang telah dibuat perlu dipelihara agar dapat mengantisipasi peningkatan / perubahan kebutuhan pemakai terhadap fungsi-fungsi baru yang dapat timbul karena berbagai perubahan diluar yang memepengaruhi sistem, seperti munculnya sistem operasi baru dan perangkat keras baru, perubahan strategi perusahaan, dan sebagainya. 2.6. Interaksi Manusia dan Komputer Dewasa ini suatu sistem atau program yang bersifat interaktif sangat populer dan sangat digemari, oleh karena itu penggunaan komputer telah berkembang pesat sebagai suatu program yang interaktif, yang meningkatkan ketertarikan para pengguna untuk menggunakannya. Program yang interaktif ini perlu dirancang sedemikian rupa sehingga pengguna dapat merasa senang dan juga dapat ikut berinteraksi dengan baik dalam penggunaannya. 2.6.1 Program Interaktif Suatu program interaktif yang baik harus bersifat user friendly. Shneiderman (1998, p15) menjelaskan lima kriteria yang harus dipenuhi oleh suatu program yang user friendly, yaitu: 1. Waktu belajar yang tidak lama. 2. Kecepatan penyajian informasi yang tepat. 3. Tingkat kesalahan pemakai yang rendah. 36 4. Penghafalan sesudah melampaui jangka waktu. 5. Kepuasan pribadi. Suatu program yang interaktif dapat dengan mudah dibuat dan dirancang dengan suatu perangkat bantu pengembangan sistem antarmuka, seperti Visual Basic, Borland Delphi, dan sebagainya. Keuntungan penggunaan perangkat bantu untuk mengembangkan antarmuka menurut Santosa (1997, p7) yaitu: 1. Antarmuka yang dihasilkan menjadi lebih baik. 2. Program antarmukanya menjadi mudah ditulis dan lebih ekonomis untuk dipelihara. 2.6.2 User Interface Terdapat beberapa pedoman yang dianjurkan dalam merancang suatu program guna mendapatkan suatu program yang user friendly. 2.6.2.1 Delapan Aturan Emas Menurut Shneiderman (1998, p74-75), perancangan sistem interaksi manusia dan komputer yang baik harus memperhatikan delapan aturan utama, yaitu: 1. Strive for consistency (Mempertahankan konsistensi). 2. Enable frequent user to use shortcuts (Memungkinkan para pengguna yang sudah sering menggunakan untuk memakai shortcut ). 3. Offer informative feedbacks (Memberikan umpan balik yang informatif). 4. Design dialogs to yield closure (Mendesain suatu dialogs yang baik sehingga pengguna mengetahui kapan awal dan kapan akhir dari suatu aksi). 37 5. Offer simple error handlings (Memberikan penanganan kesalahan secara sederhana). 6. Permit easy reversal action (Mengijinkan pembalikan aksi (undo) dengan mudah). 7. Support internal locus of control (Mendukung agar pemakailah yang berperan sebagai pengendali sistem / inisiator, bukan responden). 8. Reduce short term memory load (Mengurangi beban ingatan jangka pendek, dimana manusia hanya dapat mengingat 7 ± 2 satuan informasi , sehingga kesederhanaan perancangan harus dipertahankan). 2.6.2.2 Tampilan Data Beberapa pedoman yang disarankan untuk digunakan dalam merancang tampilan data yang baik menurut Smith dan Mosier yang dikutip oleh Shneiderman (1998, p80) yaitu: 1. Konsistensi tampilan data, istilah, singkatan, format dan sebagainya haruslah standar. 2. Beban ingatan yang sesedikit mungkin bagi pengguna. Pengguna tidak perlu mengingat informasi dari layar yang satu ke layar yang lain. 3. Kompatibilitas tampilan data dengan pemasukan data. Format tampilan informasi perlu berhubungan erat dengan tampilan pemasukan data. 38 4. Fleksibilitas kendali pengguna terhadap data. Pemakai harus dapat memperoleh informasi dari tampilan data dalam bentuk yang paling memudahkan. 2.6.2.3 Waktu Respon Waktu respons dalam sistem komputer menurut Shneiderman (1998, p352) adalah jumlah detik dari saat pemakai memulai suatu aktifitas (misalnya dengan menekan tombol pada keyboard atau tombol mouse), sampai pada saat komputer menampilkan hasilnya di perangkat keluaran (monitor, speaker, printer, dan sebagainya). Beberapa pedoman yang disarankan mengenai kecepatan waktu respons pada suatu program menurut Shneiderman (1998, p367) yaitu: 1. Pemakai lebih menyukai waktu respons yang lebih pendek. 2. Waktu respons yang panjang (lebih dari 15 detik) akan terasa menggangu. 3. Waktu respons yang lebih pendek menyebabkan waktu berpikir pengguna juga lebih pendek. 4. Langkah yang lebih cepat dapat meningkatkan produktifitas, akan tetapi juga dapat meningkatkan kesalahan. 5. Waktu respons harus sesuai dengan tugasnya: a. Untuk mengetik, menggerakkan kursor, memilih dengan mouse: 50 – 150 milidetik. b. Tugas sederhana yang sering: < 1 detik. c. Tugas biasa: 2 - 4 detik. d. Tugas kompleks: 8 – 12 detik. 6. Pemakai harus diberitahu mengenai penundaan yang panjang. 39 2.7. State Transition Diagram (STD) State Transition Diagram merupakan sebuah modelling tool yang digunakan untuk menggambarkan suatu sistem yang memiliki ketergantungan terhadap waktu. STD merupakan suatu kumpulan keadaan atau atribut yang mencirikan suatu keadaan pada waktu tertentu. Komponen-komponen utama STD adalah: 1. State, disimbolkan dengan State merupakan suatu reaksi / respon yang dilakukan oleh sistem ketika suatu tindakan dilakukan. Ada dua jenis state, yaitu state awal dan state akhir. State akhir dapat berupa beberapa state, sedangkan state awal hanyalah satu state. 2. Arrow, disimbolkan dengan Arrow sering disebut juga dengan transisi state yang diberi label dengan ekspresi aturan. Label tersebut menunjukkan kejadian yang menyebabkan transisi tersebut terjadi. 3. Condition dan Action, disimbolkan dengan simbol sebagai berikut: Condition adalah suatu event pada lingkungan eksternal yang dapat dideteksi oleh sistem, sedangkan action adalah tindakan yang dilakukan oleh sistem bila terjadi perubahan state, atau merupakan reaksi terhadap kondisi yang terpenuhi. output. Action akan menghasilkan suatu