Rabu, 14 Juli 2010

Tugas 7 (Pengujian Perangkat Lunak)

PENGUJIAN PERANGKAT LUNAK

Pengujian perangkat lunak (Software Testing) adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean.

Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas.

Meningkatnya visibilitas (kemampuan) perangkat lunak sebagai suatu elemen sistem dan “biaya” yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya perencanaan yang baik melalui pengujian yang teliti. Pada dasarnya, pengujian merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat dianggap sebagai hal yang merusak daripada membangun.

Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah:
- Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan.
- Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya.
- Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya.

Sasaran itu berlawanan dengan pandangan yang biasanya dipegang yang menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada kesalahan yang ditemukan. Data yang dikumpulkan pada saat pengujian dilakukan memberikan indikasi yang baik mengenai reliabilitas perangkat lunak dan beberapa menunjukkan kualitas perangkat lunak secara keseluruhan, tetapi ada satu hal yang tidak dapat dilakukan oleh pengujian, yaitu pengujian tidak dapat memperlihatkan tidak adanya cacat, pengujian hanya dapat memperlihatkan bahwa ada kesalahan perangkat lunak.

Sebelum mengaplikasikan metode untuk mendesain test case yang efektif, perekayasa perangkat lunak harus memahami prinsip dasar yang menuntun pengujian perangkat lunak, yaitu:
Ø semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan, maksudnya mengungkap kesalahan dari cacat yang menyebabkan program gagal.
Ø Pengujian harus direncanakan lama sebelum pengujian itu mulai, maksudnya semua pengujian dapat direncanakan dan dirancang sebelum semua kode dijalankan.
Ø Prinsip Pareto berlaku untuk pengujian perangkat lunak, maksudnya dari 80% kesalahan yang ditemukan selama pengujian dapat ditelusuri sampai 20% dari semua modul program.
Ø Pengujian harus mulai “dari yang kecil” dan berkembang ke pengujian “yang besar”, Selagi pengujian berlangsung maju, pengujian mengubah focus dalam usaha menemukan kesalahan pada cluster modul yang terintegrasi dan akhirnya pada sistem.
Ø Pengujian yang mendalam tidak mungkin karena tidak mungkin mengeksekusi setiap kombinasi jalur skema pengujian dikarenakan jumlah jalur permutasi untuk program menengah pun sangat besar.
Ø Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independent.

Dalam lingkungan yang ideal, perekayasa perangkat lunak mendesain suatu program computer, sebuah sistem atau produk dengan testabilitas dalam pikirannya. Hal ini memungkinkan individu yang berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah. Testabilitas adalah seberapa mudah sebuah program computer dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi lebih mudah. Procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.

Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut, digunakan 4 kategori yang berbeda dari tehnik desain test case: Pengujian White-Box, Pengujian Black-Box, Integrasi Bottom-Up dan Integrasi Top-Down.

Pengujian White-Box berfokus pada struktur control program. Test case dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan bahwa semua kondisi logis telah diuji. Pengujian basic path, tehnik pengujian white-box, menggunakan grafik (matriks grafiks) untuk melakukan serangkaian pengujian yang independent secara linear yang akan memastikan cakupan.

Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan tehnik white-box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi. Pengujian black-box didesain untuk mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program.

Pengujian Black-Box berfokus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan menpartisi domain input dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam.

Metode pengujian graph-based mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa kemampuan program untuk menangani data pada batas yang dapat diterima.

Metode pengujian yang terspesialisasi meliputi sejumlah luas kemampuan perangkat lunak dan area aplikasi. GUI, arsitektur client/ server, dokumentasi dan fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan tehnik khusus untuk pengujian perangkat lunak.

Integrasi Top-Down adalah pendekatan incremental dengan menggerakkan ke bawah melalui hirarki control, dimulai dengan control utama. Strategi intergrasi top-down memeriksa control mayor atau keputusan pada saat awal di dalam proses pengujian. Pada struktur program yang difaktorkan dengan baik, penarikan keputusan terjadi pada tingkat hirarki yang lebih tinggi sehingga terjadi lebih dulu.

Strategi top-down kelihatannya tidak sangat rumit, tetapi di dalam praktenya banyak menimbulkan masalah logistic. Biasanya masalah ini terjadi jika dibutuhkan pemrosesan di dalam hirarki pada tingkat rendah untuk menguji secara memadai tingkat yang lebih tinggi.

Integrasi Bottom-Up memulai konstruksi dan pengujian dengan modul atomic (modul pada tingkat paling rendah pada struktur program). Karena modul diintegrasikan dari bawah ke atas, maka pemrosesan yang diperlukan untuk modul subordinate ke suatu tuingkat yang diberikan akan selalu tersedia dan kebutuhan akan stub dapat dieliminasi. Strategi integrasi bottom-up dapat diimplementasi dengan langkah-langkah:
- modul tingkat rendah digabung ke dalam cluster (build) yang melakukan subfungsi perangkat lunak spesifik.
- Driver (program control untuk pengujian) ditulis untuk mengkoordinasi input dan output test case
- cluster diuji
driver diganti dan cluster digabungkan dengan menggerakkannya ke atas di dalam struktur program.

Selain 4 kategori pengujian diatas, masih ada jenis pengujian lain yang bisa digunakan, yaitu : Pengujian Graph Metrik, Pengujian Loop, Structural Testing, Path testing, Pengujian Integrasi, Pengujian Interface, Pengujian Validasi dan Pengujian Stress.

Pengujian Graph Metrik merupakan perangkat lunak bantu yang dikembangkan untuk membantu uji coba basis path atau struktur data. Graph metrik adalah matrik empat persegi yang mempunyai ukuran (sejumlah baris dan kolom) yang sama dengan jumlah mode pada flowgraph. Masing-masing baris dan kolom mempunyai hubungan dengan node yang telah ditentukan dan pemasukan data matrik berhubungan dengan hubungan (edge) antar mode.

Pengujian Loop merupakan kendala yang sering timbul untuk menerapkan algoritma dengan cepat. Uji coba loop merupakan tehnik uji coba white box yang fokusnya pada validitas dari loop.

Ada empat kelas dari loop antara lain :

1. Simple Loop, Uji coba dapat dilakukan dengan mudah, dimana n jumlah maksimum yang diperbolehkan untuk dilewati loop. Aturan uji coba sebagai berikut :
 Lewati loop secara keseluruhan.
 Hanya satu yang dapat melalui loop.
 M dapat melalui loop dimana m < n.

2. Nested loop, Pada uji coba nested loop dapat digunakan pendekatan simple loop. Adapun petunjuk uji coba pada nested loop sebagai berikut :
 Mulailah dari loop yang paling dalam, set seluruh loop yang lain dengan nilai yang terkecil.
 Kerjakan dengan prinsip simple loop untuk loop yang paling dalam sementara tahan loop yang diluar pada parameter yang terkecil atau nilai counter yang terkecil.
 Kemudian lanjutkan untuk loop yang diatasnya.
 Teruskan sampai semua loop selesai diujikan.

3. Connected Loop, Pada uji coba connected loop dapat digunakan pendekatan simple loop.

4. Unstructured Loop, Jika memungkinkan untuk loop ini dirancang kembali dengan menggunakan struktur program.

Pengujian Struktural (Structural Testing), merupakan pendekatan terhadap pengujian yang diturunkan dari pengetahuan struktur dan implementasi perangkat lunak. Pendekatan ini kadang-kadang disebut pengujian “Kotak Putih” (“White Box” Testing), Pengujian “Kotak Kaca”, atau “Pengujian Kotak Jernih” untuk membedakannya dari Pengujian Kotak Hitam.

Pengujian struktural biasanya diterapkan untuk unit program yang relatif kecil seperti subroutine atau operasi yang terkait dengan suatu objek. Sebagaimana ditunjukkan oleh namanya, penguji dapat menganalisa kode dan menggunakan pengetahuan mengenai struktur komponen untuk menurunkan data uji. Analisa kode dapat digunakan untuk menemukan berapa kasus uji yang dibutuhkan untuk menjamin bahwa semua statement pada program atau komponen dieksekusi paling tidak satu kali pada proses pengujian.

Pengujian Jalur (Path Testing) adalah strategi pengujian struktural yang bertujuan untuk melatih setiap jalur eksekusi independen melalui komponen atau program. Jika setiap jalur independen dieksekusi, maka semua statement pada komponen harus dieksekusi paling tidak satu kali. Lebih jauh lagi, semua statement kondisional diuji untuk kasus true dan false.

Teknik pengujian jalur dengan demikian paling banyak dipakai pada tahap pengujian unit dan pengujian modul pada proses pengujian jalur tertentu mungkin masih ada bahkan ketika semua statement program dieksekusi paling tidak satu kali.

Titik awal pengujian jalur merupakan grafik alir (flow graph) program, ini merupakan model rangka semua jalur melalui program. Grafik alir terdiri dari node mewakili keputusan dan edge yang menunjukkan aliran kontrol.

Kesulitan utama yang muncul pada Pengujian Integrasi adalah lokalisasi error yang ditemukan pada saat proses tersebut. Terdapat interaksi yang rumit antara komponen sistim dan ketika ditemukan output yang menyimpang, mungkin sulit untuk menemukan sumber error tersebut. Untuk memudahkan lokalisasi error, anda harus selalu menggunakan pendekatan inkremental terhadap integrasi dan pengujian sistim. Pada awalnya, anda harus mengintegrasi konfigurasi sistim minimal dan menguji sistim ini, kemudian menambahkan komponen pada konfigurasi minimal ini serta mengujinya setelah setiap inkremen ditambahkan.

Tujuan Pengujian Interface adalah mendeteksi kesalahan yang telah masuk kedalam sistim yang disebabkan oleh error interface atau asumsi invalid mengenai inteface. Berbagai jenis eror interface yang dapat terjadi diantaranya adalah :
1. Interface Parameter, merupakan interface tempat data atau kadang-kadang referensi fungsi dikirim dari satu komponen ke komponen yang lainnya.
2. Interface Memori Bagi Pakai, merupakan interface dengan satu blok memori dipakai bersama antar subsistim. Dimana data ditempatkan pada memori oleh satu subsistim dan diambil dari memori tersebut oleh subsistim lain.
3. Interface Prosedural, merupakan interface dengan satu subsistim yang mengkapsulasi satu set prosedur yang dapat dipanggil oleh subsistim lain.
4. Interface Message Passing, merupakan interface tempat satu subsistim meminta layanan dari subsistim lainnya dengan mengirimkan message kepadanya. Beberapa bentuk sistim berorientasi objek memiliki bentuk inteface ini sebagaimana sistim client server.

Adapun penggolongan error-error interface ini digolongkan kedalam tiga kategori antara lain :
1. Penyalahgunaan Interface, jenis error ini terutama umum dengan interface parameter dengan parameter yang mungkin berjenis salah, mungkin diberikan dengan urutan yang salah atau jumlah pengiriman yang salah.
2. Kesalahpahaman Interface, komponen pemanggil salah memahami spesifikasi interface komponen yang dipanggil dan membuat asumsi mengenai perilaku komponen yang dipanggil, sedangkan komponen yang dipanggil tidak berperilaku sebagaimana yang diharapkan akibatnya perilaku yang tidak diharapkan pada komponen pemanggil. Sebagai contoh routine search biner mungkin dipanggil dengan array yang tidak urut yang akan disearch, akibatnya search akan gagal.
3. Error Timing, terjadi pada saat waktu nyata yang menggunakan memori bagi pakai atau interface pengirim message.

Setelah integration testing dilakukan serta kesalahan-kesalahan yang diketemukan sudah diperbaiki, langkah berikutnya adalah Validasi Testing (Pengujian Validasi). Uji coba validasi dapat dikatakan berhasil apabila fungsi-fungsi yang ada pada perangkat lunak sesuai dengan yang diharapkan oleh pemakai. Validasi perangkat lunak merupakan kumpulan seri uji coba black box yang memperlihatkan atau menunjukkan sesuai dengan yang diperlukan. Garis besar rencana uji coba dikerjakan dan prosedur uji coba didefinisikan dengan test case yang spesifik dimana akan digunakan untuk menunjukkannya sesuai dengan yang diperlukan. Rencana dan prosedur dirancang untuk menjamin seluruh keperluan fungsional telah terpenuhi, seluruh perfomansi dapat dicapai, dokumentasi dilakukan dengan benar.

Setelah uji coba dikerjakan ada satu kemungkinan dari dua kondisi yang ada yaitu:
1. Karakteristik perfomansi fungsi sesuai dengan spesifikasi dan dapat diterima.
2. Penyimpangan dari spesifikasi ditemukan dan daftar penyimpangan dibuat.

Pengujian Stress melanjutkan uji-uji ini melewati beban rancangan maksimum sistim sampai sistim gagal. Jenis pengujian ini memiliki dua fungsi antara lain :
1. Pengujian stress menguji perilaku kegagalan sistim. Mungkin timbul suatu keadaan melalui kombinasi event yang tidak diharapkan ketika beban yang ada pada sistim melebihi beban maksimum yang diantisipasi. Pada keadaan penting bahwa kegagalan sistim tidak menyebabkan kerusakan data atau kerugian yang tidak diharapkan dari layanan user. Pengujian stress memeriksa apakah memberi beban yang lebih kepada sistim menyebabkannya “kegagalan lunak” dan bukan runtuh dengan bebannya.
2. Pengujian stress memberi tekanan pada sistim dan dapat menyebabkan munculnya cacat yang biasanya tidak mewujudkan diri mereka. Walaupun dapat diperdebatkan bahwa cacat ini tidak mungkin mengakibatkan kegagalan sistim dalam pemakaian normal, mungkin ada kombinasi yang tidak biasa dari keadaan normal yang direplikasi oleh pengujian stress.



CONTOH

Contoh untuk salah satu pengujian perangkat lunak, yaitu yang terlihat pada pembuatan Perangkat Lunak Sistem e-commerce.

Ada 2 uji coba perangkat lunak yang dipakai, yaitu Uji Coba White Box dan Uji coba Black Box.

1. Uji coba white box merupakan metode perancangan procedural guna memperoleh test case. Tes ini dipergunakan untuk meramal cara kerja perangkat lunak secara rinci. Perangkat lunak akan dites dengan menyediakan tes case yanag akan mengerjakan kumpulan kondisi dan pengulangan secara spesifik.

Pada blog ini terdapat program yang dapat diuji coba dengan menggunakan white box, yaitu pada saat user melakukan registrasi yang kemudian akan menginputkan data ke tabel user ,tabel ini berfungsi untuk penyimpan data user yang telah melakukan proses registrasi. Program ini berfungsi untuk memeriksa apakah username dan email sudah digunakan sebelumnya sehingga tidak ada data yang sama dengan sebelumnya.

Script untuk mengecek user sudah terdaftar atau belom.

$perintah=mysql_query("select * from user where username='$username' ") or
die(mysql_error()."perintah select username");

$perintah=mysql_query("select * from user where email='$email' ") or
die(mysql_error()."perintah select email");

Setelah user dinyatakan belum terdaftar maka proses berlanjut yaitu proses insert ke data user.

$perintah=mysql_query("insert into user(username,password,nama,alamat,email,no_telp,no_hp)
values('$username','$password','$nama','$alamat','$email','$no_telp','$no_hp') ") or
die(mysql_error()."perintah insert user");

2. Uji coba black box dilakukan pada tampilan interface perangkat lunak, yang bertujuan untuk menunjukkan fungsi perangkat lunak mengenai cara pengoperasiannya, apakah input dan output data telah berjalan sebagaimana yang diharapkan.

Salah satu contoh uji coba black box yaitu uji coba validasi. Uji coba ini dapat dikatakan berhasil jika fungsi – fungsi yang ada pada perangkat lunak sesuai dengan harapan pemakai. Contohnya pada saat memasukkan data login sebagai user, seorang member diwajibkan untuk memasukkan username dan password. Jika salah satu dari form tersebut tidak diisi, maka akan muncul pesan kesalahan, yang menyatakan salah satu diantara form tidak diisi, contoh pesan kesalahan tersebut adalah berikut :

if(isset($_POST['login'])){
$username = mysql_escape_string(strip_tags($_POST['username']));
$password = md5($_POST['password']);
$sql = mysql_query("SELECT * FROM user WHERE username='$username' && password='$password'");
$num = mysql_num_rows($sql);
if($num==1) {
while ($hasil=mysql_fetch_array($sql))
{
$_SESSION['Id_user']=$hasil['Id_user'];
$_SESSION['nama']=$hasil['nama'];
header("Location:index.php");
}
} else {
// jika login salah //
header("Location:index.php?error=1");
}

Senin, 12 Juli 2010

Tugas 6 (Contoh Dasar Bahasa Pemograman dan Pengkodean)

Contoh Dasar Bahasa Pemograman dan Pengkodean

Bahasa Pascal

Struktur Bahasa Pemograman Pascal

1. {Blok komentar / comment}

Blok ini bersifat tidak wajib, tidak di eksekusi oleh program, hanya diabaikan saja Cuma sebagai identitas program contohnya :

(*komentar 1*)è(*perhitungan aritmatika*)

(*komentar 2*)è{dibuat oleh Mr. MTQ}

2. {Blok judul / title)

Kaidah – kaidah penulisan blok judul adalah :

- Harus diawali dengan huruf alpabet

- Panjang maksimal judul program 255 karakter / huruf

- Dalam judul program tidak boleh ada spasi kosong

- Diberi karakter garis kebawah

Program judul_program;

Contohnya = program latihan_pertama;

3. {Blok Pengenalan / decralation}

- Blok ini berfungsi untuk mengenali item-item yang ada dalam program

- Bentuk-bentuk blok pengenalan :

a. Uses

Uses berfungsi untuk mengenalkan piranti kepada komputer/pascal yang dipakai dibelakangnya.]

Piranti adalah perangkat keras, tapi tidak harus perangkat keras, sistempun juga merupakan piranti yang bersifat global bisa diraba dan tidak bisa diraba.

Uses ènama_piranti 1, nama_piranti 2,…,(;) wajib di buat.

Contoh-contoh Uses yaitu :

o Dos (disk operating system) merupakan sistem operasi yang berfungsi untuk mengenali perintah-perintah dos.

o Graph biasanya mempunyai sebuah bidang grapik yang berfungsi agar pascal bisa menggunakan fungsi-fungsi grafik.

o Printer merupakan piranti output yang berfungsi untuk mencetak.

o Sistem berbentuk seperti RAM dan ROM yang berfungsi untuk pengaturan tanggal /jam dan sebagainya. Salah satu komponen sistem yaitu CMOS.

Cmos merupakan extensi dalam CPU yang berfungsi untuk menyimpan bios.

o Exsistensi adalah sebuah identitas file yang letaknya dibelakang titik yang terdiri dari tiga huruf. Contohnya : DOS, XCL, PAS.

b. Label

Label berbentuk sebagai identitas atau alamat garis perintah program biasanya sering digunakan go to. Label tidak disarankan dipakai karena sering lompat-lompat sehingga tidak terstruktur.

Bentuk label :

Nama_label 1,

Nama_label 2,…;

Contohnya : label awal, akhir;

c. Constanta

Constanta mendeclarasikan identitas dengan nilainya yang diakhiri titik koma (;) yang merupakan nilai tetap / pasif.

Bentuk constanta :

nama_const 1 = nilai ;

nama_const 2 = nilai ;

Contohnya : const A = 100 ;

B = ‘Mr. MTQ’;

d. Type

Type berfungsi untuk membuat informasi data baru yang type data identitasnya dikonstantakan.

e. Var

Var mendecrelasikan identitas dengan nilainya sama dengan konstanta bedanya var (variable) sifatnya berubah-ubah sedangkan konstanta tetap.

Penulisan declarasi sama dengan kaidah penulisan program.

Bentuk variable :

Nama_var 1,nama_var2 : type_data 1;

Nama_var3 : type_data 2;

Contoh var yaitu :

1. var kata, kalimat : String;

2. var angka, nilai : integer;

f. Procedure

Bentuk procedure yaitu :

àNama_prosedur (parameter : type_data);

Tipe Data / Jenis Data

v Macam-macam tipe data yaitu :

  1. Data huruf dan kata/kalimat
    1. Data huruf dalam pascal dideclerasikan dengan char (caracter) yang meliputi huruf alpabet (A sampai Z). Tipe data ini merupakan string. Contohnya : B:= ‘4’;
    2. Tipe data kalimat/kata dalam pascal dideclerasikan dengan : string;

Contohnya A:= ‘231’;

B:= ‘STiMIK’;

C:= ‘A+B’;

Perbedaan char dan string adalah tipe data char dapat disebut string karena string kumpulan char sedangkan char tidak dapat disebut string karena string berbentuk kata / kalimat.

  1. Tipe Data bilangan (numeric)

Tipe data ini dibagi menjadi dua yaitu tipe data bilangan cacah/bilangan bulat (integer)dan tipe bilangan decimal/bilangan pecahan/bilangan pakai koma (real).


{ Program   : Input dari keyboard dan Menghitung operasi matematika }


uses Crt;
var
x,y,z : longint;
lagi : char;
namak : string[20];

begin
lagi := 'y';
while (lagi = 'y') or (lagi = 'Y') do
begin
clrscr;
write('Siapa Nama Anda..?'); ReadLn(namak);
writeLn;
write('Hallo ',namak,', Coba kamu');
WriteLn(' masukan nilai x,y dan z ');
writeLn('pada operasi matematika ini.');
writeLn;
writeLn('Operasi matematika X^2 + y^2 + z =..... ');
write('masukan nilai x..= '); ReadLn(x);
write('masukan nilai y..= '); ReadLn(y);
write('masukan nilai z..= '); ReadLn(z);
writeLn;
writeLn('nilai operasi x^2 + y^2 + z adalah : ',x*x+y*y+z);
writeLn;
write('Mau hitung lagi apa tidak (y/t), ',namak,' ? ');
readLn(lagi);
end;
end.


Selasa, 29 Juni 2010

Tugas 5 (Penjadwalan Perangkat Lunak)

Penjadwalan



Tugas 4 (Desain Perangkat Lunak)

1. Bagan Relasi Entitas (Entity Relationship Diagram)




2. Desain Basis Data

Dari beberapa permodelan di atas, dapat dikumpulkan beberapa macam field data. Field-field tersebut dirangkum dalam Kamus Data sebagai berikut :

Kamus Data :

Dalam desain basis data (Database Design) pada sistem dan aplikasi terdiri beberapa file tabel, dimana perancangannya berdasarkan pada kamus data di atas. File-file tabel tersebut adalah sebagai berikut :



Struktur tabel dari masing-masing file tabel di atas adalah sebagai berikut :
Struktur File Tabel “tCustomer. mdf”

Struktur File Tabel “tSupplier. mdf”


Struktur File Tabel “tBarang. mdf”



Struktur File Tabel “tBeli. mdf”


Struktur File Tabel “tDetilBeli.mdf”



Struktur File Tabel “tJual. mdf”


Struktur File Tabel “tDetilJual.mdf”




3. Normalisasi Data

Transaksi Pembelian

UNF = {NoBeli + {KdBrg + NamaBrg + StokBrg + HargaBeli + HargaJual} + SubTotBeli + JumlahBeli} + TglBeli + NoBuktiBeli + TotalBeli + {KdSupp + NamaSupp + AlmtSupp + TelpSupp}

1NF = NoBeli + KdBrg + NamaBrg + StokBrg + HargaBeli + HargaJual + SubTotBeli + JumlahBeli + TglBeli + NoBuktiBeli + TotalBeli + KdSupp + NamaSupp + AlmtSupp + TelpSupp
2NF :
Beli = NoBeli* + TglBeli + NoBuktiBeli + TotalBeli + KdSupp* + KdBrg* + HargaBeli + JumlahBeli + SubTotBeli
DetilBeli = KdBrg* + HargaBeli + JumlahBeli + SubTotBeli

3NF :
Beli = NoBeli* + TglBeli + NoBuktiBeli + TotalBeli + KdSupp*
DetilBeli = JumlahBeli + SubTotBeli + KdBrg* + NoBeli*
Barang = KdBrg* + NamaBrg + StokBrg + HargaBeli + HargaJual
Supplier = KdSupp* + NamaSupp + AlmtSupp + TelpSupp


Transaksi Penjualan

UNF = {NoJual + {KdBrg + NamaBrg + StokBrg + HargaBeli + HargaJual} + SubTotJual + JumlahJual} + TglJual + TotalJual + {KdCust + NamaCust + AlmtCust + TelpCust}
1NF = NoJual + KdBrg + NamaBrg + StokBrg + HargaBeli + HargaJual + SubTotJual + JumlahJual + TglJual + TotalJual + KdCust + NamaCust + AlmtCust + TelpCust

2NF :
Jual = NoJual* + TglJual + TotalJual + KdCust* + KdBrg* + HargaJual + JumlahJual + SubTotJual
DetilJual = KdBrg* + HargaJual + JumlahJual + SubTotJual

3NF :
Jual = NoJual* + TglJual + TotalJual + KdCust*
DetilJual = JumlahJual + SubTotJual + KdBrg* + NoJual*
Barang = KdBrg* + NamaBrg + StokBrg + HargaBeli + HargaJual
Customer = KdCust* + NamaCust + AlmtCust + TelpCust

Tugas 3 (Analisa Perangkat Lunak)

Aplikasi Jual Beli

Penganalisaan perangkat lunak (sistem) bertujuan untuk mengetahui bagaimana perangkat lunak (sistem) tersebut berjalan.

Sebagai contoh yang terjadi pada sistem yang sangat sederhana, yaitu perangkat lunak Aplikasi Jual Beli.

Andaikan sebuah perangkat lunak yang harus dikembangkan untuk mengendalikan sebuah usaha dagang jual beli, adalah Aplikasi Jual Beli.

Aplikasi Jual Beli menjalankan Sistem Pendataan Barang, Sistem Pendataan Supplier dan Sistem Pendataan Customer, yang ketiga-tiganya akan dimasukkan ke dalam database master. Kemudian melakukan Sistem Transaksi Pembelian dan Sistem Transaksi Penjualan, yang kedua-duanya dimasukkan ke dalam database transaksi. Dan yang terakhir yaitu Sistem Penyusunan Laporan, yang terdiri dari Lap. Barang, Lap. Supplier, Lap. Customer, Lap. Pembelian dan Lap. Penjualan, yang kelima-limanya kan dimasukkan ke dalam database laporan. Dan pada Sistem transaksi, dilakukan perekapitulasian hasil transaksi, yang terdiri dari Rekapitulasi Pembelian dan Rekapitulasi Penjualan.

Uraian pertama yaitu pada database master. Disini dilakukan sistem pendataan barang yang nantinya akan masuk kedalam database Tabel Barang, dengan cara menginput Kode Barang, Nama Barang, Jumlah Stok, Harga Beli, dan Harga Jual pada Form Barang yang ada pada aplikasi ini. Dan terdapat 5 tombol akses, yakni Save (untuk menyimpan hasil penginputan/pendataan, Update (untuk mengubah isi data pada Tabel Barang jika suatu saat ingin diubah), Delete (untuk menghapus isi data pada Tabel Barang jika suatu saat ingin dihapus), Clear (untuk membersihkan semua isi inputan pada point-point tabel (sebelum disave)), Close (untuk menutup Form Tabel Barang). Dan juga tersedia 1 buah Grid (berupa tabel) yang akan menunjukkan isi-isi tiap data/record yang diinput. Begitu juga halnya yang terjadi pada sistem pendataan Supplier dan Customer yang nantinya masing-masing akan masuk kedalam database Tabel Supplier dan Tabel Customer.

Uraian Kedua yaitu pada database transaksi. Disini dilakukan sistem transaksi pembelian yang nantinya akan masuk kedalam database Tabel Beli dan Tabel Detil Beli. Pada Form Tabel Beli, ada bagian yang perlu diinput, yaitu bagian data beli dan bagian data detil beli. Pada bagian data beli, yang diinputkan yaitu No. Beli dan No. Bukti Beli. Dan juga terdapat sebuah item label Supplier, dan label ini tidak untuk diinput, tetapi sebagai pemberi data Supplier yang melakukan pembelian. Sedangkan pada bagian data detil beli, tidak ada data yang perlu diinputkan. Disini hanya terdapat sebuah item label barang yang sama fungsinya dengan label Supplier tadi, yang digunakan sebagai pembrowse data barang yang akan dibeli. Dan setelah label barang terisi oleh barang yang dipilih tadi, maka secara otomatis pada label harga akan tertera harga dari barang yang dipilih. Dan kemudian menyeting jumlah barang yang dibeli. Dan secara otomatis juga, pada label subtotal akan tertera total dari pembelian. Pada data detil beli ini, data yang dimasukkan boleh lebih dari 1, dengan menekan tombol add. Dan jika ingin menghapus data detil beli yang tidak jadi dibeli, gunakan tombol erase. Dan juga tersedia 1 buah Grid (berupa tabel) yang akan menunjukkan isi-isi tiap data/record yang diinput. Jika data detil beli yang dimasukkan sekiranya sudah cukup, maka langkah selanjutnya yaitu menekan tombol Save All untuk menyimpan semua data beli yang diinput dan disetting masuk kedalam database tabel beli dan database tabel detil beli. Maka secara otomatis, pada label Total Beli akan tertera semua total/jumlah pembelian yang merupakan penjumlahan dari semua subtotal yang ada di data detil beli tadi. Setelah selesai, berarti pendataan transaksi pembelian sudah selesai. Hal-hal diatas tadi terjadi juga pada sistem transaksi penjualan yang nantinya akan masuk kedalam database Tabel Jual.

Uraian ketiga yaitu pada sistem penyusunan laporan. Pertama yaitu Lap. Barang. Pada form lap. barang, data yang ditampilkan yaitu Kode Barang, Nama Barang, Stok Barang, Harga Beli dan Harga Jual. Data yang tampil yaitu semua data barang yang ada di tabel barang. Dan pada form lap. barang ini, terdapat 3 buah tombol akses, yaitu Preview (untuk melihat hasil tampilan laporan secara penuh sebelum dicetak) , Print (untuk mencetak laporan menjadi sebuah output), dan Close. Hal-hal diatas begitu juga pada Lap. Supplier dan Lap. Customer.

Dan untuk Lap. Pembelian, tampilan form berbeda dengan Lap. Barang, Lap. Supplier, dan Lap. Customer. Pada Lap. Pembelian ini terdapat ’label perbulan’ dan label ’tahun’. Di label-label tersebut, pilih pada bulan apa dan tahun berapa data yang akan ditampilkan selama pembelian berlangsung. Jika sudah disetting, maka tekan tombol Filter agar data tampil. Maka data akan secara otomatis tampil dalam bentuk tabel yang terdiri dari Tanggal, Nama Barang, Jumlah, Harga dan Subtotal. Dan terdapat 1 buah label Total Beli yang memberikan data semua jumlah dari subtotal tadi. Dan untuk tombol akses, sama seperti pada form laporan sebelumnya, yait terdapat 3 buah tombol akses, yaitu Preview, Print, dan Close. Hal diatas sama juga halnya yang terjadi pada Lap. Penjualan.

Dan untuk Rekapitulasi, baik Pembelian maupun Penjualan, data yang akan ditampilkan yaitu semua data yang pernah terjadi transaksi pembelian maupun penjualan (Tanggal, Nama Barang, Jumlah, Harga dan Subtotal) dan tidak berdasarkan pada bulan atau tahun tertentu, tetapi semuanya....

Minggu, 16 Mei 2010

Anggota Kelompok

Mata Kuliah : Rekayasa Perangkat Lunak

Semester / Kelas : VI (enam) / A (pagi)

Anggota Kelompok :

1. Ahmad Rudini (0857201000224)

2. Ayu Wulandari (0857201000230)
3. Normalisa (0857201000244)


Selasa, 04 Mei 2010

Tugas 2 (Kategori Ukuran Proyek)

Ukuran Proyek

Proyek merupakan suatu tugas yang perlu dirumuskan untuk mencapai sasaran yang dinyatakan secara kongkrit serta harus diselesaikan dalam suatu periode tertentu dengan menggunakan tenaga manusia dan alat-alat yang terbatas dan begitu kompleks sehingga dibutuhkan pengelolaan dan kerja sama yang berbeda dari yang biasanya digunakan.

Ukuran proyek menentukan bentuk team, teknik dan tools yang diperlukan.

Ada 6 kategori ukuran proyek, yaitu :

1. Trivial Proyek (Proyek Sederhana)

Proyek ini umumnya dikerjakan oleh satu programmer (pembuat program) dan pengerjaannya biasanya dalam beberapa hari atau beberapa minggu. Program yang dihasilkan pun kurang dari 500 baris yang mungkin disusun antara 10 – 20 subrutin (modul). Pada kategori ini, memerlukan sedikit analisis formal, dokumentasi perancangan yang tidak terlampau rumit, tidak terlampau luas perencanaan uji coba program.
Contohnya : Keperluan pribadi seorang programmer.


2. Small Proyek (Proyek Kecil)

Proyek ini biasanya dikerjakan oleh 1 – 4 programmer dan waktu pengerjaannya umumnya antara 1 - 6 bulan. Program yang dihasilkan terdiri dari 1000 – 2500 baris yang disusun dalam 25 – 50 subrutin (modul). Pada kategori ini, umumnya memerlukan sedikit interaksi antara programmer dengan pemakai (user) / pelanggan (customer) . Small Proyek memerlukan teknik dan notasi yang sudah standar, dokumentasi yang standar tetapi tingkatannya tidak terlalu formal, juga dibandingkan dengan Large Proyek.
Contohnya : Penyelesaian numerik masalah sains.


3. Medium Proyek (Proyek Sedang)

Proyek ini biasanya dikerjakan oleh 2 – 5 programmer dan lama pengerjaan 1 – 2 tahun. Program yang dihasilkan pun berjumlah baris 5K-50K.
Contohnya : Compiler berukuran tidak terlalu besar.


4. Large Proyek (Proyek Besar)

Proyek ini biasanya memerlukan 5 – 10 orang programmer dengan waktu 2 – 3 tahun dan program yang dihasilkan terdiri dari 50.000 – 100.000 baris perintah, disusun dalam beberapa sub sistem. Komunikasi yang terjadi antara programmer, manager dan pelanggan atau pemakai umumnya terjadi dalam team.
Contohnya : Paket data base.


5. Very Large Proyek (Proyek Sangat Besar)

Proyek ini biasanya dikerjakan oleh 100 – 1K dengan lama pengerjaan 4 – 5 tahun, dan program yang dihasilkan berjumlah baris 1M.
Contohnya : Sistem operasi besar.


6. Extremely Large Proyek

Proyek ini biasaya dikerjakan oleh 2K – 5K dengan lama pengerjaan 5 – 10 tahun, dan program yang dihasilkan berjumlah baris 1M – 10M.
Contohnya : Sistem pertahanan balistik.


Menurut J.A. Bent, kriteria penyusunan proyek adalah :

Kecil Sedang Besar
Insinyur (jam-orang) 100.000 600.000 > 1.500.000
orang 100 200 > 400
Konstruksi (jam-orang) 500.000 4.000.000 > 8.000.000
orang 400 1.500 > 3.000
Tenaga Staf 50 150 > 500
Jadwal Pelaksanaan (bulan) 25 30 > 30


Jadi, ukuran proyek/besar kecilnya suatu proyek ditentukan oleh :

1. Jumlah Tenaga Kerja yang digunakan untuk menyelesaikan proyek.
2. Jumlah Waktu yang dibutuhkan untuk menyelesaikan proyek.
3. Jumlah Biaya yang harus dikeluarkan untuk menyelesaikan suatu proyek.