BAB 2 LANDASAN TEORI
2.1
Persediaan (Stok) Persediaan adalah stok yang akan digunakan pada masa yang akan datang
(Bronson et al., 1997, p259). Persediaan didefinisikan sebagai bahan baku, barang dalam proses dan perakitan, dan barang jadi yang ada dalam sistem produksi pada suatu waktu tertentu (Elsayed, 1994, p. 63). Berikut ini adalah beberapa definisi lain dari persediaan: 1. Persediaan adalah sejumlah komoditas dari sebuah perusahaan yang disimpan untuk beberapa waktu untuk memenuhi kebutuhan yang akan datang (Daniel Sipper dan Robert L. Bulfin, JR., p. 206). 2. Persediaan adalah suatu aktiva yang meliputi barang-barang milik perusahaan dengan maksud untuk dijual dalam suatu periode usaha yang normal, atau persediaan barang-barang yang masih dalam pengerjaan atau proses produksi, ataupun persediaan bahan baku yang menunggu penggunaannya dalam suatu proses produksi (Sofjan Asauri, 1993, p. 176). 3. Persediaan adalah stok yang akan digunakan pada masa yang akan datang (Bronson et al., 1997, p259). 4. Persediaan adalah barang atau secara umum dapat diartikan sebagai sumber daya yang sedang tidak dipakai, yang memiliki nilai ekonomis (Spencer B. Smith, 1989, p. 108).
8
Sistem persediaan adalah serangkaian kebijaksanaan dan pengendalian yang memonitor tingkat persediaan dan menentukan tingkat persediaan yang harus diisi. Sistem persediaan memegang peranan penting, dimana untuk mengetahui transaksi keluar masuknya barang, serta meneliti persediaan yang ada. Dengan adanya sistem persediaan, diharapkan tidak ada barang yang tersimpan terlalu lama di dalam gudang, atau pembelian material yang tidak sesuai dengan kebutuhan. Persediaan sendiri besarnya meliputi 1/3 dari total investasi, dan dikategorikan sebagai modal kerja yang berbentuk barang. Dalam perusahaan, banyak divisi perusahaan yang terlibat, diantaranya adalah divisi finansial, produksi, purchasing, dan marketing, dan masing-masing divisi memiliki sudut pandang yang berbeda mengenai persediaan : -
Divisi finansial menginginkan jumlah persediaan yang sedikit untuk menghemat holding cost.
-
Divisi produksi menginginkan biaya produksi serendah mungkin, dan produksi sebuah jenis barang secara besar-besaran untuk menghemat waktu.
-
Divisi purchasing menginginkan pembelian dalam jumlah besar untuk mendapatkan potongan harga.
-
Divisi marketing menginginkan stok barang jadi dalam jumlah banyak untuk menghindari stockout. Stockout biasanya muncul pada persediaan yang mahal dan holding cost tinggi (misalnya : dealer mobil). Karena itulah dibutuhkan sistem persediaan untuk dapat menjembatani keinginan
dan kebutuhan yang berbeda-beda tersebut.
9
Dalam masalah persediaan atau stok, ada terkait beberapa macam biaya sebagai berikut: -
Purchasing cost: biaya yang timbul akibat pembelian barang. Biaya ini dipengaruhi oleh besarnya jumlah barang yang dipesan dan juga harga satuan dari barang yang dipesan.
-
Ordering cost: biaya yang dikeluarkan untuk membawa barang dari luar ke dalam perusahaan. Biaya ini meliputi beberapa biaya, yaitu biaya untuk menentukan pemasok (supplier), pengetikan pesanan, pengiriman pesanan, biaya pengangkutan, biaya penerimaan dan lain sebagainya. Biaya ini diasumsikan konstan untuk setiap kali pesan.
-
Holding cost: biaya yang dikeluarkan untuk melakukan penyimpanan barang. Ada beberapa macam biaya yang termasuk di dalam holding cost ini, yaitu biaya memiliki persediaan (modal), biaya gedung (biaya ini merupakan biaya sewa gedung jika perusahaan tidak memiliki ruang gudang sendiri atau merupakan nilai depresiasi jika perusahaan memiliki gudang sendiri), biaya asuransi, biaya kerusakan dan penyusutan (jika barang disimpan pasti akan mengalami kerusakan maupun penyusutan), bunga, upah buruh, biaya administrasi dan pemindahan.
-
Set-up cost : biaya untuk mempersiapkan mesin atau proses produksi untuk membuat suatu pesanan, atau biaya-biaya yang dibutuhkan untuk melakukan penyesuaian pada saat bahan/barang diproses. Secara prinsip, set-up cost adalah order cost pada saat bahan telah/sedang diproses. Pada banyak kasus, set-up cost
10
sangat berkorelasi dengan set-up time (set-up time dapat dieliminasi dengan inovasi mesin dan perbaikan standard bahan baku). -
Biaya kekurangan persediaan: biaya ini muncul jika perusahaan tidak dapat memenuhi kebutuhannya untuk melakukan produksi maupun untuk memenuhi kebutuhan konsumen. Dalam hal ini peusahaan akan kehilangan kesempatan untuk dapat memproduksi barang maupun untuk mendapatkan keuntungan dari penjualan barang kepada konsumen. Ada beberapa faktor untuk biaya kekurangan persediaan ini, yaitu kuantitas yang tidak dapat terpenuhi, waktu pemenuhan, dan biaya pengadaan darurat.
2.2
Alasan Memiliki Persediaan Alasan diadakannya persediaan berkaitan dengan pelayanan terhadap konsumen
sekaligus meminimalkan biaya-biaya yang diakibatkan apabila tidak memiliki persediaan. Kegunaan dari sistem persediaan antara lain : -
Memenuhi permintaan tepat pada waktunya.
-
Penyelarasan antara produksi dan distribusi.
-
Meningkatkan fleksibilitas produksi dan menjaga mesin agar tetap bekerja.
-
Produksi terus berjalan dengan adanya persediaan bahan mentah.
-
Mendapat kepastian tersedianya barang.
-
Antisipasi terhadap perubahan harga dan inflasi.
-
Meningkatkan pelayanan terhadap pelanggan.
-
Mengurangi biaya transportasi.
11
-
Mengantisipasi aksi pemogokan kerja buruh, bencana alam, dan keterlambatan pengiriman.
-
Pemanfaatan potongan harga bila melakukan pemesanan dalam jumlah banyak (quantity discount). Quantity discount seringkali diberikan oleh penjual kepada pembeli jika membeli dalam jumlah tertentu yang cukup besar. Pesanan pembelian optimal dapat dipengaruhi oleh adanya kebijakan quantity discount ini.
2.3
Jenis-jenis Persediaan Persediaan dapat digolongkan ke dalam dua bentuk, yaitu berdasarkan fungsi dan
berdasarkan proses produksi.
2.3.1 Persediaan Berdasarkan Fungsi Jenis persediaan berdasarkan fungsi yang umumnya digunakan adalah sebagai berikut (Richard J. Tersine, p. 7-8): 1. Working Stock (Cycle atau Lot Size Stock) Working Stock adalah persediaan yang akan digunakan dan telah disimpan sebelum digunakan, agar pemesanan dapat dilakukan dalam bentuk sejumlah lot yang diinginkan. Ukuran lot ini bertujuan untuk meminimalisasikan biaya pemesanan dan penyimpanan, dan mendapatkan potongan harga. Secara umum, jumlah rata-rata persediaan yang dihasilkan dari ukuran lot yang dimiliki suatu perusahaan membentuk persediaan aktif perusahaan tersebut.
12
2. Anticipation Stock (Seasonal atau Stabilization Stock) Anticipation Stock adalah persediaan yang digunakan untuk menangani permintaan musiman yang memuncak, keperluan sampingan (promosi, pemogokan buruh). Persediaan ini disimpan atau diproduksi sebelum digunakan, dan berkurang selama permintaan puncak, dengan harapan agar tingkat produksi rata-rata tetap tercapai, dan jumlah tenaga kerja tetap stabil. 3. Safety Stock (Buffer atau Fluctuation Stock) Safety
Stock
adalah
persediaan
yang
disimpan
untuk
mengantisipasi
kemungkinan supply dan demand yang naik turun. Setelah persediaan berkurang, selama menunggu persediaan penuh kembali, Safety Stock berfungsi sebagai persediaan darurat.
2.3.2 Persediaan Berdasarkan Proses Produksi Jenis persediaan berdasarkan proses produksi dilihat dari jenis serta posisi barang tersebut dalam proses pembuatan produk (Sofjan Asauri, p. 222-223), yaitu sebagai berikut : 1. Persediaan bahan baku (raw materials) Persediaan bahan baku adalah persediaan barang-barang berwujud yang digunakan dalam proses produksi. Barang dapat diperoleh dari sumber-sumber alam, ataupun dibeli dari pemasok atau perusahaan yang memproduksi barang tersebut.
13
2. Persediaan komponen (component part) Persediaan komponen adalah persediaan yang terdiri dari komponen-komponen yang diterima dari perusahaan lain, yang dapat langsung dirakit tanpa melalui proses produksi sebelumnya. 3. Persediaan barang setengah jadi (work in process) Persediaan barang setengah jadi adalah persediaan barang-barang yang keluar dari bagian-bagian dalam sebuah pabrik, atau bahan-bahan yang telah diolah menjadi suatu bentuk, namun masih harus diproses untuk dapat dijual sebagai barang jadi. 4. Persediaan bahan-bahan pembantu Persediaan bahan-bahan pembantu adalah persediaan barang atau bahan yang diperlukan untuk mendukung proses produksi atau digunakan dalam aktivitas perusahaan, namun bukan merupakan bagian dari barang jadi. 5. Persediaan barang jadi (finished goods) Persediaan barang jadi adalah persediaan yang telah selesai diproses atau diolah dalam pabrik, dan siap untuk dijual.
2.4
Properti Persediaan Secara umum, sistem persediaan selalu berkaitan dengan hal-hal berikut sebelum
pada akhirnya sampai pada penentuan jumlah pesanan yang tepat dengan biaya total yang optimal (Richard J.Tersine, p. 12-13).
14
1. Permintaan (demand) a.
Demand size adalah ukuran skala magnitude dari permintaan, yang dibedakan antara konstan dengan variabel, dan deterministic dengan probabilistic (diskrit dengan kontinu)
b.
Demand rate adalah ukuran permintaan per satuan waktu.
c.
Demand pattern mengacu pada berapa banyak barang yang dikeluarkan dari persediaan.
2. Waktu tunggu (lead time) Waktu tunggu adalah tenggang waktu yang diperlukan antara pemesanan bahan baku sampai dengan kedatangan bahan baku tersebut. Waktu tunggu ini dapat bernilai konstan maupun probabilistic (Elsayed A.Elsayed and Thomas O.Boucher, p. 64-65)). 3. Pemesanan kembali (replenishment) a.
Replenishment size mengacu pada kuantitas atau sejumlah barang yang akan diterima masuk ke dalam persediaan. Ukurannya dapat bernilai konstan atau variabel tergantung dari tipe sistem persediaan yang digunakan.
b.
Replenishment pattern mengacu pada bagaimana sejumlah unit tertentu ditambahkan ke dalam persediaan.
c.
Replenishment lead time adalah tenggang waktu antara pemesanan sejumlah item dan penambahan item tersebut ke dalam persediaan.
15
4. Persediaan cadangan (Safety Stock) Persediaan cadangan adalah persediaan yang diadakan untuk mencegah terjadinya kekosongan persediaan ketika kondisi atau situasi permintaan sedang tidak pasti, atau ketika terjadi keterlambatan penerimaan bahan-bahan baku. Terdapat beberapa faktor yang menentukan besarnya persediaan ini, antara lain penggunaan bahan baku rata-rata selama periode tertentu sebelum barang pesanan tiba, waktu tunggu yang bervariasi.
2.5
Komposisi Biaya Persediaan Metode-metode pengendalian persediaan selalu mengarah pada minimalisasi
biaya sebagai suatu kriteria optimalisasi agar keuntungan yang diperoleh maksimal. Biaya-biaya yang umumnya berperan dalam persediaan yaitu: 1. Biaya pembelian (purchase cost) Biaya pembelian merupakan biaya untuk membeli atau memproduksi satuan barang persediaan. Biaya ini konstan dan oleh sebab itu tidak dipertimbangkan dan dapat dihilangkan dari perhitungan total cost (Roger G.Schroeder, p. 58). 2. Biaya pemesanan atau persiapan (order atau set-up cost) Biaya pemesanan adalah biaya yang timbul setiap kali pemesanan dilakukan untuk mengisi kembali persediaan barang yang ada. Saat pemesanan dilakukan, muncul beberapa biaya yang berkaitan dengan pemrosesan, persiapan, pengiriman, penanganan, dan pembelian sejumlah item yang dipesan (Vollman, Berry, and Whybark, p. 694). Biaya pemesanan ini terdiri dari (Ronald H.Ballou, p. 413-414):
16
a.
Biaya manufacturing atau harga dari produk untuk beragam ukuran pesanan.
b.
Biaya persiapan proses produksi
c.
Biaya pemrosesan pesanan oleh departemen keuangan dan pembelian.
d.
Biaya pengiriman pesanan.
e.
Biaya pendistribusian apabila biaya transportasi tidak dimasukkan ke dalam harga pembelian.
f.
Biaya penanganan pesanan selama perjalanan ke lokasi pemesan.
3. Biaya penyimpanan (holding cost) Biaya penyimpanan adalah biaya-biaya yang diperlukan berkenaan dengan diadakannya persediaan, dan meliputi seluruh pengeluaran yang diakibatkan oleh persediaan tersebut (Sofjan Asauri, p. 224). Komposisi biaya ini antara lain (Ronald H.Ballou, p. 414-415): a.
Biaya pergudangan (space cost) yang meliputi biaya sewa gudang, biaya pemeliharaan dan penanganan barang, dan biaya administrasi gudang.
b.
Bunga atas modal yang diinvestasikan dalam persediaan (capital cost), meliputi 80% dari total biaya penyimpanan. Hal ini disebabkan karena persediaan merupakan campuran antara aset jangka pendek dan jangka panjang, dan jangkauan biaya bunga mulai dari nilai bunga bank sampai opportunity cost of capital.
c.
Biaya pelayanan persediaan (inventory service cost), termasuk di dalamnya biaya pencegahan kerusakan bahan baku, pencurian, maupun penurunan nilai barang.
17
4. Biaya kekurangan persediaan (stockout cost) Biaya kekurangan persediaan disebut juga shortage cost, yaitu biaya yang dikenakan jika tidak terdapat persediaan yang cukup untuk memenuhi permintaan berlebih yang datang pada waktu tertentu (Richard J.Tersine, p. 14), yaitu: a.
Biaya kehilangan penjualan (lost sales cost), timbul apabila pelanggan dihadapkan pada situasi kekosongan barang lalu memutuskan untuk membatalakan pesanan atas barang tersebut.
b.
Biaya pemesanan kembali (back order cost), timbul apabila pelanggan bersedia
menunggu
pesanannya
terpenuhi,
meskipun
rencana
penjualannya harus diundur. Biaya ini akan menambah ongkos pemrosesan order, transportasi, dan penanganan material.
2.6
Lot Sizing Lot Sizing adalah proses menentukan ukuran pesanan. Pemesanan ini harus
tersedia di awal periode produksi. Terdapat banyak alternatif untuk menghitung ukuran lot. Beberapa teknik diarahkan untuk menyembangkan set-up cost dan holding cost. Ada juga yang bersifat sederhana dengan menguunakan konsep jumlah atau periode pemesanan yang tetap. Berdasarkan pengambilan keputusan persediaan berdasarkan kuantitas (quantity decision), Lot Sizing dibagi menjadi dua:
18
Gambar 2.1 Model Lot Sizing
1. Static Lot Sizing Models atau SLS (Model Ukuran Pemesanan Statis) Static Lot Sizing Models merupakan model yang digunakan untuk permintaan yang tetap selama periode waktu yang direncanakan. 2. Dynamic Lot Sizing Models atau DLS (Model Ukuran Pemesanan Dinamis) Dynamic Lot Sizing Models merupakan model yang digunakan untuk permintaan yang berubah-ubah selama periode waktu yang direncanakan. Diasumsikan permintaan diketahui dengan pasti dan biasa disebut dengan lumpy demand.
2.6.1
Static Lot Sizing Models Static Lot Sizing Models dapat dikategorikan menjadi empat model, yaitu :
1. Fixed Order Quantity (FOQ) FOQ merupakan pendekatan menggunakan konsep jumlah pemesanan tetap karena keterbatasan akan fasilitas.
19
2. Economic Order Quantity (EOQ) EOQ merupakan pendekatan menggunakan konsep minimasi ongkos simpan dan ongkos pesan. Ukuran lot tetap berdasarkan hitungan minimasi tersebut. 3. Economic Production Quantity (EPQ) EPQ merupakan pengembangan dari EOQ. Perbedaannya dengan EOQ adalah EPQ berasumsi bahwa pemesanan diterima secara bertahap meningkat selama proses produksi. 4. Resource Constraints Resource Constraints merepresentasikan kombinasi dari barang dan jasa yang dapat dibeli oleh konsumen.
2.6.2
Dynamic Lot Sizing Models Dynamic Lot Sizing dapat dibagi menjadi 3 macam menurut cara penyelesaian
masalah atau rules, yaitu:
Gambar 2.2 Model Dynamic Lot Sizing
20
1. Simple Rules Simple Rules adalah aturan keputusan kuantitas pemesanan yang tidak didasarkan langsung pada optimalisasi fungsi biaya. Termasuk di dalam Simple Rules adalah: a.
Fixed Periode Requirement (FPR) : Pendekatan menggunakan konsep ukuran lot dengan periode tetap, dimana pesanan dilakukan berdasarkan periode waktu tertentu saja.
b.
Period Order Quantity (POQ) : Pendekatan menggunakan konsep jumlah pemesanan ekonomis agar dapat dipakai pada periode bersifat permintaan diskrit, teknik ini dilandasi oleh metode EOQ.
c.
Lot for Lot (LFL) : Pendekatan menggunakan konsep atas dasar pesanan diskrit dengan pertimbangan minimasi dari ongkos simpan, jumlah yang dipesan sama dengan jumlah yang dibutuhkan.
2. Heuristic Rules Heuristic Rules bertujuan mencapai solusi biaya rendah namun tidak harus optimal. a.
Least Unit Cost (LUC) : Pendekatan menggunakan konsep pemesanan dengan ongkos unit terkecil, dimana jumlah pemesanan ataupun interval pemesanan dapat bervariasi.
b.
Part Period Balancing (PPB) : Pendekatan menggunakan konsep ukuran lot ditetapkan bila ongkos simpannya sama atau mendekati ongkos pesannya.
21
c.
Silver Meal (SM) : Menitik beratkan pada ukuran lot yang harus dapat meminimumkan ongkos total per-perioda.
d.
Least Total Cost (LTC) : Pendekatan menggunakan konsep ongkos total akan diminimalisasikan apabila untuk setiap lot dalam suatu horison perencanaan hampir sama besarnya.
3. Optimum Rules Optimum Rules bertujuan mencapai solusi biaya rendah yang juga optimum. Termasuk didalamnya adalah Metode Wagner Whitin (WW). WW merupakan pendekatan menggunakan konsep ukuran lot dengan prosedur optimasi program linear, bersifat matematis. Fokus utama dalam penyelesaian masalah ini adalah melakukan minimalisasi penggabungan ongkos total dari set-up cost dan holding cost dan berusaha agar totalnya mendekati nilai yang sama untuk kuantitas pemesanan yang dilakukan.
2.7
Peramalan (Forecasting) Peramalan adalah suatu metode untuk memprediksi keadaan masa depan. Dalam
kasus ini, yang diprediksi adalah keadaan permintaan pada masa depan yang akan mempengaruhi keadaan stok barang yang dimiliki. Ada 3 metode peramalan, yaitu: 1. Metode kualitatif, yang menggunakan opini dari sang ahli untuk meramalkan masa depan. 2. Metode kausal, yang menghubungkan variabel yang akan diramalkan dengan variabel lainnya.
22
3. Metode rangkaian waktu, yang berusaha meramalkan masa depan dari kejadian pada masa lampau. Ada lima prinsip mengenai peramalan, yaitu: 1. Hasil peramalan mengandung error 2. Error peramalan harus jelas 3. Peramalan untuk jumlah yang besar lebih akurat dibandingkan dengan peramalan untuk jumlah kecil. 4. Peramalan lebih akurat untuk jangka waktu yang lebih pendek dibanding dengan jangka waktu yang lebih panjang. 5. Jika
memungkinkan,
perhitungan
permintaan
lebih
baik
daripada
meramalkannya. Dalam skripsi ini, untuk melakukan peramalan data permintaan yang akan terjadi pada masa mendatang dilakukan dengan metode Trend Analysis. Metode ini dapat mengatasi adanya keadaan permintaan yang bersifat periodik. Rumus untuk melakukan peramalan dengan metode Trend Analysis ini adalah sebagai berikut: y = (a + bx) + MRmonth y = nilai hasil peramalan pada periode selanjutnya. (a + bx) = nilai dari least square dengan x sebagai periode yang mau diramalkan nilainya. MRmonth = nilai mean residual pada bulan yang bersesuaian dengan periode bulan yang akan diramalkan nilainya.
23
2.8 Metode Wagner - Whitin
Metode Wagner-Whitin ditemukan pada tahun 1958 oleh Wagner dan Whitin. Metode ini merupakan pengembangan dari Dynamic Programming yang ditemukan oleh Richard Bellman pada tahun 1957. Metode Wagner-Whitin sering digunakan dalam pengenalan Dynamic Programming. Kelebihan dari Metode Wagner-Whitin antara lain memiliki solusi optimal yang terjamin untuk problem statis. Wagner-Whitin dimulai dari model deterministik, dengan jumlah permintaan diketahui per periodenya, biaya pemesanan yang fluktuatif, dan stok barang dari satu periode ke periode berikutnya. Pendekatan menggunakan konsep ukuran lot dengan prosedur optimasi program linear, bersifat matematis. Fokus utama dalam penyelesaian masalah ini adalah melakukan minimasi penggabungan ongkos total dari ongkos pesan dan ongkos simpan dan berusaha agar kedua ongkos tersebut tersebut mendekati nilai yang sama untuk kuantitas pemesanan yang dilakukan. Berikut ini adalah langkah-langkah Wagner-Whitin, yang disertai dengan contoh soal. Tabel 2.1 Data Permintaan j
1
2
3
4
5
Dt
20
50
10
50
50
At
100
100
100
100
100
Ht
1
1
1
1
1
24
•
j menunjukkan periode, yang dapat berupa hari, minggu, atau bulan. Pada soal ini, j merupakan periode dalam satuan bulan.
•
Dt menunjukkan jumlah permintaan pada periode tersebut.
•
At menunjukkan setup cost, pada soal di atas merupakan nilai dalam satuan dollar.
•
Ht menunjukkan holding cost, pada soal di atas merupakan nilai dalam satuan dollar.
Langkah 1:
Z 1* = A1 = 100 j1* = 1 Karena ini merupakan data pertama, periode optimal adalah periode 1.
Langkah 2:
⎧ A + h1 D2 , produce in 1 Z 2* = min ⎨ *1 ⎩ Z1 + A2 , produce in 2 ⎧100 + 1(50) = 150 = min ⎨ ⎩ 100 + 100 = 200 = 150 j =1 * 2
Periode 1 masih yang terkecil, jadi permintaan barang periode 2 akan dipesan pada periode 1.
25
Langkah 3:
⎧ A1 + h1 D2 + (h1 + h2 ) D3 , produce in 1 ⎪ produce in 2 Z = min⎨Z1* + A2 + h2 D3 , ⎪ Z* + A , produce in 3 3 ⎩ 2 ⎧100 + 1(50) + (1 + 1)10 = 170 ⎪ = min⎨100 + 100 + (1)10 = 210 ⎪150 + 100 = 250 ⎩ * 3
= 170 j3* = 1 Periode 1 masih yang terkecil, jadi permintaan barang periode 2 dan 3 akan dipesan pada periode 1.
Langkah 4: ⎧ A1 + h1 D 2 + ( h1 + h2 ) D 3 + ( h1 + h2 + h3 ) D 4 , produce in 1 ⎪ Z * + A + h D + (h + h ) D , produce in 2 ⎪ 2 2 3 2 3 4 * Z 4 = min ⎨ 1* produce in 3 ⎪ Z 2 + A3 + h3 D 4 , * ⎪⎩ Z 3 + A4 , produce in 4 ⎧100 + 1(50 ) + (1 + 1)10 + (1 + 1 + 1)50 = 320 ⎪100 + 100 + (1)10 + (1 + 1)50 = 310 ⎪ = min ⎨ = 300 ⎪ 150 + 100 + (1)50 ⎪⎩170 + 100 = 270 = 270 j 4* = 4
Periode 4 yang terkecil, jadi permintaan barang periode 4 akan dipesan pada periode ini. .
26
2.9 Alat Bantu Perancangan 2.9.1
State Transition Diagram (STD)
State Transition Diagram merupakan salah satu cara untuk menggambarkan jalannya suatu proses. STD ini terdiri dari input/kondisi, state proses, output/aksi yang terjadi dan perubahan statenya. Komponen dasar STD antara lain:
Gambar 2.3 Komponen Dasar State Transition Diagram
•
State menunjukkan satu atau lebih kegiatan atau keadaan atau atribut yang menjelaskan bagian tertentu dari proses.
•
Anak panah berarah, menunjukkan perubahan state yang disebabkan oleh input tertentu (state X ke state Y).
•
Input atau kondisi merupakan suatu kejadian pada lingkungan eksternal yang dapat dideteksi oleh sistem misal sinyal, interupsi atau data. Hal ini menyebabkan perubahan dari satu state ke state yang lainnya atau dari satu aktivitas ke aktivitas lainnya.
27
•
Output atau aksi merupakan hal yang dilakukan oleh sistem jika terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi dapat menghasilkan output, tampilan pesan pada layar, kalkulasi atau kegiatan lannya.
2.9.2
Pseudocode
Pseudocode berasal dari kata pseudo dan code. Pseudocode memiliki beberapa definisi, antara lain: 1. Pseudocode adalah deskripsi yang informal dan padat dari sebuah algoritma pemrograman komputer yang menggunakan aturan struktural dari bahasa pemrograman, tetapi menghilangkan detail-detail seperti subrutin, deklarasi variabel atau syntax bahasa pemrograman tertentu. 2. Pseudocode adalah kode atau tanda yang menyerupai atau merupakan penjelasan cara menyelesaikan suatu masalah. Bahasa pemrograman dalam hal ini digabungkan dengan penjelasan detail dalam bahasa natural agar terlihat lebih umum. Pseudocode bukanlah skeleton program atau dummy code yang masih dapat di-compile tanpa error. Salah satu bentuk pseudocode adalah flowchart. Dalam penulisannya, pseudocode pun memiliki beberapa aturan, yaitu: 1. Statement program ditulis dengan bahasa yang sederhana 2. Instruksi ditulis per baris. 3. Tiap modul diberi spasi untuk memudahkan pembaca. 4. Huruf untuk penulisan pseudocode dibedakan 5. Batasi jumlah baris pada tiap modul
28
2.9.3 Teori Perancangan Program
Perangkat lunak merupakan data elektronik yang disimpan sedemikian rupa oleh komputer itu sendiri. Data yang disimpan ini dapat berupa program atau instuksi yang akan dijalankan oleh perintah, maupun catatan-catatan yang diperlukan oleh komputer untuk menjalankan perintah yang didapatnya. Perangkat lunak memiliki banyak definisi, sebagian diantaranya adalah sebagai berikut: a. Instruksi-instruksi
(program
komputer)
yang
jika
dijalankan
akan
memberikan fungsi dan unjuk kerja yang diinginkan. b. Kumpulan beberapa perintah yang dieksekusi oleh mesin komputer dalam menjalankan pekerjannya. c. Struktur data yang membuat program mampu memanipulasi suatu informasi. d. Dokumen-dokumen yang menjelaskan operasi dan pemakaian suatu program. Perangkat lunak memiliki perbedaan dengan perangkat keras. Perangkat lunak merupakan suatu elemen sistem yang bersifat logis bukan bersifat fisik dan tidak berbentuk secara nyata. Perangkat lunak memiliki beberapa karakteristik, sebagai berikut. a. Perangkat lunak dikembangkan dan direkayasa, bukan dirakit seperti perangkat keras. Ada persamaan antara pengembangan perangkat lunak dan produksi perangkat keras, namun kedua aktivitas itu pada dasarnya memiliki perbedaan satu sama lainnya.
29
b. Perangkat lunak tidak rusak, berbeda dengan perangkat keras. Perangkat keras dapat menjadi rusak karena terkena pengaruh lingkungan dan perangkat keras yang rusak tersebut dapat digantikan dengan yang baru atau diperbaiki. Sedangkan, pada perangkat lunak jika terjadi kegagalan fungsi maka dapat diperbaiki. Oleh karena itu, pemeliharaan perangkat lunak menjadi lebih rumit daripada pemeliharaan perangkat keras. c. Perangkat lunak dibuat mulai dari komponen terkecil kemudian digabungkan sehingga membentuk suatu fungsi tertentu. Berbeda dengan perangkat lunak yang dirakit dari komponen yang sudah ada. Perancangan perangkat lunak adalah penetapan dan penggunaan prinsip-prinsip perancangan untuk mendapatkan perangkat lunak yang ekonomis, handal dan bekerja secara efisien pada mesin yang sesungguhnya (Pressman, 2005, p53). Rekayasa Perangkat Lunak adalah suatu pendekatan aplikasi yang sistematis, disiplin dan mampu mengukur dalam pengembangan, pengoperasian dan pemeliharaan perangkat lunak. Menurut Pressman, Rekayasa Perangkat Lunak adalah teknologi yang berlayer. Layer-layer tersebut terdiri dari empat elemen yang mampu untuk mengontrol proses pengembangan perangkat lunak sebagai berikut. a. A quality focus Setiap pendekatan teknik harus berdasarkan pada kualitas yang menjadi komitmen suatu organisasi. Hal mendasar yang mendukung suatu teknik perangkat lunak adalah quality focus.
30
b. Proses (Process) Merupakan fondasi dari teknik perangkat lunak yang merupakan perekat yang memegang layer-layer teknologi bersama-sama dan mampu secara rasional dan dari waktu ke waktu mengembangkan perangkat lunak komputer. Proses didefinisikan sebagai urutan di dalam metode yang akan digunakan. c. Metode-metode (methods) Menyediakan cara-cara teknis membangun perangkat lunak. Pada metode ini halhal yang perlu diperhatikan: 1) Komunikasi 2) Analisis sistem yang diperlukan. 3) Desain model. 4) Konstruksi program. 5) Pengujian. 6) Pendukung untuk proses dan metode.
2.9.4 Model Waterfall
Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing/verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus
31
menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh, tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut :
Gambar 2.4 Model Waterfall Gambar di atas adalah tahapan umum dari model proses ini. Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan-tahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini menurut Pressman: 1. Rekayasa dan pemodelan sistem Karena sistem merupakan bagian dari sebuah sistem yang lebih besar, pemodelan ini dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke software tersebut. Pandangan sistem ini penting ketika software harus berhubungan dengan elemen-elemen yang lain seperti software, hardware, manusia, dan database. Rekayasa dan
32
pemodelan sistem menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis serta desain tingkat puncak. Tahap ini sering disebut dengan Project Definition. 2. Analisis kebutuhan software Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada software. Untuk memahami sifat dari program yang dibuat, maka software engineer harus memahami domain informasi software tersebut, misalnya fungsi yang dibutuhkan, tingkah laku, unjuk kerja, dan user interface. Kebutuhan baik untuk sistem maupun software didokumentasikan dan ditunjukkan kepada pelanggan. 3. Desain Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain software sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda, struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Proses desain menterjemahkan syarat/kebutuhan ke dalam sebuah representasi software yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana 2 aktivitas sebelumnya, desain didokumentasikan dan menjadi bagian dari konfigurasi software.
4. Generasi kode
33
Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding.. Tahap ini merupakan implementasi dari tahap desain yang secara teknis nantinya dikerjakan oleh programmer. 5. Pengujian Setelah program dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal software, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional, yaitu mengarahkan pengujian untuk menemukan kesalahan – kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang diinginkan. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. 6. Pemeliharaan Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya tetap seperti itu. Ketika dijalankan mungkin saja masih ada error kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Software dapat mengalami perubahan setelah disampaikan kepada pelanggan (perkecualian yang mungkin adalah software yang dilekatkan), karena software harus disesuaikan untuk mengakomodasi perubahan – perubahan di dalam lingkungan eksternalnya (contohnya perubahan yang dibutuhkan sebagai
34
akibat dari perangkat peripheral atau sistem operasi yang baru), atau karena pelanggan
membutuhkan
perkembangan
fungsional
atau
unjuk
kerja.
Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya. Pemeliharaan software mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi. Model ini sangat popular karena pengaplikasiannya mudah. Selain itu, ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal project, maka System Engineer dapat berjalan dengan baik dan tanpa masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan seeksplisit yang diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal project lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang terbuang lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap selanjutnya. Meskipun demikian, karena model ini melakukan pendekatan secara urut / sequential, maka ketika suatu tahap terhambat, tahap selanjutnya tidak dapat dikerjakan dengan baik dan itu menjadi salah satu kekurangan dari model ini. Selain itu, ada beberapa kekurangan pengaplikasian model ini, antara lain adalah sebagai berikut: 1. Ketika problem muncul, maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan sebelumnya, maka proses harus membenahi tahapan sebelumnya agar problem ini tidak muncul. Hal - hal seperti ini yang dapat membuang waktu pengerjaan System Engineer.
35
2. Karena pendekatannya secara sequential, maka setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama pengerjaannya. 3. Pada setiap tahap proses tentunya dipekerjakan sesuai spesialisasinya masingmasing. Oleh karena itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga tidak terpakai lagi. Oleh karena itu, seringkali pada model proses ini dibutuhkan seseorang yang “multi - skilled”, sehingga minimal dapat membantu pengerjaan untuk tahapan berikutnya. Pengembang sering melakukan penundan yang tidak perlu. Sifat alami dari siklus kehidupan klasik membawa kepada blocking state di mana banyak anggota tim proyek harus menunggu tim yang lain untuk melengkapi tugas yang saling memiliki ketergantungan. Blocking state cenderung menjadi lebih lazim pada awal dan akhir sebuah proses sekuensial linier.