DENGAN CRITICAL PATH METHOD
TUGAS AKHIR
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik (ST)
Program Studi Teknik Informatika
HALAMAN JUDUL
Oleh :
Yakobus Yuliatmoko
NIM : 005314076
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
HOUSE LIVING PROJECT MANAGEMENT AID
SOFTWARE USING CRITICAL PATH METHOD
FINAL PROJECT
Presented as Partial Fulfillment Of The Requirements
To Obtain The Sarjana Teknik Degree
In Informatics Engineering
By :
Yakobus Yuliatmoko
Student Number : 005314076
DEPARTMENT OF INFORMATIC ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
UNIVERSITY OF SANATA DHARMA
YOGYAKARTA
HALAMAN PERSEMBAHAN
Kupersembahkan karya ini untuk Tuhan Allahku yang tidak pernah meninggalkanku,
Kepada mereka yang aku kasihi :
Bapak RAY Soeharto dan Ibu M. E. Sudiarsih,
HALAMAN MOTTO
Tuhan adalah kekuatanku dan perisaiku; kepada-Nya hatiku percaya. Aku senantiasa tertolong, sebab itu beria-ria hatiku, dan dengan nyanyianku, aku bersyukur kepada-Nya
[ Mazmur 28 : 7 ]
PERNYATAAN BUKTI KEASLIAN SKRIPSI
HALAMAN PERNYATAAN
Dengan ini saya menyatakan bahwa skripsi ini adalah asli hasil karya saya dan tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Demikian surat pernyataan ini saya buat dengan sebenar – benarnya.
Yogyakarta, Agustus 2007
ABSTRAKSI
Perencanaan kegiatan berfungsi sebagai panduan kerja yang membantu proses pelaksanaan kegiatan agar terarah pada tujuan yang telah ditetapkan dengan keterbatasanan yang ada. Dalam perencanaan, terdapat pengelolaan sumber daya material, tenaga serta penjadwalan kegiatan yang harus dilakukan.
Sebagai salah satu bentuk proyek berskala kecil, pembangunan rumah tinggal memiliki batasan pembiayaan, waktu dan tenaga kerja. Penjadwalan kerja dilakukan agar pemilik proyek dapat memperkirakan jumlah tenaga kerja serta biaya yang akan dikeluarkan.
Critical Path Method merupakan teknik penjadwalan proyek dengan acuan rangkaian jalur kegiatan terpanjang dalam satuan waktu. Penjadwalan dilakukan dengan menentukan kegiatan yang dapat dilakukan pada waktu bersamaan dan kegiatan yang harus selesai terlebih dulu untuk dapat memulai pekerjaan selanjutnya. Nilai rata-rata durasi waktu (most likely) pada tiap kegiatan digunakan untuk menghitung lama waktu seluruh rangkaian kegiatan proyek. Informasi yang dihasilkan dapat menjadi referensi bagi pemilik proyek untuk melakukan penjadwalan ulang dan memperkirakan besaran biaya yang terpengaruh oleh waktu, seperti jumlah tenaga dan biaya operasional selama pelaksanaan.
ABSTRACT
A plan of activities functions as a job description assisting the execution of the work to focus on the determined goal with all of the limitations. A plan consists of the elaboration of the material resource, man power and work schedule that should be conducted.
As a kind of a small scale project, a house living construction conceives limitations in cost, time and man power. A plan of scheduling activities is conducted to help the owner of the project to estimate the number of the employees and the spent cost.
Critical Path Method is a project scheduling technique which refers to the longest path of a sequence of activities in a time unit. Scheduling is conducted by determining activities that can be conducted in the same time and activities that must be accomplished first before starting other activities. Most likely value of each activity is used to calculate the duration of the whole project activities sequence. The resulted information can be used as a reference by the owner of the project to conduct a rescheduling process and to estimate the amount of cost influenced by time, such as the number of employees and the amount of operational cost during the process.
KATA PENGANTAR
Puji syukur kepada Tuhan atas penyertaan-Nya selama penulisan tugas akhir ini hingga selesai.
Tugas akhir dengan judul “Program Bantu Pengelolaan Proyek Rumah Tinggal dengan Critical Path Method” ini merupakan tugas akhir penulis yang diajukan untuk memperoleh gelar Sarjana Strata 1 di Fakultas Teknik, Jurusan Teknik Informatika Universitas Sanata Dharma, Yogyakarta.
Tentunya penyelesaian tugas akhir ini tidak lepas dari dukungan banyak pihak :
1. Bapak St. Wisnu Wijaya, S.T.,M.T. selaku dosen pembimbing yang dengan setia dan penuh kesabaran mendampingi dan memberikan dukungannya.
2. Bapak DS. Bambang Soelistijanto, S.T. H. Agung Hernawan, S.T. Alb. Agung Hadhiatma, S.T.,M.T. selaku dosen penguji yang memberikan kesan tersendiri pada saat pendadaran. Semangat, keceriaan dan kelapangan hati Bapak sekalian memberi alasan untuk tidak menyerah. 3. Romo Gregorius Heliarko, sebagai Romo, Dekan, dan teman bercerita.
Terima kasih untuk semangat dan bantuan yang diberikan.
5. Civitas Akademika Fakultas Teknik yang memberikan banyak bantuan, semangat dan kemudahan bagi penulis untuk menyelesaikan studi Strata 1 di Universitas Sanata Dharma.
6. Bapak RAJ Soeharto dan Ibu Maria Sudiarsih yang telah mendidik penulis untuk tetap bertahan. Terima kasih atas dukungan materi dan doanya yang lebih dari cukup.
7. Mas Agus yang sudah memberikan contoh untuk gigih. Mas Hari yang memberikan teladan kebijaksanaan. Mas Tri yang memberi semangat dan dukungan di saat-saat genting. Mas Ria dan Dik Sisil yang menjadi pengantara.
8. Teman-teman sekelas yang sudah semakin menghilang. Terima kasih atas pinjaman banyak tulisan, buku dan kode programnya.
9. Warga Yadara Puluhdadi dan Lingkungan Stefanus Gereja Maria Asumpta yang sudah menerima penulis sebagai warga baru. Sangat menenangkan dan memberi semangat untuk segera selesai kuliah.
10. Semua pihak yang membantu baik langsung mau pun tidak langsung. Dengan materi mau pun sekedar doa. Semuanya berarti lebih dari yang kalian bayangkan.
11. Tidak lupa untuk diriku sendiri, terima kasih untuk tidak pernah menyerah, meski pergulatan itu belum selesai sampai akhir jaman. Ini harga yang pantas untuk dibayar.
DAFTAR ISI
HALAMAN JUDUL... i
HALAMAN PERSETUJUAN... iii
HALAMAN PENGESAHAN...Error! Bookmark not defined. HALAMAN PERSEMBAHAN ... v
HALAMAN MOTTO ... vi
HALAMAN PERNYATAAN ... vii
ABSTRAKSI ... viii
ABSTRACT... ix
KATA PENGANTAR ... x
DAFTAR ISI... xii
DAFTAR TABEL... xiv
DAFTAR GAMBAR ... xv
1.5. Metodologi Penelitian ... 4
1.6. Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 6
2.1. Critical Path Method ... 6
2.1.1 Langkah Perencanaan Proyek dengan CPM ... 9
2.1.2 Menentukan Jalur Kritis... 10
2.2. Analisis dan Perancangan Sistem ... 13
2.3. Visual Basic ... 15
BAB III ANALISIS DAN DESAIN SISTEM... 17
3.1. Identifikasi Masalah ... 17
3.2. Analisis Masalah ... 18
3.3. Ruang Lingkup Sistem... 21
3.4. Perancangan Sistem ... 22
3.4.1 Data Flow Diagram... 22
3.4.2 Entity Relationship Diagram... 25
3.4.3 Rancangan Antar Muka... 29
3.4.3.2 Informasi Proyek... 32
3.4.3.3 Daftar Pekerjaan... 33
3.4.3.4 Daftar Material ... 35
3.4.3.5 Data Pekerja ... 36
3.4.4 Analisa Kebutuhan Sistem ... 37
3.4.4.1 Perangkat lunak... 37
3.4.4.2 Perangkat keras ... 38
BAB IV ANALISIS HASIL ... 39
4.1. Pengkodean Aplikasi... 39
4.1.1 Koneksi Database... 39
4.1.2 Menu Utama MyHouse ... 39
4.1.3 Form Informasi Proyek ... 40
4.1.4 Form Data Pekerja... 42
4.1.5 Form Data Material ... 45
4.1.6 Form Data Pekerjaan... 46
4.1.7 Form Jalur Kritis Proyek... 49
4.1.8 Output Laporan Perencanaan ... 50
4.2. Analisa Hasil ... 52
BAB V KESIMPULAN DAN SARAN... 54
5.1 Kesimpulan ... 54
5.2 Saran... 54
DAFTAR PUSTAKA ... 56
DAFTAR TABEL
Tabel 2. 1 Perbandingan CPM dan PERT... 8
Tabel 2. 2. Notasi dalam CPM ... 11
Tabel 2. 3. Pekerjaan Awal ... 11
Tabel 2. 4 Perhitungan waktu tunda... 13
Tabel 3. 1 Daftar Kegiatan ... 19
Tabel 3. 2 Tabel Entitas Pekerja ... 27
Tabel 3. 3 Tabel Entitas Material... 27
DAFTAR GAMBAR
Gambar 3. 1. Konteks Diagram ... 22
Gambar 3. 2. Diagram Berjenjang ... 23
Gambar 3. 3. Diagram Level 1 (a) ... 23
Gambar 3. 4. Diagram Level 1 (b) ... 24
Gambar 3. 5. ER Diagram... 25
Gambar 3. 6. Relasi antar tabel ... 26
Gambar 3. 7. Flowchart 1... 29
Gambar 3. 8. Flowchart 2... 30
Gambar 3. 9. Menu utama MyHouse ... 31
Gambar 3. 10. Informasi Proyek ... 32
Gambar 3. 11. Dialog Buka Proyek ... 32
Gambar 3. 12. Input Pekerjaan Khusus... 33
Gambar 3. 13. Form Penjadwalan Pekerjaan ... 34
Gambar 3. 14. Output Jalur Kritis... 34
Gambar 3. 15. Daftar Material ... 35
Gambar 3. 16. Output Daftar Material ... 35
Gambar 3. 17. Form Data Pekerja... 36
Gambar 3. 18. Form Standar Upah ... 36
Gambar 3. 19. Form Kas Bon ... 37
Gambar 3. 20. Data Pekerja ... 37
Gambar 4. 2 Form Informasi Proyek ... 41
Gambar 4. 3. Form Daftar Pekerja ... 43
Gambar 4. 4. Form Data Material ... 45
Gambar 4. 5 Form Daftar Material ... 46
Gambar 4. 6. Input data pekerjaan khusus ... 47
Gambar 4. 7 Input data atribut pekerjaan khusus... 48
Gambar 4. 8. Form Jalur Kritis Proyek ... 50
Gambar 4. 9. Keluaran Laporan Perencanaan Proyek ... 51
PENDAHULUAN
1.1. Latar Belakang
Teknologi komputer yang semakin luas menjangkau masyarakat membuka peluang pemanfaatan yang lebih besar dalam pemecahan masalah sehari-hari. Dengan memanfaatkan teknologi komputer, perencanaan kegiatan hingga pengawasan pelaksanaan kegiatan dapat dilakukan dengan lebih mudah, cepat dan tepat.
Perencanaan kerja dan penjadwalan dalam proyek, menjadi masalah yang perlu dikelola dengan baik. Salah satu bentuk kegiatan proyek dalam lingkup kecil adalah pembangunan rumah tinggal. Dalam perencanaan pembangunan rumah tinggal, minimal terdapat 3 hal umum yang menjadi fokus perhatian : material yang dibutuhkan, dana yang akan dikeluarkan, dan penjadwalan kegiatan. Pengelolaan proyek yang dilakukan meliputi perencanaan bahan baku yang akan digunakan sesuai dengan kebutuhan rancangan yang diinginkan. Kebutuhan dana menyesuaikan dengan material dan tenaga kerja yang digunakan. Sementara pengelolaan jadwal kerja yang akan ditempuh memiliki pengaruh besar terhadap nilai ekonomis rumah tinggal yang dibangun. Semakin cepat waktu proyek diselesaikan, biaya yang dibutuhkan relatif lebih sedikit.
Critical Path Method/CPM merupakan salah satu metode yang digunakan dalam
proses perencanaan kerja untuk menentukan urutan langkah kerja yang akan dilakukan dengan fokus pada efektifitas kerja sehingga meminimalkan penggunaan sumber daya - waktu, biaya, tenaga - yang dibutuhkan untuk menyelesaikan keseluruhan tugas.
Microsoft Corporation telah menyediakan perangkat lunak yang dapat
membantu pengelolaan proyek melalui program aplikasi Microsoft Project, dengan versi yang terus berkembang. Program aplikasi ini sifatnya umum dengan tujuan dapat digunakan oleh bermacam proyek, termasuk untuk proyek rumah tinggal sekali pun. Namun tidak semua orang dapat dengan mudah menggunakannya secara optimal, justru karena sifatnya yang kompleks.
Program aplikasi yang akan dibangun dalam karya ini, merupakan program bantu yang khusus untuk pengelolaan proyek rumah tinggal. Dengan program bantu ini, perencanaan material, tenaga kerja, biaya dan penjadwalan kerja dapat dilakukan secara lebih mudah. Penggunaan Critical Path Method ditujukan agar pengguna dapat memperoleh informasi unit kegiatan mana yang perlu diperhatikan lebih serius dalam pengerjaannya serta mengetahui nilai toleransi yang ada pada unit-unit kegiatan.
1.2. Rumusan Masalah
Rumusan masalah dari gagasan dalam karya tulis ini adalah :
1.3. Batasan Masalah
Batasan masalah yang digunakan dalam tulisan ini adalah :
1. Input yang dijadikan referensi penjadwalan adalah durasi waktu rata-rata kegiatan dapat diselesaikan (most likely) dan kegiatan pendahulu (predecessors).
2. Daftar material dan tenaga kerja menggunakan daftar yang terdapat dalam database dan dapat ditambahkan sesuai kebutuhan. Nilai atribut harga atau upah dapat dirubah mengikuti standar harga yang sedang berlaku.
3. Daftar kegiatan umum bersifat tetap, tidak dapat dirubah. Penambahan kegiatan hanya pada kegiatan khusus.
4. Informasi yang dihasilkan oleh sistem adalah daftar kebutuhan material dan tenaga kerja, dengan jumlah biaya masing-masing, serta jadwal kegiatan untuk menyelesaikan proyek.
5. Bahasa pemrograman untuk interface sistem menggunakan Visual Basic 6.0 dan Microsoft Acess 1997 untuk pengelolaan database.
1.4. Tujuan Penelitian
Penelitian ini ditujukan untuk merancang dan membangun aplikasi yang dapat membantu pengelolaan proyek rumah tinggal dengan menggunakan Critical Path Method. Dalam aplikasi yang akan dibangun, CPM digunakan untuk
1.5. Metodologi Penelitian
Metodologi yang digunakan dalam penelitian ini mengacu pada Structured Analysis and Design dari pendekatan model-driven (Whitten-Bentley;2004).
Langkah yang dilakukan dalam pendekatan ini :
1. Scope definition, yaitu mengidentifikasi masalah dasar yang akan diselesaikan serta membuat usulan perencanaan.
2. Problem analysis, yaitu menganalisa rencana pemecahan masalah yang akan dilakukan. Termasuk di dalam langkah ini, analis memberikan alternatif pilihan solusi masalah.
3. Requirement analysis, melakukan analisis kebutuhan untuk pemecahan masalah yang dipilih. Identifikasi masalah untuk pemahaman masalah yang akan diselesaikan dengan sistem.
4. Logical design, merupakan langkah perancangan pemecahan pada tingkat logika. Langkah ini menggambarkan struktur data, proses yang dilakukan, hingga aliran data.
5. Physical design, yaitu melakukan perancangan fisik dalam bentuk arsitektur aplikasi, database yang digunakan serta rancangan antar muka.
6. Construction and testing dilakukan dengan membuat aplikasi sistem yang telah dirancang dalam kode program.
1.6. Sistematika Penulisan
BAB I PENDAHULUAN
Bagian ini menjelaskan latar belakang masalah, batasan masalah, rumusan masalah, tujuan penulisan dan sistematika penulisan.
BAB II LANDASAN TEORI
Berisi landasan teori yang digunakan sebagai dasar penulisan, meliputi Critical Path Method, konsep analisis dan desain sistem terstruktur serta
Visual Basic sebagai bahasa pemrograman yang digunakan.
BAB III ANALISIS DAN DESAIN SISTEM
Bab ini membahas kebutuhan sistem dari identifikasi masalah dan perancangan program aplikasi yang akan dibangun pada tingkatan rancangan user interface.
BAB IV ANALISIS HASIL
Bab ini berisi pembuatan kode program dari rancangan yang dibentuk serta analisis hasil program disertai dengan kelebihan dan kekurangannya.
BAB V KESIMPULAN DAN SARAN
BAB II
LANDASAN TEORI
Manajemen proyek merupakan kegiatan pengorganisasian rangkaian aktivitas dengan mengalokasikan sumber daya yang dimiliki melalui perencanaan, penjadwalan dan kontrol untuk mencapai waktu penyelesaian dan biaya yang optimal sehingga mendapatkan hasil yang diharapkan1. Deskripsi ini menekankan bahwa rangkaian aktivitas yang dimaksud berada dalam ruang lingkup manajemen organisasi yang memiliki fungsi perencanaan, penjadwalan dan kontrol. Di samping itu, rangkaian aktivitas ini dilakukan sebagai satu kegiatan yang memiliki batasan waktu dan biaya tertentu2.
Pengelolaan proyek rumah tinggal merupakan salah satu bentuk dari manajemen proyek dalam lingkup keseharian yang sederhana. Dengan demikian, aktivitas yang dilakukan dalam pengelolaan proyek rumah tinggal meliputi perencanaan sumber daya, penjadwalan kerja dan pengawasan proses kerja proyek.
2.1. Critical Path Method
Critical Path Method / CPM merupakan salah satu teknik yang digunakan
dalam penjadwalan proyek. Beberapa teknik lainnya terdapat Program Evaluation and Review Technique (PERT) dan penggunaan diagram Gantt. CPM digunakan
untuk :
1
James A. Fitzsimmons & Mona J. Fitzsimmons. 2006. Johanes Supranto memberikan deskripsi yang serupa terhadap efesiensi waktu, tenaga, dan biaya dalam pelaksanaan proyek
2
1. Memberikan gambaran aktifitas yang dilakukan dalam pelaksanaan proyek.
2. Memperkirakan lama waktu pelaksanaan kegiatan / proyek.
3. Mengetahui aktifitas yang memiliki waktu kritis terhadap penyelesaian proyek.
4. Mengetahui berapa lama sebuah aktifitas dapat ditunda tanpa menunda penyelesaian keseluruhan proyek.
CPM menggunakan prinsip dasar yang sama dengan teknik pendahulunya, PERT. Bentuk diagram yang digunakan menggambarkan jaringan kerja berupa node yang terhubungkan dengan anak panah. Teknik pembuatan diagram ini
dibedakan berdasarkan acuan yang digunakan sebagai representasi aktifitas kerja. Teknik yang pertama adalah activity on arrow (AOA). Tiap arrow merepresentasikan aktifitas kerja. Sementara node yang terhubungkan merepresentasikan urutan kerja.
Teknik kedua adalah activity on node (AON). Tiap node merepresentasikan aktifitas kerja. Sementara anak panah merepresentasikan urutan kerja yang dilakukan3.
Perbedaan antara CPM dengan PERT terlihat dalam tabel perbandingan yang dikemukakan Iman Soeharto [1995]4.
3
William J. Stevenson, Operations Management, McGrawHill 2002
4
Parameter CPM PERT
Estimasi kurun waktu kegiatan
Deterministik, satu angka
Probabilistik, tiga angka
Arah orientasi Ke kegiatan Ke peristiwa/kejadian Identifikasi jalur kritis
dan float
Dengan hitungan maju
dan mundur Sama dengan CPM Kurun waktu
penyelesaian proyek
Ditandai dengan suatu angka tertentu
Angka tertentu ditambah varians
Kemungkinan
mencapai target jadwal
Hitungan / analisis untuk maksud tersebut tidak ada
Dilengkapi cara khusus
Menganalisis jadwal
yang ekonomis Prosedurnya jelas
Perlu dikonversikan ke bentuk CPM
Tabel 2. 1 Perbandingan CPM dan PERT
Dalam penyelesaian proyek, kedua metode ini memiliki perbedaan mendasar terhadap orientasi waktu penyelesaian proyek. Semakin lama waktu yang diperlukan untuk penyelesaian sebuah proyek, biaya yang dikeluarkan akan semakin besar pula. Dengan metode PERT, perkiraan waktu selesainya proyek tidak dapat ditentukan secara pasti, yang tentu saja akan mempengaruhi pada perencanaan biaya yang diperlukan. Dasar perhitungan yang digunakan pada perkiraan waktu penyelesaian proyek dengan PERT yaitu :
1. Optimistic value : yaitu waktu minimal untuk menyelesaikan satu aktivitas dengan mengasumsikan tanpa gangguan dan kebutuhan sumber daya yang sudah tersedia.
3. Pessimistic value : waktu maksimal untuk menyelesaikan satu aktivitas dengan pertimbangan kemungkinan gagal atau hambatan.
Pada CPM nilai yang digunakan hanya satu dengan mengidentifikasikan unit kegiatan atau aktivitas yang memiliki tingkat prioritas paling tinggi untuk dilakukan5. Aktivitas yang dikategorikan sebagai titik kritis adalah aktivitas yang memiliki waktu pelaksanaan paling lama, sehingga dapat mempengaruhi waktu selesainya proyek6.
2.1.1 Langkah Perencanaan Proyek dengan CPM
Langkah-langkah yang dilakukan dalam perencanaan proyek menggunakan CPM adalah :
1. Tentukan unit kegiatan yang akan dilakukan
Dilakukan berdasarkan daftar pekerjaan yang dilakukan. Untuk membuat daftar pekerjaan, dapat dilakukan dengan teknik work breakdown structure.
2. Tentukan urutan kerja dari seluruh unit kegiatan yang ada
Urutan ini akan membentuk hubungan antar unit kegiatan, di mana unit kegiatan yang satu akan mempengaruhi unit kegiatan yang lain. 3. Menggambarkan diagram jaringan kerja
4. Menentukan lama waktu pelaksanaan tiap unit kegiatan 5. Menentukan titik-titik kritis dari jaringan kerja
5
Martin E. Modell, 1996
6
Dengan menggunakan teknik activity on node, titik kritis adalah unit kegiatan yang memiliki waktu pelaksanaan paling lama dan berpengaruh pada penyelesaian proyek.
6. Mengevaluasi diagram CPM sesuai perkembangan proyek
2.1.2 Menentukan Jalur Kritis
Jalur kritis merupakan rangkaian unit kegiatan yang waktu pelaksanaannya maksimum sehingga menjadi ukuran dari waktu total pelaksanaan proyek. Aktivitas yang berada di dalam jalur kritis tidak memiliki waktu tunda (slack time) karena penundaan aktivitas yang merupakan titik kritis akan mengakibatkan
penyelesaian seluruh proyek tertunda7. Dengan demikian seluruh aktivitas yang tidak berada di dalam jalur kritis akan memiliki waktu tunda.
Tujuan dari penjadwalan menggunakan Critical Path Method adalah memperkirakan waktu akhir dari pelaksanaan sebuah proyek. Dengan menggunakan most-likely value, perencana proyek dapat mengatur kembali jadwal pada masing-masing aktivitas sehingga pelaksanaan proyek dapat diperpanjang atau diperpendek sesuai kebutuhan. Notasi matematis yang digunakan untuk menentukan jalur kritis ditampilkan pada tabel 2.2.
7
Item Simbol Definisi
Durasi t Durasi tiap kegiatan yang diharapkan
Early Start ES Waktu paling awal sebuah kegiatan dapat dimulai Early Finish EF Waktu paling awal sebuah kegiatan dapat selesai
Latest Start LS
Waktu paling lambat sebuah kegiatan dapat dimulai, tanpa mengakibatkan penundaan waktu total
penyelesaian proyek
Latest Finish LF
Waktu paling lambat sebuah kegiatan dapat berakhir, tanpa mengakibatkan penundaan waktu total
penyelesaian proyek
Total Slack TS Lamanya waktu penundaan sebuah kegiatan, tanpa mengakibatkan penundaan penyelesaian proyek
Tabel 2. 2. Notasi dalam CPM
Waktu awal untuk kegiatan pertama adalah : 0, dan selanjutnya perhitungan untuk kegiatan berikutnya mengikuti notasi forward pass 8:
ES = EFpredecessor
EF = ES + t
Pada contoh kegiatan pekerjaan awal berikut ini digunakan durasi waktu dengan ukuran jam kerja. Durasi menggunakan most likely value untuk 1 hari sama dengan 10 jam kerja
Index Pekerjaan Durasi
(jam)
Tabel 2. 3. Pekerjaan Awal
8
Diagram jaringan kerja yang terbentuk dengan teknik AOA :
Keterangan
Event (keadaan) 0. Keadaaan awal 1. Lahan sudah siap 2. Sumur sudah jadi
3. Rumah Bedeng dan sumur sudah jadi
Pekerjaan (durasi) – most likely value
Baik pada tabel atau pun diagram, diketahui bahwa rangkaian pekerjaan awal berakhir pada saat pekerjaan A3 atau A4 selesai. Keduanya memiliki nilai EF yang berbeda. Pekerjaan dengan nilai EF terbesar menunjukkan jalur kritis. Dengan rumusan forward pass, diperoleh EF untuk A1 adalah ES + d = 0 + 8. Selanjutnya diperoleh :
ES(A2) = 8 EF(A2)= 8+30 ES(A3)=38 EF(A3)=38+12 ES(A4)=8 EF(A4)=8+5
Dari perhitungan tersebut EF(A3) bernilai 50 dan EF(A4) bernilai 13. Dengan demikian jalur kritis pada pekerjaan awal adalah (A1)-(A2)-(A3).
Untuk waktu akhir start dan finish, dihitung untuk setiap kegiatan dari kegiatan terakhir pada jaringan kerja dan bergerak mundur ke kegiatan awal. Perhitungan ini mengikuti notasi backward pass :
LF = LSsuccessor
LS = LF - t
Waktu tunda (Float/Slack) merupakan jumlah waktu yang menjadi batas toleransi sebuah kegiatan dapat ditunda atau diperpanjang pelaksanaannya. Untuk menghitung besarnya waktu tunda digunakan rumusan berikut :
TS = LF- EF; atau TS = LS - ES
Dengan rumusan tersebut, untuk menentukan waktu tunda, diperlukan perhitungan forward pass dan bakwards pass,
Pada contoh tabel pekerjaan awal sebelumnya akan dicari jalur kritis dan waktu tunda yang dimiliki. Rumusan forward dan backward pass akan disertakan dalam tabel.
Index Pekerjaan Durasi
(jam)
Tabel 2. 4 Perhitungan waktu tunda
2.2. Analisis dan Perancangan Sistem
Membangun sebuah sistem tidak cukup dengan mengandalkan siklus hidup sistem. Tetapi diperlukan pula teknik dan metodologi tertentu untuk menyusun perencanaan sistem. Secara garis besar, pembuatan sistem memiliki tahap analisa, perancangan, implementasi dan evaluasi.
terdiri dari : pengenalan masalah, penyediaan alternatif solusi hingga pemilihan solusi. Pendekatan yang dapat digunakan dalam analisis sistem :
1. Model-driven approaches; yang terdiri dari :
a. Analisa terstruktur dengan fokus pada aliran data dalam perangkat lunak
b. Rekayasa perangkat lunak yang berfokus pada struktur penyimpanan data dalam sistem.
c. Analisa berorientasi objek yang melihat sebuah entitas sebagai data dan metode
2. Accelerated System Analysis; yang terdiri dari : a. Discovery prototyping
b. Rapid architecture analysis 3. Requirement Discovery Methods
a. Fact-Finding Technique
b. Joint Requirements Planning
4. Business Process Redesign Methods
5. Framework for the Application of Systems Thinking (FAST) System Analysis Strategies
Pada pendekatan model-driven dengan menggunakan analisis terstruktur, langkah dasar yang dilakukan :
2. Problem analysis, yaitu menganalisa rencana pemecahan masalah yang akan dilakukan. Termasuk di dalam langkah ini, analis memberikan alternatif pilihan solusi masalah.
3. Requirement analysis, melakukan analisis kebutuhan untuk pemecahan masalah yang dipilih. Identifikasi masalah untuk pemahaman masalah yang akan diselesaikan dengan sistem.
4. Logical design, merupakan langkah perancangan pemecahan pada tingkat logika. Langkah ini menggambarkan struktur data, proses yang dilakukan, hingga aliran data.
5. Physical design, yaitu melakukan perancangan fisik dalam bentuk arsitektur aplikasi, database yang digunakan serta rancangan antar muka. 6. Construction and testing dilakukan dengan membuat aplikasi sistem yang
telah dirancang dalam kode program.
2.3. Visual Basic
Visual Basic adalah bahasa pemrograman tingkat tinggi yang merupakan pengembangan dari bahasa BASIC (Beginners' Allpurpose Symbolic Instruction Code) versi DOS. Kata “Visual” menunjukkan cara yang digunakan untuk
membuat Graphical User Interface (GUI). Dengan cara ini, pemrogram tidak lagi menuliskan instruksi pemrograman dalam kode-kode baris, tetapi secara mudah dapat dilakukan drag dan drop objek-objek yang akan digunakan.
GUI Windows. Visual Basic menggunakan konsep event-driven programming yang berarti bahwa aktifasi perintah dalam program menunggu adanya respon dari user berupa event/ kejadian tertentu (tombol diklik, menu dipilih dan lain-lain).
Ketika event terdeteksi, kode program yang berhubungan dengan event akan dijalankan.
BAB III
ANALISIS DAN DESAIN SISTEM
3.1. Identifikasi Masalah
Pengelolaan proyek rumah tinggal meliputi aktifitas untuk mengalokasikan sumber daya yang tersedia sesuai dengan batasan yang digunakan. Sumber daya yang dimiliki dalam pengelolaan rumah tinggal dikelompokkan sebagai :
1. sumber daya uang (money)
2. sumber daya bahan baku (material) 3. sumber daya manusia (man)
Besaran tiap sumber daya tergantung dari rencana bangunan. Dalam pemenuhannya, seringkali dilakukan penyesuaian yang kemudian mempengaruhi besaran biaya atau pun rencana bangunan awal. Adanya panduan yang terdokumentasi secara baik dimaksudkan untuk menjaga konsistensi rencana awal dengan pelaksanaan tanpa melebihi batas toleransi yang tersedia.
Umpamakan seorang pemilik proyek sudah memiliki rencana bangunan, material dan lahan kosong yang siap dikerjakan. Langkah umum yang akan dilakukan berdasarkan urutan kerja :
4. Pekerjaan kusen pintu dan jendela 5. Pekerjaan atap
6. Pekerjaan lantai 7. Instalasi listrik 8. Instalasi Air 9. Pengecatan 10.Finishing
Masing-masing pekerjaan memiliki beberapa pekerjaan khusus durasi waktu tertentu. Seperti disebutkan sebelumnya, proyek rumah tinggal memiliki batasan biaya dan waktu. Terkait hal tersebut, muncul beberapa pertanyaan yang dapat dijadikan panduan dalam analisa masalah :
1. Apa saja pekerjaan khusus yang perlu dilakukan?
2. Berapa lama maksimum masing-masing pekerjaan harus diselesaikan? 3. Berapa lama maksimum seluruh pekerjaan diselesaikan?
4. Bagaimana alternatif untuk mempercepat atau memperlambat waktu penyelesaian seluruh kegiatan?
5. Berapa banyak tenaga yang diperlukan untuk menyelesaikan seluruh kegiatan?
6. Berapa besar biaya optimum yang akan dikeluarkan?
3.2. Analisis Masalah
No. Jenis Pekerjaan Detail Pekerjaan 1 Persiapan lahan
2 Pembuatan sumur
3 Pembuatan rumah bedeng
1 Pekerjaan awal
4 Bouwplank 1 Galian pondasi 2 Cor pondasi 3 Tutup pondasi 2 Pekerjaan pondasi
4 Cor sloof bawah 1 Pemasangan besi tiang 2 Cor tiang
3 Pekerjaan dinding
3 Pemasangan bata dinding 1 Pemasangan kusen pintu 2 Pemasangan kusen jendela 3 Pemasangan pintu
4 Pekerjaan kusen pintu dan jendela
4 Pemasangan jendela
1 Pemasangan kuda-kuda atap 2 Pemasangan rangka atap 3 Pemasangan genteng 4 Pemasangan rangka plafon 5 Pemasangan plafon
5 Pekerjaan atap
6 Pemasangan talang 6 Pekerjaan lantai 1 Pemasangan tegel
1 Pemasangan instalasi induk 2 Pemasangan instalasi sekunder 7 Instalasi listrik
3 Finishing instalasi listrik 1 Pembuatan septik tank 2 Pembuatan menara tandon 3 Pemasangan tandon 4 Pemasangan pompa 5 Instalasi pipa air bersih 8 Instalasi Air
6 Instalasi pipa air kotor 1 Pengecatan plafon 2 Pengecatan tembok 9 Pengecatan
3 Pengecatan kayu 1 Pembuatan pagar 2 Pembuatan taman 3 Penangkal petir
6 Pemasangan kerangka dak atas 10 Kegiatan Lain-lain
Tabel daftar pekerjaan tersebut dapat ditambah atau dikurangi sesuai kebutuhan. Sebagai contoh, pelaksanaan proyek tidak menggunakan rumah bedeng atau ingin menambahkan pekerjaan pembuatan bak kontrol untuk sanitasi air kotor. Lama waktu pelaksanaan proyek memperhatikan durasi tiap pekerjaan dan jenis pekerjaan yang dapat dikerjakan pada waktu bersamaan.
Dari input daftar pekerjaan, durasi dan predecessor yang dimiliki tiap pekerjaan, sistem akan menghitung nilai slack untuk tiap pekerjaan dan jalur kritis yang terbentuk. Pada tahap ini, sistem melakukan penjadwalan dengan metode Critical Path Method. Informasi yang dihasilkan berupa daftar pekerjaan yang
masuk dalam jalur kritis disertai dengan nilai waktu tunda yang dimiliki masing-masing pekerjaan. Informasi ini dapat menjadi pertimbangan user untuk mengedit kembali input durasi atau predecessor dari tiap pekerjaan untuk mendapatkan critical path yang optimal. Optimalisasi dapat berarti memaksimumkan jalur atau
meminimumkan jalur. Perubahan ini tentunya akan mempengaruhi jumlah pekerja atau material yang dibutuhkan.
Langkah selanjutnya adalah memperkirakan jumlah pekerja yang dibutuhkan. Dengan menentukan jumlah pekerja, jadwal kerja dapat disusun lebih optimal, yang nantinya mempengaruhi besaran biaya yang dikeluarkan. Sistem memberikan panduan pengelompokan pekerja berdasarkan pekerjaan yang ditangani :
4. Tukang listrik 5. Tukang besi
Langkah berikutnya menentukan daftar material yang dibutuhkan. Dan langkah terakhir adalah menyusun laporan yang diinginkan.
Klasifikasi data yang digunakan dalam sistem ini adalah : 1. Daftar pekerjaan.
Terdiri dari 2 kelompok : 10 jenis pekerjaan umum, yang dijadikan standar dalam sistem, dan detail pekerjaan pada tiap jenis pekerjaan. 2. Data material konstruksi.
Data ini dikelompokkan ke dalam kelas alat dan bahan. Kelas alat berisi daftar harga alat-alat pertukangan. Kelas bahan berisi daftar harga bahan. Keduanya disusun secara alphabetis.
3. Data pekerja.
Daftar harga yang mengikuti daftar material tentu saja tidak dapat dipastikan karena terpengaruh perubahan harga pasar. Untuk itu, daftar harga ini diinputkan user sebagai hasil dari survei pasar yang dilakukan.
3.3. Ruang Lingkup Sistem
3.4. Perancangan Sistem
Perancangan sistem menggunakan pendekatan model-driven dilakukan dengan mengikuti tahap pembuatan :
1. rancangan logika (logical design) dengan menggunakan Entity Relationship Diagram dan Data Flow Diagram
2. rancangan fisik (physical design)
3.4.1 Data Flow Diagram
Proses yang dilakukan di dalam sistem pengelolaan proyek rumah tinggal digambarkan dengan diagram arus data berikut :
Gambar 3. 1. Konteks Diagram
Gambar 3. 2. Diagram Berjenjang
Data Material User
5
Pembuatan Laporan 2
Data Material
Daftar Material Dibutuhkan Harga, Jumlah
Data Pekerjaan Umum & Khusus
User
5
Pembuatan Laporan 4
Penjadwalan
Durasi, Predecessor Daftar Jalur Kritis ProyekJadwal Kegiatan Proyek Laporan Daftar Material
Laporan Daftar Pekerjaan
3.4.2 Entity Relationship Diagram
Nama Proyek Alamat Proyek
Pekerjaan Umum Banyak ke / dari
PEKERJAANUMUM
Gambar 3. 6. Relasi antar tabel
Rancangan logika menjelaskan rancangan sistem berdasarkan tabel yang digunakan dan aliran data di dalam sistem. Dengan menggunakan diagram relasi entitas (entity relationship diagram), ditentukan terlebih dulu entitas utama yang ada dalam pengelolaan proyek rumah tinggal : Pekerja, Material, Pekerjaan, dan Proyek.
P0 PERSONAL P1 PEKERJA
IDPerson text 10 Spesialisasi text 50
Nama text 50 Upah cur 8
Alamat text 50
P2 POTONGAN P3 UPAH
Kwitansi text 10 IDPerson text 10
Tanggal date 8 Spesialisasi text 50
Keterangan text 50 Hari long 4
Jumlah cur 8 Potongan cur 8
IDPerson text 10 Total cur 8
Tabel 3. 2 Tabel Entitas Pekerja
MATERIAL PROYEK MATERIAL
IMB text 20 Kode text 10
Kode text 10 Nama text 50
Jumlah long 4 Kelas text 10
Harga cur 8 Satuan text 10
Harga cur 8
Tabel 3. 3 Tabel Entitas Material
PEKERJAAN UMUM PEKERJAAN KHUSUS
IDJenis text 3 IDJenis text 3
Jenis text 50 IDKhusus text 10
Durasi long 4 Khusus text 50
PEKERJAAN LAPORAN PROYEK
IMB text 20 IMB text 20
IDKhusus text 10 Nama Proyek text 50
Durasi long 4 Alamat Proyek text 50
Pred text 10 Nilai Proyek cur 8
Slack long 4 Awal date 8
Akhir date 8
Durasi nmbr 4
IDPerson text 10
Tabel 3. 4 Tabel Entitas Pekerjaan dan Proyek
Entitas pekerjaan terdiri dari tabel pekerjaan umum yang menampung 10 jenis kegiatan yang bersifat tetap dalam sistem, seperti pada tabel 3.1. User dapat menambah daftar pekerjaan melalui tabel Pekerjaan Khusus. Untuk keperluan penjadwalan dengan metode CPM, sebagai sasaran utama dalam sistem ini, tabel Pekerjaan akan menampung data input untuk menentukan jalur kritis dan memberikan keluaran perhitungan waktu tunda (slack).
nilai akhir Proyek.
3.4.3 Rancangan Antar Muka
Rancangan antar muka merupakan rancangan tampilan untuk menerima input user, termasuk di dalamnya menu yang disediakan dalam aplikasi. Aliran dialog menu, input hingga tampilan keluaran digambarkan dalam diagram alir berikut :
Gambar 3. 8. Flowchart 2
3.4.3.1Tampilan Menu
Gambar 3. 9. Menu utama MyHouse
3.4.3.2Informasi Proyek
Gambar 3. 10. Informasi Proyek
Form informasi proyek akan dibuka jika user memilih menu ‘Proyek-Baru’ atau ‘Proyek-Buka’. Pada proyek baru, form ini berfungsi sebagai jendela input data. Sementara untuk pilihan membuka proyek, form ini berfungsi sebagai form dialog yang menampilkan isi data dari proyek yang diinginkan. Aktifasi form ini akan merubah status menu menjadi Enable all, yang berarti fasilitas Data dan Laporan dapat berfungsi.
3.4.3.3Daftar Pekerjaan
Gambar 3. 12. Input Pekerjaan Khusus
Gambar 3. 13. Form Penjadwalan Pekerjaan
Dari input penjadwalan pekerjaan proyek, sistem akan melakukan perhitungan dengan Critical Path Method untuk menghasilkan informasi yang ditampilkan pada tabel Jalur Kritis.
3.4.3.4Daftar Material
Gambar 3. 15. Daftar Material
Pada form daftar material, user memilih bahan bangunan yang dibutuhkan. Untuk bahan material yang belum ada dalam database, dapat ditambahkan dengan tombol ‘Baru’. Pengisian data material tambahan ini dilakukan pada form tersendiri. Dan untuk hasil rekap daftar material yang digunakan dalam proyek, ditampilkan dalam bentuk tabel
3.4.3.5Data Pekerja
Selain terdiri dari data diri pekerja yang terlibat, entitas pekerja memiliki sub entitas spesialisasi untuk mengelompokkan pekerja berdasarkan spesialisasi dan standar upahnya. Untuk keperluan pemotongan upah, diperlukan jendela dialog tersendiri. Sehingga interface yang dibangun untuk input entitas pekerja menjadi seperti di bawah :
Standar Upah Data Pekerja Kas Bon
Spesialisasi Nama Pekerja
Initial
Alamat
DATA PEKERJA
Gambar 3. 17. Form Data Pekerja
Gambar 3. 19. Form Kas Bon
Gambar 3. 20. Data Pekerja
3.4.4 Analisa Kebutuhan Sistem
Analisa kebutuhan sistem meliputi kebutuhan perangkat lunak dan keras yang akan digunakan pada implementasinya.
3.4.4.1Perangkat lunak
1. Bahasa pemrograman Visual Basic 6.0 untuk pengembangan antar muka antar sistem dan user.
2. Manajemen database dengan menggunakan Microsoft Access 1997 untuk pengelolaan data dan informasi dalam bentuk tabel.
3. Sistem Operasi berbasis Windows 9x
3.4.4.2Perangkat keras
Perangkat keras yang digunakan dalam implementasi program : 1. Personal Computer AMD Sempron 3000+
2. Memory 512 MB 3. Hard disk 80 GB
BAB IV
ANALISIS HASIL
4.1. Pengkodean Aplikasi
Perangkat lunak bantu pengelolaan proyek rumah tinggal ini diimplementasikan dengan menggunakan bahasa pemrograman Visual Basic 6.0. Implementasi program akan menjelaskan pembentukan program untuk setiap form dan interface yang digunakan.
4.1.1 Koneksi Database
Penampungan data dan informasi dalam program dikelola dengan menggunakan Microsoft Access 1997. Koneksi database yang dibangun menggunakan ActiveX Data Objects (ADO) Data Control. Variabel koneksi adalah cn dengan tipe global, yang disimpan pada condb.bas sehingga mudah diakses semua form yang digunakan di dalam program.
Global cn As Database Global idproyek As String Global statusproyek As Integer Global rsreport As Recordset Global rsperson As Recordset Global rsjob As Recordset
Public Sub Opendb()
Set cn = OpenDatabase(App.Path & "\MyHouse.mdb") End Sub
4.1.2 Menu Utama MyHouse
Start-up program akan mengaktifkan menu utama dari MyHouse dengan
menggunakan menu editor yang disediakan oleh Visual Basic. Menu pilihan ‘Buka’ dan ‘Baru‘ akan mengaktifkan form informasi proyek. Pada menu Buka, user diminta terlebih dulu memberikan input kode proyek untuk mengakses tabel yang diinginkan.
Gambar 4. 1 Menu Utama MyHouse
4.1.3 Form Informasi Proyek
Untuk pilihan Proyek - Buka, setelah dialog input kode proyek, form informasi proyek akan menampung data yang tersimpan di dalam tabel Laporan. Tabel ini hanya menampilkan data dan bersifat readonly.
Gambar 4. 2 Form Informasi Proyek
Private Sub saverecord() rsowner.AddNew
rsowner!idperson = txtid.Text rsowner!Nama = txtown.Text rsowner!alamat = txtownadd.Text rsowner.Update
rsreport.AddNew
rsreport!IMB = txtimb.Text
rsreport!Nama_proyek = txtname.Text rsreport!alamat_proyek = txtadd.Text rsreport!nilai_proyek = Val(txtval.Text) rsreport!idperson = txtid.Text
rsreport!catatan = txtnote.Text rsreport!durasi = txtdurasi.Text If cekval = 1 Then
rsreport!awal = tglstart.Value ElseIf cekval = 2 Then rsreport!akhir = tglend.Value End If
rsreport.Update idproyek = txtimb.Text
End Sub
Set rsreport = cn.OpenRecordset("Laporan") Set rsowner = cn.OpenRecordset("p0personal") If statusproyek = 0 Then
BlankForm
cmdok.Enabled = False ElseIf statusproyek = 1 Then
OpenForm
cmdok.Enabled = True End If
End Sub
4.1.4 Form Data Pekerja
Setelah melakukan pengisian data pada form informasi proyek, user akan kembali ke menu utama. Pada kondisi ini, menu data dan laporan sudah dapat diakses.
Gambar 4. 3. Form Daftar Pekerja
Tabel p0personal dan spesialisasi terhubungkan oleh tabel upah. Maka pengisian data spesialisasi pada form-tab data pekerja menggunakan kode berikut:
ElseIf filemap.Tab = 1 Then If txtname.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title txtname.SetFocus
ElseIf txtadd.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title txtadd.SetFocus
ElseIf dcskilldp.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title dcskilldp.SetFocus
rsp1.Index = "Spesialisasi" If filemap.Tab = 0 Then If txtwage.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title txtwage.SetFocus
Else
rsp2.AddNew
rsp2!Kwitansi = txtkwitansi.Text rsp2!Tanggal = txttgl.Value rsp2!Keterangan = txtnote.Text rsp2!Jumlah = Val(txtnominal.Text) rsp2!idperson = dcpersonal.Text rsp2.Update
txtkwitansi.SetFocus BlankForm
End If
4.1.5 Form Data Material
Koleksi data material tersimpan dalam tabel Material. Untuk menambah record material baru dilakukan dengan form data material. Sementara untuk menyusun daftar material yang dibutuhkan dalam proyek digunakan form daftar material.
Gambar 4. 5 Form Daftar Material
Kode program yang digunakan untuk masing-masing form tersebut :
Private Sub cmdadd_Click() MsgBox ("save")
rsmat.AddNew
rsmat!Kode = txtindex.Text rsmat!Nama = txtname.Text rsmat!Kelas = txtklas.Text rsmat!Satuan = txtunit.Text rsmat!Harga = Val(txtprice.Text) rsmat.Update
cmdadd.Enabled = False txtindex.SetFocus BlankForm End Sub
4.1.6 Form Data Pekerjaan
Pengisian data pekerjaan berdasarkan tabel terdiri dari : 1. input data pekerjaan umum
3. input data atribut pekerjaan khusus
Untuk input data pekerjaan umum tidak lagi dilakukan oleh user karena konsep program ini memberikan kerangka pekerjaan umum yang dibakukan. Input yang dilakukan oleh user adalah pekerjaan khusus pada masing-masing pekerjaan umum yang disediakan.
Input data atribut pekerjaan khusus diberikan dalam form terpisah. Form ini mengakses tabel pekerjaan yang menghubungkan antara tabel pekerjaan khusus dan laporan proyek.
Gambar 4. 7 Input data atribut pekerjaan khusus
Sedangkan untuk penyimpanan atribut pekerjaan khusus pada tiap proyek disimpan di tabel pekerjaan dengan kode perintah berikut :
Private Sub Form_Load()
Set rsumum = cn.OpenRecordset("PekerjaanUmum") Set rskhusus = cn.OpenRecordset("PekerjaanKhusus") rsumum.Index = "IDJenis"
ok.Enabled = False End Sub
Private Sub ok_Click() rskhusus.AddNew rskhusus!IDJenis = umum rskhusus!idkhusus = txtindex.Text rskhusus!khusus = txtname.Text rskhusus.Update
refreshadc BlankForm End Sub
Private Sub refreshadc()
ADCkhusus.RecordSource = "Select idkhusus,khusus " & _
"from PekerjaanKhusus where IDJenis='" & umum & "'" ADCkhusus.Refresh
dgkhusus.Refresh End Sub
Private Sub cmdadd_Click() MsgBox ("save")
rsmat.AddNew
rsmat!Kode = txtindex.Text rsmat!Nama = txtname.Text rsmat!Kelas = txtklas.Text rsmat!Satuan = txtunit.Text rsmat!Harga = Val(txtprice.Text) rsmat.Update
cmdadd.Enabled = False txtindex.SetFocus BlankForm End Sub
4.1.7 Form Jalur Kritis Proyek
Gambar 4. 8. Form Jalur Kritis Proyek
Dari form ini, user dapat melihat hasil penjadwalan pekerjaan proyek dengan keterangan pekerjaan mana saja yang masuk dalam jalur kritis. Dan untuk pekerjaan yang berada di luar jalur kritis, diberikan informasi waktu tunda yang dimiliki. User dapat melakukan perubahan data dengan kembali ke form dialog Daftar Pekerjaan untuk merubah durasi atau predecessor, atau menyetujui penjadwalan yang sudah dibuat dengan menekan tombol OK.
4.1.8 Output Laporan Perencanaan
LAPORAN PERENCANAAN PROYEK
Nama Proyek Alamat Proyek
Nilai Proyek
Nama Alamat
Tanggal Mulai Tanggal Berakhir
PEMILIK PROYEK
Material Tenaga Kerja RENCANA BIAYA
Operasional
RENCANA DAFTAR PEKERJA
No Nama. Alamat Spesialisasi
RENCANA MATERIAL
Kode Material Jumlah Harga
RENCANA KEGIATAN PROYEK
Nama Proyek Nama Pemilik
Tanggal Mulai Tanggal Berakhir
Index Durasi Pred Slack
Detail Pekerjaan Pekerjaan
No
Jalur Kritis Proyek
No Pekerjaan Durasi Pred
Gambar 4. 10. Keluaran Rencana Kegiatan dalam Penjadwalan Proyek
4.2. Analisa Hasil
Dengan kerangka perencanaan proyek yang tersimpan dalam database program, user hanya menambahkan data yang sifatnya melengkapi dari data yang sudah ada untuk dapat memenuhi kebutuhan pelaksanaan proyek yang akan dikerjakan.
Secara umum, program aplikasi MyHouse ini memiliki kelebihan :
1. Menyediakan kerangka perencanaan kegiatan proyek rumah tinggal yang siap pakai.
2. Penambahan yang dilakukan oleh user bersifat sebagai pelengkap data yang ada di dalam database.
3. Koleksi data yang disimpan dalam database terus bertambah seiring dengan banyaknya proyek yang dilakukan.
4. Penggunaan Critical Path Method dengan durasi rata-rata (most-likely value) memungkinkan user merancang jadwal kerja proyek yang lebih
singkat atau pun lebih lama, sesuai kebutuhan.
Beberapa kekurangan yang masih ada dalam program ini :
1. Belum ada fasilitas manual program (Help) sebagai bantuan pengoperasian yang terintegrasi di dalam program.
2. Belum dapat melakukan pencetakan laporan ke bentuk hardcopy 3. Tidak ada control penampungan data dalam database
4. Perubahan harga item (pekerja atau pun material) untuk waktu proyek yang berbeda akan merubah record pada proyek yang lain.
BAB V
KESIMPULAN DAN SARAN
Sebagai penutup dalam penulisan laporan tugas akhir ini, diberikan beberapa kesimpulan dari implementasi perencanaan yang disusun sebelumnya, serta saran untuk kemajuan dan pengembangan program selanjutnya.
5.1 Kesimpulan
Terkait dengan materi yang menjadi pembahasan di dalam tugas akhir ini : 1. Pengelolaan proyek rumah tinggal merupakan bentuk proyek
sederhana yang perlu memperhatikan teknik penjadwalan proyek untuk mencapai hasil yang optimal.
2. Penjadwalan yang optimal tidak dapat dilakukan oleh sistem, tetapi lebih pada subjektifitas pemilik proyek.
3. Penjadwalan kerja dengan CPM dilakukan berdasarkan durasi waktu tiap kegiatan dan kegiatan pendahulunya.
5.2 Saran
Untuk pengembangan program selanjutnya, beberapa saran yang dapat diperhatikan :
2. Penyimpanan berkas proyek dalam tabel database memungkinkan kesalahan pencatatan karena operasi edit dan penambahan record. Akan lebih baik jika penyimpanan dapat dilakukan dalam bentuk file berkestensi program MyHouse..
3. Input data proyek di awal tidak memperbolehkan user memberi input durasi waktu yang lengkap dengan tanggal mulai dan tanggal akhir, serta nilai proyek. Jika user dapat memberikan nilai-nilai ini di awal form proyek, program dapat dikembangkan sebagai alat bantu penjadwalan proyek dengan batasan anggaran dan waktu.
DAFTAR PUSTAKA
Alam, M. Agus J. Manajemen Database dengan Microsoft Visual Basic versi 6.0. Elex Media Komputindo; Jakarta 2000
Fitzsimmons, James A. & Mona. Service Management Operating Strategy Information Technology. 5th ed.;McGrawHill; 2006
H.M., Jogiyanto. Analisis dan Disain Sistem Informasi : Pendekaran Terstruktur Teori dan Praktek Aplikasi Bisnis, Edisi 2. ANDI; Yogyakarta, 2001 Pemrograman Visual Basic 6.0. Kerjasama Andi Offset dan Wahana Komputer;
Semarang 2003
Pemrograman Visual Basic 6.0 Tingkat Lanjut, Kerjasama Andi Offset dan
Wahana Komputer; Semarang 2004
Petroutsos, Evangelos. Pemrograman Database dengan Visual Basic 6, Buku 1 (terj.) . Elex Media Komputindo; Jakarta, 2002
Stevenson, William J. Operations Management. McGrawHill; 2002 Suharto, Iman. Manajemen Proyek Dari Konseptual Sampai Operasional.
Erlangga; 1997
Supranto, Johannes. Riset Operasi Untuk Pengambilan Keputusan. Universitas Indonesia; 1988
LAMPIRAN
Kode Program MyHouse
Global cn As Database Global idproyek As String Global statusproyek As Integer Global rsreport As Recordset Global rsperson As Recordset Global rsjob As Recordset
Public Sub Opendb()
Set cn = OpenDatabase(App.Path & "\myhouse.mdb") End Sub
Private Sub Form_Load() Opendb
mnudata.Enabled = False mnulaporan.Enabled = False mnututup.Enabled = False mnuumum.Enabled = False End Sub
Private Sub mnubaru_Click() statusproyek = 0
FIProject.Show End Sub
Private Sub mnubuka_Click() statusproyek = 1
Fbuka.Show End Sub
Private Sub mnudafmat_Click() FPMaterial.Show
End Sub
Private Sub mnudamat_Click() FImaterial.Show
End Sub
Private Sub mnujadwal_Click() FPjobs.Show
End Sub
MsgBox ("Under Construction") End Sub
Private Sub mnusimpan_Click() MsgBox ("Under Construction") End Sub
Private Sub mnukeluar_Click() cn.Close
End End Sub
Private Sub mnuumum_Click() FIjob.Show
End Sub
Private Sub mnudetail_Click() FIjobdetail.Show
End Sub
Private Sub mnupekerja_Click() FIemp.Show
End Sub
Private Sub mnuprogram_Click() frmAbout.Show
End Sub
Private Sub repmat_Click() FPMaterial.Show
End Sub
Dim rsproyek As Recordset
Private Sub cancel_Click() rsproyek.Close
Unload Me End Sub
Private Sub dbcproyek_Click(Area As Integer) rsproyek.Seek "=", dbcproyek.Text
If Not rsproyek.NoMatch Then
txtname.Text = rsproyek!Nama_proyek idproyek = dbcproyek.Text
End If
End Sub
Set rsproyek = cn.OpenRecordset("Laporan") rsproyek.Index = "IMB"
End Sub
Private Sub ok_Click() If dbcproyek.Text = "" Then Beep
Dim rsp0 As Recordset Dim rsp1 As Recordset Dim rsp2 As Recordset Dim rsp3 As Recordset
Private Sub Form_Load()
Set rsp0 = cn.OpenRecordset("p0personal") Set rsp1 = cn.OpenRecordset("p1pekerja") Set rsp2 = cn.OpenRecordset("p2potongan") Set rsp3 = cn.OpenRecordset("p3upah") cmdok.Enabled = False
filemap.Tab = 1 BlankForm End Sub 'SSTAB 0
'validasi input uper case
Private Sub dcskillsu_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub dcskillsu_Change() If dcskillsu.Text = "" Then cmdok.Enabled = False Else
cmdok.Enabled = True End If
End Sub
Private Sub txtwage_KeyPress(KeyAscii As Integer) 'number only
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0 End If
'SSTAB 1
'validasi input uper case
Private Sub txtidpers_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtname_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtadd_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtidpers_Change() If txtidpers.Text = "" Then cmdok.Enabled = False Else
cmdok.Enabled = True End If
End Sub
'SSTAB 2
'validasi input uper case
Private Sub txtkwitansi_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtnote_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtnominal_KeyPress(KeyAscii As Integer) 'number only
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0 End If
End Sub
Private Sub txtkwitansi_Change() If txtkwitansi.Text = "" Then cmdok.Enabled = False Else
cmdok.Enabled = True End If
End Sub
Private Sub BlankForm() dcskillsu.Text = ""
txtname.Text = "" txtadd.Text = "" dcskilldp.Text = "" txtkwitansi.Text = "" txtnote.Text = "" txtnominal.Text = "" dcpersonal.Text = "" End Sub
Private Sub cmdcancel_Click() rsp0.Close
Private Sub cmdok_Click() rsp1.Index = "Spesialisasi"
If filemap.Tab = 0 Then If txtwage.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title txtwage.SetFocus
ElseIf filemap.Tab = 1 Then If txtname.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title txtname.SetFocus
ElseIf txtadd.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title txtadd.SetFocus
ElseIf dcskilldp.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title dcskilldp.SetFocus
Else
rsp0!idperson = txtidpers.Text
ElseIf filemap.Tab = 2 Then If txtnote.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title txtnote.SetFocus
ElseIf txtnominal.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title txtnominal.SetFocus
ElseIf dcpersonal.Text = "" Then
MsgBox "Data tidak lengkap!", vbInformation, App.Title dcpersonal.SetFocus
Dim rsumum As Recordset Dim rskhusus As Recordset Dim umum As String
Private Sub cancel_Click() rskhusus.Close
rsumum.Close Unload Me
End Sub
rsumum.Seek "=", umum If Not rsumum.NoMatch Then lbldum.Caption = rsumum!Jenis refreshadc
End If
End Sub
Private Sub Form_Load()
Set rsumum = cn.OpenRecordset("PekerjaanUmum") Set rskhusus = cn.OpenRecordset("PekerjaanKhusus") rsumum.Index = "IDJenis"
ok.Enabled = False End Sub
Private Sub ok_Click() rskhusus.AddNew
rskhusus!IDJenis = umum
rskhusus!idkhusus = txtindex.Text rskhusus!khusus = txtname.Text rskhusus.Update
refreshadc BlankForm End Sub
Private Sub refreshadc()
ADCkhusus.RecordSource = "Select idkhusus,khusus " & _
"from PekerjaanKhusus where IDJenis='" & umum & "'" ADCkhusus.Refresh
dgkhusus.Refresh End Sub
Private Sub txtdurasi_KeyPress(KeyAscii As Integer)
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0 End If
End Sub
Private Sub BlankForm() txtindex.Text = ""
txtname.Text = "" txtindex.SetFocus End Sub
ok.Enabled = True End If
End Sub
Private Sub txtname_GotFocus() ok.Default = True
End Sub
Private Sub txtname_LostFocus() ok.Default = False
End Sub
Dim rsmat As Recordset
Private Sub Form_Load()
Set rsmat = cn.OpenRecordset("Material") BlankForm
cmdadd.Enabled = False End Sub
Private Sub txtindex_Change() If txtindex.Text = "" Then cmdadd.Enabled = False Else
cmdadd.Enabled = True End If
End Sub
'validasi input uper case
Private Sub txtindex_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtname_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtklas_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtprice_GotFocus() cmdadd.Default = True
End Sub
Private Sub txtprice_LostFocus() cmdadd.Default = False
End Sub
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack)
Private Sub cmdadd_Click() MsgBox ("save")
rsmat.AddNew
rsmat!Kode = txtindex.Text rsmat!Nama = txtname.Text rsmat!Kelas = txtklas.Text rsmat!Satuan = txtunit.Text rsmat!Harga = Val(txtprice.Text) rsmat.Update
cmdadd.Enabled = False txtindex.SetFocus
BlankForm End Sub
Private Sub BlankForm() txtindex.Text = ""
txtname.Text = "" txtklas.Text = "" txtunit.Text = "" txtprice.Text = "" End Sub
Private Sub cmdcancel_Click() 'rsmat.Close
'Unload Me FImater.Show
End Sub
Dim rsowner As Recordset Dim cekval As Integer
Private Sub Form_Load()
Set rsreport = cn.OpenRecordset("Laporan") Set rsowner = cn.OpenRecordset("p0personal") If statusproyek = 0 Then
BlankForm
cmdok.Enabled = False ElseIf statusproyek = 1 Then OpenForm
cmdok.Enabled = True End If
Private Sub BlankForm() txtimb.Text = ""
txtname.Text = "" txtadd.Text = "" txtval.Text = "" txtdurasi.Text = "" txtown.Text = "" txtid.Text = "" txtownadd.Text = "" txtnote.Text = "" optstart.Value = False optend.Value = False cekval = 0
End Sub
Private Sub OpenForm() rsreport.Index = "imb" rsreport.Seek "=", idproyek If Not rsreport.NoMatch Then txtval.Enabled = True txtdurasi.Enabled = True txtimb.Text = rsreport!imb
End If
rsowner.Index = "idperson"
rsowner.Seek "=", rsreport!idperson If Not rsowner.NoMatch Then
txtimb.Enabled = False txtname.Enabled = False txtadd.Enabled = False txtval.Enabled = False txtdurasi.Enabled = False txtown.Enabled = False txtid.Enabled = False txtownadd.Enabled = False txtnote.Enabled = False tglend.Enabled = False tglstart.Enabled = False optend.Enabled = False optstart.Enabled = False End Sub
Private Sub optend_Click() If optend.Value = True Then tglend.Enabled = True optstart.Value = False tglstart.Enabled = False cekval = 2
End If End Sub
Private Sub optstart_Click() If optstart.Value = True Then tglstart.Enabled = True optend.Value = False tglend.Enabled = False cekval = 1
End Sub
'uper case
Private Sub txtimb_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtname_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtadd_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtown_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtid_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtownadd_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub txtimb_Change() If txtimb.Text = "" Then cmdok.Enabled = False Else
cmdok.Enabled = True End If
End Sub
Private Sub saverecord() rsowner.AddNew
rsowner!idperson = txtid.Text rsowner!Nama = txtown.Text rsowner!alamat = txtownadd.Text rsowner.Update
rsreport.AddNew
rsreport!imb = txtimb.Text
rsreport!Nama_proyek = txtname.Text rsreport!alamat_proyek = txtadd.Text rsreport!nilai_proyek = Val(txtval.Text) rsreport!idperson = txtid.Text
rsreport!catatan = txtnote.Text rsreport!durasi = Val(txtdurasi.Text) If cekval = 1 Then
rsreport.Update idproyek = txtimb.Text
End Sub
Private Sub cmdcancel_Click() rsreport.Close
rsowner.Close Unload Me
End Sub
Private Sub cmdok_Click() If statusproyek = 0 Then
If txtname.Text = "" Or txtadd.Text = "" Or _
'ElseIf statusproyek = 1 Then End If
MyHouseMenu.mnudata.Enabled = True MyHouseMenu.mnulaporan.Enabled = True Unload Me
End Sub
Dim rsumum As Recordset Dim rskhusus As Recordset Dim umum As String
Dim khusus As String
Private Sub cmdcancel_Click() Unload Me
End Sub
Private Sub cmdok_Click() rsjob.AddNew
rsjob!imb = idproyek
rsjob!idkhusus = dbckhusus.Text rsjob!durasi = Val(txtdurasi.Text) rsjob!pred = txtpred.Text
FCPM.Show Unload Me End Sub
Private Sub dbckhusus_Click(Area As Integer) rskhusus.Index = "IDKhusus"
rskhusus.Seek "=", dbckhusus.Text If Not rskhusus.NoMatch Then
txtpkhusus.Text = rskhusus!khusus End If
End Sub
Private Sub dbcumum_Click(Area As Integer) rsumum.Index = "IDJenis"
rsumum.Seek "=", dbcumum.Text If Not rsumum.NoMatch Then lblumum.Caption = rsumum!Jenis 'dbckhusus
End If
End Sub
Private Sub Form_Load()
Set rsreport = cn.OpenRecordset("Laporan") Set rsjob = cn.OpenRecordset("Pekerjaan")
Set rsumum = cn.OpenRecordset("PekerjaanUmum") Set rskhusus = cn.OpenRecordset("PekerjaanKhusus") dgdetail.Visible = False
rsreport.Index = "imb" rsreport.Seek "=", idproyek If Not rsreport.NoMatch Then
txtnamaproyek.Text = rsreport!Nama_proyek End If
'adcjob.RecordSource = "SELECT rskhusus.Khusus, rsjob.Durasi, rsjob.Pred , rspekerjaan.Slack FROM rsjob INNER JOIN rskhusus ON rsjob!IDKhusus = rskhusus!IDKhusus WHERE rereport.IMB = '" & idproyek & "' "
End Sub
Private Sub txtdurasi_KeyPress(KeyAscii As Integer)
' Reg Key Security Options...
Const READ_CONTROL = &H20000 Const KEY_QUERY_VALUE = &H1 Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4 Const KEY_ENUMERATE_SUB_KEYS = &H8 Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
' Reg Key ROOT Types...
Const HKEY_LOCAL_MACHINE = &H80000002 Const ERROR_SUCCESS = 0
Const REG_SZ = 1 ' Unicode nul terminated string Const REG_DWORD = 4 ' 32-bit number
Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location"
Const gREGVALSYSINFOLOC = "MSINFO"
Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO" Const gREGVALSYSINFO = "PATH"
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias
"RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Sub cmdSysInfo_Click() Call StartSysInfo
End Sub
Private Sub cmdok_Click() Unload Me
End Sub
Private Sub Form_Load()
Me.Caption = "About " & App.Title
lblVersion.Caption = "Version " & App.Major & "." & App.Minor & "." & App.Revision
End Sub
Public Sub StartSysInfo() On Error GoTo SysInfoErr
Dim rc As Long
Dim SysInfoPath As String
' Try To Get System Info Program Path\Name From Registry... If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then
' Try To Get System Info Program Path Only From Registry...
ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then
' Validate Existance Of Known 32 Bit File Version
Call Shell(SysInfoPath, vbNormalFocus)
Exit Sub SysInfoErr:
MsgBox "System Information Is Unavailable At This Time", vbOKOnly End Sub
Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean
Dim i As Long ' Loop Counter
' Open RegKey Under KeyRoot {HKEY_LOCAL_MACHINE...} '---
rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' Open Registry Key