• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS DAN PERANCANGAN"

Copied!
42
0
0

Teks penuh

(1)

Perusahaan PT. Usaha Saudara Mandiri didirikan pada bulan September tahun 1992. Ber-mula dari sebuah bengkel kecil di jalan Hj. Aning, kecamatan Jati Uwung, Tangerang, di tempat yang sama, perusahaan ini telah berubah menjadi pabrik lengkap yang mampu menghasilkan produk-produk berkualitas dan berteknologi tinggi dengan merek dagang United Heater Industry. PT. Usaha Saudara Mandiri adalah perusahaan yang berkonsen-trasi kepada perancangan, produksi dan penyediaan alat pemanas elektrik, seperti heating elements, oven, furnaces, thermocouples, boilers untuk keperluan industri. PT. Usaha Saudara Mandiri adalah perusahaan pertama di Indonesia yang dapat memproduksi su-ku cadang dan aksesoris untuk peralatan pemanas dengan mesin-mesin yang canggih dan berkualitas.

PT. Usaha Saudara Mandiri didukung oleh 200 karyawan, memiliki jaringan kantor penjualan di Tangerang, Cilegon, Jakarta, Bogor, Bekasi, Karawang, Bandung, Semarang, Surabaya, Medan, Bontang, dan Batam. Perusahaan ini telah melayani banyak pelanggan seperti, PT. Astra Honda Motor Jakarta, PT. Philips, PT. Osram, PT. Maspion, PT. Kalbe Farma, Phuong Ti Co. Vietnam, PT. Indofood Sukses Makmur, dan lain-lain.

3.2 Struktur Organisasi dan Pembagian Tugas serta Wewenang

Struktur organisasi setiap perusahaan akan berbeda satu dengan yang lainnya, tergantung pada skala usaha, bidang usaha, daerah operasi, dan daerah pemasaran. Struktur orga-nisasi merupakan kerangka dasar yang mempersatukan fungsi-fungsi dalam perusahaan untuk mencapai tujuan perusahaan. Kelancaran dan keberhasilan setiap aktivitas yang

(2)

di-ga struktur ordi-ganisasi memudahkan pimpinan perusahaan untuk mengkoordinir aktivitas-aktivitas perusahaan.

Uraian tugas masing-masing bagian dalam PT. Usaha Saudara Mandiri adalah sebagai berikut.

Direktur Utama

Bertanggung jawab untuk melaksanakan tugas-tugas sebagai berikut.

• Merencanakan, mengkoordinasikan, dan mengendalikan kegiatan-kegiatan perusa-haan serta memberikan pembinaan kepada para bawahannya dalam pelaksanaan ketentuan-ketentuan pokok perusahaan.

• Mengawasi dan mengevaluasi pelaksanaan rencana kerja.

• Menggariskan kebijakan perusahaan dalam mencapai tujuan perusahaan. • Membina hubungan baik dengan pihak luar perusahaan.

• Mengambil keputusan tentang masalah-masalah penting yang menyangkut kelang-sungan hidup perusahaan.

Direktur Teknik

Bertanggung jawab untuk melaksanakan tugas-tugas sebagai berikut.

• Mengawasi dan mengevaluasi bagian sumber daya manusia dan bagian produksi. • Mengkoordinasi penyelesaian masalah yang terjadi di bagian sumber daya manusia

dan bagian produksi.

(3)

• Merumuskan strategi untuk mencapai peningkatan penjualan. • Merumuskan strategi untuk meningkatkan jangkauan pemasaran. Direktur Keuangan

Bertanggung jawab untuk melaksanakan tugas-tugas sebagai berikut. • Mengawasi dan mengevaluasi bagian keuangan.

• Mengkoordinasi penyelesaian masalah yang terjadi di bagian keuangan. • Memastikan neraca perusahaan dalam keadaan sehat.

Manajer Personalia

Bertanggung jawab untuk melaksanakan tugas-tugas sebagai berikut.

• Menyusun prosedur penerimaan pegawai dan melakukan seleksi terhadap calon-calon karyawan.

• Mengatur dan menempatkan karyawan sesuai dengan bidang keahliannya. • Menetapkan gaji dan upah para karyawan.

• Menciptakan suasana kerja yang mendukung bagi para karyawan, di antaranya de-ngan menjamin keamanan dan keselamatan karyawan.

• Melakukan mutasi dan memberhentikan karyawan.

(4)

ba-Gambar 3.1: Struktur Organisasi PT. Usaha Saudara Mandiri Sumber: USM Company Profile

(5)

• Memeriksa mesin-mesin dan peralatan-peralatan agar selalu terawat dan dalam ke-adaan siap pakai.

• Menerima, menganalisis, dan mengevaluasi laporan-laporan yang diterima dari kar-yawan bagian produksi perusahaan.

Manajer Pemasaran

Bertanggung jawab untuk melaksanakan tugas-tugas sebagai berikut. • Menangani permasalahan pemasaran untuk produk yang akan dijual. • Memperluas pangsa pasar.

• Menyusun dan menetapkan kebijakan, program, rencana, dan strategi pemasaran perusahaan.

• Membina hubungan baik dengan para pelanggan.

• Mengawasi dan menganalisis situasi persaingan pasar bagi produk perusahaan. Manajer Penjualan

Bertanggung jawab untuk melaksanakan tugas-tugas sebagai berikut.

• Memimpin dan mengkoordinir seluruh kegiatan yang ada hubungannya dengan pen-jualan.

• Membantu direktur dalam menentukan kebijakan penetapan harga produk, pembe-rian kredit, dan pengembalian barang.

(6)

• Melakukan pencatatan atas transaksi-transaksi keuangan yang terjadi. • Mencatat dan mengotorisasi pemasukan dan pengeluaran kas.

• Menyusun laporan keuangan secara periodik.

• Melaksanakan dan mengawasi pelaksanaan kebijakan perusahaan dalam bidang akun-tasi dan keuangan.

• Mengatur masalah-masalah yang berhubungan dengan perbankan dan perpajakan. • Membuat laporan pajak penghasilan perusahaan sesuai dengan peraturan yang

ber-laku.

• Mempersiapkan data keuangan untuk menghitung saldo keuangan perusahaan tiap periode.

• Mengantisipasi keuangan perusahaan agar stabil dan sehat. • Melaksanakan administrasi keuangan yang baik.

Manajer Audit Internal

Bertanggung jawab untuk melaksanakan tugas-tugas sebagai berikut. • Melakukan audit terhadap hasil kerja akuntan.

(7)

• Bagian penjualan menerima formulir pembelian dari pembeli. Lalu bagian penju-alan membuat Surat Perintah Kerja (SPK) yang berisikan spesifikasi dan rincian pembelian ini.

• SPK ini akan diberikan ke bagian produksi. Bagian produksi akan membuat Surat Tugas Kerja (STK) yang isinya lebih teknis berdasarkan data dari SPK. STK ini akan menjadi panduan bagi para teknisi untuk membuat barang pesanan pembeli. Dari STK ini juga dapat dibuat tahap-tahap pekerjaan untuk suatu SPK.

• Bagian produksi membuat jadwal pekerjaan bagi teknisi-teknisi. Di sini teknisi di-harapkan dapat mengerjakan pekerjaan apa saja. Akibatnya tidak dapat dilakukan spesialisasi. Distribusi pekerjaan dilakukan dengan acak dan meletihkan. Penga-wasan dilakukan secara berkala dengan memperhatikan apakah ada teknisi yang menganggur.

• Bagian produksi akan memasukkan data hasil pekerjaan teknisi-teknisi ini dalam monitoringkerja. Monitoring kerja ini menyimpan data tahap-tahap pekerjaan yang sudah dikerjakan berikut hasilnya dan teknisinya.

• Manajer produksi memantau hasil pekerjaan teknisi-teknisi lewat laporan pekerjaan.

3.4 Permasalahan yang Dihadapi

Setelah dilakukan pemantauan dan wawancara, ditemukan beberapa keluhan dari manajer produksi PT. Usaha Saudara Mandiri yang berkisar tentang proses kerja di perusahaan ini. Hal yang dikeluhkan antara lain adalah sebagai berikut.

(8)

yang cukup signifikan.

• Tidak dapat menerapkan sistem spesialisasi di sini karena distribusi pekerjaan ber-dasarkan sistem acak. Teknisi diharapkan dapat melakukan semua pekerjaan. Pene-rapan sistem spesialisasi akan membuat penjadwalan kerja menjadi lebih rumit.

3.5 Solusi Permasalahan

Proses kerja ini akan dikomputerisasi sehingga data dapat tersimpan di satu tempat dan dapat diakses di berbagai lokasi. Perusahaan ini membutuhkan database untuk menyim-pan datanya. Aplikasi yang mengkomputerisasikan proses kerja dan berhubungan dengan databaseini adalah aplikasi web sehingga gampang di-deploy dan diakses oleh orang dari berbagai lokasi.

Untuk distribusi kerja, perusahaan ini dapat menggunakan cara lama, yaitu menjadwal-kan pekerjaan dengan acak atau menggunamenjadwal-kan cara baru, menggunamenjadwal-kan sistem spesialisasi dalam penjadwalan pekerjaan. Pada saat tahap-tahap pekerjaan untuk suatu SPK didefini-sikan, bagian produksi menambahkan kolom spesialisasi, yang isinya nama teknisi yang memiliki spesialisasi untuk tahap pekerjaan itu.

Dengan metode constraint programming, akan dicari penjadwalan yang paling efektif dalam menyelesaikan pekerjaan yang bersangkutan dengan sistem spesialisasi ini. Bagian produksi dapat menyesuaikan jadwal yang optimal ini dengan kondisi perusahaannya dan tidak perlu lagi membuat jadwal secara manual.

Perancangan aplikasi yang mengkomputerisasikan proses kerja di PT. Usaha Saudara Mandiri dan membuat jadwal pekerjaan yang optimal ini dibagi dalam beberapa tahap

(9)

Gambar 3.2: Tahapan Utama Perancangan Aplikasi Penjadwalan Pekerjaan.

• Pembuatan STK

• Pembuatan Deskripsi (Tahap-Tahap) Kerja • Monitoring Kerja

• Laporan Kerja

3.6 Perancangan Database

Perancangan database perusahaan ini dimulai dari tahap pembuatan SPK. SPK memiliki 8 jenis sesuai dengan jenis barang yang dipesan. Perusahaan umumnya menyebut barang se-bagai elemen. Jenis-jenis elemen ialah thermo detector, mica and ceramic flexible heater, cartridge heater, tubular and finned heater, screw plug flange over side immersion heater, quartz heater, tube infrared heater, dan cast in heater. Kedelapan elemen ini masing-masing memiliki beberapa atribut yang berbeda. Dibuat masing-masing-masing-masing satu table untuk satu elemen.

(10)

Tabel 3.1: Table thermo_detector_order_letters Nama Tipe Data Keterangan id (primary key) serial identitas design_type varchar(80) tipe rancangan information varchar(80) informasi sales_name varchar(200) nama penjual item_code varchar(300) kode barang order_status text status pemesanan date_order date tanggal pemesanan date_finish date tanggal selesai po_number varchar(300) nomor penjualan spk_number varchar(300) nomor spk district varchar(80) distrik customer varchar(200) nama pembeli item_name varchar(200) nama barang quantity_pcs integer jumlah barang

quantity_set integer jumlah barang dalam lusinan quantity_words varchar(200) jumlah barang dalam tulisan style_model varchar(300) model

class varchar(300) kelas operating_temperature integer temperatur item_type text tipe barang number_of_element text jumlah elemen dimensions_mm text dimensi barang junctions varchar(80) -sheath_material text -terminal_style text -mounting_fitting text -mounting_fitting_material text -extension_wire_cables varchar(80)

(11)

Tabel 3.2: Table mica_and_ceramic_flexible_heater_order_letters Nama Tipe Data Keterangan id (primary key) serial identitas design_type varchar(80) tipe rancangan information varchar(80) informasi sales_name varchar(200) nama penjual item_code varchar(300) kode barang order_status text status pemesanan date_order date tanggal pemesanan date_finish date tanggal selesai po_number varchar(300) nomor penjualan spk_number varchar(300) nomor spk district varchar(80) distrik customer varchar(200) nama pembeli item_name varchar(200) nama barang quantity_pcs integer jumlah barang

quantity_set integer jumlah barang dalam lusinan quantity_words varchar(200) jumlah barang dalam tulisan style_model text model

construction varchar(80)

-dimensions_mm text dimensi barang electrical_specifications text spesifikasi elektrik terminal_connections varchar(80)

-sheath_material varchar(80) -termination_style text -clamping_style text -optional text tambahan drawing varchar(300) gambar revision text perbaikan

(12)

Tabel 3.3: Table cartridge_heater_order_letters Nama Tipe Data Keterangan id (primary key) serial identitas design_type varchar(80) tipe rancangan information varchar(80) informasi sales_name varchar(200) nama penjual item_code varchar(300) kode barang order_status text status pemesanan date_order date tanggal pemesanan date_finish date tanggal selesai po_number varchar(300) nomor penjualan spk_number varchar(300) nomor spk district varchar(80) distrik customer varchar(200) nama pembeli item_name varchar(200) nama barang quantity_pcs integer jumlah barang

quantity_set integer jumlah barang dalam lusinan quantity_words varchar(200) jumlah barang dalam tulisan style_model text model

dimensions_mm text dimensi barang electrical_specifications text -terminal_connections varchar(80) -instalation varchar(80) -sheath_material text -termination_style text -mounting_fitting text -mounting_fitting_material text

-optional text tambahan

(13)

Tabel 3.4: Table tubular_and_finned_heater_order_letters Nama Tipe Data Keterangan id (primary key) serial identitas design_type varchar(80) tipe rancangan information varchar(80) informasi sales_name varchar(200) nama penjual item_code varchar(300) kode barang order_status text status pemesanan date_order date tanggal pemesanan date_finish date tanggal selesai po_number varchar(300) nomor penjualan spk_number varchar(300) nomor spk district varchar(80) distrik customer varchar(200) nama pembeli item_name varchar(200) nama barang quantity_pcs integer jumlah barang

quantity_set integer jumlah barang dalam lusinan quantity_words varchar(200) jumlah barang dalam tulisan style_model text model

dimensions_mm text dimensi barang electrical_specifications text

-terminal_connections text

-instalation text

-operating_temperature integer temperatur sheath_material text -termination_style text -finned_style varchar(80) -finned_material varchar(80) -mounting_fitting text -mounting_fitting_material text

(14)

Tabel 3.5: Table screw_plug_flange_over_side_immersion_heater_order_letters Nama Tipe Data Keterangan

id (primary key) serial identitas design_type varchar(80) tipe rancangan information varchar(80) informasi sales_name varchar(200) nama penjual item_code varchar(300) kode barang order_status text status pemesanan date_order date tanggal pemesanan date_finish date tanggal selesai po_number varchar(300) nomor penjualan spk_number varchar(300) nomor spk district varchar(80) distrik customer varchar(200) nama pembeli item_name varchar(200) nama barang quantity_pcs integer jumlah barang

quantity_set integer jumlah barang dalam lusinan quantity_words varchar(200) jumlah barang dalam tulisan style_model varchar(80) model

dimensions_mm text dimensi barang electrical_specifications text -terminal_connections varchar(80) -sheath_material text -terminal_cover_style varchar(80) -mounting_fitting_type_and_size text -mounting_fitting_material text

-optional text tambahan

(15)

Tabel 3.6: Table quartz_heater_order_letters Nama Tipe Data Keterangan id (primary key) serial identitas design_type varchar(80) tipe rancangan information varchar(80) informasi sales_name varchar(200) nama penjual item_code varchar(300) kode barang order_status text status pemesanan date_order date tanggal pemesanan date_finish date tanggal selesai po_number varchar(300) nomor penjualan spk_number varchar(300) nomor spk district varchar(80) distrik customer varchar(200) nama pembeli item_name varchar(200) nama barang quantity_pcs integer jumlah barang

quantity_set integer jumlah barang dalam lusinan quantity_words varchar(200) jumlah barang dalam tulisan dimensions_mm text

-electrical_specifications text -termination_style varchar(200) -optional text tambahan drawing varchar(300) gambar revision text perbaikan stk varchar(300) surat tugas kerja

(16)

Tabel 3.7: Table tube_infrared_heater_order_letters Nama Tipe Data Keterangan id (primary key) serial identitas design_type varchar(80) tipe rancangan information varchar(80) informasi sales_name varchar(200) nama penjual item_code varchar(300) kode barang order_status text status pemesanan date_order date tanggal pemesanan date_finish date tanggal selesai po_number varchar(300) nomor penjualan spk_number varchar(300) nomor spk district varchar(80) distrik customer varchar(200) nama pembeli item_name varchar(200) nama barang quantity_pcs integer jumlah barang

quantity_set integer jumlah barang dalam lusinan quantity_words varchar(200) jumlah barang dalam tulisan dimensions_mm text dimensi barang electrical_specifications text

-sheath_material varchar(80) -termination_style text -optional text tambahan drawing varchar(300) gambar revision text perbaikan stk varchar(300) surat tugas kerja

(17)

Tabel 3.8: Table cast_in_heater_order_letters Nama Tipe Data Keterangan id (primary key) serial identitas design_type varchar(80) tipe rancangan information varchar(80) informasi sales_name varchar(200) nama penjual item_code varchar(300) kode barang order_status text status pemesanan date_order date tanggal pemesanan date_finish date tanggal selesai po_number varchar(300) nomor penjualan spk_number varchar(300) nomor spk district varchar(80) distrik customer varchar(200) nama pembeli item_name varchar(200) nama barang quantity_pcs integer jumlah barang

quantity_set integer jumlah barang dalam lusinan quantity_words varchar(200) jumlah barang dalam tulisan style_model text model

construction varchar(80)

-dimensions_mm text dimensi barang electrical_specifications text

-sheath_material varchar(80) -termination_style text -clamping_style text -optional text tambahan drawing varchar(300) gambar revision text perbaikan

(18)

number integer nomor

duration integer durasi

predecessor varchar ketergantungan worker_id (foreign key ke table workers) integer teknisi thermo_detector_order_letter_id (foreign key integer spk ke table thermo_detector_order_letters)

Tabel 3.10: Table mica_and_ceramic_flexible_heater_jobs

Nama Tipe Data Keterangan

id (primary key) serial identitas job varchar nama tahap pekerjaan

number integer nomor

duration integer durasi

predecessor varchar ketergantungan worker_id (foreign key ke table workers) integer teknisi mica_and_ceramic_flexible_heater_order_letter_id integer spk (foreign key ke table

mica_and_ceramic_flexible_heater_order_letters)

berasal dari SPK itu dimasukkan ke berkas excell yang memiliki macro. Kemudian ber-kas excell yang sudah diproses dengan macro itu dikonversi ke berber-kas pdf. Atribut stk pada table 8 jenis elemen ini menyatakan path tempat di mana disimpan berkas pdf yang bersangkutan.

Pendefinisian pekerjaan terkait untuk masing-masing STK sehingga diperlukan 8 table karena ada 8 jenis elemen.

Table untuk deskripsi pekerjaan memiliki kolom teknisi yang berarti diperlukan table workers yang menyimpan data teknisi.

(19)

job varchar nama tahap pekerjaan

number integer nomor

duration integer durasi

predecessor varchar ketergantungan worker_id (foreign key ke table workers) integer teknisi cartridge_heater_order_letter_id (foreign key integer spk ke table cartridge_heater_order_letters)

Tabel 3.12: Table tubular_and_finned_heater_jobs

Nama Tipe Data Keterangan

id (primary key) serial identitas

job varchar nama tahap pekerjaan

number integer nomor

duration integer durasi

predecessor varchar ketergantungan worker_id (foreign key ke table workers) integer teknisi tubular_and_finned_heater_order_letter_id (foreign key integer spk ke table tubular_and_finned_heater_order_letters)

Tabel 3.13: Table screw_plug_flange_over_side_immersion_heater_jobs

Nama Tipe Data Keterangan

id (primary key) serial identitas job varchar nama tahap pekerjaan

number integer nomor

duration integer durasi

predecessor varchar ketergantungan worker_id (foreign key ke table workers) integer teknisi screw_plug_flange_over_side_immersion_heater_order integer spk

(20)

number integer nomor

duration integer durasi

predecessor varchar ketergantungan worker_id (foreign key ke table workers) integer teknisi quartz_heater_order_letter_id (foreign key integer spk ke table quartz_heater_order_letters)

Tabel 3.15: Table tube_infrared_heater_jobs

Nama Tipe Data Keterangan

id (primary key) serial identitas job varchar nama tahap pekerjaan

number integer nomor

duration integer durasi

predecessor varchar ketergantungan worker_id (foreign key ke table workers) integer teknisi tube_infrared_heater_order_letter_id (foreign key integer spk ke table tube_infrared_heater_order_letters)

Tabel 3.16: Table cast_in_heater_jobs

Nama Tipe Data Keterangan

id (primary key) serial identitas job varchar nama tahap pekerjaan

number integer nomor

duration integer durasi

predecessor varchar ketergantungan worker_id (foreign key ke table workers) integer teknisi cast_in_heater_order_letter_id (foreign key integer spk ke table cast_in_heater_order_letters)

Tabel 3.17: Table workers

(21)

finish_target_date date tanggal selesai

Tabel 3.19: Table monitoring_jobs

Nama Tipe Data Keterangan

id (primary key) serial identitas

number integer nomor

result varchar hasil

finish_date date tanggal selesai

note text keterangan

monitoring_id integer monitoringkerja thermo_detector_job integer spk thermo_detector

mica_and_ceramic_flexible_heater_job integer spk mica_and_ceramic_flexible_heater cartridge_heater_job integer spk cartridge_heater_job

tubular_and_finned_heater_job integer spk tubular_and_finned_heater_job screw_plug_flange_over_side integer spk screw_plug_flange_over _immersion_heater_job _side_immersion_heater_job quartz_heater_job integer spk quartz_heater_job tube_infrared_heater_job integer spk tube_infrared_heater_job cast_in_heater_job integer spk cast_in_heater_job additional_information text keterangan tambahan

Semua table yang ada dapat direpresentasikan dengan entity relationship diagram.

3.7 Perancangan Constraint Satisfaction Optimization Problem

Seperti yang sudah ditulis pada bab pertama, salah satu keterbatasan di skripsi ini adalah satu constraint satisfaction optimization problem untuk satu spk. Optimali-sasi penjadwalan akan dilakukan untuk satu spk saja. Keoptimalan dari suatu pen-jadwalan dihitung dari waktu yang diperlukan untuk menyelesaikan semua tahap pe-kerjaan. Semakin cepat semakin baik. Artinya penjadwalan yang paling opti-mal adalah penjadwalan yang memiliki waktu yang paling sedikit untuk

(22)
(23)

menyelesa-b poles 3 a egi john

c amplas 1 b egi john

d pasang baut dan mur 8 a adi nugroho e tes temperatur 2 c,d adi nugroho

f bending 1 c,d egi john

g welding 1 c,d egi john

h pasang jaket 3 a adi nugroho

i terminating 2 f,h dora chandra j penyerahan barang jadi 1 i dora chandra

mo_detector_jobs, mica_and_ceramic_flexible_heater_jobs, cartridge_heater_jobs, tubu-lar_and_finned_heater_jobs, screw_plug_flange_over_side_immersion_heater_jobs, qu-artz_heater_jobs, tube_infrared_heater_jobs, dan cast_in_heater_jobs. Kolom id, job, number, duration membangun variabel-variabel dalam constraint satisfaction optimiza-tion problem. Domain dari masing-masing variabel merupakan bilangan bulat dari rentang angka 0 (waktu yang paling awal) sampai 29 (jumlah durasi seluruh pekerjaan). Domain ini akan dikecilkan dengan teknik konsistensi busur dari constraint ketergantungan. Jadi domainuntuk sebuah variabel tergantung dari durasi dan ketergantungan variabel-variabel lainnya. Nilai-nilai yang diambil oleh variabel-variabel ini menunjukkan waktu dimula-inya pekerjaan. Jadi akhir waktu dari setiap pekerjaan adalah waktu mulai ditambahkan dengan durasi pekerjaan.

Kolom yang lain, yaitu predecessor, worker_id membangun constraint untuk constra-int satisfaction optimization problemini. Constraint untuk constraint satisfaction optimi-zation problemini dibagi oleh dua kategori. Kategori pertama adalah constraint ketergan-tungan. Dari hubungan ketergantungan yang terdapat pada masalah constraint satisfaction optimization problemmembangun elemen (Tabel 3.20) dapat diturunkan himpunan

(24)

con-dapat menangani dua pekerjaan secara bersamaan. Oleh karena itu, pelaksanaan dua pe-kerjaan yang ditangani oleh teknisi yang sama tidak boleh tumpang tindih. Maka dari itu constraint S1 + D1 ≤ S2∨ S2 + D2 ≤ S1 menyatakan waktu pekerjaan tidak tumpang

tindih. Sebagai contoh dapat dilihat teknisi dora chandra mendapatkan pekerjaan i dan j. Hal ini dapat dinyatakan sebagai constraint i + 2 ≤ j ∨ j + 1 ≤ i.

Kolom yang lain, yaitu thermo_detector_order_letter_id, mica_and_ceramic_flexible_heater_order_letter_id, cartri-dge_heater_order_letter_id, tubular_and_finned_heater_order_letter_id, screw_plug_flange_over_side_immersion_heater_order_letter_id, qu-artz_heater_order_letter_id, tube_infrared_heater_order_letter_id, dan cast_in_heater_order_letter_id hanya mengacu ke spk dari constraint satisfaction optimization problemyang bersangkutan.

Cara mengubah data-data dari database ini ke data yang dapat dimengerti oleh con-straint satisfaction optimization problem, seperti variabel, domain, dan concon-straint dide-finisikan dalam suatu metode. Setelah mendapat data yang diperlukan, metode ini akan berinteraksi dengan pustaka yang akan mencari solusi constraint satisfaction optimization problemini.

Pustaka ini dibangun dalam satu modul yang terdiri dari 4 class. Class pertama ada-lah Variable. Class ini mewakili variabel beserta domain-nya. Class Constraint mewakili constraint. Constraint yang disimpan dalam class ini berupa fungsi yang mengemba-likan nilai boolean benar atau salah tergantung dari definisi fungsi dan nilai-nilai yang dikirim ke fungsi ini. Selain itu class Constraint mempunyai atribut berupa array yang isinya objek-objek dari class Variable. Hal ini menandakan variabel-variabel mana yang

(25)

Gambar 3.4: Modul pustaka penyelesaian constraint satisfaction optimization problem

pi teknisnya, class ini hanyalah sebagai penampung constraint-constraint yang ada. Ti-dak perlu memberikan objek-objek dari class Variable kepada class ini karena constraint-constraint yang diwakili dengan objek-objek dari class Constraint secara implisit sudah memiliki variabel-variabel yang diperlukan.

Kemudian class yang terakhir adalah Solver. Class yang paling kompleks ini memi-liki banyak atribut. Pada saat dikonstruksi, class ini menerima argumen objek dari class Problem. Dari objek itu, class ini mengambil constraint yang ada. Setelah mengkon-struksi objek dari class Solver ini, fungsi yang berhubungan dengan pustaka harus berin-teraksi dengan class Solver terlebih dahulu sebelum mendapatkan solusi dari constraint satisfaction optimization problemini. Hal yang paling penting adalah menentukan urutan variabel yang akan ditelusuri oleh class Solver dalam mencari solusi. Interaksinya adalah memberikan array yang berisikan objek-objek dari class Variable ke metode set_ordering. Urutan variabel dalam penyelesaian constraint satisfaction optimization problem dengan

(26)

Gambar 3.5: Alur Kerja Pemakaian Modul constraint satisfaction optimization problem

yang menerima argumen bertipe boolean. Untuk mempercepat pencarian solusi terbaik digunakan teknik branch and bound. Interaksinya adalah dengan menggunakan metode set_branch_and_bounddengan memberikan parameter bertipe boolean dan tipe optimali-sasi, yaitu minimal atau maksimal. Untuk optimalisasi penjadwalan pekerjaan digunakan tipe minimal. Di dalam metode set_branch_and_bound secara implisit diberikan nilai tak terhingga kepada variabel bound untuk tipe optimalisasi minimal dan minus tak terhingga kepada variabel bound untuk tipe optimalisasi maksimal. Optimalisasi untuk constra-int satisfaction optimization problemitu sendiri harus didefinisikan. Interaksinya adalah mengirimkan parameter sebuah fungsi ke metode set_optimization_function yang pada dasarnya akan memberikan fungsi itu ke variabel optimization_function. Beberapa inte-raksi ini sudah cukup untuk mencari solusi dari masalah yang ada. Sebagai tambahan class Solver dapat juga menggunakan teknik forward checking. Interaksinya adalah de-ngan menggunakan metode set_forward_checking dede-ngan memberikan parameter bertipe boolean.

(27)

tion optimization problem. Selain itu dibuat hash yang diberi nama reducted_domain dengan key berupa objek-objek dari class Variable dan value menunjukkan domain da-ri vada-riabel yang diwakilkan pada key hash untuk suatu saat tertentu. Domain dada-ri suatu variabel pada pemberian nilai dapat berubah (bertambah atau berkurang) jika digunakan teknik forward checking. Setelah melakukan beberapa hal itu, metode solve akan ber-interaksi dengan metode iterating dengan parameter awal 0 yang diterima nantinya oleh variabel level. Angka 0 ini sendiri merupakan nilai awal bagi tingkat kedalaman pohon pencarian yang ditelusuri oleh metode solver. Semakin dalam semakin tinggi nilai ini. Nilai maksimal adalah sama dengan jumlah variabel yang ada pada constraint satisfaction optimization problemini dikurangi satu karena nilai ini mulai dari 0.

Metode iterating adalah fungsi rekursif. Rincian metodenya adalah sebagai berikut. Ji-ka metode ini menggunaJi-kan teknik fail-first, maJi-ka pengurutan variabel yang disimpan di variabel variable_ordering akan diurutkan berdasarkan jumlah anggota di domain masing-masing variabel (yang paling sedikit menempati posisi paling depan). Urutan yang baru ini akan diberikan ke variabel new_order. Jika teknik fail-first tidak dipakai, maka nilai variabel variable_ordering akan diberikan langsung kepada variabel new_order. Setelah itu domain untuk variabel pada tingkat ini akan diiterasi. Pada awal iterasi, nilai pada variabel masa depan yang disimpan pada variabel value_tracking akan dihapus. Variabel yang sedang diperiksa untuk tingkat kedalaman ini akan diberikan nilai dari domain-nya. Kemudian untuk semua constraint yang dimiliki variabel ini akan diuji. Jika ada constra-intyang tidak dipenuhi oleh nilai variabel ini, maka flag passed_constraint akan diberikan nilai boolean salah yang pada awalnya diberi nilai boolean benar. Setelah itu, jika flag ini bernilai salah, maka iterasi akan dilanjutkan ke nilai berikutnya dari domain variabel yang

(28)

sebaliknya, maka flag bound_flag akan diberikan nilai boolean salah. Jika tipe optima-lisasi bersifat maksimal, maka jika fungsi optimaoptima-lisasi ini memiliki hasil lebih besar dari variabel bound, flag bound_flag akan diberikan nilai boolean benar. Jika sebaliknya, maka flag bound_flagakan diberikan nilai boolean salah.

Setelah itu jika semua variabel sudah diberi nilai, kumpulan label akan langsung ditam-pilkan di layar tampilan hasil optimalisasi jika tidak digunakan teknik branch and bound. Jika digunakan teknik branch and bound, maka nilai variabel bound akan diganti dengan hasil fungsi optimalisasi dengan parameter kumpulan label yang optimal ini. Kemudi-an barulah kumpulKemudi-an label ini ditampilkKemudi-an di layar hasil optimalisasi. PenampilKemudi-an hasil optimalisasi dapat terjadi lebih dari satu kali. Setiap kali metode iterating menampilkan kumpulan label di layar hasil optimalisasi, kumpulan label yang ditampilkan itu lebih opti-mal dari kumpulan label sebelumnya yang sudah ditampilkan. Jika metode iterating sudah selesai untuk semua tingkat, maka akan ditampilkan catatan di bawah layar hasil optima-lisasi bahwa proses optimaoptima-lisasi penjadwalan sudah selesai dilakukan. Pengguna dapat mengetahui bahwa hasil optimalisasi yang tampil terakhir itu adalah yang paling optimal. Hal ini tentu saja memberi manfaat kepada pengguna, karena pengguna dapat menggu-nakan hasil optimalisasi yang mungkin belum optimal tetapi sudah memenuhi keinginan pengguna dan pengguna itu tidak ingin menunggu sampai akhir proses optimalisasi pen-jadwalan pekerjaan.

Hal itu terjadi jika semua variabel sudah mendapatkan nilai. Jika belum, maka metode iteratingini akan masuk ke metodenya sendiri dengan parameter, yaitu variabel level yang ditambahkan satu. Artinya pencarian bergerak ke tingkat yang lebih dalam. Ini tentu de-ngan syarat flag bound_flag bernilai benar jika digunakan teknik branch and bound. Jika

(29)

ini kosong, maka diketahui bahwa pemberian nilai untuk variabel yang sedang diperik-sa ini tidak konsisten. Oleh karena itu, metode iterating tidak akan masuk lebih dalam. Iterasi berlanjut. Nilai berikutnya untuk variabel itu akan diuji.

3.8 Metode Pengembangan Aplikasi

Pengembangan aplikasi ini menggunakan metode agile. Metode yang didefinisikan oleh The Agile Allianceadalah metode pengembangan aplikasi yang lebih mengutamakan per-temuan antar muka dibandingkan dengan dokumentasi tertulis, meminimalkan resiko de-ngan membagi aplikasi ke beberapa tahap dan pengerjaan setiap tahapnya itu berlangsung satu sampai empat minggu (pengerjaan itu sendiri disebut iterasi). Setiap iterasi itu se-perti miniatur aplikasi yang dikembangkan dan memiliki tahap perencanaan, pengerjaan, pengujian, dokumentasi tersendiri. Masing-masing iterasi ini memiliki waktu pengerjaan-nya tersendiri. Jika iterasi ini tidak dapat diselesaikan dalam waktu pengerjaanpengerjaan-nya, maka pengembangan aplikasi akan dilanjutkan ke iterasi berikut. Sementara itu pekerjaan itera-si yang belum selesai dikerjakan secara paralel bersamaan dengan pekerjaan iteraitera-si yang sedang berlangsung.

Pada dasarnya metode pengembangan ini mementingkan pengujicobaan bahkan pa-da tahap pengembangan aplikasi. Unit testing apa-dalah hal yang sangat penting. Sebelum metode (atau fungsi) dibuat, dibuat terlebih dahulu metode untuk menguji metode yang berkaitan. Ini dikenal dengan nama test driven development. Metode dibuat hanya untuk memenuhi pengujicobaan metode yang menguji metode tersebut. Ini menghindari pem-buatan metode yang berlebihan.

(30)

3.9.1 Rancangan Interaksi Pengguna

Berikut adalah alur interaksi pengguna dalam menggunakan aplikasi optimalisasi penjad-walan pekerjaan.

Gambar 3.6: Rancangan interaksi pengguna

3.9.2 Rancangan Layar Daftar SPK

Layar Dattar SPK dapat disebut sebagai layar utama. Di sini dapat dilihat daftar SPK baik yang sudah selesai dikerjakan maupun sedang dikerjakan. Pada masing-masing baris dari daftar SPK itu dapat dilihat nomor SPK, tanggal pesan, pembeli. Selain itu ada juga link ke tempat melihat atau pembuatan STK, tempat melihat atau pembuatan deskripsi (tahap-tahap) pekerjaan, dan tempat melihat status pekerjaan. Daftar SPK dapat berisikan

(31)
(32)
(33)

tergantung dari jenis SPK. Keterangan atribut dan isian untuk atribut pada layar pembuatan SPK thermo detector berbeda dengan quartz heater.

Gambar 3.8: Rancangan layar pembuatan SPK

3.9.4 Rancangan Layar Tempat Melihat dan Pengubahan Data SPK

Pada layar tempat melihat dan pengubahan data SPK kolom kiri adalah bagian keterangan atribut dan kolom kanan adalah bagian nilai atribut. Rincian untuk masing-masing kolom itu berbeda-beda terdiri dari jenis SPK. Keterangan atribut dan nilai atribut pada layar tempat melihat dan pengubahan data SPK thermo detector berbeda dengan quartz heater.

(34)
(35)

isian ketergantungan, isian teknisi. Layar pembuatan deskripsi pekerjaan ini sama untuk semua jenis SPK.

Gambar 3.10: Rancangan layar pembuatan deskripsi pekerjaan

3.9.6 Rancangan Layar Deskripsi Pekerjaan dan Optimalisasi Penjadwalan Peker-jaan

Pada layar deskripsi pekerjaan dan optimalisasi penjadwalan pekerjaan dapat dilihat des-kripsi pekerjaan untuk suatu SPK. Pada layar itu dapat dicari penjadwalan pekerjaan yang optimal. Operasi optimalisasi penjadwalan pekerjaan ada di bagian bawah layar ini.

(36)

Gambar 3.11: Rancangan layar deskripsi pekerjaan dan optimalisasi penjadwalan peker-jaan

(37)

tahap-tahap pekerjaan itu digambarkan dengan table yang memanjang ke bawah. Satu tahap untuk satu baris. Tiap baris memiliki tiga keterangan, yaitu nama tahap, tanggal selesai tahap pekerjaan, dan teknisi yang mengerjakannya. Di bagian bawah terdapat link ke daftar spk dan daftar monitoring.

Gambar 3.12: Rancangan layar status pekerjaan

3.9.8 Rancangan Layar Daftar Monitoring Kerja

Pada layar daftar monitoring kerja dapat dilihat daftar monitoring kerja yang tiap barisnya memiliki nomor, tanggal, dan teknisi. Keterangan ini sekaligus menjadi link ke halaman monitoring kerja yang bersangkutan. Di bawahnya terdapat form pencarian monitoring kerja berdasarkan teknisi dan tanggal pesan. Halaman hasil pencarian juga sama dengan halaman daftar monitoring dengan perbedaan data pada daftar monitoring mereka. Di bagian paling bawah terdapat link ke halaman pembuatan monitoring kerja yang baru dan

(38)
(39)

tanggal, target selesai dan untuk keterangan dari pekerjaan yang dibuat, yaitu tugas. Di bawahnya terdapat keterangan format tanggal yang dipakai di halaman ini. Kemudian terdapat form pengisian data pekerjaan-pekerjaan untuk monitoring kerja ini. Pada form ini terdapat kolom untuk nomor, spk, hasil, tanggal selesai, keterangan dengan pilihan tambahan kolom jika diperlukan. Bagian paling bawah adalah link ke daftar monitoring kerja dan daftar spk.

Gambar 3.14: Rancangan layar pembuatan monitoring kerja

3.9.10 Rancangan Layar Tempat Melihat Monitoring Kerja

Pada layar tempat melihat monitoring kerja dapat dilihat data suatu monitoring kerja. Ba-gian atas adalah tampilan nilai atribut dari monitoring kerja, yaitu teknisi, tanggal, target selesai dan nilai keterangan dari pekerjaan yang dibuat, yaitu tugas. Di bawahnya terdapat

(40)

Gambar 3.15: Rancangan layar tempat melihat monitoring kerja

3.9.11 Rancangan Layar Daftar Teknisi

Pada layar daftar teknisi ini dapat dilihat daftar teknisi yang ada. Selain itu pada halaman ini juga dapat dibuat teknisi baru, diubah data teknisi yang ada. Bagian paling atas adalah status operasi. Di bawahnya adalah daftar teknisi yang sekaligus menjadi tempat pengu-bahan data teknisi yang ada. Kemudian terdapat form pembuatan teknisi baru. Bagian paling bawah adalah link ke daftar spk.

(41)
(42)

spk dan tanggal spk. Bagian paling bawah adalah link ke daftar spk dan daftar monitoring.

Gambar

Gambar 3.1: Struktur Organisasi PT. Usaha Saudara Mandiri Sumber: USM Company Profile
Gambar 3.2: Tahapan Utama Perancangan Aplikasi Penjadwalan Pekerjaan.
Tabel 3.1: Table thermo_detector_order_letters
Tabel 3.2: Table mica_and_ceramic_flexible_heater_order_letters
+7

Referensi

Dokumen terkait

Apabila GPS belum dapat menemukan posisi robot dan data yang ditampilkan pada LCD dan Android masih 0.00000 maka aplikasi maps juga tidak akan dapat

PENGENTASAN KEMISKINAN MELALUI PEMBERIAN KETRAMPILAN RUMAH TANGGA MISKIN MENGELOLA SUMBER DAYA LOKAL DI NEGERI HUTUMURI KOTA AMBON!. Prapti Murwani dan

(eftidir digunakan untuk infeksi saluran nafas atas dan ba<ah sinusitis# eksaserbasi akut bronkitis kronis' yang disebabkan oleh bakteri. Ibat ini "ugaa digunakan se)ara

Kepemilikan sebagian atau tidak ada kepemilikan dari sebuah perusahaan oleh manajemen memberikan insentif bagi manajer untuk berperilaku dalam cara yang

Hasil analisis didapatkan dari jawaban responden pengguna sistem informasi akademik Online yaitu dosen dan mahasiswa Universitas Islam Negeri Raden Fatah Palembang

Lain hal jika rata-rata skor tes awal kelompok kontrol berbeda secara signifikan dengan rata-rata skor tes awal kelompok eksperimen, maka harus dilakukan pengolahan data

Dengan melihat hasil respon dari tangki 1 dan tangki 2, dapat disimpulkan bahwa hasil respon yang didapatkan tidak terlalu jauh dikarenakan kontroler yang

PERBANDINGAN KELUHAN PADA PARAMEDIS MASA PERIMENOPAUSE DAN PASCAMENOPAUSE DENGAN MENGGUNAKAN MENOPAUSE RATING SCALE DI RSUP.. HAJI ADAM MALIK MEDAN DAN RS JEJARING