BAB 2 LANDASAN TEORI
2.1
Persediaan Pada umumnya baik perusahaan perdagangan ataupun perusahaan industri serta perusahaan jasa selalu mengadakan persediaan. Pengawasan dan pemeliharaan persediaan adalah masalah biasa dalam semua organisasi di setiap sektor ekonomi. Dengan adanya persediaan, selain untuk mencari keuntungan perusahaan saja, pimpinan perusahaan tentunya mempunyai maksud agar perusahaan bisa memenuhi kebutuhan para langganan akan produksi yang dihasilkan dan memperoleh kesempatan dalam menerima keuntungan yang seharusnya dia dapatkan. Dalam persediaan ini dapat berupa persediaan bahan baku, barang setengah jadi, dan barang jadi. Agar lebih jelas mengenai pengertian
persediaan,
maka
disini
dikemukakan
beberapa
pengertian
persediaan-persediaan antara lain : •
“Inventory atau persediaan barang adalah merupakan elemen aktiva lancar yang dianggap paling kurang liquid dibandingkan aktiva lancar yang lain misalnya kas, piutang, dan marketable securities.” (Alex S. Nitisemito, 1984 : 69).
•
“Inventory atau persediaan barang sebagai elemen utama dari modal kerja merupakan aktiva yang selalu dalam keadaan berputar, di mana secara terusmenerus mengalami perubahan.” (Bambang Riyanto, 1993 : 61).
10
•
“Persediaan adalah sebagai suatu aktiva yang meliputi barang-barang milik perusahaan dengan maksud untuk dijual dalam suatu periode waktu normal, atau persediaan barang-barang yang masih dalam pengerjaan atau proses produksi, ataupun persediaan bahan baku yang menunggu pengggunaannya dalam suatu proses produksi.” (Sofyan Assauri, 1980 : 176).
•
“Persediaan adalah aktiva yang tersedia untuk dijual dalam kegiatan normal perusahaan, dalam proses produksi, dalam perjalanan, dalam bentuk bahan atau perlengkapan (supplies) untuk digunakan dalam proses produksi atau pemberian jasa.” (Ikatan Akuntan Indonesia, 1999 : 14.1).
•
“Persediaan merupakan istilah yang digunakan untuk menunjukkan barangbarang yang dimiliki oleh suatu perusahaan, namun akan tergantung pada jenis usaha perusahaan.” (Baridwan, 2000 : 149). Dari definisi-definisi tersebut di atas dapatlah penulis simpulkan bahwa
yang dimaksud dengan persediaan adalah salah satu elemen aktiva lancar yang berwujud barang yang harus tersedia dalam perusahaan pada saat diperlukan sehingga berguna untuk menjamin kelancaran dalam menjalankan perusahaan.
2.2
Alasan Memiliki Persediaan Menurut Barry Render (1997, p.137), paling sedikit ada 3(tiga) alasan perlunya persediaan bagi perusahaan maupun organisasi : a.
Adanya unsur ketidakpastian permintaan.
b.
Adanya unsur ketidakpastian pasokan dari supplier.
11
c.
Adanya unsur ketidakpastian tenggang waktu pemesanan. Menghadapi ketiga unsur ketidakpastian tersebut, maka perusahaan
harus melakukan manajemen persediaan proaktif, dalam arti mampu untuk mengantisipasi keadaan maupun menghadapi tantangan dalam manajemen persediaan. Tantangan manajemen persediaan dapat berasal dari luar maupun dari dalam perusahaan. Tantangan tersebut berkaitan erat dengan tujuan diadakannya persediaan.
2.3
Tujuan dan Fungsi Pengendalian Persediaan Suatu pengendalian persediaan yang dijalankan oleh suatu perusahaan sudah tentu mempunyai tujuan-tujuan tertentu. Adanya suatu pengendalian bahan baku yang cukup, dimaksudkan supaya dapat menjamin kelancaran proses produksi. Tujuan pengendalian secara terperinci dapatlah dinyatakan sebagai berikut: a. Menjaga agar jangan sampai perusahaan kehabisan persediaan yang dapat mengakibatkan terhentinya proses produksi. b. Menjaga agar pembentukan persediaan oleh perusahaan tidak terlalu besar, sehingga biaya-biaya yang timbul dari persediaan tidak terlalu besar. c. Menjaga agar pembelian secara kecil-kecilan dapat dihindarkan, karena ini akan berakibat biaya pemesanan menjadi lebih besar.
12
Beroperasi tanpa menyelenggarakan persediaan bahan baku tidaklah mungkin. Akan tetapi persediaan bahan baku yang terlalu besar akan merugikan perusahaan. Sebaliknya, persediaan bahan baku yang terlalu kecil juga tidak menguntungkan. Adapun beberapa kerugian atau kelemahan apabila perusahaan menyelenggarakan persediaan yang terlalu besar, antara lain: a.
Biaya penyimpanan/pergudangan daripada persediaan bahan baku akan menjadi sangat tinggi. Biaya ini tidak hanya mencakup sewa gudang/penyusutan gudang, tenaga kerja, akan tetapi termasuk juga adanya resiko kerusakan, kehilangan, ketinggalan zaman (bahan mentah tidak sesuai dengan kebutuhan).
b. Tingginya investasi dalam persediaan bahan baku, akan mengakibatkan berkurangnya dana untuk investasi dalam bidang yang lain seperti misalnya perluasan produksi, peningkatan program pemasaran dan sebagainya. Dengan kata lain dapat dinyatakan bahwa persediaan bahan baku yang terlalu tinggi justru menghalangi kemajuan perusahaan itu sendiri. c. Apabila persediaan bahan baku tersebut mengalami kerusakan atau mengalami
perubahan-perubahan
kimiawi
sehingga
tidak
dapat
dipergunakan maka kerugian perusahaan akan menjadi semakin besar dengan semakin tingginya tingkat persediaan bahan dalam perusahaan. d. Apabila perusahaan menyelenggarakan persediaan bahan baku yang sangat besar, maka penurunan harga pasar akan menyebabkan kerugian
13
yang tidak kecil artinya bagi suatu perusahaan. Walaupun dalam hal ini apabila terjadi kenaikan harga pasar, perusahaan akan mendapatkan keuntungan. Oleh karena itu sangat penting artinya bagi perusahaan untuk dapat memperkirakan perubahan-perubahan harga pasar yang akan terjadi untuk penentuan besar kecilnya persediaan perusahaan. Adapun kelemahan atau kerugian apabila perusahaan menyelenggarakan persediaan yang terlalu kecil, antara lain sebagai berikut : a. Persediaan yang terlalu kecil seringkali tidak mencukupi kebutuhan untuk proses produksi. Untuk menjaga kelangsungan proses produksi, perusahaan akan melakukan pembelian mendadak dengan harga yang lebih tinggi. b. Dengan sering terjadinya kehabisan atau kekurangan persediaan bahan baku, maka proses produksi tidak dapat berjalan dengan lancar. Dengan demikian kualitas dan kuantitas produk akhir perusahaan akan menjadi berubah – ubah pola. c. Persediaan bahan baku rata – rata yang kecil / sedikit akan mengakibatkan frekuensi pembelian bahan baku menjadi sangat tinggi. Dengan tingginya frekuensi pembelian bahan baku ini berarti biaya – biaya persiapan pembelian bahan (Ordering cost) akan menjadi sangat tinggi pula. Hal ini sangat merugikan perusahaan. Setelah kita mengetahui tujuan pengendalian persediaan, akan dijelaskan pula apa yang menjadi fungsi pengendalian persediaan. Fungsi pengendalian persediaan adalah sebagai berikut:
14
a.
Menyediakan informasi bagi manajemen mengenai keadaan persediaan.
b.
Mempertahankan suatu tingkat persediaan yang ekonomis.
c.
Menyediakan persediaan dalam jumlah yang secukupnya untuk menjaga jangan sampai produksi berhenti di tengah jalan bila pensuplai tidak dapat menyerahkan barang tepat pada waktunya.
d.
Mengalokasikan ruang penyimpanan untuk barang yang sedang diproses serta barang jadi.
e.
Memungkinkan bagian penjualan beroperasi pada berbagai tingkat melalui penyediaan barang jadi.
f.
Mengaitkan
pemakaian
bahan
dengan
kontrak
jangka
panjang
berdasarkan proses produksi. Oleh karena itu pengendalian terhadap persediaan bahan baku yang baik sangat diperlukan untuk melayani kebutuhan perusahaan akan bahan baku dari waktu ke waktu, sehingga proses produksi dari perusahaan juga berjalan dengan lancar. Pencapaian tujuan tersebut menimbulkan konsekuensi bagi perusahaan, yaitu harus menanggung biaya maupun resiko yang berkaitan dengan keputusan persediaan. Oleh karena itu, sasaran akhir dari manajemen persediaan adalah menghasilkan keputusan tingkat persediaan yang menyeimbangkan tujuan diadakannya persediaan dengan biaya yang dikeluarkan. Dengan kata lain, sasaran akhir manajemen persediaan adalah untuk meminimumkan total biaya dalam perubahan tingkat persediaan.
15
2.4
Jenis-jenis persediaan Persediaan dapat digolongkan ke dalam dua bentuk, yaitu berdasarkan fungsi dan berdasarkan proses produksi. 2.4.1
Persediaan Berdasarkan Fungsi Jenis persediaan berdasarkan fungsi pada umumnya digunakan adalah
sebagai berikut: a.
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 mendapat potongan harga. Secara umum, jumlah rata – rata persediaan yang dihasilkan dari ukuran lot yang dimiliki suatu perusahaan membentuk persediaan aktif perusahaan tersebut. b.
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. c.
Buffer Stock (Buffer atau Fluctuation Stock) Safety stock adalah persediaan yang tersimpan untuk mengantisipasi
kemungkinan pasokan dan permintaan yang naik turun. Setelah persediaan
16
berkurang, selama menunggu persediaan penuh kembali, safety stock berfungsi sebagai persediaan darurat. d.
Transit Stock (Work In-Process Stock) Transit stock adalah
persediaan yang masih dalam pengiriman atau
transit. Terdapat dua jenis persediaan dalam pengiriman, yaitu (a) eksternal transit stock adalah persediaan yang masih berada dalam truk, kapal dan kereta api. (b) internal transit stock adalah persediaan yang masih menunggu untuk diproses atau menunggu sebelum dipindahkan.
2.4.2 Persediaan Berdasarkan Proses Produksi Jenis persediaan berdasarkan proses produksi dilihat dari jenis serta posisi barang tersebut dalam proses pembuatan produk (Sofjan Asauri, P. 222223), yaitu sebagai berikut: a.
Persediaan bahan baku (Raw Materials) Yaitu merupakan item yang dibeli dari para supplier untuk digunakan
sebagai input dalam proses produksi. Barang dapat diperoleh dari sumbersumber alam, ataupun dibeli dari pemasok atau perusahaan yang memproduksi barang tersebut. b. Persediaan Komponen (Component Part) Persediaan komponen adalah persediaan yang terdiri dari komponenkomponen yang diterima dari perusahaan lain, yang dapat langsung dirakit tanpa melalui proses produksi sebelumnya.
17
c. Persediaan barang dalam proses Yaitu bagian dari produk akhir tetapi masih dalam proses pengerjaan, karena masih menunggu item yang lain untuk diproses. Tetapi disini dapat dikatakan bahwa dalam proses bagi suatu perusahaan merupakan barang jadi bagi perusahaan lain. Karena proses produksinya memang hanya sampai disitu saja. Atau dapat pula kalau proses itu merupakan bahan baku bagi perusahaan lainnya yang memprosesnya menjadi barang jadi. d. 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. e. Persediaan barang jadi (finished goods) Yaitu
merupakan
persediaan
produk
akhir
yang
siap
dijual,
didistribusikan atau disimpan.
2.5
Metode Deteriorating Deteriorating yang dapat diartikan dalam bahasa indonesia dengan Depresiasi atau Penyusutan. Depresiasi dapat didefinisikan sebagai penurunan nilai dari aset/harta perusahaan yang di pakai dalam operasi perusahaan. Depresiasi dapat dikategorikan dalam dua bagian yaitu: a.
Depresiasi Fisik (Phisical Depreciation) Penurunan kemampuan aset/harta untuk menghasilkan output, sebagai
contoh: komputer, bola lampu, mesin pabrik dan kendaraan bermotor yang
18
telah mengalami penyusutan fisik rendah. Penyusutan ini muncul diakibatkan lamanya pemakaian dan kerusakan yang diakibatkan dari kejadian-kejadian yang tidak terduga. b.
Depresiasi Fungsional (Functional Depreciation) Penyusutan nilai karena kapasitas/persediaan yang kurang memadai lagi
dan karena sudah tidak “up to date”. Metode ini pertama kali diperkenalkan oleh Raafat pada tahun 1991 yang membahas tentang penurunan persediaan ditinjau dari berapa lama waktu yang mengakibatkan persediaan mengalami penyusutan. Metode ini kemudian dikembangkan oleh Abad 1996 dan 2001 dengan asumsi baru yaitu persediaan mengalami kehabisan stok yang diakibatkan oleh penyusutan sehingga harus melakukan pemesanan kembali yang optimal agar pemesanan tersebut optimal maka Abad melakukannya dengan meminimalkan total biaya. Namun metode yang diperkenalkan oleh Abad masih memiliki kekurangan yaitu dengan tidak memasukkan biaya backorder dan biaya kehilangan penjualan, sehingga pada tahun 2007 metode ini di perbaiki oleh Dye et al dengan memperhitungkan biaya backorder dan biaya kehilangan penjualan. Berikut adalah contoh kurva tentang proses penurunan kapasitas persediaan berdasarkan asumsi yang dibuat oleh Nita H. Shah dan Kunal T. Shukla.
19
Gambar 2.1 Representasi dari sistem persediaan Berdasarkan kurva di atas, selama periode [0, t1], persediaan berkurang karena akumulasi dari adanya permintaan dan penyusutan. Oleh karena itu, tingkat persediaan dirumuskan dalam persamaan differensial (Nita, Shah, 2009) dI1 (t ) = − a − θ I1 (t ) ; 0 ≤ t ≤ t1…………………………………………..... (2.1) dt
Dengan batas I1(t1) = 0, solusi persamaan differensialnya adalah I1 (t ) =
(e θ a
θ ( t1 − t )
−1) ………………………………………………………… (2.2)
Dari kondisi t1 hingga pengurangan persediaan terus berlangsung dan pada akhirnya mencapai titik nol. Pada jangka waktu [t1,t1+t2], tingkat persediaan bergantung kepada permintaan dan sebagian kecil dari permintaan itu ditangani oleh backlog. Maka pada keadaan [t1,t1+t2] dirumuskan dalam persamaan differensial (Nita, Shah, 2009) dI 2 (t ) −a ; t1 ≤ t ≤ t1 + t2……………………………… (2.3) = dt 1 + δ (t1 + t2 − t )
20
Dengan batas I2(t1) = 0, solusi persamaan differensialnya adalah I 2 (t ) =
2.5.1
a
δ
( ln(1 + δ (t1 + t2 − t ) − ln(1 + δ t2 ) ) ………………………………....
(2.4)
Jumlah Persediaan per Cycle (Q) Jumlah Persediaan per Cycle adalah jumlah persediaan yang didapat dari
penjumlahan nilai maksimum inventory (IM) dengan nilai maksimum backorder (IB) (Nita, Shah, 2009) Q = IM + IB………………………………………………………… (2.5) IM adalah nilai maksimum inventory di mana persediaan berada level positif seperti yang terlihat pada gambar 2.1. untuk mengetahui seberapa besar nilai tersebut maka didapat solusi persamaan differensial: IM = I1 (0) =
a
θ
(e
θ t1
− 1) …………………………………………….. (2.6)
IB adalah nilai maksimum backorder di mana persediaan berada pada level negative atau di bawah nol yang mengharuskan untuk melakukan pemesanan kembali. untuk mencari seberapa nilai maksimum tersebut maka didapat solusi persamaan differensial: IB = − I 2 (t1 + t2 ) = 2.5.2
a
δ
ln (1 + δ t2 ) ……………………………………. (2.7)
Total Biaya per Cycle Total biaya per cycle terdiri dari komponen biaya sebagai berikut: 1. Biaya Pemesanan (Order Cost) Biaya Pemesanan adalah biaya-biaya yang berubah-ubah sesuai dengan frekuensi pesanan.
21
Dengan solusi persamaan differensial sebagai berikut: OC = A Di mana nilai OC sama dengan Order Cost per Order. 2. Biaya Simpan (Holding Cost) Biaya simpan adalah biaya yang berubah-ubah sesuai dengan besarnya persediaan. Penentuan besarnya carrying cost didasarkan pada “Average Inventory” (persediaan rata-rata), dan biaya ini dinyatakan dalam persentase dari nilai dalam rupiah dari average inventory. Dengan solusi persamaan differensial sebagai berikut: t1
IHC = h ∫ I1 (t )dt 0
= 3.
ha
θ2
(e
θ t1
− 1 − θ t1 )
Backorder Cost per Cycle Backorder Cost per Cycle adalah biaya pemesanan kembali akibat persediaan yang akan mengalami kehabisan stok. Adapun
solusi
yang
differensial: BC = π b
t1 + t2
∫
− I 2 (t ) dt
a
(δ t2 − ln(1 + δ t2 ) )
t1
= πb
δ2
dirumuskan
dengan
persamaan
22
4.
Lost Sales Cost per Cycle Lost Sales Cost per Cycle adalah biaya karena kehilangan penjualan pada setiap siklus persediaan. Dengan solusi persamaan differensial sebagai berikut: LS = π L a
t1 + t2
∫ t1
= πL 5.
a
δ
⎛ ⎞ 1 ⎜1 − ⎟ dt ⎝ 1 + δ (t1 + t2 − t ) ⎠
(δ t2 − ln(1 + δ t2 ) )
Biaya Pembelian (Purchase Cost) Biaya pembelian adalah harga pembelian per unit apabila item dibeli dari pihak luar, atau biaya produksi per unit apabila diproduksi dalam perusahaan. Biaya per unit akan selalu menjadi bagian dari biaya item dalam persediaan. Biaya pembelian terdiri dari dua item yaitu item dari luar dan item dari dalam. Untuk pembelian dari luar, biaya per unit adalah harga beli ditambah biaya pengangkutan. Sedangkan item yang diproduksi dari dalam perusahaan, biaya per unit adalah termasuk biaya tenaga kerja, biaya bahan baku, dan biaya overhead pabrik. Adapun
solusi
yang
dirumuskan
differensial: PC = C x Q a ⎛a ⎞ = C ⎜ ( eθ t1 − 1) + ln (1 + δ t2 ) ⎟ δ ⎝θ ⎠
dengan
persamaan
23
Dari kelima biaya-biaya di atas sehingga didapat perumusan untuk mengetahui total biaya sebagai berikut: K (t1,t2) =
1 [OC + IHC + BC + LS + PC ] ( t1 + t2 )
Langkah-langkah yang harus di lakukan dalam metode deteriorating ini adalah sebagai berikut: 1.
Tentukan nilai awal dari Order Cost per Order (A)
2.
Tentukan nilai awal dari Purchase Cost per Unit (C)
3.
Tentukan nilai awal dari Holding Cost per Unit per Time Unit (h)
4.
Tentukan nilai dari Backorder Cost per Unit Short per Time Unit (πb)
5.
Tentukan nilai dari Cost of Lost Sales per Unit (πL)
6.
Tentukan nilai t1 dan t2
7.
Lakukan perhitungan nilai IM
8.
Lakukan perhitungan nilai IB
9.
Lakukan perhitungan nilai Ordering Cost per Cycle
10. Lakukan perhitungan nilai Holding Cost per cycle 11. Lakukan perhitungan nilai Backordered Cost per cycle 12. Lakukan perhitungan nilai Cost Due Lost Sales per cycle 13. Lakukan perhitungan nilai Purchase Cost per cycle
2.5.3 Contoh Untuk Memperjelas Cara Kerja Metode Deteriorating Berikut ini diberikan contoh untuk memperjelas cara kerja metode ini. Misalkan ada transaksi persediaan seperti pada tabel 2.1 sebagai berikut:
24
A
250
C
8
h
0.50
Πb
12
ΠL
15
a
25
δ
2
Tabel 2.1 contoh persediaan Di mana terjadi penyusutan atau kerusakan sebesar 5%, dengan t1 dan t2 yang lebih besar sama dengan nol. Maka jumlah persediaan yang memungkinkan: IM = I1 (0) =
(e θ a
θ t1
− 1)
= 25/0.05 (e0.05*4.28-1) = 500 (1,24-1) = 120 IB = − I 2 (t1 + t2 ) =
a
δ
ln (1 + δ t2 )
= 25/2 ln(1+2(0.25)) = 12.5 ln(1.5) =5 Maka Q yang dihasilkan dari perhitungan di atas adalah Q = IM + IB = 120 + 5 =
25
Dengan Total Biaya sebagai berikut: OC = A = 250 IHC =
ha
θ
2
(e
θ t1
− 1 − θ t1 )
= 0.5*25/(0.05)2 (e0.05*4.28-1-0.05(4.28)) = 5000 (1.24-1-0.214) = 130 BC = π b
a
δ2
(δ t2 − ln(1 + δ t2 ) )
= 12*(25/22)*(2.025-ln(1+2.0*25)) = 12*6.25*(0.5-0.4) = 7.5 LS = π L
a
δ
(δ t2 − ln(1 + δ t2 ) )
= 15*(25/2)*(2.0.25-ln(1+2(0.25)) = 15*6.25*(0.5-0.4) = 9.375 a ⎛a ⎞ PC = C ⎜ ( eθ t1 − 1) + ln (1 + δ t2 ) ⎟ δ ⎝θ ⎠
= 8 {25/0.05(e0.05*4.28-1) + 25/2 ln(1+2(0.25))} = 8 * 125 = 1000 Maka Total biaya yang diharapkan adalah
26
K (t1,t2) =
1 [OC + IHC + BC + LS + PC ] ( t1 + t2 )
=
1 [250 + 130 + 7.5 + 9.375 + 1000] 4.28 + 0.25
=
1 [1396,875] 4.53
= 308.36 2.6 Rekayasa Piranti Lunak Perangkat lunak menurut Pressman (2005,p53) didefinisikan sebagai berikut: a. Instruksi-instruksi (program komputer) yang jika dijalankan akan memberikan fungsi dan unjuk kerja yang diinginkan. b. Struktur data yang membuat program mampu memanipulasi suatu program. c. 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.
27
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 disiplin manajerial dan teknis yang berkaitan dengan pembuatan dan pemeliharaan produk perangkat lunak secara sistematis, termasuk pengembangan dan modifikasinya, yang dilakukan pada waktu yang tepat dan dengan mempertimbangkan faktor biaya. Rekayasa perangkat lunak adalah suatu pendekatan sistematis, disiplin dan mampu mengukur dalam pengembangan, pengoperasian, dan pemeliharaan perangkat lunak. Menurut Fritz Bauer, Rekayasa perangkat lunak adalah penerapan dan pemanfaatan prinsip-prinsip rekayasa untuk menghasilkan perangkat lunak yang ekonomis yang handal dan bekerja secara efisisen pada mesin-mesin yang nyata. Pada rekayasa perangkat lunak, banyak model yang dikembangkan untuk membantu proses proses pengembangan perangkat lunak. Model-model ini pada
28
umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SLDC) seperti terlihat pada gambar 2.2
Gambar 2.2 An Eight-stage SDLC (sumber: Turban, et. al., 2001, p477 ) SDLC adalah kerangka terstruktur yang terdiri dari beberapa proses yang berurutan diperlukan untuk membangun suatu sistem informasi. Pendekatan Waterfall digunakan untuk menggambarkan SDLC. Pendekatan ini merupakan pendekatan paradigma paling kuno dan paling banyak dipakai dalam pembuatan perangkat lunak yang sudah menjadi pola dasar dalam paradigma-paradigma lainnya. Tahap-tahap SDLC adalah sebagai berikut: 1. System Investigation (Take decision / go or not) Pembelajaran terhadap segala kemungkinan yang dapat terjadi adalah tahap terpenting dalam tahap ini. Dengan pembelajaran yang benar maka suatu
29
perusahaan dapat terhindar dari kesalahan yang dapat meningkatkan jumlah pengeluaran perusahaan. Pembelajaran tersebut menentukan kemungkinan adanya keuntungan dari proyek pengembangan sistem yang diajukan dan menilai proyek tersebut secara teknik, biaya, dan sifat. 2. System Analysis Tahap ini menganalisis masalah yang perlu diselesaikan. Tahap ini mendefinisikan
permasalahan,
mengidentifikasikan
penyebab,
menspesifikasikan solusi, serta mengidentifikasi informasi-informasi yang diperlukan. Tujuan utama dari tahap ini adalah untuk menggabungkan informasi mengenai sistem yang ada dan menentukan kebutuhan sistem yang baru. Beberapa hal yang dihasilkan dari tahap analisis adalah: a. Kelebihan dan kekurangan dari sistem yang telah ada. b. Fungsi-fungsi yang diperlukan oleh sistem yang baru untuk menyelesaikan permasalahan. c. Kebutuhan informasi mengenai pengguna untuk sistem yang baru. 3. System Design Tahap ini menjelaskan bagaimana suatu sistem akan bekerja. Yang dihasilkan oleh desain sistem adalah sebagai berikut: a. Output, Input, dan User Interface dari sistem b. Hardware, software, database, telekomunikasi, personel dan prosedur c. Penjelasan mengenai bagaimana komponen terintegrasi
30
4. Programming Tahap ini mencakup penerjemahan spesifikasi desain ke dalam bahasa komputer. 5. Testing Tahap ini dipergunakan untuk memeriksa apakah pemograman telah menghasilkan hasil yang diinginkan dan diharapkan atas situasi tertentu. Testing didesain untuk mendeteksi adanya error di dalam coding. 6. Implementation Implementation adalah proses perubahan dari penggunaan sistem lama ke sistem yang baru. Ada empat strategi yang dapat digunakan oleh suatu perusahaan dalam menghadapi perubahan adalah sebagai berikut: Parallel conversion: dengan menerapkan dua sistem, yang lama dan yang baru, secara simultan dalam periode waktu tertentu. Direct conversion: sistem yang baru akan langsung diterapkan dan yang lama akan langsung didisfungsikan. Pilot conversion: sistem yang baru akan digunakan dalam satu bagiann dari organisasi. Apabila sistem baru tersebut berhasil maka akan digunakan pada bagian lain dari organisasi. Phased conversion: sistem akan digunakan secara bertahap, per komponen atau modul. Satu persatu modul akan dicoba dan dinilai, bila satu modul berhasil mak modul lain akan digunakan sampai seluruh sistem bekerja dengan baik.
31
7. Operation dan Maintenance Setelah tahap konversi berhasil maka sistem baru akan dioperasikan dalam suatu periode waktu. Ada beberapa tahap dalam Maintenance atau pemeliharaan, diantaranya: Debugging the program: proses yang berlangsung selama sistem berjalan. Terus memperbaharui sistem untuk mengakomodasi perubahan dalam situasi bisnis. Menambah fungsi atau Feature baru ke dalam sistem. Ada banyak model pengembangan perangkat lunak, antara lain The Waterfall
Model,
Joint
Application
Development
(JAD),
Information
Engineering (IE), Rapid Application Development (RAD) termasuk didalamnya Prototyping, Unified Process (UP), Structural Analysis and Design (SAD) dan Framework for the Application of System Thinking (FAST).
2.7 Object Oriented 2.7.1
Object Oriented Analysis and Design (OOAD) Object Oriented Analysis and Design merupakan suatu penggabungan data dan proses ke dalam suatu konstruksi yaitu object. OOAD sendiri mengenalkan object diagram dari suatu sistem beserta interaksi antar object-nya, dimana diagram-diagram tersebut akan didokumentasikan (Whitten, 2002, p97).
32
Object adalah representasi dari suatu entitas, baik dalam dunia nyata maupun konseptual. Sebuah object dapat mempresentasikan suatu hal yang konkret, seperti misalnya mahasiswa, mobil, maupun konsep mengenai transaksi bank dan pemesanan barang. Secara umum, sebuah object adalah sebuah konsep, abstraksi, atau benda dengan batasan yang jelas dan berguna bagi sebuah aplikasi. Setiap object dalam suatu sistem memiliki tiga karakteristik, yaitu state, behavior, dan identity (Whitten, 2002, p247). Object adalah abstraksi dari sesuatu dalam problem domain, merefleksikan kemampuan sistem untuk menjaga informasi, berinteraksi atau keduanya. Object memiliki dua tujuan yaitu memberikan pengertian tentang dunia nyata dan menyediakan dasar praktik bagi implementasi komputer (Bennett, 2002, p64-65). Class adalah deskripsi dari sekumpulan object yang berbagi attributes, operations, methods, relationships, dan semantics. Class merupakan suatu template untuk menciptakan object. Operations adalah suatu service yang diminta dari suatu object akibat adanya behavior yang berpengaruh. Attributes secara umum digunakan untuk nilai data murni tanpa identity, seperti number dan string. Methods adalah implementasi dari suatu operations yang mengkhususkan pada algoritma atau prosedur (Boots et. al., 1999, p42).
33
2.7.2
Konsep dalam OOAD
A Encapsulation Object-object berkomunikasi dengan cara mengirimkan message. Transfer message adalah cara untuk mengisolasi seriap object dari kebutuhan untuk mengetahui detil dari object lainnya. Object memiliki operation yang digunakan untuk menerima message dari object lainnya. Object hanya mengetahui data dan operasi dari masing-masing dan tidak perlu mengetahui bagaimana object lain mengirimkan message tetapi mengetahui bagaimana cara merespon message tersebut. Data dalam sebuah object hanya dapat diakses oleh operation dalam object yang bersangkutan. Encapsulations adalah perlindungan terhadap suatu object dimana representasi dari datanya tersembunyi hanya dapat diakses oleh operation dari object itu sendiri, dan operation dari suatu object hanya dapat dipanggil oleh yang mempunyai signal operation yang valid (Bennett, 2002, p72-73). B Inheritance Inheritance adalah suatu mekanisme untuk mengimplemetasikan generalization dan specialization dalam bahasa pemograman objectoriented. Bila dua class direlasikan dengan mekanisme inheritance, class yang lebih general disebut superclass dan class lainnya yang lebih terspesialisasi disebut dengan subclass. Subclass selalu mewarisi semua karakteristik dari semua superclass dan mempunyai minimal satu
34
karakteristik tersendiri yang tidak didapatkan dari semua superclass tersebut (Bennett, 2002, p74). C Polymorphism Polymorphism adalah kemampuan untuk tampil dalam berbagai bentuk dan mewakili kemampuan dalam mengidentifikasi message yang dikirim dari object pada class-class yang berbeda. Hal ini berarti bahwa dalam mengorganisasikan object tidak perlu harus mengetahui class yang akan menerima message pada berbagai situasi. Kunci dari polymorphism adalah object penerima harus mengetahui bagaimana cara merespon suatu message (Bennett, 2002, p75).
2.8 Unified Modelling Language (UML) UML adalah bahasa grafikal yang standar untuk memodelkan software object oriented (Lethbridge, 2002, p151). Menurut Lethbridge (2002, p152), UML mengandung tipe diagram yang bervariasi, yaitu sebagai berikut: 1. Class Diagrams, yang menjelaskan class dan relasinya. 2. Interaction Diagrams, yang mempunyai dua tipe, sequence diagrams dan collaboration diagrams. Keduanya menggambarkan perilaku sistem dalam menangani bagaimana object berinteraksi satu dengan yang lainnya. 3. State Diagrams dan activity diagrams, yang menggambarkan bagaimana sistem berjalan secara internal.
35
4. Component dan deployment diagrams, yang menggambarkan bagaimana bermacam-macam components dari sistem dibentuk secara logical dan fisikal.
2.8.1 Class Diagram Class Diagram adalah diagram yang menggambarkan data yang ditemukan di dalam software system (Lethbrigde, 2002, p154). Pada class diagram, terdapat symbol-simbol sebagai berikut: 1. Simbol ‘+’ untuk menandakan public. 2. Simbol ‘-’ untuk menandakan private. 3. Simbol ‘#’ untuk menandakan protected. Class1 -attributes1 -attributes2 +operations1(); +operartion2();
Gambar 2.3 Notasi Class (sumber: Lethbridge, 2002, p439)
1. Multiplycity Multiplycity
dinotasikan
pada
masing-masing
ujung
dari
garis
association, yang mengindikasikan berapa banyak instant dari sebuah kelas pada suatu bagian dari asosiasi yang dapat dihubungkan pada instan dari kelas pada sisi lainnya (Lethbridge, 2002, p155).
36 Employee
Office
Gambar 2.4 Notasi Multiplicity pada class (sumber: Lethbridge, 2002, p439) 2. Generalization Generalization adalah class induk atau superclass yang menggambarkan property yang sama dari class anak atau subclass. Kain
Katun
Wool
Sutra
Gambar 2.5 Class diagram dengan hubungan Generalization (sumber: Lethbridge, 2002, p439)
3. Aggregiation Aggregiation adalah class induk (superclass) terdiri dari beberapa class lainnya atau hubungan terdiri dari: Building
Room
Gambar 2.6 Class diagram dengan hubungan Aggregiation (sumber: Lethbridge, 2002, p439)
37
Menurut Lethbridge (2004, p169-170), aggregiation dibagi menjadi dua, yaitu sebagai berikut: a. Agresiasi Dasar (Shared Aggregiation) adalah bentuk agregasi dimana objek “whole” lebih besar atau berisi lebih dari satu objek “part”, dengan kata lain objek “part” adalah bagian dari kelas objek “whole” yang lebih besar. -End5 1
-End6 .
Gambar 2.7 Notasi Agregasi Dasar (sumber: Lethbridge, 2002, p169) b. Agregasi Komposisi (Composite Aggregiation), adalah bentuk agregasi yang kuat, dimana objek “whole” sama sekali bertanggung jawab pada objek “part” dan objek “part” dapat diasosiasikan hanya pada satu objek “whole”. -End3
-End4
1
.
Gambar 2.8 Notasi Agregasi Komposisi (sumber: Lethbridge, 2002, p169) 4. Association Association adalah menggambarkan bagaimana dua kelas berelasi diantara keduanya (Lethbridge, 2002, p155), atau menggambarkan hubungan diantara beberapa kelas (Lethbridge, 2002, p154).
38 Office
Employee
Gambar 2.9 Class diagram dengan hubungan Association (sumber: Lethbridge, 2002, p155)
2.8.2 Use Case Diagram Use Case menunjukkan hubungan interaksi antara aktor dengan use case di dalam suatu sistem (Mathiassen, 2000, p343) yang bertujuan untuk menentukan bagaimana aktor berinteraksi dengan sebuah sistem. Aktor adalah orang atau sistem lain yang berhubungan dengan sistem. Ada tiga simbol yang mewakili komponen sistem seperti terlihat pada gambar di bawah ini.
Gambar 2.10 Notasi Use Case Diagram (Sumber : Mathiassen, 2000, p343) Menurut Schneider dan Winters, ada lima hal yang harus diperhatikan dalam pembuatan diagram use case (Schneider dan Winters, 1997, p26): 1.
Aktor: segala sesuatu yang berhubungan dengan sistem dan melaksanakan use case yang terkait.
39
2.
Precondition: kondisi awal yang harus dimiliki aktor untuk masuk ke dalam sistem untuk terlibat dalam suatu use case.
3.
Postcondition: kondisi akhir atau hasil apa yang akan diterima oleh aktor setelah menjalankan suatu use case.
4.
Flow of Events: kegiatan-kegiatan yang dilakukan pada sebuah proses use case.
5.
Alternative Paths: kegiatan yang memberikan serangkaian kejadian berbeda yang digunakan dalam Flow of Events.
2.8.3
Flowchart Flowchart adalah representasi skematik dari sebuah algoritma atau
sebuah proses yang teratur, menunjukkan langkah – langkah dalam kotak – kotak yang bervariasi dan urutannya dengan dengan menghubungkan kotak – kotak tersebut dengan panah. Flowchart digunakan dalam mendesain atau mendokumentasikan sebuat proses atau program (Wikipedia,2008). Flowchart pertama kali diperkenalkan oleh Frank Gilberth kepada anggota ASME (American Society of Mechanical Engineers) pada tahun 1921 sebagai representasi “Process chart – First Steps in Finding the One Best Way” dan saat ini menjadi alat yang sering digunakan untuk menunjukkan aliran proses dalam suatu algoritma. Sebuah flowchart pada umumnya memiliki simbol – simbol sebagai berikut :
40
1. Start dan end symbols Direpresentasikan dalam bentuk oval, atau persegi panjang dengan ujung yang membulat, biasanyanya mengandung kata “Start” atau “End” atau frase lainnya yang menunjukkan awal proses atau akhir dari proses, seperti “submit enquiry” atau “receive product”. 2. Arrows Menunjukkan apa yang disebut sebagai “flow of control” dalam ilmu komputer. Sebuah arrow dating dari sebuah simbol dan berakhir pada simbol lainnya merepresentasikan bahwa kontrol berpindah pada simbol yang menunjukkan oleh arrow.s 3. Processing steps Direpresentasikan sebagai sebuah persegi panjang. Contoh : “tambahkan 1 pada X”; “ganti bagian yang diidentifikasi”; “simpan data”. 4. Input / Output Direpresentasikan sebagai sebuah jajaran genjang. Contoh : “ambil X dari user”; “tampilkan X” 5. Conditional or decision Direpresentasikan sebagai sebuah belah ketupat / bentuk berlian. Biasanya berisi pertanyaan yang mempunyai jawaban “yes” atau “no”, ataupun “true” atau “false”. Simbol ini unik karena ada dua arrows yang keluar dari simbol ini. Biasanya terdapat pada bagian bawah dan kanan, dan berkorespodensi pada jawaban “yes” atau “no”, ataupun “true” atau ”false”. Tiap arrow harus diberi label di dalamnya. Lebih dari dua arrows dapat digunakan, tetapi
41
secara normal berarti bagian tersebut dapat dipecah lagi secara lebih mendalam.
2.8.4 Pseudocode Pseudocode berasal dari kata pseudo dan code, adalah deskripsi yang informal
dan padat dari sebuah algoritma pemograman komputer yang
menggunakan aturan struktural dari bahasa pemograman, tetapi menghilangkan detail-detail seperti suburtin. Deklarasi variable atau syntax bahasa pemograman tertentu (Anomymous, http://en.wikipedia.org/wiki/pseudocode, 2007). Bahasa pemograman dalam hal ini digabungkan dengan penjelasan detail dalam bahasa natural agar terlihat lebih umum. Pseudocode adalah skeleton program atau dummy code yang masih dapat di-compile tanpa error.
2.8.5
Interaksi Manusia dan Komputer Menurut Shneiderman (2005, p4), Interaksi manusia dan komputer
merupakan disiplin ilmu yang berhubungan dengan, perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya. Pada interaksi manusia dan komputer ditekankan pada pembuatan antarmuka pemakai (user interface), di mana user interface yang dibuat diusahakan sedemikian rupa sehingga seorang user dapat dengan baik dan nyaman menggunakan aplikasi perangkat lunak dibuat.
42
Antar muka pemakai (user interface) adalah bagian sistem komputer yang memungkinkan manusia berinteraksi dengan komputer. Tujuan antar muka pemakai adalah agar sistem komputer dapat digunakan oleh pemakai (user interface), istilah tersebut digunakan untuk menunjuk kepada kemampuan yang dimiliki oleh piranti lunak atau program aplikasi yang mudah dioperasikan dan dapat membantu menyelesaikan suatu persoalan dengan hasil yang sesuai dengan keinginan pengguna, sehingga pengguna merasa betah untuk mengoperasikan program tersebut. A. Program Interaktif Suatu program yang interaktif dan baik harus bersifat user friendly. (Scheiderman, p15) menjelaskan lima kriteria yang harus dipenuhi oleh suatu program yang user friendly, yaitu: 1. Waktu belajar yang tidak lama 2. Kecepatan penyajian informasi yang tepat 3. Tingkat kesalahan pemakaian rendah 4. Penghafalan sesudah melampaui jangka waktu 5. Kepuasan pribadi. B. Pedoman Merancang User Interface Beberapa pedoman yang dianjurkan dalam merancang suatu program, guna mendapatkan suatu program yang user friendly yaitu: 1. Delapan aturan emas (Eight Golden Rules) Untuk merancang sistem interaksi manusia dan komputer yang baik, harus memperhatikan delapan aturan emas dalam perancangan
43
antar muka, seperti: strive for consistency (konsisten dalam merancang tampilan), enable frequent user to use shorcuts (memungkinkan pengguna menggunakan shortcuts secara berkala), offer informative feed back (memberikan umpan balik yang informatif), design dialogs to yield closure (merancang dialog untuk menghasilkan keadaan akhir), offer simple error handling (memberikan penanganan kesalahan), permit easy reversal of actions (mengijinkan pembalikan aksi dengan mudah),
support internal locus of control (mendukung pengguna
menguasai sistem), dan reduce short-term memory load (mengurangi beban jangka pendek pada pengguna). 2. Teori waktu respon Waktu respon dalam sistem komputer menurut (Scheiderman, p352) adalah jumlah detik dari saat pengguna program memulai aktifitas sampai menampilkan hasilnya di layar atau printer. Beberapa pedoman yang disarankan: pemakai lebih menyukai waktu respon yang pendek, waktu respon yang panjang mengganggu, waktu respon yang pendek menyebabkan waktu pengguna berpikir lebih pendek, waktu respon harus sesuai dengan tugasnya, dan pemakai harus diberi tahu mengenai penundaan yang panjang.