BAB 2 LANDASAN TEORI
Salah satu bentuk paling umum dari Count Regression adalah regresi Poisson, bentuk distribusi dari Poisson memang digunakan untuk menghitung suatu kejadian pada jangka waktu tertentu. Peneliti kadang – kadang melakukan analisis regresi untuk data jumlah dengan regresi “klasik” atau biasa. Regresi ini mengasumsikan bahwa variabel dependen merupakan kontinyu dan berada pada - ∞ ke + ∞ , yang merupakan variabel acak mengikuti bentuk distribusi normal. Asumsi ini merupakan asumsi yang salah karena pada data jumlah jelas bahwa variabel dependen merupakan diskrit selain itu dengan menggunakan model regresi biasa ini maka akan memungkinkan nilainya bernilai Negatif, seharusnya nilai dari variabel dependen tidak boleh Negatif karena merupakan jumlah (Rawaswamy et.al.,1994). Maka berdasarkan berbagai keadaan tersebut lebih tepat jika digunakan distribusi yang menyebar dan menghitung jumlah yaitu distribusi Poisson ini. Ada hal yang harus diperhatikan pada model regresi Poisson bahwa variance-nya sama dengan nilai tengah, bentuk ini kadang-kadang tidak sesuai dengan kenyataan. Kadang - kadang variance dari data yang didapatkan lebih besar dari nilai tengah. Situasi ini dinamakan over dispersion. Keberadaan dari over dispersion ini mirip heteroskadisitas pada model regresi linier. Jika model regresi Poisson ini dianggap kurang sesuai untuk memodelkan data karena terjadinya over dispersion, maka terdapat beberapa alternatif untuk menangani masalah ini. Model binomial negatif merupakan yang paling populer, mungkin karena lebih mudah digunakan dari model lainnya. Model regresi ini mempunyai parameter tambahan yang digunakan untuk memperkirakan nilai over dispersion pada variance.
6 2.1
Kerangka Pemikiran Secara umum proses penelitian yang dilakukan speerti yang terlihat pada
Gambar 2.1, adalah sebagai berikut. Pada awal didefinisikan terlebih dahulu bagaimana model Poisson yang akan digunakan berserta penjelasannya. Kemudian berdasarkan model yang dibentuk maka digunakan metode Maximum Likelihood Estimator (MLE) untuk mencari penduga dari parameter yang hilang atau tidak diketahui. Pendefinisian Model regresi
Penduga Maximum Likelihood untuk Poisson
Penduga Maximum Likelihood untuk binomial negatif
Model Poisson didapatkan
Model Binomial negatif didapatkan Evaluasi Model
Ya,Model sudah baik
Lakukan Perbaikan Model Model kurang baik
Tolak Ho : model dapat digunakan
Hipotesis pengujian model dengan over dispersion, uji F dan Likelihood Ratio
Terima Ho : model tidak dapat digunakan
Perbandingan nilai AIC
Mendapatkan model yang terbaik (Poisson/Binomial negatif)
Gambar 2.1 Proses penelitian yang dilakukan
7 Setelah model Poisson dan Binomial negatif didapatkan maka keduanya diuji dengan hipotesis menggunakan uji F, Wald dan uji Likelihood Ratio. Jika hipotesis nol diterima maka model tidak baik dalam mendeskripsikan regresi, sedangkan jika hipotesis nol ditolak maka model sudah dapat digunakan secara baik. pengujian juga untuk mengetahui
Dilakukan
apakah model regresi Poisson mengalami over-
dispersi. Kemudian dilakukan perbandingan dengan melihat nilai Aikaen Information Criterion (AIC) untuk mengetahui model mana yang lebih baik Poisson atau binomial negatif.
2.2
Penentuan variabel Pada regresi-jumlah ini variabel dependennya (Y) merupakan jumlah kejadian
tertentu berdasarkan nilai variabel independen (X). Variabel dependen (Y) yang digunakan pada pembahasan adalah jumlah kejadian kecelakaan. Untuk variabel independen maka tentunya didapatkan dari data laporan PT. Jasa Marga. Data mentah tersebut tidak bisa diolah secara langsung, harus dilihat penyebarannya. Jika kurang baik, maka tidak semua data dapat digunakan. Berdasarkan pengamatan dari data-data yang tersedia maka data-data yang dapat digunakan, yaitu :
•
Data penyebab kecelakaan
: mengantuk, ban pecah, kerusakaan mekanis,
menyalip / memotong jalur. •
Data cuaca : hujan atau cerah
•
Data jenis kelamin : Pria atau Wanita
•
Data umur : nilai umur apakah remaja, dewasa, atau tua
8 •
Data pendidikan : SD, SMP, SMU, PT (Perguruan Tinggi) atau lainnya
•
Data pekerjaan : Pengemudi, Swasta, PNS, lainnya.
•
Data jenis ban : ban biasa atau radial
•
Data warna kaca mobil : jelas atau gelap.
2.3
Pemodelan Dengan Regresi
2.3.1
Pengertian Regresi Menurut Neter et.al.(1996), yang dimaksud regresi dalam statistik yaitu suatu
metode yang menggunakan dan memanfaatkan relasi antar dua atau lebih variabel jadi variabel tersebut dapat diperkirakan oleh variabel lainnya. Contohnya : penjualan produk dapat diprediksi berdasarkan hubungan penjualan produk jumlah pengiklanan, atau tinggi suatu tanaman dapat diprediksi dengan hubungan tinggi tanaman dengan jumlah dan jenis pupuk yang dilakukan.
2.3.2
Regresi Model Poisson Regresi Poisson merupakan suatu bentuk analisis menggunakan regresi untuk
menduga model data seperti jumlah, perubahan nilai (rate) atau organisasi data ke tabel. Regresi Poisson dapat dimodelkan menggunakan kombinasi non- linier β t xi dari variabel – variabel yang diberikan :
(
E [Yi | xi ] = exp β t xi
)
Penggunaan dari fungsi eksponensial untuk memastikan bahwa bagian sebelah kanan selalu positif, seperti yang kita harapkan dari nilai Y yang merupakan penjumlahkan tidak mengkin Negatif. Pemilihan penggunaan fungsi eksponensial atau bisa kita sebut fungsi “link”, hanya untuk kemudahan. Pada prinsipnya dengan cara ini
9 akan selalu menghasilkan nilai positif, tetapi dengan adanya eksponensial ini tidak ada hubungannya dengan model Poisson. Fungsi “link” ini bisa saja diganti dengan yang lainnya misalnya saja dengan logaritma natural (Neter et.al.,1996). Akan tetapi penggunaan eksponensial dipilih karena lebih umum digunakan dan eksponensial dapat menerima bentuk Negatif. Untuk menentukan parameter – parameter dari model maka dapat digunakan Maximum Likelihood. Untuk itu agar dapat menggunakan cara ini, maka perlu dispesifikasikan distribusi untuk Yi dengan variabel xi :
(
E [Yi | xi ] = λi = exp β t xi
)
Dari model ini diestimasi nilai β , yang merupakan parameter yang tidak diketahui. Sebagai catatan bahwa dengan mengestimasi β maka dapat diestimasi juga keseluruhan dari distribusi dari Y terhadap x. Dengan ini maka dapat diestimasi jumlah seperti P(Yi = 0 | xi ), P(Yi | xi ),... Jadi dapat diketahui probabilitas kemungkinan suatu kejadian berdasarkan karakteristik yang diberikan, misal: dengan mengetahui jenis kelamin dan umur sesesorang maka dapat diketahui berapa nilai kemungkinan bahwa orang tersebut akan membeli suatu produk tertentu.
2.3.2.1 Distribusi Poisson
Proses Poisson berhubungan dengan menghitung jumlah suatu kejadian diskrit pada selang waktu kontinyu. Sebagai contoh misalnya: mengobservasi berapa jumlah telepon yang masuk pada jangka waktu tertentu, atau berapa jumlah orang yang mengantri tiap harinya. Berdasarkan Mood et.al.(1998) secara umum bentuk distribusi Poisson adalah sebagai berikut :
10
P (Y = k ) = Dimana :
e − λ (λ ) k!
λ=
rata-rata kejadian pada waktu t
Y=
jumlah kejadian yang diobservasi pada waktu t
Pada distribusi Poisson nilai harapan dan variance mempunyai nilai yang sama yaitu : E [Y ] = λ dan Var [Y ] = λ
Gambar 2.2 Contoh Penyebaran data distribusi Poisson Masih menurut Mood et.al. (1998) distribusi Poisson menyediakan model yang nyata untuk kejadian yang acak. Kejadian acak tersebut dihitung jumlahnya maka merupakan distribusi Poisson. Berdasarkan Gambar 2.2 dapat dilihat bahwa jika jumlah kejadian besar maka akan mendekati distribusi normal, tetapi jika jumlah kejadian kecil maka tidak berbentuk normal lagi, karena itu bentuk Poisson ini cocok untuk memodelkan kasus dengan jumlah kejadian yang jarang terjadi.
11 2.3.3
Regresi Model Negatif Binomial
Pada distribusi binomial negatif variance tidak konstan seperti pada model Poisson, karena itu jika pada data yang dianalisis terdapat variance yang terlalu menyebar lebih baik digunakan model regresi binomial negatif. Pada model regresi Poisson jika E [Yi | x i ] < Var [Yi | x i ] disebut sebagai over dispersion dan jika E [Yi | x i ] > Var[Yi | x i ] under dispersion. Model dari Poisson tidak memperbolehkan perbedaan variance ini. Model yang lebih baik yaitu dengan menggunakan binomial negatif. Perbedaan model regresi Poisson dan binomial negatif adalah dari fungsi probabilitas, karena itu jika regresi binomial negatif digunakan fungsi probabilitasnya menjadi : Γ(θ + y i ) ⎛ λi ⎞ ⎟ ⎜ P(Yi = y i | β , xi ) = Γ( y i + 1)Γ(θ ) ⎜⎝ λi + θ ⎟⎠
yi
⎛ λi ⎞ ⎟⎟ ⎜⎜1 − ⎝ λi + θ ⎠
θ
2.3.3.1 Distribusi Binomial Negatif
Seperti yang sudah dibahas sebelumnya, hampir sama seperti distribusi Poisson , binomial negatif juga merupakan model dimana untuk menghitung jumlah suatu kejadian. Mood et.al. (1998) menyatakan bahwa distribusi binomial negatif merupakan non-negatif karena itu sama seperti Poisson, distribusi binomial negatif dapat digunakan untuk memodelkan kejadian dengan jumlah. Perbedaannya jika Poisson memiliki nilai tengah dan variance adalah sama, sedangkan distribusi binomial negatif mempunyai variance yang lebih besar dari nilai tengah. Berdasarkan Casella dan Berger (2001) maka bentuk distribusi binomial negatif adalah sebagai berikut :
12 ⎛ k + r − 1⎞ r ⎟⎟θ (1 − θ )k P(Y = k ) = ⎜⎜ ⎝ r −1 ⎠ Dimana : Y=
jumlah dari kegagalan sebelum r sukses
θ=
Probabilitas dari sukses pada tiap percobaan
dengan nilai tengah variance sebagai berikut : E (Y ) = r (1 − θ ) / θ = μ dan Var [Y ] = r (1 − θ ) / θ 2 = μΦ
Jika Φ >0 maka merupakan parameter penyebaran lebih besar dari nilai tengah atau lebih kecil. Dan jika Φ =1, maka distribusinya menjadi sama seperti Poisson. Dengan cara seperti ini maka membuat modelnya menjadi lebih fleksibel karena dapat memperbolehkan perbedaan variance dari nilai harapan. Biasanya distribusi binomial negatif digunakan untuk menghitung probabilitas dari jumlah kegagalan yang terjadi sebelum berhasil. Tetapi karena merupakan kebalikan dari binomial maka dapat juga digunakan untuk menghitung jumlah kejadian, karena percobaan akan dilakukan terus menerus sampai berhasil. Perbedaannya dengan Poisson jika waktu pada Poisson dianggap kontinyu sampai tak hingga sedangkan pada negatif binomial sampai berhasil.
2.4
Pencarian Penduga untuk Model
Untuk menemukan penduga parameter dari model regresi Poisson dan binomial negatif ada beberapa cara, pada penelitian ini digunakan MLE karena pendugaannya sangat baik dan tidak bias. Selain cara ini bisa juga dengan beberapa metode lain misalnya menggunakan metode momen, kuadrat terkecil (least square), penduga bayes atau algoritma EM (Casella, G ; Berger, Roger L.,2001). Tetapi penggunaan metode ini
13 kurang disarankan karena belum tentu optimal
dan terjadi kemungkinan bias
(Sakamoto, C.M,1973). Penggunaan Maximum Likelihood merupakan metode yang terbaik dalam banyak kasus.
2.4.1
Pengertian Penduga Maximum Likelihood
Berdasarkan Neter et.al.(1996)
penduga Maximum Likelihood merupakan
metode yang umum untuk menemukan suatu parameter yand diduga. Anggap terdapat populasi dengan fungsi probabilitas P(Yi ,θ ) mempunyai satu parameter maka jika diberikan hasil observasi Y1 ,..., Yn fungsi joint probabilitas dari sampel :
n
g (Y1 ,..., Yn ) = ∏ P(Yi , θ ) i =1
Jika fungsi ini dianggap fungsi dengan parameter theta ( θ ) , dari observasi yang diberikan disebut fungsi Likelihood : n
L(θ ) = ∏ P(Yi ,θ ) i =1
Jika fungsi Likelihood dengan parameter θ ini dapat dimaksimumkan maka akan
didapatkan nilai penduga θ yang optimal. Untuk memaksimumkan fungsi
likelihood ini dapat dilakukan dengan beberapa cara yaitu diferensial biasa, atau diferensial dengan Newton-Raphson (Neter, et.al,1996).
14 2.4.2
Penduga Maximum Likelihood untuk Poisson.
Misalkan data observasi
{(xi , yi ) | 1 ≤ i ≤ n}. Dengan nilai dari yi merupakan
variabel acak dari Yi . Total dari likelihood yang diberikan oleh :
n
L( y1 ,..., y n | β , x1 ,..., x n ) = ∏ P(Yi = y i | β , xi ) i =1
n
LogL( y1 ,..., y n | β , x1 ,..., x n ) = ∑ log P(Yi = y i | β , xi ) i =1
Dimana : P(Yi = y i | β , xi ) =
exp(−λi )λiyi yi !
Dengan λi = exp(β t xi ) . Maka dengan melakukan log pada P dapat sederhanakan persamaan diatas menjadi : n
{
(
)
(
)
}
LogL(β ) = ∑ − exp β t x i + y i β t xi − log( y i !) i =1
Jika penduga maximum Likelihood didefinisikan sebagai : βˆ ML = arg max Log .L(β ) β
Setelah melakukan turunan pertama dapat dicari nilai optimal dan kemudian didapatkan nilai β yang optimal.
Karena
∂Log .L(β ) n = ∑ ( y i − λi )xi = 0 ∂β i =1 persamaan ini non-linier maka tidak dapat diselesaikan dengan
melakukan perhitungan langsung. Implementasi Maximum Likelihood menggunakan bantuan R language.
15 2.4.3
Penduga Maximum Likelihood untuk Binomial Negatif
Untuk pencarian penduga pada binomial negatif, perbedaannya yaitu pada penggunaan distribusi yang digunakan. Maka fungsi distribusinya menjadi seperti berikut : Γ(θ + yi ) ⎛ λi ⎞ ⎜ ⎟ P(Yi = y i | β , xi ) = Γ( y i + 1)Γ(θ ) ⎜⎝ λi + θ ⎟⎠
yi
⎛ λi ⎞ ⎜⎜1 − ⎟⎟ ⎝ λi + θ ⎠
θ
Dengan memasukkan ke dalam fungsi likelihood akan didapatkan : yi −1
LogL(β ,θ ) = ∑ ln(eθ * + j ) − ln( yi − 1) + eθ * ln(e k * ) + ... j =0
yi ln(μ i ) − (eθ * + yi ) ln( μ i + eθ * ) Dari turunan fungsi maximum Likelihood dapat dicari estimasi parameter regresi yaitu β dan juga parameter tambahan yaitu : θ . Parameter θ merupakan derajat nilai over / under dispersion. Nilai limit dari θ = 0 akan membuat binomial negatif menjadi sama seperti Poisson.
2.5
Metode Analisis Data
2.5.1
Pemodelan Regresi
Berdasarkan variabel – variabel independen yang dapat digunakan dari keterangan sebelumnya maka didesain model regresinya. Seperti yang terlihat pada Tabel 2.1 pada model ada beberapa variabel yang dibagi berdasarkan grup masingmasing, yaitu : umur, pendidikan, pekerjaan, dan penyebab kecelakaan sedangkan sisanya merupakan variabel yang berdiri sendiri.
16 Tabel 2.1– Menjelaskan variabel independen Nama Variabel X1 X2.1 X2.2 X2.3 X3 X4.1 X4.2 X4.3 X5.1 X5.2 X5.3 X6.1 X6.2 X6.3 X6.4 X7 X8
Deskripsi Jenis Kelamin Umur 16-30 Umur 31-45 Umur 45>= Situasi Kejadian Malam / Siang SMP/SD SMU Perguruan Tinggi Pengemudi PNS Swasta Memotong Jalan Mengantuk Rusak Mobil , Pecah Ban Warna kaca gelap / tidak gelap Kondisi Cuaca Hujan / Tidak hujan
Tipe Data 1 : Pria , 0 : Wanita 1 : Umur 16-30, 0 : Lainnya 1 : Umur 31-45, 0 : Lainnya 1 : Umur 45>=0, 0 : Lainnya 1 : Malam , 0 : Lainnya 1 : SMP/SD, 0 : Lainnya 1 : SMU, 0 : Lainnya 1 : P.T. 0 : Lainnya 1 : Pengemudi 0 : Lainnya 1 : PNS 0 : Lainnya 1 : Swasta 0 : lainnya 1 : Memotong 0 : Lainnya 1 : Mengantuk , Lainnya 1 : Rusak mobil , 0 : Lainnya 1 : Pecah , 0 : Lainnya 1 : Gelap , 0 : Tidak Gelap 1 : Hujan/Gerimis , 0 : Tidak hujan
Maka berdasarkan variabel – variabel tersebut bisa dituliskan kebentuk persamaan regresi sebagai berikut :
Y = exp( β 0 + β 1 x1 + β 2 x 21 + β 3 x 22 + β 4 x 23 + β 5 x3 + β 6 x 41 + β 7 x 42 + β 8 x 43 + β 9 x51 +
β 10 x52 + β 11 x53 + β12 x61 + β 13 x62 + β 14 x62 + β15 x63 + β 16 x64 + β 17 x7 + β 18 x8 )
Dimana:
Y
: Jumlah Kejadian
β 0 ,..., β 18
: Parameter yang diduga
17 2.5.2
Uji drop-in deviance
Jika model asli tidak baik maka dapat dilakukan perbaikan model dengan menghilangkan variabel yang tidak signifikan. Untuk mengetahui apakah model perbaikan dapat digunakan, maka diperlukan pengujian drop-in deviance menggunakan uji F (Larget B., 2003) :
F = [(RSS2– RSS1) / (DF_RSS2-DF_RSS1)] / [RSS1 / (DF_RSS1)] Dimana :
RSS2 : galat jumlah kuadrat model perbaikan RSS1 : galat jumlah kuadrat model awal DF_RSS2 : derajat bebas galat model perbaikan DF_RSS1 : derajat bebas galat model awal
2.5.3
Hipotesis Pengujian Model
Sesuai dengan penulisan skripsi ini akan dianalisis apakah jumlah kecelakaan berhubungan dengan karakter pengemudi dan situasi ketika kecelakaan terjadi. Maka hipotesis alternatifnya adalah : H01 : Jumlah kecelakaan berhubungan dengan karakteristik pengemudi dan keadaan lingkungan kecelakaan. Untuk menguji variabel satu persatu dapat digunakan uji Wald (Greene, 2002), sedangkan untuk menguji model secara keseluruhan biasanya digunakan uji Goodnessof-fit, tetapi karena nilai tengah dari data kecelakaan kecil maka digunakan Likelihood Ratio sebagai penguji yang lebih baik (Famoye, F, 2003). Menurut Greene (2002) perhitungan uji Wald adalah :
18
Wald = Dimana :
( β i − β o) 2 var(β i )
Wald : nilai Wald dari variabel ke-i, yang menyebar mengikuti distribusi X 2 .
β i : parameter ke-i yang diuji.
βo : nilai dari uji hipotesis untuk parameter β i var(β i ) : variance parameter ke-i yang diuji. Pada uji Wald ini digunakan hipotesis βo = 0 sehingga hipotesis alternatifnya adalah asebagai berikut : H11 : β i ≠ 0 atau variabel ke-i mempengaruhi jumlah kejadian kecelakaan. Selain mnggunakan Wald untuk mengujian juga dapat digunakan Uji Likelihood Ratio. Pada Uji Likelihood Ratio ini dilakukan perbandingan nilai likelihood model
keseluruhan dengan nilai likelihood model variabel slope-nya (Reduced Model) saja (Neter et.al,1996, p588-p589). Jika likelihood dari model keseluruhan adalah : L(θ )F = L(b0 , b1 ,...,b k −1 )
Sedangkan untuk model variabel slope-nya (Reduced Model) adalah L(θ )R = L(b0 , b1 ,...,b l −1 )
Setelah memaksimumkan kedua fungsi likelihood diatas, maka akan didapatkan nilai likelihood-nya. Uji Likelihood Ratio menggunakan X 2 , yang dapat dituliskan sebagai berikut (Neter et.al, 1996) :
⎡ L (θ )R G 2 = −2 Ln ⎢ ⎣ L(θ )F Dimana :
G2:
⎤ ⎥ = −2( Ln.L (θ ) R − Ln.L (θ )F ⎦
bervariasi dengan K-1 derajat bebas, K merupakan jumlah
19 parameter yang dihapus dari model. Jika parameter hanya satu, maka K = 1.
2.5.4
Hipotesis Pengujian Over dispersion
Pada
model Poisson terdapat masalah over dispersion karena itu
untuk
mengetahui apakah terdapat over dispersion, dapat dilakukan pengujian juga dengan menggunakan uji likelihood ratio. Bentuk hipotesis dari uji ini adalah :
H21 : Model regresi Poisson mempunyai over dispersion yang disignifikan.
Perbedaan dari uji sebelumnya yang diperbandingkan adalah Log-Likelihood model regresi Poisson dengan Log-Likelihood model regresi binomial negatif. Berdasarkan Kagoraoka (2005, p9), nilai dari likelihood ratio adalah :
⎡ L(θ ) Poisson ⎤ X 2 = −2 Ln ⎢ ⎥ = −2( Ln.L(θ )Poisson − Ln.L(θ ) Negbin ⎣⎢ L(θ ) NegBin ⎦⎥ Dimana :
2.5.5
X 2:
bervariasi dengan 1 derajat bebas..
Kekuatan Korelasi pada Regresi (R2)
Untuk mengetahui kuat atau tidaknya suatu model maka perlu diketahui nilai pengaruh antar variabel X dan Y. Nilai ini disebut korelasi. Berdasarkan Neter et.al. (1996) nilai korelasi ( R 2 ) adalah derajat kekuatan hubungan antara X dan Y. Nilai R 2 berada pada rentang 0 s.d. 1, jika makin mendekati 0 maka kekuatan hubungan makin
20 lemah dan jika makin mendekati 1 kekuatan hubungan makin kuat. Nilai R 2 dirumuskan sebagai berikut (Luc Anselin, 2004): N
R2 =
1 − ∑ ( y i − yˆ i ) i =1 N
∑(y i =1
2.5.6
2
_
i
− y) 2
Akaike Information Criterion (AIC)
Untuk membandingkan model mana yang lebih baik, selain melihat dari nilai R 2 , dapat juga digunakan nilai perhitungan Akaike Information Criterion Nilai AIC
yang terkecil merupakan model yang lebih baik (Luc Anseling, 2004). Nilai dari AIC ini dapat diambil dari nilai likelihood, sebagai berikut : AIC = 2.L(θ ) + 2 K 2.6
Rekayasa Piranti Lunak
2.6.1
Pengertian dan Tujuan
Piranti lunak atau software mempunyai 3 pengertian menurut Pressman (2001, p6), yaitu : a. Software adalah instruksi-instruksi dalam program komputer yang ketika dijalankan akan memberi fungsi dan kerja yang diinginkan. b. Struktur data yang memungkinkan program mampu memanipulasi suatu informasi. c. Dokumen-dokumen yang menjelaskan operasi dan pemakaian suatu program. Ada beberapa karakteristik yang dimiliki oleh piranti lunak antara lain sebagai berikut :
21 a. piranti lunak dikembangkan dan direkayasa, bukan dirakit seperti pada piranti keras. b. piranti lunak tidak dapat rusak. c. Walaupun industri mengarah pada pembuatan dengan penggabungan komponen tapi kebanyakkan software dibuat menurut pesanan. Menurut Pressman (2001, p20), pengertian rekayasa piranti lunak adalah penetapan dan penggunaan prinsip-prinsip perancangan untuk mendapatkan piranti lunak yang ekonomis, handal dan bekerja secara efisien pada mesin yang sesungguhnya. Sedangkan menurut Timothy dan Robert (2002, p5), rekayasa piranti lunak adalah suatu proses untuk memecahkan masalah pelanggan dengan pengembangan yang sistematik dan evolusi yang besar dari sistem software yang berkualitas tinggi dengan biaya, waktu dan faktor lainnya.
2.6.2
Produk
Desain dan pembangunan software engineering pada akhinya akan menghasilkan program komputer. Program komputer dapat berupa program yang dijalankan pada ukuran dan arsitektur komputer apapun termasuk dokumen dalam bentuk hardcopy dan bentuk virtualnya, serta data yang merupakan kombinasi angka dan teks yang merepresentasikan gambar, video, dan audio (Pressman, 2001). 2.6.3
Proses
Ada tiga elemen yang mampu untuk mengontrol proses pengembangan piranti lunak (Pressman, 2001), yaitu : a. Metode
22 Menyediakan cara-cara teknis untuk membangun piranti lunak. Pada metode-metode ini, hal-hal yang perlu diperhatikan oleh pekerja meliputi : •
Perancangan proyek
•
Analisis sistem dan pengusulan piranti lunak
•
Desain dan struktur data, arsitektur dan prosedur algoritma
•
Pengkodean
•
Pengujian
•
Pemeliharaan
Metode ini mengutamakan orientasi bahasa yang spesial atau notasi grafik dan seperangkat kriteria untuk kualitas piranti lunak. b. Alat Bantu Alat Bantu rekayasa piranti lunak menyediakan pendukung otomatisasi atau semi otomatisasi untuk proses dan metode. Ketika alat bantu diintegrasikan maka informasi yang dibuat oleh satu alat bantu akan dapat digunakan oleh lainnya, sistem yang mendukung pengembangan software ini atau disebut Computer-Aided
Software
Engineering
(CASE)
pun
dibuat.
CASE
menggabungkan piranti lunak, piranti keras, dan database. c. Prosedur Merupakan penggabungan metode dan alat bantu dan juga termasuk didalamnya rasionalitas dan pengembangan yang memadai didalam piranti lunak komputer. Prosedur didefinisikan sebagai urutan didalam metode yang akan digunakan. Prosedur juga sebagai produk seperti dokumen, laporan, dan formulir yang dibutuhkan. Selain itu prosedur sebagai pengendali untuk membantu
23 kualitas dan perubahan koordinasi. Dan prosedur juga sebagai kerangka acuan untuk memungkinkan manager memperkirakan kemajuan. 2.6.4
Pemodelan
Model waterfall atau sekuensial sering disebut juga sebagai classic life cycle. Model ini merupakan pola dasar dari model-model lainnya. Model ini terdiri dari beberapa tahapan, yakni (Pressman, 2001, p28) : a. Perancangan dan estimasi proyek Piranti lunak merupakan bagian dari sistem yang lebih besar, jadi pekerjaan dimulai dengan membuat semua kebutuhan untuk setiap elemen dalam sistem dan kemudian mengalokasikan beberapa pokok dari kebutuhan ini kedalam piranti lunak. Pandangan sistem ini penting karena piranti lunak harus berinteraksi dengan elemen lain seperti piranti keras, manusia dan basis data. Perencanaan dan estimasi proyek meliputi pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil desain tingkat atas dan analisis. b. Analisis kebutuhan sistem dan software Proses pengumpulan kebutuhan difokuskan pada piranti lunak untuk mengerti bagaimana program seharusnya dibuat, seorang analisis harus mengerti ruang lingkup informasi untuk piranti lunak dan juga fungsi-fungsi yang dibutuhkan, kemampuan dan tatap muka pengguna. Kebutuhan baik untuk sistem dan piranti lunak, didokumentasikan dan dibahas bersama pengguna. c. Perancangan Desain piranti lunak merupakan proses dengan banyak langkah yang memfokuskan pada empat atribut dasar program yakni : struktur data, arsitektur piranti lunak, detail prosedur, dan karakteristik antar muka. Proses desain
24 menterjemahkan kebutuhan kedalam perwakilan piranti lunak yang dapat dinilai kualitasnya sebelum pembuatan program dimulai. Seperti halnya kebutuhan, desain didokumentasikan dan menjadi bagian konfigurasi piranti lunak. d. Pengkodean Perancangan harus diubah menjadi bentuk yang dapat dibaca oleh mesin. Tahap pembuatan program melakukan tugas ini. Jika dilakukan secara mendetail maka pembuatan program dapat diselesaikan dengan baik. e. Pengujian Sesudah program selesai dibuat maka baru dapat dilakukan pengujian program. Tahap pengujian ini menitikberatkan pada logika program, memastikan bahwa semua baris dalam program sudah diuji dan tidak ada kesalahan. f. Pemeliharaan Piranti lunak akan mengalami perubahan dan perbaikan setelah digunakan oleh pengguna. Perubahan dapat terjadi karena kesalahan program, adaptasi program untuk menyesuaikan dengan kebutuhan baru atau karena pengguna menginginkan tambahan fungsi atau kemampuan baru.
2.7
Alat Bantu Perancangan
2.7.1
State Transititon Diagram (STD)
Menurut Whitten, et.al. (2002) State Transition Diagram (STD) adalah representasi grafis dari state mesin terbatas dimana setiap node merepresentasikan status, dan setiap garis merepresentasikan perubahan status.
25 Sedangkan menurut Pressman (2001, p227), STD adalah spesifikasi sekuensial dari sifat suatu sistem. STD mengidentifikasikan bagaimana sistem bereaksi terhadap kejadian eksternal. Didalam STD terdapat notasi-notasi: 1. Aktif Kontrol terhadap lingkungan eksternal dilakukan secara aktif. Selain menerima data, sistem juga memberi reaksi terhadap aksi yang diterimanya. •
State
State adalah kumpulan keadaan atau atribut yang memberi perincian suatu objek pada interval waktu tertentu. Contoh: sistem menunggu input user. Gambar 2.3 diagram State
•
Transition State
Simbol yang menyatakan perubahan dari suatu state ke state yang lainnya. Gambar 2.4 Diagram Transition State •
Condition
Kejadian pada lingkungan eksternal yang dapat dideteksi oleh sistem. Contoh: sinyal input, enterupsi atau data. •
Action
Proses yang dikerjakan oleh sistem bila terjadi perubahan state. Contoh aksi: tampilan pesan sewaktu user login. 2. Pasif
26 Sistem tidak melakukan kontrol terhadap lingkungan, melainkan lebih ke menerima data saja. Contoh STD sederhana: State X
Gambar 2.5 STD Sederhana
State Y
2.7.2
Konsep Pemrograman Berorientasi Objek (PBO)
2.7.2.1 Pengertian Kelas
Menurut Pressman (2001), kelas adalah konsep Pemrograman Berorientasi Objek (PBO) yang mengenkapsulasi data dan abstraksi prosedural yang diperlukan untuk menggambarkan isi serta tingkah laku didunia nyata. Sedangkan Whitten, et.al. (2002) mengartikannya sebagai satu set objek yang memiliki atribut dan kemampuan yang sama. Dengan kata lain atribut / sifat dan metode / kemampuan digabungkan ke suatu bentuk entitas yang terstruktur. Tujuan pembuatan kelas ini tentunya untuk mempermudah pengembangan system. 2.7.2.2 Komponen -Komponen Kelas
Secara umum kelas mempunyai dua komponen utama : 1 Atribut Tiap kelas mempunyai atribut unuk menggambarkan sifat dari entitas objeknya..Berdasarkan Pressman (2001) atribut diartikan sebagai entitas kehidupan nyata sering digambarkan dengan kata-kata yang mengindikasikan keadaan stabil. Misalnya manusia mempunyai atribut mata , mulut , tangan , kaki.
27 2 Metode Tiap kelas juga memerlukan metode untuk memproses dan melakukan perhitungan pada data ataupun sekedar memanggil status. Hal ini biasanya diketahui sebagai kemampuan dari objek tersebut. Menurut Whitten,. et.al.(2002) metode adalah suatu kumpulan dari sesuatu yang dapat dilakukan oleh objek terkait dngan fungsi-fungsi yan bertindak pada data objek. Dengan adanya metode maka dapat dilakukan perubahan pada objek. Contohnya mobil dapat melakukan perubahan kecepatan dengan menjalankan metodenya yaitu gas.
2.7.2.3 Enkapsulasi
Pada konsep PBO enkapsulasi merupakan hal yang utama. Dengan enkapsulasi atribut dan metode akan lebih aman dan terstruktur. Secara umum enkapsulasi adalah pengemasan entitas atau item ke dalam suatu unit (Whitten, et.al, 2002). Pada konsep objek maka yang dienkapsulasi adalah atribut dan metode. Beberapa tujuan penting dari hal ini, sebagai berikut (Whitten, et.al.,2002 ; Pressman, 2001). : 1. Untuk memperjelas konsep pemrograman menjadi terstruktur sehingga pembuatan program menjadi lebih baik dan teratur. 2. Menyembunyikan detail data (hidden information) sehingga data diakses hanya melalui metode yang bersangkutan. Dengan detail data yang tersembunyi maka data dapat diakses dengan lebih aman dan tidak dapat dimanipulasi dengan cara yang tidak benar. 3. Penggunaan ulang kelas pada aplikasi yang berbeda (reusable). Dengan membuat kelas secara baik dan tergeneralisasi maka kelas tersebut dapat
28 digunakan kembali. Hal ini mempersingkat waktu pengembangan sistem dengan menggunakan kelas-kelas yang telah tersedia. Representasi objek berdasarkan hal diatas dapat digambarkan sebagai berikut : metode
Nama Kelas
atribut atribut
Operasi
Objek
Gambar 2.6 Enkapsulasi pada Konsep Berorientasi Objek
2.7.3
File / Berkas
Berdasarkan Whitten et.al. (2002, p470) file merupakan kumpulan data-data yang sejenis. Konsep file pada mulanya digunakan untuk menggantikan sistem berkas kertas yang secara manual (Connoly, et.al. 2002, p7). Dengan menyimpan data pada komputer maka banyak penghematan dapat dilakukan. Keuntungan menggunakan file adalah sebagai berikut : 1. Kecepatan akses yang baik Penulisan data ke file tidak memerlukan sistem yang kompleks. File dapat ditulis dan dibaca tanpa kesulitan. 2. Mudah dipindahkan
29 Dengan menyimpan data dalam bentuk yang lebih ringkas maka fleksibilitasnya akan menjadi tinggi. Data akan mudah dipindahkan dari satu tempat ke tempat yang lain.
2.7.4
Object Serializable
Pada aplikasi dengan konsep objek maka penulisan data ke-file dapat dibantu dengan menggunakan konsep Object Serializable. Menurut Spell, B. (2002, p606) Object Seriazeable merupakan suatu cara untuk mengkonversi bentuk objek menjadi struktur data byte yang dapat ditulis. Object Serializable sangat berguna karena dapat menyimpan struktur dan isi nilai objek dan dapat diambil kembali walaupun dari aplikasi yang berbeda. Agar suatu objek dapat menjadi ditulis dan dibaca seperti ini, maka objek perlu diimplementasi menggunakan attribute Serializable, seperti pada Gambar 2.7 dibawah ini : Implement attribute Object
Attribute :
[Serializable]
Gambar 2.7 Objek dengan implementasi attribut Serializable
2.7.5
Interaksi Manusia Dan Komputer
Interaksi manusia dan komputer adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, serta implementasi sistem komputer yang interaktif untuk digunakan oleh manusia. Interaksi manusia dan komputer berkaitan dengan user interface (antarmuka pemakai) yang digunakan oleh pengguna untuk berkomunikasi dan berinteraksi dengan komputer (Shneiderman, 1998, p 4-8).
30
2.7.5.1 Prinsip – Prinsip Perancangan Antarmuka dengan Metode Heuristic
Metode heuristic merupakan cara yang cepat, mudah dan murah dalam mengevaluasi antarmuka. Menurut Jacob Neilsen (1994) dan Elane, E., Finney ,A. (1999, p249) heuristic
merupakan suatu cara yang digunakan untuk menemukan
permasalahan kegunaan (usability) pada suatu sistem. Metode ini dilakukan dengan menggunakan sekelompok kecil yang terdiri dari beberapa orang dan menguji sistem tersebut dengan berprinsip pada pedoman heuristic berikut (Weiss, E., 1993) : 1. Visibility of System Status Pada aplikasi yang sedang berjalan pemakai harus mengetahui apa yang terjadi. Sistem harus memberi informasi pada jangka waktu yang optimal. 2. Match Between System and the Real World Sistem harus menyesuaikan dengan lingkungan pemakai. Penggunaan bahasa, simbol, kata-kata harus diperhatikan dengan tepat sehingga terkesan alami. 3. User Control and Freedom Pemakai diharapkan dapat menggunakan aplikasi dengan mudah dan tidak kaku. 4. Consistency and Standards Pemakai harus tidak disulitkan dengan standar yang berbeda. Setiap kata-kata, situasi, dan bahasa yang digunakan jelas maknanya sehingga tidak ambigu. 5. Help Users Recognize, Diagnose, and Recover From Errors Pesan error harus ditampilkan dengan bahasa yang jelas bukan dengan kode. 6. Error Prevention Sistem harus bisa mencegah error sebelum terjadi. Dengan ini diharapkan meminimumkan pesan error yang muncul pada layar.
31 7. Recognition Rather Than Recall Pemakai dapat mengenali penggunaan aksi dan opsi yang tersedia dengan cepat. Instruksi atau bantuan penggunaan aplikasi harus dapat diakses dengan mudah. 8. Flexibility and Minimalist Design Pada aplikasi disediakan metode aksi yang berbeda. Aplikasi dapat digunakan oleh pemakai awal ataupun pemakai yang sudah berpengalaman. 9. Aesthetic and Minimalist Design Pada antarmuka dialog seharusnya tidak terdapat informasi atau keterangan yang tidak dibutuhkan. Penambahan informasi akan mengurangi kemampuan pengenalan antarmuka untuk pemakai. 10. Help and Documentation Walaupun aplikasi dapar digunakan tanpa bantuan. Dokumentasi bantuan pada aplikasi akan sangat diperlukan agar pemakai dapat fokus mencari hal-hal yang diperlukan. 11. Skill Pada sistem aplikasi yang berjalan seharusnya dapat disesuaikan kemampuan pemakai dan pengetahuannnya. 12. Pleasurable and Respectful Interaction with the User Aplikasi harus dapat meningkatkan kualitas pekerjaan pemakai. Desain aplikasi harus mencakup desain tampilan dan fungsional yang baik.
32 2.7.5.2 Prinsip – Prinsip Perancangan Antarmuka Penginputan Data
Aplikasi komputer yang
dapat melakukan tugas memasukkan data harus
memiliki kemudahan dan fleksibilitas yang tinggi. Tujuannya agar petugas yang melakukan tugas memasukkan data dapat dengan cepat
melakukannya tanpa
menghabiskan waktu, selain itu perancangan desain yang baik dapat mengurangi tingkat kestresan dan kesalahan. Berdasarkan Smith dan Mosier (1986) ada beberapa hal yang penting dalam perancangan untuk entry data, yaitu : 1. Consistency of data-entry transactions Cara untuk melakukan penginputan data harus konsisten pada semua kondisi. Penggunaan simbol-simbol untuk keterangan harus identik satu sama lain. 2. Minimal input actions by user Jumlah aksi input yang minim merupakan kunci untuk meningkatkan produktivitas operator. Mempermudah metode penginputan data seperti: menyediakan tombol shortcut, pemilihan dengan mouse merupakan cara yang sangat baik. Selain itu dihindarkan juga penginputan data yang sama berkali-kali, karena akan menyita waktu dan dapat menyebabkan kesalahan yang lebih besar. 3. Minimal Memory Load on users Ketika melakukan proses penginputan data pemakai tidak harus mengingat kode atau perintah tertentu yang menyulitkan. 4. Compability of data entry with data display Format tampilan penginputan data harus sesuai atau mendekati dengan format tampilan data. 5. Flexibility for user control of data entry
33 Pemakai harus dapat memasukkan data dengan urutan yang dapat mereka kontrol. Sehingga penginputan data tidak terlalu kaku karena mengikuti aturan tertentu.
2.7.5.3 Prinsip – Prinsip Perancangan Antarmuka Data
Perancangan tampilan data merupakan hal yang vital bagi pemakai. Dengan perancangan antarmuka data yang baik maka pemakai dapat dengan memudah mamahami informasi yang dibutuhkan dengan cepat. Smith dan Mosier (1986) memberikan beberapa poin penting untuk merancang layar tampilan data, seperti berikut: 1. Consistency of data display Pada pembuatan desain antarmuka ada hal-hal harus diperhatikan dengan standarisasi seperti: format, warna, huruf, singkatan dan istilah sehingga tersusun dengan baik dan tidak membingungkan. 2. Efficient Information assimilation by the user Format tampilan data harus sudah dikenal oleh pemakai. Format harus disusun sedemikian rupa sehingga memudahkan untuk dilihat dan dibaca. Bentuk format desain seperti kolom, rata kiri, spasi, unit nilai dan angka diperhatikan dengan baik. 3. Minimal Memory load on user Pemakai tidak harus mengingat suatu informasi dari layar window untuk digunakan pada layar window lainnya. Tugas-tugas dan fungsi-fungsi harus dilakukan dengan langkah yang minimal.
34
4. Compability of data display with data entry Format layar tampilan data harus terhubung dengan layar penginputan data. Misalnya untuk melakukan pengeditan data dapat dilakukan dengan mudah dari layer data display. 5. Flexibility for user control of data display Pemakai harus dapat mengatur bagaimana mengatur hasil tampilan data. Misalnya: pemakai dapat langsung melakukan sortir pada layar tampilan data.