BAB 2 LANDASAN TEORI
2.1 Pengukuran Waktu Menurut Sutalaksana (1979, p131) pengukuran waktu adalah pekerjaan mengamati dan mencatat waktu kerja baik setiap elemen ataupun siklus dengan menggunakan alat-alat yang telah disiapkan. Teknik pengukuran waktu terbagi atas dua bagian yaitu secara langsung dan secara tidak langsung. Pengukuran secara langsung adalah pengukuran yang dilakukan secara langsung yaitu di tempat dimana pekerjaan yang bersangkutan dilaksanakan. Dua cara yang termasuk di dalamnya adalah cara jam henti dan sampling pekerjaan. Cara tidak langsung melakukan perhitungan waktu tanpa harus berada di tempat pekerjaan yaitu dengan membaca tabel-tabel yang tersedia asalkan mengetahui jalannya pekerjaan melalui elemenelemen pekerjaan atau elemen-elemen gerakan. Pengukuran waktu ditujukan untuk mendapatkan waktu baku penyelasian pekerjaan yaitu waktu yang dibutuhkan secara wajar oleh seorang pekerja normal untuk menyelesaikan suatu pekerjaan yang dijalankan dalam sistem kerja terbaik (Sutalaksana, 1979, p117).
2.2 Pengukuran Waktu Baku Waktu baku merupakan waktu yang dibutuhkan oleh seorang pekerja yang memiliki tingkat kemampuan rata-rata untuk menyelesaikan suatu pekerjaan. Di sini sudah meliputi kelonggaran waktu yang diberikan dengan memperhatikan situasi dan
10 kondisi pekerjaan yang harus diselesaikan tersebut. Dengan demikian, maka waktu baku yang dihasilkan dalam aktivitas pengukuran kerja ini akan dapat digunakan sebagai alat untuk membuat rencana penjadwalan kerja yang menyatakan berapa lama suatu kegiatan itu berlangsung dan berapa output yang dihasilkan serta berapa jumlah tenaga kerja yang dibutuhkan untuk menyelesaikan pekerjaan tersebut.
2.2.1 Pengukuran Pendahuluan Tujuan dilakukan pengukuran pendahuluan adalah untuk mengetahui berapa kali pengukuran harus dilakukan untuk tingkat-tingkat ketelitian dan kepercayaan
yang
diinginkan.
Tahap-tahapnya
adalah
sebagai
berikut
(Sutalaksana, 1979, p132) : 1. Melakukan beberapa buah pengukuran yang banyaknya ditentukan oleh pengukur. 2. Menguji keseragaman data, menghitung jumlah pengukuran yang diperlukan, dan bila pengukuran belum mencukupi maka dilanjutkan dengan pengukuran pendahuluan kedua.
2.2.2 Uji Keseragaman Data Uji keseragaman data perlu untuk dilakukan terlebih dahulu sebelum menggunakan data yang diperoleh guna menetapkan waktu baku. Uji keseragaman data bisa dilaksanakan dengan cara visual dan/atau mengaplikasikan peta kontrol (control chart). Peta kontrol (control chart) adalah suatu alat yang tepat guna dalam menguji keseragaman data dan/atau keajegan data yang diperoleh dari hasil pengamatan.
11 Uji keseragaman data secara visual dilakukan secara sederhana mudah dan cepat. Di sini kita hanya sekedar melihat data yang terkumpul dan seterusnya mengidentifikasikan data yang terlalu ekstrim. Yang dimaksud dengan data yang terlalu “ekstrim” adalah data yang terlalu besar atau yang terlalu kecil dan jauh menyimpang dari trend rata-ratanya. Data yang terlalu ekstrim ini sebaiknya dibuang jauh-jauh dan tidak dimasukkan ke dalam perhitungan selanjutnya, (Wignjosoebroto, 2000, p194-195). Langkah-langkah yang dilakukan untuk menguji keseragaman data sebagai berikut : 1. Hasil pengukuran dikelompokkan ke dalam subgrup-subgrup dan hitung ratarata tiap subgrup :
ΧΚ =
ΣΧi n
Dimana : n = ukuran subgrup, yaitu banyaknya data dalam satu subgrup k = jumlah subgrup yang terbentuk Xi = data pengamatan 2. Hitung rata-rata keseluruhan, yaitu rata-rata dari rata-rata subgrup : Χ=
ΣΧ k k
3. Hitung standar deviasi dari waktu penyelesaian :
σ=
(
Σ Χi − Χ Ν −1
)
2
Dimana : N = jumlah pengamatan pendahuluan yang telah dilakukan
12 4. Hitung standar deviasi dari distribusi harga rata-rata subgrup :
σΧ =
σ n
5. Tentukan Batas Kontrol Atas (BKA) dan Batas Kontrol Bawah (BKB) : BKA = x + (Ζσ Χ ) BKB = x − (Ζσ Χ ) Dimana : Z = koefisien pada distribusi normal sesuai dengan tingkat kepercayaan. Rumusnya :
⎡1 − β ⎤ Ζ = 1− ⎢ ⎣ 2 ⎥⎦ 6. Jika seluruh rata-rata data waktu subgrup berada di daerah antara BKA dan BKB, maka data waktu dikatakan seragam.
2.2.3 Uji Kecukupan Data
Waktu yang diperlukan untuk melaksanakan elemen kerja pada umumnya akan sedikit berbeda dari siklus ke siklus kerja sekalipun operator bekerja pada kecepatan normal dan uniform, tiap elemen dalam siklus yang berbeda tidak selalu akan bisa diselesaikan dalam waktu yang persis sama. Aktivitas pengukuran kerja pada dasarnya adalah merupakan proses sampling. Konsekuensi yang diperoleh adalah bahwa semakin besar jumlah siklus kerja yang diamati atau diukur maka akan semakin mendekati kebenaran akan data waktu yang diperoleh. Konsistensi dari hasil pengukuran dan pembacaan waktu oleh stop-watch akan merupakan hal yang diinginkan dalam proses pengkuran kerja. Semakin kecil variasi atau
13 perbedaan data waktu yang ada, maka jumlah pengukuran atau pengamatan yang harus dilakukan juga akan cukup kecil. Sebaliknya, semakin besar variabilitas dari data waktu pengukuran, akan menyebabkan jumlah siklus kerja yang diamati juga akan
semakin
besar
agar
bisa
diperoleh
ketelitian
yang
dikehendaki
(Wignjosoebroto, 2000, p183). Perhitungan uji kecukupan data dapat dilakukan setelah semua harga ratarata subgrup berada dalam batas kendali. Rumus dari kecukupan data adalah : ⎡ Ζ ΝΣΧi 2 − (ΣΧi )2 Ν' = ⎢ s ⎢ ΣΧi ⎣⎢
⎤ ⎥ ⎥ ⎦⎥
2
Dimana : N’ = jumlah pengukuran data minimum yang dibutuhkan N = jumlah pengukuran data pendahuluan yang telah dilakukan setelah dikurangi data pengukuran di luar BKA atau BKB Z = bilangan konversi pada distribusi normal sesuai dengan tingkat kepercayaan s = tingkat ketelitian Jumlah pengukuran waktu dapat dikatakan cukup apabila jumlah pengukuran data minimum yang dibutuhkan secara teoritis lebih kecil atau sama dengan jumlah pengukuran yang sudah dilakukan (N’≤N). Jika jumlah pengukuran masih belum mencukupi, maka harus dilakukan pengukuran lagi sampai jumlah pengukuran tersebut cukup.
14 2.2.4 Tingkat Ketelitian dan Tingkat Kepercayaan
Yang dicari dengan melakukan pengukuran-pengukuran ini adalah waktu yang sebenarnya dibutuhkan untuk menyelesaikan suatu pekerjaan. Karena waktu penyelesaian ini tidak pernah diketahui sebelumnya maka harus diadakan pengukuran-pengukuran. Yang ideal tentunya dilakukan pengukuran-pengukuran yang sangat banyak (sampai tak terhingga kali) karena dengan demikian diperoleh jawaban yang pasti. Tetapi hal ini jelas tidak mungkin karena keterbatasan waktu, tenaga, dan tentunya biaya. Namun sebaliknya jika tidak dilakukan beberapa kali pengukuran saja, dapat diduga hasilnya sangat kasar. Sehingga yang diperlukan adalah jumlah pengukuran yang tidak membebankan waktu, tenaga dan biaya yang besar tetapi hasilnya tidak dapat dipercaya. Jadi, walaupun jumlah pengukuran tidak berjuta kali, tetapi jelas tidak hanya beberapa kali saja. Dengan tidak dilakukannya pengukuran yang banyak sekali ini, pengukur akan kehilangan sebagian kepastian akan ketetapan/rata-rata waktu penyelesaian yang sebenarnya. Hal ini harus disadari. Tingkat ketelitian dan tingkat kepercayaan adalah pencerminan tingkat kepastian yang diinginkan oleh pengukur setelah memutuskan tidak akan melakukan pengukuran yang sangat banyak. Tingkat
ketelitian
menunjukkan
penyimpangan
maksimum
hasil
pengukuran dari waktu penyelesaian sebenarnya. Hal ini biasanya dinyatakan dalam
persen.
Sedangkan,
tingkat
kepercayaan
menunjukkan
besarnya
kepercayaan pengukur bahwa hasil yang diperoleh memenuhi syarat ketelitian tadi. Inipun dinyatakan dalam persen (Sutalaksana, 1979, p135).
15 2.2.5 Penyesuaian
Penyesuaian
adalah
proses
dimana
analisa
pengukuran
waktu
membandingkan penampilan operator (kecepatan atau tempo) dalam pengamatan dengan konsep pengukur sendiri tentang bekerja secara wajar. Setelah pengukuran berlangsung, pengukur harus mengamati kewajaran kerja yang ditunjukkan operator. Ketidakwajaran dapat saja terjadi, misalnya bekerja tanpa kesungguhan, sangat cepat seolah-olah diburu waktu, atau karena menjumpai kesulitan-kesulitan, seperti karena kondisi ruangan yang buruk. Sebab-sebab seperti ini mempengaruhi kecepatan kerja yang berakibat terlalu singkat atau terlalu panjangnya waktu penyelasian. Hal ini jelas tidak diinginkan karena waktu baku yang dicari adalah waktu yang diperoleh dari kondisi dan cara kerja yang baku yang diselesaikan secara wajar. Andaikata ketidakwajaran ada, maka pengukur harus mengetahuinya dan menilai seberapa jauh hal itu terjadi. Penilaian perlu diadakan karena berdasarkan inilah penyesuaian dilakukan. Jadi jika pengukur mendapatkan harga rata-rata siklus/elemen yang diketahui diselesaikan dengan kecepatan tidak wajar oleh operator, maka agar harga rata-rata tersebut menjadi wajar, pengukur harus menormalkannya dengan melakukan penyesuaian. Biasanya penyesuaian dilakukan mengalikan waktu siklus rata-rata atau waktu elemen rata-rata dengan suatu harga p yang disebut faktor penyesuaian. Besarnya harga p tentunya sedemikian rupa sehingga hasil perkalian yang diperoleh mencerminkan waktu yang sewajarnya atau yang normal. Bila pengukur berpendapat bahwa operator bekerja di atas normal (terlalu cepat), maka harga pnya akan lebih besar dari satu (p1). Sebaliknya jika operator dipandang bekerja di
16 bawah normal, maka harga p akan lebih kecil dari satu (p). Seandainya pengukur berpendapat bahwa operator bekerja dengan wajar, maka harga p-nya sama dengan satu (p=1) (Sutalaksana, 1979, p138). Terdapat beberapa metode dalam menentukan faktor penyesuaian (Sutalaksana, 1979, p139-149), yaitu : a. Metode Persentase Merupakan cara yang paling awal digunakan dalam melakukan penyesuaian. Besarnya faktor penyesuaian sepenuhnya dilakukan oleh pengukur melalui pengamatannya selama melakukan pengukuran. Cara ini adalah cara yang paling mudah dan sederhana tetapi cara ini bersifat subyektif, kurang teliti karena kasarnya penelitian. b. Metode Schumard Cara
ini
memberikan
patokan-patokan
penilaian
melalui
kelas-kelas
performance kerja dimana setiap kelas tersebut mempunyai nilai sendiri-
sendiri. Di sini pengukur diberi patokan untuk menilai performansi kerja operator menurut kelas-kelas Superfast+, Fast+, Fast-, Excellent, dan seterusnya. c. Metode Westinghouse Cara ini mengarahkan penelitian pada 4 faktor yang dianggap menentukan kewajaran atau ketidakwajaran dalam bekerja, yaitu : keterampilan, usaha, kondisi kerja, dan konsistensi. Setiap faktor terbagi dalam kelas-kelas dan nilainya masing-masing.
17 d. Metode Objektif Merupakan metode yang memperlihatkan dua faktor, yaitu : kecepatan kerja dan tingkat kesulitan pekerjaan. Kedua faktor inilah yang dipaandang bersamasama untuk menentukan berapa harga penyesuaian untuk mendapatkan waktu normal. e. Metode Bedaux dan Sintesa Cara Bedaux tidak banyak berbeda dengan Schumard, hanya saja nilai-nilai pada cara Bedaux dinyatakan dalam “B”. Sedangkan cara Sintesa waktu penyelesaian setiap elemen gerakan dibandingkan dengan harga-harga yang diperoleh dari tabel-tabel waktu gerakan untuk kemudian dihitung harga rataratanya.
2.2.6 Kelonggaran
Kelonggaran diberikan untuk tiga hal yaitu untuk kebutuhan pribadi, menghilangkan rasa fatigue, dan hambatan-hambatan yang tidak dapat dihindarkan. Ketiganya ini merupakan hal-hal yang secara nyata dibutuhkan oleh pekerja, dan yang selama pengukuran tidak diamati, diukur, dicatat, ataupun dihitung. Karenanya sesuai pengukuran dan setelah mendapatkan waktu normal, kelonggaran perlu ditambahkan (Sutalaksana, 1979, p149-154). 1. Kelonggaran untuk kebutuhan pribadi Yang termasuk dalam kebutuhan pribadi disini adalah hal-hal seperti minum sekadarnya untuk menghilangkan rasa haus, ke kamar kecil, bercakap-ckap dengan teman sekerja untuk menghilangkan ketegangan dan kejenuhan kerja. Kebutuhan-kebutuhan ini jelas terlihat sebagai sesuatu yang mutlak. Besarnya
18 kelonggaran yang diberikan untuk kebutuhan probadi seperti itu berbeda-beda dari satu pekerjaan ke pekerjaan lainnya karena setiap pekerjaan memiliki karakteristik sendiri-sendiri dengan tuntunan yang berbeda-beda. 2. Kelonggaran untuk menghilangkan rasa fatigue Rasa fatigue tercermin antara lain dari menurunnya hasil produksi baik jumlah maupun kualitas. Salah satu cara untuk menentukan besarnya kelonggaran ini adalah dengan melakukan pengamatan sepanjang hari kerja dan mencatat pada saat-saat dimana hasil produksi menurun. 3. Kelonggaran untuk hambatan-hambatan tak terhindarkan Dalam melaksanakan pekerjaannya, pekerja tidak akan lepas dari berbagai “hambatan”. Ada hambatan yang dapat dihindarkan seperti mengobrol berlebihan dan menganggur dengan sengaja ada pula hambatan yang tidak dapat dihindarkan karena berada di luar kekuasaan pekerja untuk mengendalikannya. Beberapa contoh yang termasuk ke dalam hambatan tak terhindarkan adalah : a. Menerima atau meminta petunjuk kepada pengawas. b. Melakukan penyesuaian-penyesuaian mesin c. Memperbaiki kemacetan-kemacetan singkat seperti mengganti alat potong yang patah, memasang kembali ban yang lepas dan sebagainya. d. Mengasah peralatan potong. e. Mengambil alat-alat khusus atau bahan-bahan khusus dari gudang.
19 2.2.7 Perhitungan Waktu Baku
Kegiatan pengukuran waktu dinyatakan selesai bila semua data yang diperoleh telah seragam, dan jumlahnya telah memenuhi tingkat ketelitian dan keyakinan yang diinginkan. Selanjutnya adalah mengolah data untuk menghitung waktu baku yang diperoleh dengan langkah-langkah : 1. Menghitung waktu siklus 2. Menghitung waktu normal 3. Menghitung waktu baku
2.3 Peramalan
Peramalan (forecasting) adalah suatu kegiatan untuk memperkirakan apa yang terjadi pada masa yang akan datang. Peramalan merupakan suatu kegiatan untuk meramalkan apa yang akan terjadi di masa yang akan datang dengan menggunakan dan mempertimbangkan data dari masa lampau. Ketepatan secara mutlak dalam memprediksi peristiwa dan tingkat kegiatan yang akan datang adalah tidak mungkin dicapai, oleh karena itu ketika perusahaan tidak dapat melihat kejadian yang akan datang secara pasti, diperlukan waktu dan tenaga yang besar agar mereka dapat memiliki kekuatan terhadap kejadian yang akan datang. Peramalan merupakan alat bantu yang penting dalam perencanaan yang efektif. Dalam lingkungan perusahaan, peramalan kebanyakan digunakan untuk mengestimasi atau memprediksi permintaan yang akan datang guna memperkirakan jumlah dan jenis apa saja yang diproduksi oleh perusahaan. Peramalan permintaan memegang peranan yang penting dalam perencanaan dan pengambilan keputusan, khususnya di bidang produksi. Peramalan permintaan bisa menyangkut jadwal
20 produksi, perencanaan kebutuhan tenaga kerja, perencanaan kapasitas produksi, dan sebagainya. Pada dasarnya terdapat beberapa langkah peramalan yang penting yaitu : 1. Menganalisa data yang lalu. Tahap ini berguna untuk pola yang terjadi pada masa lalu. Analisa ini dilakukan dengan cara membuat tabulasi dari data yang lalu. 2. Menentukan metode yang digunakan. Masing-masing metode akan memberikan hasil permalan yang berbeda. Dengan kata lain, metode peramalan yang baik adalah metode yang menghasilkan penyimpangan antara hasil peramalan dengan nilai kenyataan yang sekecil mungkin. 3. Memproyeksikan
data
yang
lalu
dengan
menggunakan
metode
yang
dipergunakan dan mempertimbangkan adanya beberapa faktor perubahan. 4. Penentuan tujuan, yaitu menentukan kebutuhan informasi-informasi bagi para pembuat keputusan seperti : •
Variabel-variabel yang akan diestimasi.
•
Siapa yang akan menggunakan hasil peramalan.
•
Untuk tujuan apa hasil peramalan akan digunakan.
•
Estimasi jangka panjang atau jangka pendek yang diinginkan.
•
Derajat ketepatan estimasi yang diinginkan.
•
Kapan estimasi dibutuhkan.
•
Bagian-bagian peramalan yang diinginkan, seperti peramalan untuk kelompok pembeli, kelompok produk, atau daerah geografis.
21 5. Pengembangan model. Menentukan model yang merupakan penyederhanaan dari sistem dan merupakan kerangka analitik bagi masukan yang akan memperoleh pengeluaran. Model ditentukan berdasarkan sifat-sifat dan perilaku variabel. 6. Pengujian model. Dilakukan untuk menentukan tingkat akurasi, validitas dan reliabilitas, yang ditentukan dengan membandingkan hasil peramalan dengan kenyataan/aktual. 7. Penerapan model. Setelah lulus dalam pengujian, data historik akan dimasukkan ke dalam model untuk menghasilkan ramalan. 8. Revisi dan evaluasi. Ramalan yang telah dibuat harus senantiasa diperbaiki dan ditinjau kembali. Hal ini perlu dilakukan bila terdapat perubahan dalam perusahaan dan lingkungannya (harga produk, karakteristik produk, periklanan, tingkat pengeluaran pemerintah, kebijaksanaan moneter, atau kemajuan teknologi); dan hasil perbandingan antara ramalan dengan data aktual.
2.3.1 Metode Peramalan
Banyak jenis metode peramalan yang tersedia untuk meramalkan permintaan dalam produksi. Namun yang lebih penting adalah bagaimana memahami karakteristik suatu metode peramalan agar sesuai dengan situasi pengambilan keputusan. Situasi peramalan sangat beragam dalam horison waktu peramalan, faktor yang menentukan hasil sebenarnya, tipe pola data dan berbagai aspek lainnya. Untuk menghadapi penggunaan yang luas seperti itu, beberapa teknik telah dikembangkan. Teknik tersebut dibagi dalam 2 kategori utama, (Makridakis, 1999, p19-24) yaitu :
22 1. Metode peramalan kuantitatif Metode kuantitatif sangat beragam dan setiap teknik memiliki sifat, ketepatan, dan biaya tertentu yang harus dipertimbangkan dalam memilih metode tertentu. Metode kuantitatif formal didasarkan atas prinsip-prinsip statistik yang memiliki ketepatan tinggi atau dapat meminimumkan kesalahan (error), lebih sistematis, dan lebih populer dalam penggunaannya. Untuk menggunakan metode kuantitatif terdapat tiga kondisi yang harus terpenuhi, yaitu : a. Tersedia informasi tentang masa lalu. b. Informasi tersebut dapat dikuantitatifkan dalam bentuk data numerik. c. Dapat diasumsikan bahwa beberapa aspek pola masa lalu akan terus berlanjut di masa mendatang. Metode kuantitatif dapat dibagi ke dalam dua model, yaitu : a. Model deret berkala (time series) Pada model ini, pendugaan masa depan dilakukan berdasarkan nilai masa lalu dari suatu variabel dan / atau kesalahan masa lalu. Model deret berkala menggunakan riwayat permintaan masa lalu dalam membuat ramalan untuk masa depan. Tujuan metode peramalan deret berkala ini adalah menemukan pola dalam deret berkala historis dan mengekstrapolasikan pola dalam deret data historis dan mengekstrapolasikan pola tersebut ke masa depan. Langkah penting dalam memilih suatu metode deret berkala yang tepat adalah dengan mempertimbangkan jenis pola data, sehingga metode yang paling tepat dengan metode tesebut dapat diuji. Pola data dapat dibedakan menjadi :
23 1. Pola Horizontal (H) terjadi bilamana nilai data berfluktuasi di sekitar nilai rata-rata yang konstan. (deret seperti itu adalah “stasioner” terhadap nilai rata-ratanya). Suatu produk yang penjualannya tidak meningkat atau menurun selama waktu tertentu termasuk jenis ini. Demikian pula suatu pengendalian kualitas yang menyangkut pengambilan contoh dari suatu proses produksi berkelanjutan yang secara teoritis tidak mengalami perubahan juga termasuk jenis ini. 2. Pola musiman (S) terjadi bilamana suatu deret dipengaruhi oleh faktor musiman (misalnya kuartal tahun tertentu, bulanan, atau hari-hari pada minggu tertentu). Penjualan dari produk minuman ringan, es krim, dan bahan bakar pemanas ruangan, menunjukkan jenis pola ini. 3. Pola siklis (C) terjadi bilamana datanya dipengaruhi oleh fluktuasi ekonomi jangka panjang seperti yang berhubungan dengan siklus bisnis. Penjualan produk seperti mobil, baja dan peralatan utama lainnya menunjukkan jenis pola data ini. 4. Pola trend (T) terjadi bilamana terdapat kenaikan atau penurunan sekuler jangka panjang dalam data. Penjualan banyak perusahaan, produk bruto nasional (GNP) dan berbagai indikator bisnis atau ekonomi lainnya mengkuti pola trend selama perubahannya sepanjang waktu. Banyak deret data yang mencakup kombinasi dari pola-pola data di atas. Metode peramalan yang dapat membedakan setiap pola harus dipakai bila diinginkan adanya pemisahan komponen pola tersebut.
24 b. Model kausal Model kausal mengasumsikan bahwa faktor yang diramalkan menunjukkan suatu hubungan sebab-akibat dengan satu atau lebih variabel bebas. Maksud dari model kausal adalah menemukan bentuk hubungan tersebut dan menggunakannya untuk meramalkan nilai mendatang dari variabel tak bebas. Setelah hubungan ini ditemukan, nilai-nilai masa mendatang dapat diramalkan cukup dengan memasukkan nilai-nilai yang sesuai untuk variabel-variabel independen. Metode peramalan kausal mengasumsikan bahwa permintaan akan suatu produk bergantung pada satu atau beberapa faktor independen (misalnya, harga, iklan, persaingan, dan lain-lain). Metode peramalan kuantitatif terletak di antara dua ekstrim rangkaian kesatuan, yaitu : 1. Metode naif/intuitif. Metode ini bersifat sederhana dan mudah dipakai, tetapi tidak selalu tepat seperti metode kuantitatif formal. Metode ini masih cukup banyak digunakan karena beberapa orang lebih menyukai pendekatan judgemental daripada pendekatan yang lebih obyektif. 2. Metode kuantitatif formal yang didasarkan atas prinsip-prinsip statistika. Metode ini menggunakan ekstrapolasi horisontal, musiman, dan trend. Jenis ini didasarkan atas pengalaman empiris yang sangat beragam dari bisnis ke bisnis, produk ke produk, dari peramal yang satu ke peramal yang lain.
25 2. Metode peramalan kualitatif atau teknologis Metode peramalan ini tidak memerlukan data yang serupa seperti metode peramalan kuantitatif. Input yang dibutuhkan tergantung pada metode tertentu dan biasanya merupakan hasil dari pemikiran intuitif, perkiraan dan pengetahuan yang telah didapat. Pendekatan teknologis seringkali memerlukan input dari sejumlah orang yang terlatih.
Metode kualitatif mengandalkan opini pakar atau manajer dalam membuat prediksi tentang masa depan. Metode ini berguna untuk tugas peramalan jangka panjang. Penggunaan pertimbangan dalam peramalan, sekilas, tampaknya tidak ilmiah dan bersifat sementara. Tetapi bila data masa lalu tidak ada atau tidak mencerminkan masa mendatang, tidak banyak alternatif selain menggunakan opini dari orang-orang yang berpengetahuan. Ramalan teknologis terutama digunakan untuk memberikan petunjuk, untuk membantu perencana dan untuk melengkapi ramalan kuantitatif, bukan untuk memberikan suatu ramalan numerik tertentu. Metode kualitatif dapat dikelompokkan menjadi 2 yaitu : a. Metode eksploratoris Metode eksploratoris (seperti Delphi, kurva-S, analogi, dan penelitian morfologis) dimulai dengan masa lalu dan masa kini sebagai titik awalnya dan bergerak ke arah masa depan secara heuristik, seringkali dengan melihat semua kemungkinan yang ada. b. Metode normatif Metode normatif (seperti matriks kelutusan, pohon relevansi, dan analisis sistem) dimulai dengan menetapkan sasaran dan tujuan yang akan datang,
26 kemudian bekerja mundur untuk melihat apakah hal ini dapat dicapai, berdasarkan kendala, sumber daya, dan teknologi yang tersedia.
2.3.2 Pemilihan Teknik Peramalan
Pola atau karakteristik data mempengaruhi teknik peramalan yang dipilih. Seringkali, pola data tersebut merupakan karakteristik inheren dari kegiatan yang sedang diteliti. Hubungan data dengan jangka waktu semakin jelas jika kita mengamati bahwa pola trend adalah merupakan kecenderungan jangka panjang, sedangkan variasi musiman menunjukkan pola data yang berulang. Dalam mengevaluasi teknik-teknik yang dikaitkan dengan pola data bisa saja diterapkan lebih dari satu teknik untuk data yang sama. Misalnya, teknik-teknik tertentu mungkin lebih akurat dalam memprediksi titik balik, sedangkan lainnya terbukti lebih andal dalam peramalan pola perubahan yang stabil. Bisa juga terjadi beberapa model meramalkan terlalu tinggi (overestimate) atau terlalu rendah (underestimate) dalam situasi tertentu. Selain itu, mungkin juga terjadi bahwa prediksi jangka pendek dari suatu model lebih baik dari model lain yang memiliki prediksi jangka panjang yang lebih akurat.
Teknik Peramalan untuk Data yang Stasioner
Suatu data runtut waktu yang bersifat stasioner merupakan suatu serial data yang nilai rata-ratanya tidak berubah sepanjang waktu. Keadaan tersebut terjadi jika pola permintaan yang mempengaruhi data tersebut relatif stabil. Dalam bentuknya yang paling sederhana, peramalan suatu data runtut waktu yang
27 stasioner memerlukan data historis dari runtut waktu tersebut untuk mengestimasi nilai rata-ratanya, yang kemudian menjadi permalan untuk nilai-nilai masa datang. Beberapa teknik yang dapat dipertimbangkan ketika meramalkan data runtut waktu yang stasioner adalah metode naif, metode rata-rata sederhana, ratarata bergerak, pemulusan exponensial sederhana, dan model ARIMA (metode Box-Jenkins). (Hanke, 2005, p75)
Teknik Peramalan untuk Data Trend
Suatu data runtut waktu yang bersifat trend didefinisikan sebagai suatu series yang mengandung komponen jangka panjang yang menunjukkan
pertumbuhan atau penurunan dalam data tersebut sepanjang suatu periode waktu yang panjang. Dengan kata lain, suatu data runtut waktu dikatakan mempunyai trend jika nilai harapannya berubah sepanjang waktu sehingga data tersebut
diharapkan menaik atau menurun selama periode dimana peramalan diinginkan. Biasanya data runtut waktu ekonomi mengandung suatu trend. Teknik-teknik peramalan yang digunakan untuk peramalan data runtut waktu yang mengandung trend adalah rata-rata bergerak, pemulusan exponensial linier dari Holt, regresi sederhana, model ARIMA (metode Box-Jenkins). (Hanke, 2005, p75-76).
Teknik Peramalan untuk Data Musiman
Suatu data runtut waktu yang bersifat musiman didefinisikan sebagai suatu data runtut waktu yang mempunyai pola perubahan yang berulang secara tahunan. Mengembangkan suatu teknik peramalan musiman biasanya memerlukan
28 pemilihan metode perkalian dan pertambahan dan kemudian mengestimasi indeks musiman dari data tersebut. Indeks ini kemudian digunakan untuk memasukkan sifat musiman dalam peramalan atau untuk menghilangkan pengaruh seperti itu dari nilai-nilai yang diobservasi. Teknik-teknik yang dapat dipertimbangkan ketika kita meramalkan data runtut waktu yang bersifat musiman meliputi metode dekomposisi klasik, Census X-12, pemulusan exponensial dari Winter, regresi berganda dan model ARIMA (metode Box-Jenkins). (Hanke, 2005, p76).
Teknik Peramalan untuk Data yang Bersifat Siklis
Pengaruh siklis didefinisikan sebagai fluktuasi seperti gelombang di sekitar garis trend. Pola siklis cenderung untuk berulang setiap dua, tiga tahun, atau lebih. Pola siklis sulit untuk dibuat modelnya karena polanya tidak stabil. Turun-naiknya fluktuasi di sekitar trend jarang sekali berulang pada interval waktu yang tetap, dan besarnya fluktuasi juga selalu berubah. Metode dekomposisi bisa diperluas untuk menganalisa data siklis. Teknik-teknik yang dapat dipertimbangkan ketika kita meramalkan data runtut waktu yang bersifat siklis adalah metode dekomposisi klasik, indikator ekonomi, model-model ekonometrik, regresi berganda dan model ARIMA (metode Box-Jenkins). (Hanke, 2005, p76).
29 2.3.3 Metode Peramalan Triple Exponential Smoothing Tiga Parameter dari Winter
Pada umumnya, metode rata-rata bergerak dan pemulusan eksponensial dapat digunakan untuk hampir segala jenis data stasioner atau non stasioner sepanjang data tersebut tidak mengandung faktor musiman. Tetapi bilamana terdapat faktor musiman, metode-metode tersebut akan menghasilkan peramalan yang buruk. Untuk data stasioner, digunakan metode rata-rata bergerak atau pemulusan eksponensial. Jika datanya menunjukkan suatu trend linear, maka baik model linear dari Brown atau Holt dapat diterapkan. Tetapi jika datanya musiman, metode tersebut tidak dapat mengatasinya dengan baik. Walaupun demikian, metode Winter dapat menangani faktor musiman secara langsung. Metode Winter didasarkan atas 3 persamaan pemulusan, yaitu satu untuk unsur stasioner, satu untuk trend dan satu untuk musiman. Hal ini serupa dengan metode Holt, dengan satu pemulusan tambahan untuk mengatasi musiman. Perumusan dasar untuk metode Winter (Makridakis, 1999, p121-127) adalah sebagai berikut : Pemulusan Keseluruhan : St = α
Xt + (1 − α )( S (t −1) + b( t −1) ) I t −L
Pemulusan Trend : bt = γ ( S t − S (t −1) ) + (1 − γ )b(t −1)
Pemulusan Musiman : It = β
Xt + (1 − β ) I ( t − L ) St
30 Peramalan : F(t+m) = (St+bt*m)I(t-L+m) Dimana : L
= Panjang musiman
b
= Komponen trend
I
= Faktor penyesuaian musiman
Ft+m
= Peramalan untuk m periode ke depan.
Salah satu masalah dalam menggunakan metode Winter adalah menentukan nilai-nilai untuk α,β, dan γ tersebut yang akan berpengaruh dalam perhitungan nilai-nilai error seperti MSE atau MAPE. Pendekatan untuk menentukan nilai ini biasanya secara trial dan error, walaupun mungkin juga digunakan algoritma optimasi non-linear untuk mendapatkan nilai parameter optimal. Karena kedua pendekatan tersebut memakan banyak waktu dan mahal, maka metode ini jarang digunakan. Metode ini baru dipakai jika banyak himpunan data yang harus ditangani. Untuk menginisialisasi metode peramalan Winter yang diterangkan di atas, kita perlu menggunakan paling sedikit satu data musiman lengkap (yaitu L periode) untuk menentukan estimasi awal dari indeks musiman, Lt-1, dan kita perlu menaksir faktor trend dari satu periode ke periode selanjutnya. Adapun rumus yang digunakan untuk inisialisasi awal yaitu : XL+1 = SL+1 It =
XL X
31 2.3.4 Metode Peramalan Dekomposisi
Metode Dekomposisi mendasarkan penganalisaan untuk mengidentifikasi tiga faktor utama yang terdapat dalam suatu deret waktu, yaitu faktor trend, faktor siklus, dan faktor musiman. Di dalam beberapa hal, peramal hanya mendasarkan penyusunannya pada dua faktor yang penting yaitu trend dan musiman. Faktor trend menggambarkan perilaku data dalam jangka panjang, dan dapat meningkat, menurun atau tidak berubah. Pengukuran perkembangan faktor trend dilakukan untuk periode waktu yang panjang dengan menghilangkan variasi musim dan variasi siklus. Faktor siklus menggambarkan baik turunnya ekonomi atau industri tertentu. Faktor musiman berkaitan dengan fluktuasi periodik dengan panjang konstan. Perbedaan antara musiman dan siklus adalah bahwa musiman berulang dengan sendirinya pada interval yang tetap seperti tahun atau bulan, sedangkan faktor siklus mempunyai jangka waktu yang lebih lama dan lamanya berbeda dari satu siklus ke siklus yang lainnya. Ada beberapa pendekatan alternatif untuk mendekomposisi suatu deret waktu, dengan tujuan untuk mengisolasikan masing-masing komponen dari deret itu setepat mungkin. Konsep dasar dari dekomposisi ini adalah data empiris di mana yang pertama adalah pergeseran musim, kemudian trend dan terakhir adalah siklus. Residu yang ada dianggap unsur acak yang walaupun tidak dapat ditaksir, tetapi dapat diidentifikasi (Makridakis, 1999, p150-156). Langkah-langkah dekomposisi : 1. Pada deret data yang sebenarnya (Xt) hitung rata-rata bergerak yang panjangnya (N) sama dengan panjang musiman. Maksud dari rata-rata bergerak adalah menghilangkan unsur musiman dan keacakan. Meratakan sejumlah
32 periode yang sama dengan panjang pola musiman akan menghilangkan unsur musiman dengan membuat rata-rata dari periode yang musimannya tinggi dan periode yang musimannya rendah. Karena galat acak tidak mempunyai pola yang sistematis, maka perata-rataan ini juga mengurangi keacakan. 2. Pisahkan rata-rata bergerak N periode (langkah 1) dari deret data semula untuk memperoleh unsur trend dan siklus. 3. Pisahkan faktor musiman dengan menghitung rata-rata untuk tiap periode yang menyusun panjang musiman secara lengkap. 4. Identifikasi bentuk trend yang tepat (linear, eksponensial, kurva-S, dan lainlain) dan hitung nilainya untuk setiap periode (Tt). 5. Pisahkan hasil langkah 4 dari hasil langkah 2 (nilai gabungan dari unsur trend dan siklus) untuk memperoleh faktor siklus. 6. Pisahkan musiman, trend dan siklus dari data asli untuk mendapatkan unsur acak yang ada, Et. Metode dekomposisi dapat berasumsi pada model aditif atau multiplikatif dan bentuknya dapat bervariasi. Model aditif berbentuk : Xt
=
It + Tt + Ct + Et
Model multiplikatif berbentuk : Xt
=
It x Tt x Ct x Et
33 2.3.5 Statistik Ketepatan Peramalan Ukuran Statistik Standar
Jika Xt merupakan data aktual untuk periode t dan Ft merupakan ramalan (atau nilai kecocokan/fitted value) untuk periode yang sama, maka kesalahan didefinisikan sebagai : et = X t − Ft Jika terdapat nilai pengamatan dan ramalan untuk n periode waktu, maka akan terdapat n buah galat dan ukuran statistik standar berikut dapat didefinisikan : •
Nilai Tengah Galat Absolut (Mean Absolut Error) MAE =
•
Nilai Tengah Galat Kuadrat (Mean Squarred Error)
MSE = •
1 n ∑ et n t =1
1 n 2 ∑ et n t =1
Deviasi Standar Galat (Standar Deviation of Error) SDE =
1 n et 2 ∑ t =1 n −1
Dua formulasi yang sering digunakan dalam menghitung kesalahan yaitu
mean absolute error (yang dalam beberapa buku disebut sebagai mean absolute deviation) dan mean squarred error (MSE). Perbedaan keduanya adalah terletak pada bobot kesalahan, satu dalam bentuk angka kesalahan absolut dan yang lainnya dalam bentuk nilai kuadrat. Tujuan optimalisasi statistik seringkali adalah untuk memilih suatu model agar MSE minimal, tetapi ukuran ini mempunyai dua kelemahan. Pertama, ukuran
34 ini menunjukkan pencocokan (fitting) suatu model terhadap data historis. Pencocokan seperti ini tidak perlu mengimplikasikan peramalan yang baik. Suatu model terlalu cocok (over fitting) dengan deret data, yang berarti sama dengan memasukkan unsur random sebagai bagian proses bangkitan, berarti tidak berhasil mengenali pola non-acak dalam data dengan baik. Perbandingan nilai MSE yang terjadi selama fase pencocokan peramalan adalah mungkin memberikan sedikit indikasi ketepatan model dalam peramalan. Kedua, sebagai ukuran ketepatan model adalah berhubungan dengan kenyataan bahwa metode yang berbeda akan menggunakan prosedur yang berbeda pula dalam fase pencocokan. Dalam fase peramalan, penggunaan MSE sebagai suatu ukuran ketepatan juga dapat menimbulkan masalah. Ukuran ini tidak memudahkan perbandingan deret berkala yang berbeda dan untuk selang waktu yang berlainan, karena MSE merupakan ukuran para absolut. Lagipula, interpretasinya tidak bersifat intuitif bahkan untuk para spesialis sekalipun, karena ukuran ini menyangkut pengkuadratan sederetan nilai (Makridakis, 1999, p58-61).
Ukuran-ukuran Relatif
Karena adanya keterbatasan MSE sebagai suatu ukuran ketepatan peramalan, maka muncul usulan alternatif-alternatif lain yang diantaranya menyangkut galat presentase. Tiga ukuran yang sering digunakan (Makridakis, 1999, p61-62) adalah :
•
Galat Persentase (Percentage Error) ⎛ X − Ft PE = ⎜⎜ t ⎝ Xt
⎞ ⎟⎟ × 100 ⎠
35
•
Nilai Tengah Galat Persentase (Mean Percentage Error)
MPE = •
1 n ∑ PEt n t =1
Nilai Tengah Galat Persentase Absolut (Mean Absolute Percentage Error)
MAPE =
1 n ∑ PEt n t =1
PE dapat digunakan untuk menghitung kesalahan persentase setiap periode waktu. Nilai-nilai ini kemudian dapat dirata-ratakan untuk memberikan nilai tengah kesalahan persentase (MPE). Namun MPE mungkin mengecil karena PE positif dan negatif cenderung saling meniadakan. Dari sana MAPE didefinisikan dengan menggunakan nilai absolut dari PE.
2.4 Pemrograman Linier
Pemrograman linier (linier programming) merupakan suatu bentuk model matematika yang dapat digunakan untuk memecahkan masalah pengoptimalan. Menurut Subagyo et al. (1999, p9) pemrograman linier merupakan suatu model umum yang dapat digunakan dalam pemecahan masalah pengalokasian sumbersumber yang terbatas secara optimal. Masalah tersebut timbul apabila seseorang diharuskan memilih atau menentukan tingkat setiap kegiatan yang harus dilakukannya, dimana masing-masing kegiatan membutuhkan sumber yang sama sedangkan jumlahnya terbatas. Dalam pemrograman linier, kata linier memberikan arti bahwa seluruh fungsi matematis dalam model ini merupakan fungsi yang linier, sedangkan kata pemrograman
merupakan
sinonim
untuk
perencanaan.
Dengan
demikian
36 pemrograman linier adalah perencanaan aktivitas-aktivitas untuk memperoleh suatu hasil yang optimum, yaitu suatu hasil yang mencapai tujuan terbaik diantara seluruh alternatif yang fisibel. Karakteristik atau sifat-sifat dari pemrograman linier yaitu : a. Variabel keputusan Variabel keputusan adalah variabel yang menguraikan secara lengkap keputusankeputusan yang akan dibuat. b. Fungsi tujuan Fungsi tujuan merupakan fungsi dari variabel keputusan yang akan dimaksimumkan (untuk pendapatan atau keuntungan) atau diminimumkan (pendapatan/minggu)
–
(ongkos
material/minggu)
–
(ongkos
tenaga
kerja/minggu). c. Pembatas Pembatas merupakan kendala yang dihadapi sehingga kita tidak bisa menentukan harga-harga variabel keputusan secara sembarang. Koefisien dari variabel keputusan pada pembatas disebut koefisien teknologis, sedangkan bilangan yang ada di sisi kanan setiap pembatas disebut ruas kanan pembatas. d. Pembatas tanda Pembatas
tanda
adalah
pembatas
yang
menjelaskan
apakah
variabel
keputusannya diasumsikan hanya berharga non negatif atau variabel keputusan tersebut boleh berharga positif, boleh juga negatif (tidak terbatas dalam tanda). Dapat ditarik kesimpulan mengenai pengertian pemrograman linier, yaitu suatu persoalan optimasi dimana kita melakukan hal-hal berikut :
37
•
Kita berusaha memaksimalkan atau meminimumkan suatu fungsi linier dari variabel-variabel keputusan yang disebut fungsi tujuan.
•
Harga/besaran dari variabel-variabel keputusan itu harus memenuhi suatu set pembatas.
Setiap
pembatas
harus
merupakan
persamaan
linier
atau
ketidaksamaan linier.
•
Suatu pembatas tanda dikaitkan dengan setiap variabel.
2.4.1 Formulasi dan Bentuk Umum Linear Programming
Masalah keputusan yang sering dihadapi adalah alokasi optimum sumber daya langka/terbatas, yang ditunjukkan sebagai maksimasi keuntungan atau minimasi biaya. Setelah masalah diidentifikasikan, tujuan/sasaran yang ingin dicapai ditetapkan, langkah selanjutnya adalah formulasi model matematis yang meliputi 3 tahap berikut : 1. Menentukan variabel keputusan (unsur-unsur dalam persoalan yang dapat dikendalikan oleh pengambil keputusan) dan nyatakan dalam simbol matematis. 2. Membentuk fungsi tujuan yang ditujukan sebagai suatu hubungan linear dari variabel keputusan. 3. Menentukan semua kendala/batasan masalah tersebut dan ekspresikan dalam persamaan atau pertidaksamaan yang merupakan hubungan linear dari variabel keputusan yang mencerminkan keterbatasan sumber daya masalah tersebut. Untuk memudahkan pembahasan model linear programming, digunakan simbol-simbol berikut :
38 Xj = Banyaknya kegiatan j, (j = 1,2,...n), berarti terdapat n variabel keputusan Z = Nilai fungsi tujuan Cj = Sumbangan per unit kegiatan j. Pada masalah maksimasi Cj menunjukkan keuntungan atau penerimaan per unit, pada kasus minimasi Cj menunjukkan biaya per unit. bi = Jumlah sumber daya ke i (i = 1,2,...m) yang tersedia untuk dialokasikan e setiap unit kegiatan, berarti terdapat m jenis sumber daya. aij = Jumlah sumber daya i yang diperlukan untuk menghasilkan setiap unit output kegiatan j. Simbol-simbol tersebut dapat disusun ke dalam tabel berikut : Tabel 2.1 Tabel Simbol Model Linear Programming Sumber / kegiatan 1 2 . . m Z / unit banyak kegiatan
Pemakaian sumber / unit a11 a12 ..................... a1n a21 a22 ..................... a2n . . ...................... . . . ...................... . am1 am2 .................... amn C1 C2 ...................... Cn X1 X2 ...................... Xn Sumber : Tjutju Tarliah Dimyati (2003)
Kapasitas sumber b1 b2 . . bm
Berdasarkan tabel di atas dapat disusun bentuk umum model linear
programming berikut : n
Maksimumkan (minimumkan) Z = ∑ C j X i j =1
Dengan kendala
n
∑a j =1
Xi≥0
ij
X i (≤,=,≥) bi untuk semua i (i = 1,2,..m) dan bi≥0,
39 2.4.2 Asumsi-Asumsi Dasar Linear Programming
Untuk menunjukkan masalah optimasi sebagai model linear programming (LP), diperlukan beberapa asumsi yang terkandung dalam formulasi LP. Asumsiasumsi tersebut adalah : a. Proportionality Asumsi ini menyatakan bahwa naik turunnya nilai Z dan penggunaan sumber atau fasilitas, akan berubah secara proporsional dengan perubahan tingkat kegiatan.
Misal
:
Z
=
C1X1
+
C2X2
+
....
+
CnXn
setiap
pertambahan/pengurangan 1 unit X1 akan menaikkan/menurunkan nilai Z dengan C1, demikian juga untuk yang lain mempunyai sifat yang sama. b. Additivity Asumsi ini menyatakan bahwa nilai fungsi tujuan setiap kegiatan tidak saling mempengaruhi, atau dalam LP dianggap bahwa kenaikan nilai fungsi tujuan (Z) yang diakibatkan oleh kenaikan suatu kegiatan dapat ditambahkan tanpa mempengaruhi bagian nilai Z yang diperoleh dari kegiatan lain atau dapat dikatakan bahwa tidak ada korelasi antara satu kegiatan dengan kegiatan lain. c. Disibility Asumsi ini menyatakan bahwa nilai keluaran (output) yang dihasilkan oleh setiap kegiatan dapat berupa bilangan pecahan. d. Deterministic (Certainty) Asumsi ini menyatakan bahwa semua parameter yang terdapat dalam model LP (aij,bi,Cj) dapat diperkirakan dengan pasti. Dalam kenyataannya, parameter model jarang bersifat deterministic, karena keadaan masa depan jarang diketahui
dengan
pasti.
Untuk
mengatasi
ketidakpastian
parameter,
40 dikembangkan suatu teknik analisis sensitivitas, guna menguji nilai solusi, bagaimana kepekaannya terhadap perubahan-perubahan parameter.
2.4.3 Metode Simpleks
Metode simpleks merupakan salah satu metode dalam pemrograman linier yang umum digunakan untuk menentukan hasil yang optimal bagi permasalahan yang memiliki tiga variabel atau lebih. Masalah pemrograman linier yang hanya mengandung dua variabel dapat diselesaikan dengan metode grafik. Tetapi apabila masalah tersebut mengandung lebih dari dua variabel maka metode grafik akan sangat sulit untuk diterapkan sehingga diperlukan penggunaan metode simpleks. Metode simpleks dikembangkan pertama kali oleh George Dantzig tahun 1947. Metode ini menyelesaikan masalah LP melalui tahapan (perhitungan ulang) dimana langkah-langkah perhitungan yang sama diulang sampai tercapai solusi optimal. Langkah-langkah penyelesaian masalah penyelesaian LP dalam bentuk standar dengan menggunakan metode simpleks adalah sebagai berikut :
•
Langkah 1 : Merubah fungsi tujuan dan fungsi kendala Fungsi tujuan dirubah menjadi bentuk implisit dengan jalan menggeser semua CjXj ke kiri. Z = C1X1 + C2X2 + ... + CnXn diubah menjadi Z – C1X1 – C2X2 – ... – CnXn = 0 Pada bentuk standar, semua fungsi kendala mempunyai tanda ≤. Pertidaksamaan fungsi kendala selain kendala nonnegatif dirubah menjadi bentuk persamaan dengan menambahkan variabel slack, yaitu suatu variabel yang mewakili tingkat pengangguran, kapasitas yang merupakan batasan. Oleh
41 karena variabel yang ada diwakili oleh X1, X2, ....., Xn maka variabel slack ini diwakili oleh S1, S2, ..., Sm. a11X1 + a12X2 + a13X3 + ... + a1nXn ≤ h1 a21X1 + a22X2 + a23X3 + ... + a2nXn ≤ h2 . .
am1X1 + am2X2 + am3X3 + ... + amnXn ≤ hm diubah menjadi a11X1 + a12X2 + a13X3 + ... + a1nXn + S1 = h1 a21X1 + a22X2 + a23X3 + ... + a2nXn + S2 = h2 . .
am1X1 + am2X2 + am3X3 + ... + amnXn + S1 = hm
•
Langkah 2 : Mentabulasikan persamaan-persamaan yang diperoleh pada langkah 1 Tabel 2.2 Bentuk Umum Tabel Simpleks Awal Basis Z S1 S2 . . Sm
Z 1 0 0 . . 0
X1 X2 -C1 -C2 a11 a12 a21 a22 . . . . am1 am2
. . . . . . .
. Xn . -C2 . a1n . a2n . . . . . amn
S1 S2 . . Sm 0 0 . . 0 1 0 . . 0 0 1 . . 0 . . . . . . . . . . 0 1 . . 0
Solusi 0 b1 b2 . . bm
Kolom basis menunjukkan variabel yang sedang menjadi basis, yaitu S1, S2, Sn yang nilainya ditunjukkan oleh kolom solusi. Secara tidak langsung ini
42 menunjukkan bahwa variabel non basis (X1, X2, ..., Xn) sama dengan nol, karena belum ada kegiatan sedangkan kapasitasnya masih menganggur yang ditunjukkan oleh nilai S1, S2, ..., Sn.
•
Langkah 3 : Menentukan entering variable
Entering variable (kolom kunci) adalah kolom yang merupakan dasar untuk mengubah nilai tabel. Pilih kolom pada baris fungsi tujuan yang mempunyai nilai negatif dengan angka terbesar. Jika pada baris fungsi tujuan terdapat lebih dari satu kolom yang mempunyai nilai negatif yang angkanya terbesar pilihlah salah satu secara sembarang. Jika tidak ditemukan nilai negatif, berarti solusi sudah optimal. Sebaliknya untuk kasus minimasi, pilih kolom pada baris fungsi tujuan yang nilainya positif terbesar. Jika tidak ditemukan nilai positif berarti solusi telah optimal.
•
Langkah 4 : Menentukan leaving variable
Leaving variable (baris kunci) dipilih dari rasio yang nilainya positif terkecil. Rasio diperoleh dengan cara membagi nilai solusi dengan koefisien pada
entering variable yang sebaris. Rasio =
Nilai Solusi Koefisien Kolom Enteringnya
Jika terdapat lebih dari satu baris yang mempunyai rasio terkecil maka pilih salah satu secara sembarang. Jika tidak ada elemen yang nilainya positif dalam kolom kunci maka persoalan tidak memiliki pemecahan. Kolom pada entering variable dinamakan entering column dan baris yang berhubungan dengan leaving variable dinamakan persamaan pivot. Elemen pada perpotongan entering column dan persamaan pivot dinamakan elemen pivot.
43
•
Langkah 5 : Menentukan persamaan pivot baru Persamaan pivot baru = persamaan pivot lama : elemen pivot Gantilah nilai basis persamaan pivot baru dengan nama entering variablenya.
•
Langkah 6 : Tentukan persamaan-persamaan baru selain persamaan pivot baru Persamaan baru = (persamaan lama) – (koefisien kolom entering x persamaan pivot baru)
•
Langkah 7 : Lanjutkan perbaikan-perbaikan. Lakukan langkah perbaikan dengan cara mengulang langkah 3 sampai langkah 6 hingga diperoleh hasil optimal. Iterasi baru berhenti setelah pada baris fungsi tujuan sudah tidak ada yang bernilai negatif. Solusi yang dihasilkan adalah nilai-nilai yang terletak pada kolom solusi. Apabila dalam proses terjadi keadaan dimana nilai-nilai pada baris fungsi tujuan bertambah secara tak terbatas, maka iterasi tidak perlu dilanjutkan, cukup disebutkan bahwa kenaikan nilai Z tidak terbatas. Dalam beberapa kasus, terdapat penyimpangan-penyimpangan dari
persoalan dengan formulasi standar biasa yang bisa diselesaikan dengan metode simpleks. Penyimpangan tersebut dapat berupa tanda (=), kendala bertanda (≥) atau bi negatif. Ada 4 cara formulasi yaitu : 1. Apabila fungsi kendala bertanda ≤, tambahkan variabel slack. 2. Apabila fungsi kendala bertanda =, tambahkan variabel arifisial. 3. Apabila fungsi kendala bertanda ≥, kurangi dengan variabel slack dan tambahkan variabel artifisial.
44 4. Apabila nilai kanan fungsi kendala adalah negatif, maka harus diubah positif (kalikan -1) dan sesuaikan dengan ketiga point di atas. Penyelesaian dengan variabel artifisial dapat dilakukan dengan 2 teknik yaitu teknik M dan teknik 2 fase.
2.4.3.1 Teknik M
Pada teknik ini, setiap variabel artifisial dalam fungsi tujuan diberikan penalty M (M bilangan positif yang sangat besar). Penalty bertanda negatif (-) apabila fungsi tujuan maksimasi dan positif (+) apabila fungsi tujuan minimasi. Contoh : Minimumkan : Z = 7X1 + 3X2 + 0S1 + 0S2 + MR1 + MR2 Dengan kendala : 4X1 + 6X2 + S1 = 36 7X1 + 5X2 8X1 + 4X2
+ R1 = 35 - S1 + R2 = 36
X1,X2,S1,S2,R1,R2 ≥ 0 Untuk memasukkan model dalam tabel, terlebih dahulu substitusikan R1 dan R2. R1 = 35 – 7X1 – 5X2 R2 = 32 – 8X1 – 4X2 + S2, kemudian masukkan ke dalam persamaan Z Z = 7X1 + 3X2 + M (35 – 7X1 – 5X2) + M (32 – 8X1 – 4X2 + S2) = (7 – 15M)X1 – (3 – 9M)X2 + S2M + 67M Z – (7 – 15M)X1 – (3 – 9M)X2 – S2M = 67M Kemudian lakukan langkah-langkah penyelesaian dengan metode simpleks.
45 2.4.3.2 Teknik 2 Fase
Teknik 2 fase terdiri dari dua fase pengerjaan, yaitu :
•
Fase 1 : Pada fase ini fungsi tujuan semula diganti dengan meminimumkan jumlah variable artifisialnya dan diuji apakah persoalan yang dihadapi memiliki solusi fisibel atau tidak. Jika nilai minimum fungsi tujuan baru ini berharga nol (seluruh variabel artificial berharga nol), berarti persoalan memiliki solusi fisibel, lanjutkan ke fase 2. Tetapi jika nilai minimum fungsi tujuan baru ini berharga positif, maka persoalan tidak memiliki solusi fsibel. STOP.
•
Fase 2 : Gunakan solusi basis optimum pada fase1 sebagai solusi awal bagi persoalan sebenarnya. Dalam hal ini ubahlah bentuk fungsi tujuan pada fase 1 dengan mengembalikannya pada fungsi tujuan persoalan sebenarnya dan fungsi batasan diperoleh dari tabel optimal fase 1 tanpa memasukkan variabel R nya.
2.4.4 Metode Dual Simpleks
Prosedur perhitungan pada metode simpleks berkisar dari solusi dasar fisibel yang belum optimal menuju ke solusi fisibel yang optimal. Apakah proses tersebut akhirnya mencapai solusi fisibel optimal adalah tergantung pada kemampuan untuk mendapatkan suatu solusi dasar awal yang fisibel. Dalam kaitan ini, variabel artifisial dapat digunakan untuk menemukan solusi awal fisibel. Jika formulasi LP mengandung banyak variabel artificial, akan membutuhkan banyak perhitungan untuk memperoleh solusi awal fisibel.
46 Untuk menghindari hal tersebut dapat digunakan suatu prosedur yang disebut metode dual simpleks. Metode ini pada awalnya memiliki solusi yang tidak fisibel tetapi melalui iterasi akan diperoleh suatu solusi fisibel optimal. Pada dasarnya metode dual simpleks menggunakan tabel yang sama seperti metode simpleks primal, tetapi leaving variable dan entering variablenya ditentukan sebagai berikut : a. Leaving variable (feasibility condition) Leaving variable adalah variabel basis yang memiliki harga negatif terbesar.
Jika semua variabel basis telah berharga positif atau nol, berarti keadaan fisibel telah tercapai. b. Entering variable (optimality condition) Tentukan rasio antara koefisien persamaan Z dengan koefisien persamaan leaving variabel. Abaikan penyebut yang positif atau nol. Jika semua penyebut
berhara positif atau nol, berarti persoalan yang bersangkutan tidak memiliki solusi fisibel. Untuk persoalan minimasi, entering variable adalah variabel dengan rasio terkecil, sedangkan untuk persoalan maksimasi entering variable adalah variabel dengan rasio absolut terkecil.
2.4.5 Pemrograman Linier Integer
Salah satu asumsi teknik LP adalah divisibility atau fractionality. Dengan kata lain, setiap variabel model dapat terjadi pada semua nilai non negatif, suatu nilai solusi yang kontinu. Dalam situasi keputusan tertentu, asumsi ini tidak realistik dan tak dapat diterima. Integer Linear Programming adalah suatu LP
47 dengan tambahan persyaratan bahwa semua atau beberapa variabel bernilai bulat non negatif, tetapi tidak perlu bahwa parameter model juga bernilai bulat. Dalam masalah integer linear programming, jika model mengharapkan semua variabel basis bernilai integer (bulat positif atau nol), dinamakan pure integer programming. Jika model hanya mengharapkan variabel-variabel tertentu
bernilai integer, dinamakan mixed integer programming. Jika model hanya mengharapkan nilai nol atau satu untuk variabelnya, dinamakan zero one integer programming.
2.4.5.1 Algoritma Branch and Bound
Algoritma branch and bound dimulai dengan melonggarkan ruang pemecahan dari masalah integer LP. Jika nilai variabel adalah integer, solusi ini juga merupakan solusi dari permasalahan integer. Jika variabel tidak bernilai integer, daerah fisibel dibagi dengan menambahkan batasan dari nilai variabel yang belum integer. Hasil pembagian daerah fisibel ini dibuat dalam submasalah yang akan diselesaikan. Batasan nilai dari fungsi tujuan ditemukan dan digunakan untuk membantu menemukan submasalah yang mana yang bisa dieliminasi dari pertimbangan dan kapan solusi optimal ditemukan. Jika solusi submasalah tidak memberikan solusi optimal, submasalah baru dipilih dan percabangan berlanjut (Render et al., 2003, p450). 6
langkah
dalam
menyelesaikan
masalah
maksimasi
integer
programming dengan branch and bound menurut Render et al.(2003, p450)
adalah sebagai berikut :
48 1. Selesaikan masalah awal dengan LP. Jika hasilnya memenuhi batasan integer, selesai. Jika tidak, nilai ini memberikan batas atas awal. 2. Temukan semua solusi fisibel yang memenuhi batasan integer untuk digunakan seabagai batas bawah. Biasanya, pembulatan ke bawah setiap variabel akan memenuhi point ini. 3. Buat cabang dari salah satu variabel yang tidak memiliki nilai integer. Bagi masalah menjadi 2 submasalah berdasarkan nilai integer yang diperoleh dari pembulatan ke atas dan ke bawah dari nilai non integer. Contohnya : jika X2 = 3,75 adalah solusi akhir LP, buat batasan X2 ≥ 4 dalam submasalah pertama dan X2 ≤ 3 pada submasalah kedua. 4. Buat node pada percabangan baru ini dengan memecahkan masalah baru. 5.
•
Jika cabang menghasilkan solusi masalah LP yang tidak fisibel, akhiri cabang ini.
•
Jika cabang menghasilkan solusi masalah LP yang fisibel, tetapi bukan solusi integer, lanjutkan ke langkah 6.
•
Jika cabang menghasilkan solusi integer yang fisibel, periksa nilai fungsi tujuan. Jika nilai ini sama dengan batas atas, solusi optimal telah dicapai. Jika tidak sama dengan batas atas, tetapi melebih batas bawah, jadikan nilai ini menjadi batas bawah baru dan lanjutkan ke langkah 6. Jika nilai ini lebih kecil dari batas bawah, akhiri cabang ini.
49 6. Periksa kedua cabang lagi dan tentukan batas atas sesuai dengan nilai maksimum dari fungsi tujuan dari semua node akhir. Jika batas atas sama dengan batas bawah, berhenti. Jika tidak kembali ke langkah 3.
2.4.5.2 Algoritma Cutting Plane
Sesuai dengan namanya, algoritma cutting plane (algoritma bidang pemotong) memotong, mengiris atau membuang daerah layak yang tidak diperlukan yang menyebabkan solusinya tidak bulat. Dalam penyelesaiannya algoritma ini menambahkan satu fungsi kendala baru dalam setiap iterasinya. Terdapat beberapa jenis algoritma bidang pemotong, seperti misalnya algoritma fraksional murni dan algoritma campuran. Metode pemotongan baru terus dikembangkan tetapi tidak satupun yang dipandang secara seragam baik dari segi perhitungan. Pengalaman telah menunjukkan bahwa beberapa masalah yang kecil tidak dapat dipecahkan oleh metode pemotongan. Pada kenyataannya dilaporkan beberapa kasus dimana peubah acak dalam urutan batasan telah membuat sebuah masalah yang mudah dari segi perhitungan menjadi sebuah masalah yang rumit (Taha, 1996, p342). Kesimpulan dari metode pemotongan adalah metode ini tidak dapat digunakan secara efektif untuk memecahkan masalah integer umum, tetapi beberapa gagasan dari metode ini dapat dan telah dipinjam untuk meningkatkan efektivitas jenis-jenis teknik pemecahan lainnya. Jadi bila terdapat pilihan antara metode pemotongan dan metode branch and bound maka metode branch and bound umumnya terbukti lebih baik (Taha, 1996, p332).
50 2.5 Analisa Sensitivitas
Menurut Mulyono (Mulyono, 2002, p79) seorang analis jarang dapat menentukan parameter model LP seperti (cj,bi,aij,) dengan pasti karena nilai parameter ini adalah fungsi dari beberapa uncontrolable variable. Misalnya, permintaan masa depan, biaya bahan mentah, dan harga energi sebagai sumber daya tak dapat diperkirakan dengan tepat sebelum masalah diselesaikan. Sementara itu solusi optimum model LP didasarkan pada parameter ini. Akibatnya analis perlu mengamati pengaruh perubahan parameter terhadap solusi optimum. Analisis perubahan parameter dan pengaruhnya terhadap solusi LP dinamakan post optimality analysis. Istilah post optimality menunjukkan bahwa analisis ini terjadi setelah
diperoleh solusi optimum, dengan mengasumsikan seperangkat nilai parameter yang digunakan dalam model. Perubahan atau variasi dalam suatu masalah LP yang biasanya dipelajari melalui post optimality analyisis dapat dipisahkan ke dalam tiga kelompok umum : a) Analisa yang berkaitan dengan perubahan diskrit parameter untuk melihat berapa besar perubahan dapat ditolerir sebelum solusi optimum mulai kehilangan optimalitasnya, ini dinamakan Analisis Sensitivitas. Jika suatu perubahan kecil dalam parameter menyebabkan perubahan drastis dalam solusi, dikatakan bahwa solusi adalah sangat sensitif terhadap nilai parameter itu. Sebaliknya, jika perubahan parameter tidak mempunyai pengaruh besar terhadap solusi dikatakan solusi relatif insensitif terhadap nilai parameter itu. b) Analisa yang berkaitan dengan perubahan struktural. Masalah ini muncul bila masalah LP dirumuskan kembali dengan menambahkan atau menghilangkan kendala dan atau variabel untuk menunjukkan operasi model alternatif.
51 c) Analisa yang berkaitan dengan perubahan kontinu parameter untuk menentukan urutan solusi dasar yang menjadi optimum jika perubahan ditambah lebih jauh, ini dinamakan Parametric Programming. Dalam membicarakan analisa sensitivitas, perubahan-perubahan parameter dikelompokkan menjadi :
•
Perubahan koefisien fungsi tujuan
•
Perbahan konstan sisi kanan
•
Perubahan kendala
•
Penambahan variabel baru
•
Penambahan kendala baru
2.6 Sistem Informasi 2.6.1 Pengertian Sistem
Menurut pendapat McLeod (2001, p11), sistem adalah sekelompok elemenelemen yang terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan tertentu. Suatu organisasi seperti perusahaan atau suatu bidang fungsional cocok dengan definisi ini. Organisasi terdiri dari sejumlah sumber daya seperti manusia, material, uang, mesin, dan informasi dimana sumber daya tersebut bekerja menuju tercapainya suatu tujuan yang ditentukan oleh pemilik atau manajemen.
52 2.6.2 Pengertian Informasi
Berdasarkan pendapat McLeod (2001, p15), informasi adalah data, yang telah diproses, atau data yang memiliki arti. Terdapat empat dimensi informasi menurut McLeod (2001, p145), yaitu :
•
Relevansi Informasi memiliki relevansi jika berkaitan langsung dengan masalah yang ada. Manajer harus mampu memilih informasi yang diperlukan tanpa membaca seluruh informasi mengenai subyek lain.
•
Akurasi Idealnya, semua informasi harus akurat tetapi peningkatan ketelitian sistem menambah biaya. Karena alasan tersebut, manajer terpaksa menerima ketelitian yang kurang dari sempurna.
•
Ketepatan Waktu Informasi harus dapat tersedia untuk memecahkan masalah sebelum situasi krisis menjadi tidak terkendali atau kesempatan menghilang. Manajer harus mampu memperoleh informasi yang menggambarkan apa yang sedang terjadi sekarang, selain apa yang telah terjadi di masa lampau.
•
Kelengkapan Manajer harus dapat memperoleh informasi yang memberi gambaran lenkap dari suatu permasalahan atau penyelesaian. Namun pemberian informasi yang tidak berguna secara berlebihan harus dihindari.
53 2.6.3 Pengertian Sistem Informasi
Menurut O’Brien (2005, p5) sistem informasi dapat merupakan kombinasi teratur apapun dari orang-orang, hardware, software, jaringan komunikasi, dan sumber daya data yang mengumpulkan, mengubah, dan menyebarkan informasi dalam sebuah organisasi. Orang bergantung pada sistem informasi untuk berkomunikasi antara satu sama lain dengan menggunakan berbagai jenis alat fisik (hardware), perintah dan prosedur pemrosesan informasi (software), saluran komunikasi (jaringan), dan data yang disimpan (sumber daya data).
2.6.4 Pengertian Sistem Informasi Manajemen
Sistem informasi manajemen bertujuan untuk memenuhi kebutuhan informasi umum untuk manajer dalam perusahaan atau dalam subunit fungsional perusahaan. Subunit dapat didasarkan pada area fungsioanl atau tingkatan manajemen. Sistem informasi manajemen menyediakan informasi bagi pemakai dalam bentuk laporan dan keluaran dari berbagai simulasi model matematika, dimana model laporan ataupun keluaran dapat disajikan dalam bentuk tabel atau grafik (McLeod, 2001, p326). Berdasarkan pendapat McLeod (2001, p327) sistem informasi manajemen dapat didefinisikan sebagai suatu sistem berbasis komputer yang menyediakan informasi bagi beberapa pemakai dengan kebutuhan yang serupa. Para pemakai biasanya membentuk suatu entitas organisasi formal (perusahaan atau subunit di bawahnya). Informasi menjelaskan perusahaan atau salah satu sistem utamanya mengenai apa yang telah terjadi di masa lalu, apa yang sedang terjadi sekarang dan apa yang mungkin terjadi di masa depan. Informasi tersebut tersedia dalam bentuk
54 laporan periodik, laporan khusus, dan keluaran dari simulasi matematika. Keluaran informasi tersebutlah yang akan digunakan oleh manajer maupun non-manajer dalam perusahaan saat mereka membuat keputusan untuk memecahkan masalah.
2.6.5 Pengertian Analisa dan Perancangan Sistem
Menurut McLeod (2001, p234) analisa sistem adalah penelitian atas sistem yang telah ada dengan tujuan untuk merancang sistem yang baru atau diperbaiki. Jadi dapat disimpulkan bahwa analisa sistem adalah penelitian sistem yang ada dengan tujuan penyempurnaan sistem yang dapat dimanfaatkan oleh pengguna sistem. Sedangkan menurut Cushing (1991, p327), analisa sistem dapat didefinisikan sebagai proses penyelidikan kebutuhan informasi pemakai di dalam suatu organisasi agar dapat menetapkan tujuan dan spesifikasi untuk desain suatu sistem informasi. Menurut Mulyadi (1993, p51) perancangan sistem adalah proses penerjemahan kebutuan pemakai ke dalam alternatif rancangan sistem informasi yang diajukan kepada pemakai informasi untuk dipertimbangkan. Sedangkan menurut Cushing (1991, p348) perancangan sistem adalah proses penyiapan spesifikasi yang terperinci untuk pengembangan suatu sistem baru. Dari definisi di atas, perancangan sistem dapat disimpulkan suatu proses penyiapan spesifikasi dalam menterjemahkan kebutuhan pemakai dalam pengembangan sistem baru.
55 2.7 Analisa dan Perancangan Sistem Informasi Berorientasi Objek 2.7.1 Pengertian Objek
Paradigma
dari
konsep
berorientasi
objek
merupakan
strategi
pengembangan yang berdasarkan pada konsep bahwa sistem seharusnya dibangun dari kumpulan komponen yang reusable (dapat digunakan kembali) yang dinamakan objek. Objek meliputi pemisahan data dan fungsi yang sama dengan yang dilakukan dalam konsep terstruktur. Walaupun konsep berorientasi objek mirip dengan konsep terstruktur, tetapi sebenarnya berbeda. Objek mempunyai arti kombinasi dari data dan logik yang mewakilkan entitas dari kenyataan. Objek merepresentasikan sebuah entitas, baik secara fisik, konsep ataupun secara perangkat lunak. Definisi yang formal dari objek adalah sebuah konsep, abstraksi atau sesuatu yang diberi batasan jelas dan dimaksudkan untuk sebuah aplikasi. Menurut Mathiassen et al. (2000, p4) objek merupakan suatu entitas dengan identitas, state (keadaan) dan behavior (kelakuan). Keadaan dari objek adalah satu dari kondisi yang memungkinkan dimana objek dapat muncul, dan dapat secara normal
berubah
berdasarkan
waktu.
Keadaan
dari
objek
biasanya
diimplementasikan dengan kelompok propertinya (disebut atribut), berisi nilai dari properti tersebut, ditambah keterhubungan objek yang mungkin dengan objek lainnya. Kelakuan menentukan bagaimana sebuah objek beraksi dan bereaksi terhadap permintaan dari objek lainnnya. Direpresentasikan dengan kelompok pesan yang direspon oleh objek (operasi yang dilakukan oleh objek). Kelakuan dari objek mendeskripsikan segala sesuatu yang dapat kita lakukan terhadap objek tersebut dan segala sesuatu yang dapat dilakukan oleh objek untuk kita.
56 Setiap objek mempunyai identitas yang unik. Identitas yang unik ini membuat kita dapat membedakan dua objek yang berbeda, walaupun kedua objek tersebut mempunyai keadaan dan nilai yang sama pada atributnya.
2.7.2 Kaitan Analisis dan Perancangan dengan Orientasi Objek
Untuk merancang suatu aplikasi piranti lunak, pada tahap awal diperlukan deskripsi dari permasalahan dan spesifikasi aplikasi yang dibutuhkan. Apa saja persoalan yang ada dan apa yang harus dilakukan sistem. Penekanan analisis adalah pada proses investigasi atas permasalahan yang dihadapi tanpa memikirkan definisi solusi terlebih dahulu. Jadi dalam tahap analisa, dikumpulkan informasi mengenai permasalahan, spesifikasi sistem berjalan, serta spesifikasi sistem yang diinginkan. Sedangkan penekanan dalam desain adalah pada logika solusi dan bagaimana memenuhi spesifikasi yang dibutuhkan serta konstrain atau batasan yang ada. Inti dari analisis dan perancangan berorientasi objek adalah untuk menekankan pertimbangan atas domain permasalahan beserta solusinya dari sudut pandang objek. Tahap analisis berorientasi objek lebih ditekankan untuk mencari dan mendfinisikan objek atau konsep yang ada dalam domain permasalahan. Contohnya
dalam
membangun
aplikasi
perpustakaan,
analisis
bertujuan
mendapatkan penjabaran objek seperti buku, petugas perpustakaan, dan sebagainya. Tahap perancangan berorientasi objek, penekanan terletak pada bagaimana mendefinisikan objek-objek logik dalam aplikasi yang akan diimplementasikan ke dalam bahasa pemrograman berorientasi objek seperti C++, Smaltalk, Java, atau Visual Basic (Larman, 1998, p6)
57 2.7.3 Konsep Analisis dan Perancangan Berorientasi Objek
Tiga buah konsep atau teknik dasar dalam analisis dan perancangan berorientasi objek yaitu : 1. Pembungkusan (Encapsulation) Encapsulation dalam bahasa pemrograman berorentasi objek secara sederhana
berarti pengelompokan data dan fungsi (yang disebut sebagai metode). Secara tradisional, data dan fungsi dalam sebuah program adalah independen. Seperti dalam pemrograman modular dan abstraksi data, pemrograman berorientasi objek mengelompokkan data dengan fungsi yang beroperasi pada data tersebut. Setiap objek kemudian mempunyai sebuah set data dan set fungsi secara logik. 2. Pewarisan (Inheritance) Dalam object oriented programming kita dapat menciptakan objek baru yang diturunkan dari objek lain. Objek baru ini sering disebut dengan objek turunan (derived class) sedangkan objek induknya sering disebut dengan base class. Sifat yang terkandung pada objek turunan adalah sifat hasil pewarisan dari sifat-sifat yang terdapat pada objek induk. Jadi kita dapat membuat objek baru yang memiliki kemampuan lebih dibanding dengan objek induknya dengan menambahkan sifat baru ke dalam objek tersebut. 3. Polimorfisme (Polymorphism) Polymorphism adalah kemampuan dari tipe objek yang berbeda untuk
menyediakan atribut dan operasi yang sama dalam hal yang berbeda. Polimorphism adalah hasil natural dari fakta bahwa objek dari tipe yang
berbeda (bahkan dari subtipe yang berbeda) dapat menggunakan properti dan operasi yang sama dalam hal yang berbeda.
58 2.8 Unified Modelling Language (UML) 2.8.1 Diagram UML
Menurut Roff (2003, p11-13), UML bisa dibagi dalam dua bagian utama, yaitu : 1. Structural Diagram Class diagram dan implementation diagram termasuk dalam bagian ini.
Dengan dua kategori ini, kita bisa menemukan empat tipe spesifik dari diagram yaitu :
•
Class dan object diagram
•
Component dan deployment diagram
2. Behavioral Diagram Behavioral diagram digunakan untuk menunjukkan bagaimana aliran proses
antara komponen, kelas, pengguna dan sistem. Ada lima behavioral diagram dalam UML, yaitu :
•
Use case diagram
•
Activity diagram
•
Sequence diagram
•
Collaboration diagram
•
Statechart diagram
Terdapat tiga buah diagram inti yang paling sering digunakan untuk membangun sistem yaitu use case diagram (untuk menggambarkan kebutuhan pengguna sistem), sequence diagram (untuk menganalisis setiap use case dan memetakannya ke dalam class), dan class diagram (untuk menentukan struktur
59 berorientasi objek). Ketiga diagram ini akan dapat meng-cover 80% dari kebutuhan pemodelan objek ketika membangun aplikasi bisnis dengan teknologi objek (Ambler, 2002, online). Menurut Booch (1999, p99-100), jika ingin memodelkan suatu aplikasi yang sederhana yang akan dijalankan pada sebuah mesin tunggal, maka diagram yang dapat digunakan adalah use case diagram, class diagram (untuk pemodelan struktural), dan interaction diagram (untuk pemodelan behavioral). Jika pemodelan difokuskan juga pada aliran proses, maka dapat menambahkan statechart diagram dan activity diagram yang dapat menggambarkan tingkah laku
dari sistem. Sedangkan jika sistem itu terdapat client atau server, maka diagram yang diperlukan untuk menggambarkan sistem adalah use case diagram, activity diagram, class diagram, interaction diagram, statechart diagram, component diagram, dan deployment diagram.
2.8.1.1 Class dan Object Diagram
Menurut Mathiassen et al. (2000, p53) class diagram merupakan deskripsi dari kumpulan obyek yang saling berbagi struktur, pola tingkah laku dan atribut. Class diagram digunakan untuk merepresentasikan bagian-bagian pokok yang berbeda (kelas), hubungan mereka satu sama lain dan dalam subsistem mana kelas itu berada. Class diagram termasuk atribut dan operasi dan juga berbagai tipe tugas/peran dan asosiasi (Roff, 2003, p11). Atribut adalah nama-nama properti dari sebuah kelas yang menjelaskan batasan nilainya dari properti yang dimiliki oleh sebuah kelas tersebut. Atribut
60 dari suatu kelas merepresentasikan properti-properti yang dimiliki oleh kelas tersebut. Atribut mempunyai tipe yang menjelaskan tipe instansiasinya. Operasi adalah implementasi dari layanan yang dapat diminta dari sebuah obyek dari sebuah kelas yang menentukan tingkah lakunya. Sebuah operasi dapat berupa perintah ataupun permintaan. Sebuah permintaan tidak boleh mengubah kedudukan dari objek tersebut. Hanya perintah yang dapat mengubah keadaan dari sebuah objek. Keluaran dari sebuah operasi tergantung dari nilai keadaan terakhir dari sebuah objek. Hubungan antar kelas terdiri dari :
•
Association Association adalah hubungan antar benda struktural yang terhubung diantara
objek. Kesatuan objek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian.
Sumber : www.wikipedia.org
Gambar 2.1. Association
•
Aggregation Aggregation atau agregasi adalah hubungan “bagian dari” atau “bagian
keseluruhan”. Suatu class atau objek mungkin memiliki atau bisa dibagi menjadi class atau objek tertentu, dimana class atau objek yang disebut kemudian merupakan bagian dari class atau objek yang terdahulu. Agregasi adalah bentuk khusus dari association.
61
Sumber : www.wikipedia.org
Gambar 2.2. Aggregation
•
Composition Composition adalah strong aggregation. Pada composition, objek “bagian”
tidak dapat berdiri sendiri tanpa objek “keseluruhan”. Jadi mereka terkait dengan kuat satu dengan lainnya.
Sumber : www.wikipedia.org
Gambar 2.3. Composition
•
Generalization Generalization menggambarkan hubungan khususdalam objek anak/child
yang menggantikan objek parent/induk. Dalam hal ini, objek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada objek induk.
Sumber : www.wikipedia.org
Gambar 2.4. Generalization
Sedangkan object diagram sangat mirip dengan class diagram, kecuali kebalikan dari kelas, object diagram menunjukkan objek yang merupakan instance dari kelas. Objek merupakan sesuatu yang unik dan individual,
sedangkan class lebih umum. Object diagram menggambarkan sekumpulan
62 objek-objek
dan
hubungannya.
Object
diagram
digunakan
untuk
menggambarkan struktur data, static snapshots dari instance dari class diagram. Object diagram adalah class diagram yang dilihat dari sudut pandang objek.
2.8.1.2 Component dan Deployment Diagram
Component diagram menggambarkan organisasi dan dependensi diantara
sekumpulan komponen-komponen. Component diagram digunakan untuk mengilustrasikan bagaimana komponen dari sistem berinteraksi satu sama lain.
Sumber : www.wikipedia.org
Gambar 2.5. Component Diagram Deployment diagram menggambarkan bagaimana komponen akan
bekerja setelah diinstal pada sistem dan bagaimana sistem ini berinteraksi satu sama lain.
63
Sumber : www.wikipedia.org
Gambar 2.6. Deployment diagram
2.8.1.3 Use Case Diagram
Use case diagram menampilkan sekumpulan use case dan aktor, serta
hubungan diantaranya, dimana dapat menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Seorang aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaanpekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun kebutuhan sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua fitur yang ada pada sistem.
64
Sumber : www.wikipedia.org
Gambar 2.7. Contoh use case diagram
2.8.1.4 Activity Diagram
Activity diagram digunakan untuk menganalisa behavior dalam use case
yang lebih kompleks dan menunjukkan interaksinya satu sama lain. Activity diagram mirip dengan statechart diagram sejauh merepresentasikan aliran data.
Bagaimanapun, activity diagram digunakan untuk memodelkan aliran kerja bisnis selama desain use case. Activity diagram biasanya digunakan untuk merepresentasikan
aktivitas
bisnis
yang
kompleks,
membantu
untuk
mengidentifikasi use case atau interaksi antara dan dalam use case (Roff, 2003, p13).
65
Sumber : www.wikipedia.org
Gambar 2.8. Contoh Activity Diagram
2.8.1.5 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di
sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horisontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian
langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya, dimana beberapa message tersebut dapat dipetakan menjadi metode dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan
diterimanya sebuah message.
66
Sumber : www.wikipedia.org
Gambar 2.9. Contoh sequence diagram
2.8.1.6 Statechart Diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan (dari
satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari rangsangan yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).
Diagram ini menekankan pada metode (event) dari objek. Statechart diagram menampilkan sebuah state machine, yang terdiri dari state, transition, event, dan activity. Dalam UML, state digambarkan berbentuk segi empat dengan sudut
membulat dan memiliki nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali garis miring. Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah.
67
Sumber : www.wikipedia.org
Gambar 2.10. Contoh Statechart diagram