Post on 12-May-2018
BAB 2
LANDASAN TEORI
2.1 Dasar Optimasi
Optimasi adalah salah satu disiplin ilmu dalam matematika yang fokus untuk
mendapatkan nilai minimum atau maksimum secara sistematis dari suatu fungsi,
peluang, maupun pencarian nilai lainya dalam berbagai kasus. Optimasi sangat berguna
di hampir segala bidang dalam rangka melakukan usaha secara efektif dan efisien untuk
mencapai target hasil yang ingin dicapai. Tentunya hal ini akan sangat sesuai dengan
prinsip ekonomi yang berorientasikan untuk senantiasa menekan pengeluaran untuk
menghasilkan output yang maksimal. Optimasi ini juga penting karena persaingan sudah
sangat ketat disegala bidang yang ada.
Seperti yang dikatakan sebelumnya, bahwa optimasi sangat berguna bagi
hampir seluruh bidang yang ada, maka berikut ini adalah contoh-contoh bidang yang
sangat terbantu dengan adanya teknik optimasi tersebut. Bidang tersebut, antara lain :
Arsitektur, Data Mining, Jaringan Komputer, Signal And Image Processing,
Telekomunikasi, Ekonomi, Transportasi, Perdagangan, Pertanian, Perikanan,
Perkebunan, Perhutanan, dan sebagainya.
Teknik optimasi secara umum dapat dibagi menjadi dua bagian, yang pertama
adalah Mathematical Programming, dan yang kedua adalah Combinatorial
Optimatimization. Dalam bidang mathematical programming dapat dibagi menjadi dua
kembali, yaitu support vector machines dan gradient descent. Dan pada bidang
Combinatorial Optimization kembali difokuskan lagi ke dalam dua bidang, yaitu Graph
Theory dan Genetic Algorithm. Pemfokusan pemfokusan bidang tersebut dikarenakan
beberapa parameter, diantaranya, Restoration, Feature selection,Classification,
Clustering, RF assignment, Compression, dan sebagainya.
Adapun cara cara untuk membuat optimasi yang baik, adalah dengan
memperhatikan hal hal berikut,
- Model danstarting Poin
- Convergence to global minimum / maximum
- Classes of nice optimization problems
- Find a threshold
- Constraint give a trade off
Adapun hal lain secara global yang penting untuk diperhatikan adalah fokus
terhadap model dan masalah serta cara berpikir yang analitis. Kita harus fokus terhadap
model dan masalah agar tujuan utama dari kasus tersebut tercapai, jangan terlalu terpusat
pada optimasi tetapi tujuan awal menjadi terlupakan. Sedangkan berpikir analitis
dimaksudkan agar kepekaan terhadap keadaan dan mampu berpikir secara bebas untuk
menemukan solusi-solusi yang diperlukan.
Sebagai contoh implementasi teknik optimasi ini, dapat menggunakan cara
mudah untuk mengoptimalkan performance komputer pada saat memakai suatu program
agar berjalan lebih lancar. Caranya adalah dengan mematikan program-program yang
sedang running namun tidak diperlukan. Jika komputer tidak sedang membutuhkan
koneksi dengan jaringan, sebaiknya semua service yang mendukung ataupun
berhubungan dengan jaringan, ada baiknya dimatikan. Selain itu, jika tidak adanya
program atau proses yang dilakukan yang dapat menyebabkan terinfeksinya virus pada
komputer, sebaiknya anti virus yang sedang bekerja dimatikkan sementara sampai
diperlukan. Hal ini akan membuat performance komputer lebih optimal, dengan
mematikan program-program yang tidak sedang dipakai dan memakan memori.
2.1.1 Mathematical Programming
AMPL (berasal dari A Mathematical Programming Language) bahasa
pemrograman tingkat tinggi yang dikembangkan di Bell Laboratories, dalam rangka
untuk menggambarkan dan memecahkan masalah kompleks dan teori optimasi
penjadwalan. AMPL tidak menyelesaikan masalah secara langsung, dan panggilan
pemecah eksternal yang sesuai (seperti CPLEX, Minos, IPOPT, SNOPT, dll), untuk
mendapatkan solusi. AMPL bekerja dengan masalah optimasi linier dan nonlinier
dengan variabel diskrit atau kontinu. Satu keuntungan dari AMPL - seperti catatan
sintaks matematika atas masalah optimasi yang memungkinkan untuk memberikan yang
sangat singkat dan mudah untuk membaca definisi pemrograman matematis. Banyak
pemecah modern tersedia di server Neos, mengambil model masukan untuk AMPL.
AMPL yang diteliti di Inggris oleh Fourer Robert, Eng. David Kerniganom Gay
dan Brian. AMPL merupakan bahasa pemodelan yang komprehensif dan memiliki
aljabar yang kompleks untuk masalah optimasi linier dan nonlinier, dalam variabel
diskrit atau kontinu. AMPL memungkinkan menggunakan notasi umum dan konsep
akrab untuk merumuskan model optimasi dan memeriksa solusi, sedangkan komputer
mengelola komunikasi dengan solver yang sesuai. AMPL fleksibilitas dan kenyamanan
membuat itu ideal untuk prototipe cepat dan pengembangan model, sementara kecepatan
dan pilihan kontrol menjadi pilihan terutama efisien untuk menjalankan produksi
berulang. Model AMPL dapat dijalankan berpasangan, tiga sekaligus, dan banyak lagi.
Koleksi set diindeks lebih dari set melingkar benda, dan set angka. Umum dan sintaks
alami untuk aritmatika, logis, dan ekspresi kondisional, konvensi akrab untuk
penjumlahan dan operator iterasi lainnya. Nonlinear pemrogramman fitur seperti primal
awal dan nilai-nilai ganda, fungsi-fungsi yang didefinisikan, cepat diferensiasi otomatis,
dan penghapusan otomatis "didefinisikan" variabel. Nyaman alternatif notasi termasuk
deklarasi node dan busur untuk masalah jaringan, sebuah sintaks khusus untuk fungsi-
fungsi sesepenggal-linear, dan spesifikasi columnwise koefisien linier. Perintah tampilan
powerfull memungkinkan Anda melihat komponen apapun model atau ekspresi,
browsing di layar atau menulis ke file, dengan menggunakan format otomatis atau
preferensi Anda sendiri.Baru perulangan dan perintah if-then-else. Program sederhana
dalam bahasa perintah AMPL sekarang dapat ditulis untuk memecahkan masalah yang
berkaitan urutan, untuk analisis sensitivitas dan untuk dekomposisi atau skema iteratif
lainnya. Pemisahan model dan data. model AMPL tetap ringkas bahkan sebagai tabel
data set dan tumbuh. Model dapat menggabungkan berbagai macam kondisi untuk
validitas data.Interface untuk pemecah populer dan canggih termasuk CONOPT,
CPLEX, LAMPU, Lancelot, LOQO, LSGRG, Minos, OSL, SNOPT, dan XA.
2.1.2 Optimasi Kombinatorial
Optimasi Kombinatorial adalah topik dalam ilmu komputer teoritis dan
matematika terapan yang berfungsi untuk mencari solusi dengan biaya yang terkecil
untuk masalah matematika di mana setiap solusi dikaitkan dengan numerical cost.
Dalam beberapa permasalahan, pencarian menyeluruh tidak dapat dilakukan. Beroperasi
pada daerah yang ini dioptimisasi, di mana set solusi yang layak adalah diskrit atau
dapat dikurangi menjadi diskrit, dan di mana tujuannya adalah untuk mencari solusi
yang terbaik. Beberapa masalah umum yang melibatkan optimasi kombinatorial adalah
traveling salesman problem dan the minimum spanning tree problem .
Optimasi kombinatorial adalah bagian dari optimasi yang berhubungan dengan
riset operasi , teori algoritma , dan teori kompleksitas komputasi. Ini memiliki aplikasi
penting dalam beberapa bidang, termasuk artificial intelligence, matematika , dan
rekayasa perangkat lunak .
Beberapa penelitian literatur menganggap optimasi diskrit terdiri dari program
integer bersama-sama dengan optimasi kombinatorial (pada gilirannya terdiri dari
masalah optimasi yang berurusan dengan grafik , matroids , dan struktur yang
berhubungan) walaupun semua topik telah terjalin erat dengan penelitian literatur. Hal
ini sering melibatkan cara penentuan yang efisien untuk mengalokasikan sumber daya
yang digunakan untuk mencari solusi untuk masalah matematika.
2.2 Knapsack 2D
2.2.1 Pengenalan Knapsack
Pengendalian Aktivitas Produksi (Production Activity Control = PAC) bertujuan
untuk mempertahankan keseimbangan antara sumber-sumber daya manufacturing yang
tersedia dan permintaan total. Fungsi dari PAC, yang sering disebut sebagai: shop floor
control (SFC) adalah melakukan aktivitas-aktivitas sebagaimana telah direncanakan,
melaporkan hasil-hasil operasi, dan memperbaiki atau merevisi rencana-rencana yang
diperlukan untuk mencapai hasil yang diinginkan. PAC melakukan umpan-balik melalui
pengukuran output aktual dan membandingkannya dengan rencana-rencana. Dengan
demikian, PAC merupakan komponen esensial dari close-loop MRP. PAC mencakup
aktivitas-aktivitas keseluruhan dari shop-floor scheduling and control yang biasa disebut
sebagai shop-floor control yang secara keseluruhan merupakan bagian dalam PAC, serta
sebagian aktivitas-aktivitas penjadwalan dan tindak lanjut terhadap pemasok (supplier
scheduling and follow-up) yang merupakan bagian terbesar dalam PAC.
Banyak teknik PAC didesain untuk melaksanakan rencana-rencana material
secara terperinci yang dihasilkan melalui sistem MRP. Perluasan dari definisi PAC
dilakukan melalui pengembangan penggunaan komputer pada shop floor dan electronic
data interchange (EDI) dengan pemasok. Selain itu, komputer juga banyak digunakan
untuk membantu pencapaian efisiensi operasi (operating efficiencies), dimana ongkos-
ongkos manufakturing harus diminimumkan guna memperoleh harga kompetitif.
Pengendalian ongkos-ongkos membutuhkan operasi yang efisien dari keseluruhan
organisasi. Elemen-elemen yang perlu diperhatikan dalam efisiensi operasi, adalah:
supervisi pabrik dan tenaga kerja tidak langsung, dukungan dan keterlibatan pekerja,
mesin dan peralatan yang andal, fasilitas pendukung yang efektif dan pengelolaan bahan
baku menjadi bahan jadi yang efisien.
Dalam pengelolaan bahan baku sering terjadi proses pemotongan bahan baku
menjadi beberapa bagian untuk diproses lebih lanjut. Pemotongan ini sering dilakukan
secara manual tanpa melakukan perencanaan yang matang, sehingga pada setiap akhir
proses produksi banyak terdapat sisa potongan bahan baku yang terbuang sia- sia. Hal
ini sering menjadi faktor penting yang mendorong untuk melakukan optimasi dalam sisa
pemotongan bahan baku. Permasalahan optimasi sisa pemotongan dikenal sebagai
masalah knapsack.
Sebuah masalah knapsack memerlukan proses pencarian sebuah subset dari
kumpulan obyek dengan memaksimumkan jumlah dari keuntungan obyek dan tidak
boleh melebihi ukuran dari knapsack atau melanggar batasan yang ada. Sejumlah
masalah muncul dalam bidang ilmu komputer dan riset operasional, yaitu aplikasi
”cutting stock”. Masalah 2D sangat menarik untuk dipelajari lebih jauh. Masalah
knapsack 0-1 sudah dapat diselesaikan secara efisien dengan linier systolic array.
Beberapa algoritma knapsack 2D memperhatikan sejumlah batasan masalah yang
dikenal, dan masalah-masalah ini sering mudah untuk diselesaikan dengan
menambahkan batasan-batasan atau menggunakan approximation method. Masalah yang
dianalisis di sini termasuk dalam kelompok NP, dimana solusi terbaik hasil komputasi
secara sekuensial adalah O(LW(n+L+W)), dimana n adalah jumlah obyek, dan L dan W
adalah dimensi dari knapsack. Running time untuk algoritma ini adalah pseudo-
polynomial karena dalam kaitan dengan ukuran input, kapasitas knapsack dikodekan
hanya dalam log2(L) + log2(W) bit. Gambar 1 menunjukkan sebuah solusi untuk
masalah knapsack sederhana.
2.2.2 Masalah Knapsack 2D
Masalah Knapsack 2D merupakan masalah pengisian daerah berdimensi (L,W)
dengan n buah persegi dengan ukuran (li, wi) dimana i = 1, 2, ..., n. Profit adalah suatu
nilai yang positif, π1, π1, ..., πn yang berkaitan dengan tiap persegi. Dengan parameter
ini, keuntungan maksimum dari π1z1, π1z2, ..., πnzn dihitung dimana zi adalah suatu
nilai positif dimana knapsack dibagi dalam zi bentuk persegi i, yang mempunyai ukuran
(li, wi). Masalah pemotongan ini hanya mengijinkan terjadinya proses rekursi sisi per
sisi, sehingga semua pemotongan dibuat tegak lurus dari satu sisi persegi terhadap yang
lainnya. Obyek benda dapat mempunyai orientasi yang sudah tepat atau dapat diputar
900. Tambahan n obyek dengan dimensi (wi, li) dengan keuntungan π1 ditambahkan
ketika proses rotasi memungkinkan. Salah satu algoritma untuk menyelesaikan masalah
ini adalah dengan menerapkan dynamic programming.
Fungsi Knapsack F(x, y), didapatkan dari teknik dynamic programming,
dilakukan proses perhitungan sehingga untuk lokasi (x, y), F(x, y) adalah keuntungan
terbesar yang diperoleh dari persegi yang dibuat dari sisi x, y dan titik (x, y). Hal ini
memenuhi pertidaksamaan matamatika berikut ini yang berhubungan dengan batasan
pemotongan yang dapat dilakukan.
0 ≤ x ≤ L,
0 ≤ y ≤ W,
F(x, y) ≥ 0,
F(x1 + x2, y) ≥ F(x1, y) + F(x2, y),
F(x, y1 + y2) ≥ F(x, y1) + F(x, y2),
F(li, wi) ≥ πi, (i = 1, 2, …, n)
2.3 Sequential Dynamic Programming
Sequential Dynamic Programming adalah suatu teknik matematis yang biasanya
digunakan untuk membuat suatu keputusan dari serangkaian keputusan yang saling
berkaitan. Tujuan utama model ini adalah untuk mempermudah penyelesaiann persoalan
optimasi yang mempunyai karakteristik tertentu. Ide dasar dynamic programming ini
adalah membagi persoalan menjadi beberapa bagian yang lebih kecil sehingga
memudahkan penyelesaiannya. Akan tetapi, berbeda dengan linear programming, pada
persoalan dynamic programming ini tidak ada formulasi matematis yang standar. Karena
itu, persamaan-persamaan yang terpilih untuk digunakan harus dikembangkan agar
dapat memenuhi masing-masing situasi yang dihadapi. Dengan demikian, maka antara
persoalan yang satu dengan persoalan lainnya dapat mempunyai struktur penyelesaian
persoalan yang berbeda.
Keuntungan dari penggunaan dynamic programming adalah dapat memperoleh
solusi dari suatu masalah tanpa adanya exponential running time. Setiap obyek
berbentuk kotak akan diatur posisinya, dan sebuah tabel akan mencatat pemotongan
terbaik untuk tiap lokasi. Setelah itu, semua isi tabel akan dibaca untuk menghitung
jumlah panjang dan lebar dari obyek untuk membuat konfigurasi dari obyek yang
menghasilkan keuntungan maksimum. Berikut ini adalah persamaan matematis relasi
yang digunakan untuk mendapatkan algoritma sequential.
Step 1 F0 (x, y) = max {0, πj | lj ≤ x Λ wj ≤ y}
Step 2 Fk (x, y) = max { Fk-1 (x, y), Fk-1 (x1, y) + Fk-1 (x2, y), Fk-1 (x, y1) +
Fk-1 (x, y2) }
Step 3 0 < x1 ≤ x2, x1 + x2 ≤ x, 0 < y1 ≤ y2, y1 + y2 ≤ y.
Pada step 1 algoritma, semua lokasi dalam knapsack diinisialisasi dengan nilai 0.
Pada step 2 ini, setiap obyek mulai diperhatikan, meletakkan nilai keuntungan tertinggi
pada semua lokasi dimana memungkinkan akan dilakukan. Pada step 3 ini dilakukan
pembacaan isi tabel 2D dari baris yang paling rendah ke baris yang paling tinggi,
menjumlahkan semua kemungkinan kombinasi yang dapat dilakukan baik secara
vertikal atau horisontal dan menyimpan dua obyek yang mempunyai jumlah keuntungan
tertinggi. Pada segmen 1 ditunjukkan bagaimana nilai F(x, y) dihitung secara iterasi.
Karena hanya potongan persegi yang digunakan, solusi parsial pada posisi (i, j) dipotong
secara paralel menjadi dua bagian, x dan y. Karena simetris, hanya potongan x, mulai
dari x = 0 sampai i/2, dan potongan y mulai dari 0 sampai j/2 yang dipertimbangkan
untuk setiap (i, j). Algoritma sequential ini mempunyai waktu proses O(LW(n+L+W)),
dimana n adalah jumlah obyek, dan L, W menyatakan dimensi dari knapsack.
Gambar 2.1 Gambar kumpulan permasalahan
Gambar 2.2 Gambar hasil akhir dari permasalahan
2.4 Flowchart
Flowchart adalah representasi skema dari suatu algoritma atau suatu proses.
Flowchart dikenal pada tahun 1912 sebagai representasi “Process Charts- First Steps in
Finding the One Best Way” dan saat ini menjadi alat yang digunakan untuk
menunjukkan aliran proses dalam suatu algoritma.
2.4.1 Pengenalan Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan
hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol.
Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan
antar proses digambarkan dengan garis penghubung. Flowchart ini merupakan langkah
awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih
jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart
selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk
program dengan bahsa pemrograman.
2.4.2 Simbol-simbol Flowchart
Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu
menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara lain :
Flow Direction symbol
Simbol yang digunakan untuk menghubungkan antara symbol
yang satu dengan simbil yang lain. Simbol ini disebut juga
connecting line.
Terminator Symbol
Simbol untuk permulaan (start) atau akhir (stop) dari suatu
kegiatan.
Connector Symbol
Simbol untuk keluar – masuk atau penyambungan proses
dalam lembar atau halaman yang sama.
Connector Symbol
Simbol untuk keluar – masuk atau penyambungan proses pada
lembar atau halaman yang berbeda.
Processing Symbol
Simbol yang menunjukkan pengolahan yang dilakukan oleh
computer.
Manual Operation Symbol
Simbol yang menunjukkan pengolahan yang tidak dilakukan
oleh computer.
Decision Symbol
Simbol pemilihan proses berdasarkan kondisi yang ada.
Input – Output Symbol
Simbol yang menyatakan proses input dan output tanpa
tergantung dengan jeni peralatannya.
Manual Input Symbol
Simbol untuk pemasukan data secara manual on-line
keyboard.
Preparation Symbol
Simbol untuk mempersiapkan penyimpanan yang akan
digunakan sebagai tempat pengolahan di dalam storage.
Predefine Proccess Symbol
Simbol untuk pelaksanaan suatu bagian (sub-program) atau
prosedur.
Display Symbol
Symbol yang menyatakan peralatan output yang digunakan
yaitu layar, plotter, printer dan sebagainya.
Disk and On-line Storage Symbol
Simbol yang menyatakan input yang berasal dari disk atau
disimpan ke disk.
Magnetic Tape Unit Symbol
Simbol yang menyatakan input berasal dari pita magnetik atau
output disimpan ke pita magnetik.
Punch Card Symbol
Simbol yang menyatakan bahwa input berasal dari kartu atau
output ditulis ke kartu.
Document Symbol
Simbol yang menyatakan input berasal dari dokumen dalam
bentuk kertas atau output dicetak ke kertas.
Untuk pengolahan data dengan komputer, dapat dirangkum urutan dasar untuk
pemecahan suatu masalah, yaitu;
2.4.3 Kaidah-kaidah pembuatan Flowchart
Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak.
Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu
masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara
satu pemrogram dengan pemrogram lainnya.
Namun secara garis besar, setiap pengolahan selalu terdiri dari tiga bagian utama,
yaitu;
a. Input berupa bahan mentah
b. Proses pengolahan
c. Output berupa bahan jadi
Untuk pengolahan data dengan komputer, dapat dirangkum urutan dasar untuk
pemecahan suatu masalah, yaitu;
- START berisi instruksi untuk persiapan perlatan yang diperlukan sebelum
menangani pemecahan masalah.
- READ berisi instruksi untuk membaca data dari suatu peralatan input.
- PROCESS berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai
dengan data yang dibaca.
- WRITE berisi instruksi untuk merekam hasil kegiatan ke perlatan output.
- END mengakhiri kegiatan pengolahan
Gambar 2.3 Gambar flowchart dasar
Dari gambar flowchart di atas terlihat bahwa suatu flowchart harus terdapat proses
persiapan dan proses akhir. Dan yang menjadi topik dalam pembahasan ini adalah tahap
proses. Karena kegiatan ini banyak mengandung variasi sesuai dengan kompleksitas
masalah yang akan dipecahkan. Walaupun tidak ada kaidah-kaidah yang baku dalam
penyusunan flowchart, namun ada beberapa anjuran yaitu:
- Hindari pengulangan proses yang tidak perlu dan logika yang berbelit
sehingga jalannya proses menjadi singkat
- Penggambaran flowchart yang simetris dengan arah yang jelas.
- Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
START
READ
PROCESS
WRITE
END
2.4.4 Operator Flowchart
Operator pada flowchart dibagi menjadi tiga,yaitu:
1. Operator Numerik
Tabel 2.1 Tabel Operator Numerik
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
^ Pangkat
square Akar pangkat dua
2. Operator Hubungan
Tabel 2.2 Tabel Operator Hubungan
= Sama dengan
# Tidak sama dengan
< Lebih kecil
> Lebih Besar
Lebih kecil sama dengan
Lebih besar sama dengan
3. Operator Logika
Tabel 2.3 Tabel Operator Logika
AND Logika DAN
OR Logika ATAU
NOT Logika LAWAN
2.5 State Transition Diagram
State Transition Diagram adalah tipe diagram yang digunakan dalam ilmu
komputer dan bidang-bidang lainnya berhubungan untuk menggambarkan kegiatan dari
sistem. State transition diagram digunakan untuk memberikan sebuah deskripsi abstrak
dari sebuah kegiatan sistem. Kegiatan dari sistem dianalisis dan diwakilan dalam
serangkaian kejadian yang bisa muncul dalam satu atau lebih state. Singkatnya setiap
diagram mewakili objek-objek dari sebuah kelas dan melacak state yang berbeda dari
objek melalui sebuah sistem.
State Transition Diagram dapat digunakan untuk menggambarkan finite state
machines, yang diperkenalkan pertama kali oleh Taylor Booth di tahun 1967 pada
bukunya yang berjudul “Sequential Machines and Automata Theory”. Finite State
machines adalah sebuah grafik yang langsung berhubungan dengan bermacam-macam
elemen((Q,Σ,Z,δ,q0,F).
State Transition Diagram sering di salah mengertikan oleh pengguna awam
dengan Flowchart. Berikut adalah perbandingan state transition diagram dengan
flowchart :
Gambar 2.4 Gambar perbedaan flowchart dan state transition diagram
Pada gambar diatas (a) adalah state transition diagram bereaksi dengan
merespon kejadian secara eksplisit dan (b) adalah flowchart tidak membutuhkan
kejadian eksplisit tetapi lebih membutuhkan transisi dari node ke node dalam grafisk
secara otomatis. Flowchart menjadi s ibuk saat mengeksekusi sebuah aktifitas pada
sebuah node. Gambar berusaha menunjukan pembalikan peran dengan menyetarakan
busur dari state diagram dengan tahap-tahap flowchart. Anda dapat membandingkan
sebuah flowchart ke jalur rakitan dalam pembuatan, karena flowchart menggambarkan
proses dari beberapa tugas dari awal sampai akhir. Perbedaan antara state machines dan
flowchart sangat penting karena kedua konsep ini mewakili dua diametral yang
bertentangan dengan pemrograman paradigm.
2.6 Metode Monroe
Metode Monroe adalah salah satu metode yang digunakan untuk menentukan
penjadwalan yang telah cukup dikenal. Penulis akan menggunakan metode Monroe ini
untuk menjadwalkan jam kerja pegawai pada PT. Surya Pratama agar memenuhi
permintaan terhadap pekerja dengan meminimumkan jumlah pekerja yang disiapkan.
Masalah-masalah yang ada sehingga diperlukannya metode penjadwalan ini
adalah sebagai berikut
- Permintaan tenaga kerja berfluktuasi pada waktu yang relative pendek.
- Tenaga manusia tidak dapat disimpan untuk kemudian digunakan suatu saat.
- Pentingnya menjaga tingkat pelayanan
Aturan dasar dari algoritma Monroe ini yang pertama adalah mencari dua hari libur
berurutan untuk setiap shift. Shift adalah kumpulan hari dalam 1 minggu dimana
seseorang diharapkan untuk bekerja, Bagian dari hari yang menjelaskan kapan seseorang
mulai bekerja, istirahat dan makan siang. Setelah shift telah ditentukan untuk para
pekerja, tentukanlah seberapa besar kebutuhan perusahaan terhadap para pekerja,
maksudnya berapa banyak pekerja yang dibutuhkan sehari-hari oleh perusahaan untuk
memenuhi segala pekerjaan yang ada diperusahaan itu, dengan metode ini maka
pekerjaan dapat dioptimalkan karena pekerja bekerja dengan maksimal dalam waktu 7
hari kerja dalam seminggu sesuai schedule. Schedule atau jadwal adalah kumpulan shift
yang memenuhi 2 pengertian yaitu kumpulan hari kerja dan hari libur setiap pekerja
dalam 1 minggu operasi dan pengertian lain adalah bagian dari hari yang menjelaskan
kapan waktu seseorang untuk berkerja, istirahat dan makan siang.
Data-data yang terkumpul diolah menggunakan algoritma Monroe untuk
mendapatkan penjadwalan terhadap pekerja yang paling optimal. Jika yang dijadwalkan
adalah 5 hari kerja untuk tiap pekerja, jumlah pekerja yang dibutuhkan dalam seminggu
harus genap kelipatan 5. Jika tidak genap maka tambahkan satu atau lebih hari sampai
genap kelipatan 5. Untuk setiap hari dalam seminggu, hitung jumlah hari libur dengan
cara mengurangi jumlah tenanga kerja yang tersedia dengan kebutuhan pada hari
tersebut. Setelah itu buat pasangan hari libur dimulai pada dua hari pertama dalam
seminggu (senin dan selasa) sampai pasangan hari libur tersebut berulang.
Pada iterasi pertama,tugaskan setengah atau kira-kira setengah dari jumlah hari libur
pada hari kedua ke pasangan hari libur pertama. Untuk pasangan hari libur kedua
kurangi jumlah tadi dari jumlah hari libur ketiga. Teruskan prosedur ini sampai semua
pasangan hari libur telah terisi. Jika jumlah shift pada pasangan hari libur pertama dan
pasangan hari libur terakhir telah sama, hentikan perulangan terhadap perhitungan, jika
tidak maka rata-rata jumlah shift pada pasangan hari libur pertama dan terakhir harus
dihitung. Lalu gunakan hasilnya sebagai jumlah shift pada pasangan hari libur pertama
pada iterasi kedua. Gunakan langkah sebelumnya untuk penugasan pada pasangan hari
libur berikutnya
Dari hasil peramalan didapat kebutuhan tenaga kerja selama seminggu adalah
sebagai berikut
Tabel 2.4 Kebutuhan Tenaga Kerja
Hari Minggu Senin Selasa Rabu Kamis Jumat Sabtu Total
Permintaan 4 8 7 7 7 7 6 46
Setiap shift bekerja 5 hari dalam seminggu sehingga kebutuhan tenaga kerja adalah 46/5
= 9,2 orang, dibulatkan menjadi 10 orang
Tabel 2.5 Kebutuhan Setelah Penjadwalan Monroe
Hari Minggu Senin Selasa Rabu Kamis Jumat Sabtu Total
Jumlah
Staff
10 10 10 10 10 10 10 70
Kebutuhan 4 8 7 7 7 7 6 46
Hari Libur 6 2 3 3 3 3 4 24
Jumlah kebutuhan tenaga kerja seminggu adalah 46 orang. Agar genap kelipatan 5 maka
ditambahkan 4 hari sehingga tabel perhitungan hari libur menjadi
Tabel 2.6 Kebutuhan Monroe yang Dibulatkan Nilainya
Hari Minggu Senin Selasa Rabu Kamis Jumat Sabtu Total
Jumlah Staff 10 10 10 10 10 10 10 70
Kebutuhan 4 8 8 8 8 8 6 50
Hari Libur 6 2 2 2 2 2 4 20
2.7 Hipotesis
Segala aspek-aspek yang dapat memaksimalkan pendapatan dan meminimumkan
pengeluaran sangat perlu diperhatikan dalam proses optimasi. Pada PT. Surya Pratama
terdapat satu buah aspek yang cukup berpengaruh pada optimasi untuk perusahaan ini.
Penulis menemukan bahwa penggunaan listrik pada PT. Surya Pratama sangatlah tidak
efisien. Salah satunya yaitu saat pemanasan mesin pada setiap hari saat awal pekerjaan
dimulai setiap minggunya, dibutuhkan penggunaan listrik yang tidak sedikit dan waktu
yang cukup lama hanya untuk memanaskan mesin-mesin blow untuk melakukan
produksi. Jadi terbuangnya waktu dan biaya tanpa adanya produksi pada saat itu.
Dengan metode penjadwalan yang digunakan pada penulisan ini,sudah cukup
berpengaruh terhadap waktu untuk memanaskan mesin karena ditambahkannya jumlah
hari kerja dan penjadwalan yang baik sehingga aspek kesehatan para pekerja juga tidak
terabaikan.
Selain pada proses pemanasan mesin terdapat pula kerugian yang didapat akibat
ketidak stabilan listrik pada daerah-daerah disekitar pabrik yang menyebabkan turunnya
listrik dalam waktu yang sesaat dan mengakibatkan mesin-mesin berhenti seketika dan
menyebabkan produksi menghasilkan barang sisa (BS) dan tidak dapat dipakai lagi.
Untuk masalah ini penulis tidak menemukan cara untuk melakukan optimasi terhadap
listrik yang tidak stabil pada daerah disekitar pabrik, karena itu adalah masalah yang
cukup menyeluruh terhadap keadaan listrik didaerah tangerang. Penulis hanya dapat
menyarankan untuk menggunakan power supply yang dapat menjaga agar tidak terjadi
turun/matinya listrik yang sangat seketika dan mengganggu jalannya produksi.
Hal lain tentang listrik yang tidak diperhatikan pada PT. Surya Pratama yang
cukup berpengaruh terhadap pengoptimalan pendapatan perusahaan adalah Waktu
Beban Puncak (WBP) yang ditetapkan diindonesia sejak oktober 2005. Waktu Beban
Puncak adalah waktu dimana harga listrik pada jam tertentu memiliki biaya tertinggi
dibandingkan dengan harga listrik pada jam-jam biasa. Waktu Beban Puncak berlaku
pukul 18.00-22.00. Perbedaan harga listrik pada Waktu Beban Puncak dengan harga
listrik diluar beban puncak berbeda-beda untuk tiap daerah diindonesia berkisar antara :
14 ≤ K ≤ 20
K = konstanta dalam bentuk persen
Pada PT. Surya Pratama yang berada di daerah tanggerang jumlah K adalah 14
yang merupakan nilai terminimal pada jumlah batas yang telah ditetapkan.