BAB II LANDASAN TEORI
2.1
Tinjauan Pustaka
2.1.1 Surat Elektronik (E-mail) Surat elektronik (disingkat ratel atau surel atau surat-e) atau pos elektronik (disingkat pos-el) atau nama umumnya dalam bahasa Inggris adalah "e-mail atau email" (ejaan Indonesia: imel) adalah sarana kirim mengirim surat melalui jalur Internet. Email merupakan salah satu layanan internet yang paling banyak digunakan serta media komunikasi yang murah, cepat dan mudah penggunaannya. Kelebihan email yaitu pengirim email tidak memerlukan amplop dan perangko serta pembuatannya tidak memerlukan pulpen, kertas, maupun tinta printer seperti halnya konvensional. Proses berkirim email pun dapat dilakukan sangat cepat keseluruh dunia sehingga dapat menghemat uang dan waktu dalam berkirim surat. Selain itu, pengiriman email dapat dilakukan dengan mudah setiap saat dan dimana pun kita berada. Oleh karena itu, tidak heran jika kemudian teknologi email menyebar luas dengan cepat, khususnya untuk keperluan komunikasi dalam dunia bisnis maupun komunikasi personal. Sedangkan kelemahannya adalah: a. Memungkinkan terjadinya pemalsuan identitas. Hal ini karena kemudahan proses pembuatan alamat email dapat membuat orang yang tidak bertanggung jawab memanfaatkan keadaan ini dengan membuat email beridentitas palsu
7
8
untuk keperluan-keperluan yang bersifat negatif. Misalnya untuk melakukan penipuan atau yang lainnya. b.
Memungkinkan proses penyadapan informinnya.
c.
Memungkinkan terjadinya penipuan
d.
Memungkinkan penyalahgunaan dokumen, khususnya bila terjadi kesalahan pengiriman email.
e. Memungkinkan terjadinya ketidaknyamanan ketika mengelola email. Hal ini terutama disebabkan banyaknya email sampah (junkmail/spam) berupa iklaniklan yang tidak kita harapkan.
2.1.2
Spam Spam atau junk mail adalah penyalahgunaan dalam pengiriman berita elektronik
untuk
menampilkan
berita
iklan
dan
keperluan
lainnya
yang
mengakibatkan
ketidaknyamanan bagi para pengguna web. Menurut Rahardjo (2006), spam adalah unsolicited email (email yang tidak diminta) yang dikirim ke banyak orang. Berikut ini definisi dari spam menurut Lambert (2003). 1. Isi atau konten dari email tidak relevan dengan minat penerima. 2. Penerima tidak dapat menolak datangnya email yang tidak diminta tersebut dengan cara-cara lazim. 3. Dari sisi penerima, pengiriman dan penerimaan pesan tersebut memberikan keuntungan bagi pengirimnya. Bentuk berita spam yang umum dikenal meliputi: spam pos-el, spam pesan instan, spam usenet news-group, spam mesin pencari informasi web (web search engine spam), spam blog, spam berita pada telepon genggam, spam forum internet, dan lain lain. Spam ini
9
biasanya datang bertubi-tubi tanpa diminta dan sering kali tidak dikehendaki oleh penerimanya. Menurut Rahardjo (2006), spam terjadi akibat murahnya biaya untuk mengirimkan spam. Biaya untuk mengirimkan satu email sama dengan seribu email, atau bahkan satu juta email. Spam dapat dikategorikan sebagai berikut. 1. Junk mail yaitu email yang dikirimkan secara besar-besaran dari suatu perusahaan bisnis, yang sebenarnya tidak kita inginkan. 2. Non-commercial spam, misalnya surat berantai atau cerita humor yang dikirimkan secara masal tanpa tujuan komersial tertentu. 3. Pornographic spam yaitu email yang dikirimkan secara masal untuk mengirimkan gambar-gambar pornografi. 4. Virus spam yaitu email yang dikirimkan secara massal, dan mengandung virus atau Trojans.
2.1.3 Email Filtering Email filtering adalah suatu proses yang otomatis akan mendeteksi sebuah email, apakah email tersebut sebuah spam atau bukan (legitimate email). Beberapa metode yang dapat digunakan untuk email filtering antara lain Keyword filtering, Black listing dan White listing, Signature-Based filtering, Naïve Bayesian (statistical) filtering. Beberapa karakteristik email filtering yaitu. 1. Binary class Email filtering hanya mengklasifikasikan email ke dalam kelas spam dan legitimate email.
10
2. Prediksi Email filtering mampu melakukan prediksi kelas dari suatu email. 3. Komputasi mudah Mengingat sifat data email yang memiliki dimensi tinggi maka dibutuhkan sebuah email filter yang mampu melakukan komputasi dengan mudah. 4. Learning Mampu melakukan learning dari email-email yang sudah ada sebelumnya. 5. Kinerja yang bagus Memiliki akurasi yang tinggi, meminimalkan nilai false positive dan mentolerir nilai false negative yang cukup tinggi.
2.1.4 Klasifikasi (classification) Klasifikasi adalah proses pencarian sekumpulan model atau fungsi yang menggambarkan dan membedakan kelas data dengan tujuan agar model tersebut dapat digunakan untuk memprediksi kelas dari suatu obyek yang belum diketahui kelasnya. Klasifikasi memiliki dua proses yaitu membangun model klasifikasi dari sekumpulan kelas data yang sudah didefinisikan sebelumnya (training data) dan menggunakan model tersebut untuk klasifikasi data uji serta mengukur akurasi dari model. Model klasifikasi dapat disajikan dalam berbagai macam model klasifikasi seperti decision trees, bayesian classification, k-nearestneighbourhood classifier, neural network, classification (IF-THEN) rule, dan lain-lain. Klasifikasi dapat dimanfaatkan dalam berbagai aplikasi seperti diagnosa medis, selective marketing, pengajuan kredit perbankan dan email.
11
Menurut Zdziarski (2005), klasifikasi teks adalah sebuah proses pengidentifikasian kategori dari sebuah teks yang dimasukkan. Klasifikasi teks mempunyai dua unsur penting yaitu pembelajaran dan pengambilan keputusan. Klasifikasi terdiri dari tiga komponen penting, yaitu sebagai berikut: 1. Data training Merupakan database yang berisi email yang digunakan sebagai proses pembelajaran dari filter. 2. Tokenizer Tokenizer bertanggung jawab pada terjadinya proses tokenizing yaitu proses pembacaan email dan memecah-mecahnya menjadi beberapa elemen yang lebih kecil (token). 3. Analysis engine Analysis engine bertanggung jawab pada terjadinya proses analisis terhadap token yang telah dihasilkan pada proses tokenizing, selanjutnya akan diambil keputusan apakah email tersebut spam atau bukan.
2.1.5 Bayesian (Statistical) Filtering Bayesian filtering merupakan metode filter anti spam yang terbaru. Metode memanfaatkan teori probabilitas yang dikemukakan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi probabilitas di masa depan berdasarkan pengalaman di masa sebelumnya. Bayesian filtering mendeteksi spam dengan cara menghitung probabilitas dari suatu pesan (email) berdasarkan isinya. Probabilitas ini dapat dihitung dengan terlebih dahulu membuat suatu database spam dan database non spam. Kemudian dengan proses training, Bayesian filtering dapat dilatih untuk melihat kata-kata yang sering digunakan pada spam,
12
sehingga pada akhirnya dihasilkan filter anti spam yang akurat dengan sesedikit mungkin false positives. False positives adalah email legal yang ditujukan kepada penerima, tetapi karena kesalahan dari filter anti spam, dikategorikan menjadi spam. Pada dasarnya, metode Bayesian filtering merupakan pengembangan dari metode penilaian pesan (scoring content-based filter, hampir sama dengan keywords filtering) yaitu filter mencari karakteristik kata-kata yang banyak digunakan pada spam, kata-kata ini diberi nilai individual, dan nilai spam secara keseluruhan dihitung dari nilai individual tersebut (Satterfield, 2005). Tetapi metode ini memiliki kelemahan yaitu karakteristik kata-kata pada spam dan legitimate email akan berbeda-beda untuk setiap individu. Kata “business” misalnya yang untuk sebagian orang akan termasuk pada karakteristik kata-kata pada spam, tetapi untuk perusahaan tertentu yang bergerak di bidang itu, kata “business” tersebut akan termasuk pada legitimate email. Dapat dikatakan bahwa algoritma scoring content-based filter ini tidak kompatibel. Lain halnya dengan scoring content-based filter, Bayesian filtering akan membuat daftar karakteristik kata-kata spam dan legitimate email secara otomatis. Tentunya terlebih dahulu, kita harus mengklasifikasikan email-email mana saja yang termasuk spam dan mana yang termasuk legitimate email. Bayesian filtering akan menghitung probabilitas dari kata-kata yang umum digunakan pada spam berdasarkan klasifikasi ini. Karakteristik dari spam yang dapat diidentifikasi antara lain berdasarkan kata-kata pada body message, header message, dan juga kode HTML (seperti pemberian background warna).
13
2.1.6 Perhitungan Probabilitas Berdasarkan Bayesian Filtering Pada awalnya, Bayesian filtering ini harus di training terlebih dahulu menggunakan sejumlah spam dan sejumlah legitimate email. Bayesian filtering akan menghitung probabilitas dari suatu token, misalnya kata “adult”, untuk muncul di kelompok spam. Probabilitas ini dapat dirumuskan sebagai berikut.
( | )
( | ) ( )
( | )
( ) ( | )
( )
Dimana ( ) adalah probabilitas muncul suatu kata misal “w”, ( ) adalah probabilitas suatu email adalah spam, ( ) adalah probabilitas suatu email adalah legitimate email, Data statistik terbaru menunjukkan bahwa probabilitas suatu email merupakan spam adalah 80%, sehingga
( )
dan
( )
. Akan tetapi Bayesian filtering dalam
penulisan ini menggunakan asumsi bahwa peluang suatu email yang masuk untuk dikategorikan sebagai spam adalah sama dengan peluang email tersebut dikategorikan sebagai legitimate email yaitu 0.5 (Wikipedia, 2009), maka persamaan diatas dapat disederhanakan menjadi ( | )
( | ) ( | ) ( | )
Rumus diatas oleh Graham (2002) dimodifikasi dengan menggandakan probabilitas kata yang muncul dalam legitimate email, sehingga rumus diatas menjadi ( | )
( | ) ( | )
( | )
14
Tujuan dari penggandaan probabilitas kata yang muncul dalam legitimate email ini adalah untuk mengurangi false positive. false positive adalah legitimate email yang salah teridentifikasi menjadi spam. Probabilitas lokal dari masing-masing kata tersebut kemudian menggunakan aturan rantai (chain rule) Bayes untuk menentukan probabilitas total dari suatu email adalah spam. Bayesian chain rule dirumuskan sebagai berikut (
)(
)
Bayesian filtering menggunakan asumsi bahwa tiap-tiap kata dalam email adalah independen satu sama lain (naïve) (Wikipedia, 2009). Pada pendekatan yang dilakukan oleh Graham (2002), diambil 15 kata (token) yang mempunyai nilai probabilitas spam tertinggi.
(
) (
) (
)
(
)
Dimana adalah probabilitas bahwa email yang masuk adalah spam, adalah probabilitas suatu email adalah spam dengan diketahui terdapat suatu kata “w1” didalamnya, adalah probabilitas suatu email adalah spam dengan diketahui terdapat suatu kata “w2” didalamnya, dan seterusnya, sampai dengan .
Hasil perhitungan 0.9 (Graham, 2002), jika
akan dibandingkan dengan suatu nilai threshold tertentu yaitu kurang dari threshold maka email tersebut akan dianggap
legitimate email. Sebaliknya jika sebagai spam.
lebih besar dari threshold maka email akan dianggap
15
2.2.
Rekayasa Perangkat Lunak Rekayasa perangkat lunak adalah sebuah disiplin yang mengintegrasikan proses,
metode, dan alat-alat bantu bagi pengembangan proses perangkat lunak komputer. Usaha yang berhubungan dengan RPL (Rekayasa Perangkat Lunak) dapat dikategorikan ke dalam 3 fase umum dengan tanpa mempedulikan area aplikasi, ukuran proyek, atau kompleksitasnya. Fase-fase tersebut adalah sebagai berikut: 1.
Fase definisi (Definition phase), berfokus pada “apa” (What) dimana : pada definisi ini pengembang perangkat lunak harus mendefinisikan informasi apa yang akan diproses, fungsi dan unjuk kerja apa yang dibutuhkan, tingkah laku sistem seperti apa yang diharapkan, interface apa yang akan dibangun, batasan desain apa yang ada, dan kriteria validasi apa yang dibutuhkan untuk mendefinisikan sistem yang sukses, kebutuhan kunci dari sistem dan perangkat lunak yang didefinisikan.
2.
Fase pengembangan (development phase), berfokus pada “bagaimana” (How), yaitu dimana selama masa pembangunan perangkat lunak, teknisi harus mendefinisikan bagaimana data dikontruksikan, bagaimana fungsi-fungsi diimplemantasikan sebuah arsitektur perangkat lunak, bagaimana detail prosedur akan di implementasikan, bagaimana
interface
ditandai
(dikarakterisasi),
bagaimana
rancangan
akan
diterjemaahkan kedalam bahasa pemrograman (atau bahasa non procedural), serta bagaimana pengujian akan dilakukan. 3.
Fase pemeliharaan (Maintenance phase), berfokus pada perubahan (Change), yang dihubungkan dengan koreksi kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak berkenbang, serta perubahan sehubungan dengan perkembangan yang disebabkan kebutuhan pelanggan. Ada 4 tipe perubahan yang
16
terjadi selama masa fase pengembangan, yaitu koreksi, adaptasi, pengembangan, dan pencegahan. [Pressman, 2002].
2.3
Alat Pengembangan Perangkat Lunak
Untuk mendapatkan langkah-langkah yang sesuai dengan metodologi pengembangan perangkat lunak yang terstruktur, maka dibutuhkan alat untuk melaksanakanya. Alat-alat yang digunakan merupakan alat untuk membantu dalam peningkatan
hasil
dokumentasikan,
dari baik
pengembangan yang
digunakan
perangkat secara
lunak manual
yang
akan
maupun
di
secara
terkomputerisasi. Alat-alat yang digunakan juga ada yang tidak berupa gambar atau grafik seperti misalnya data dictionary. 2.3.1
Flowmap(Bagan Alir) Flowmap atau bagan alir adalah bagan yang menunjukan aliran di dalam program
atau prosedur sistem secara logika. Flowmap ini berfungsi untuk memodelkan masukan, keluaran, proses maupun transaksi dengan menggunakan simbol-simbol tertentu. Pembuatan flowmap ini harus dapat memudahkan bagi pemakai dalam memahami alur dari sistem atau transaksi. Adapun pedoman-pedoman dalam pembuatan flowmap adalah sebagai berikut [Andri Kristanto, 2003] : 1. Flowmap sebaiknya digambarkan dari atas ke bawah dan mulai dari bagian kiri dari suatu halaman. 2. Kegiatan didalam flowmap harus ditunjukan dengan jelas. 3. Harus ditunjukan dari mana kegiatan akan dimulai dan dimana akan berakhir. 4. Masing-masing kegiatan didalam flowmap sebaiknya digunakan suatu kata yang mewakili suatu pekerjaan. 5. Masing-masing kegiatan didalam flowmap harus didalam urutan yang semestinya.
17
6. Kegiatan yang terpotong dan akan disambung ditempat lain harus ditunjukan dengan jelas menggunakan simbol penghubung. Adapun simbol-simbol yang sering digunakan dalam flowmap dapat dilihat pada tabel berikut ini: Tabel 2. 1 Simbol dan Keterangan flowmap Simbol
Deskripsi Simbol yang digunakan untuk menunjukkan awal atau akhir dari suatu proses Menunjukkan dokumen input dan output baik untuk proses manual mekanik atau komputer Menunjukkan pekerjaan manual
Menunjukkan multi dokumen
Pengarsipan Data
Menunjukkan Proses
Simbol input/output digunakan untuk mewakili data input/output
2.3.2
Data Flow Diagram (DFD) DFD sering digunakan untuk menggambarkan suatu sistem yang telah ada atau
sistem baru yang akan dikembangkan secara logika tanpa mempertimbangkan
18
lingkungan fisik dimana data tersebut mengalir atau lingkungan fisik dimana data tersebut akan disimpan. DFD
merupakan alat yang digunakan untuk metodologi
pengembangan terstruktur. 2.3.2.1
Definisi DFD “DFD atau diagram alir data adalah suatu model logika data atau proses yang
dibuat untuk menggambarkan dari mana asal data dan kemana tujuan data yang keluar dari sistem, dimana data disimpan, proses apa yang menghasilkan data tersebut dan interaksi antara data yang tersimpan dan proses yang dikenakan pada data tersebut.” [Andri Kristanto, 2003] . DFD menggambarkan penyimpanan data dan proses yang mentransformasikan data. DFD menunjukan antara data pada sistem dan proses pada sistem. Tabel berikut
adalah notasi yang digunakan dalam pembuatan DFD metode
Yourdon-De Marco: Tabel 2.2 Notasi Data Flow Diagram Simbol
Deskripsi
Proses
Menggambarkan proses yang dilakukan oleh sistem
Entitas External
Aliran Data
Penyimpanan Data
Menunjukkan entitas yang berhubungan dengan sistem
Menunjukkan arah aliran data Menunjukkan tempat penyimpanan data
19
2.3.2.2
Sintak dan Fungsi Simbol DFD
Sintaks yang berlaku untuk semua simbol DFD adalah sebagai berikut : 1. Komponen Proses Proses menunjukan transformasi dari masukan menjadi keluaran, dan biasanya komponen proses dapat disimbolkan dengan lingkaran atau segi empat tumpul. Dalam proses biasanya didefinisikan dengan kalimat sederhana atau kata tunggal Nama lingkaran tersebut mendeskripsikan respon yang harus dilakukan sistem dalam menganalisa keadaan. 2. Aliran Data Menggambarkan gerakan paket data atau informasi
dari satu bagian
kebagian lain dari sistem. Aliran data direpresentasikan dengan menggunakan anak panah. Nama fungsi untuk menjelaskan arti dalam aliran tersebut dan ditulis untuk mengidentifikasikan aliran tersebut. Ujung panah menunjukan arah data bergerak. Aliran data yang digambarkan sebagai panah dengan dua ujung menggambarkan terjadinya dialog. Aliran data dapat menyebar atau menyatu. 3. Simpanan Data
20
Dipakai untuk memodelkan kumpulan data, misalkan paket data, tape magnetis, disk dan tape magnetis. Penyimpanan direpresentasikan dengan dua buah garis paralel atau segi empat terbuka. 4. Entity Luar Merupakan bagian luar sistem, aliran data yang dihubungkan dengan entity luar dan menunjukan hubungan antara sistem dengan dunia luar. Entity luar direpresentasikan dengan empat persegi panjang. 2.3.2.2.1 Levelisasi DFD Model ini menggambarkan sistem sebagai jaringan kerja antar fungsi yang berhubungan satu dengan yang lain dengan aliran dan penyimpanan data. Dalam levelisasi DFD ini akan terjadi penurunan level dimana dalam penurunan level yang lebih rendah harus mampu mempresentasikan proses tersebut kedalam spesifikasi proses yang lebih jelas. Dalam penurunan level, tidak semua bagian dari sistem harus diturunkan dengan jumlah level yang sama. Aliran data yang masuk dan keluar dari suatu proses di level X harus berhubungan dengan aliran data yang masuk dan keluar dari level X+1 yang mendefinisikan proses pada level X tersebut. Tingkatan–tingkatan yang ada pada DFD yaitu [Andri Kristanto, 2003] : 1. Diagram Konteks Diagram konteks adalah sebuah diagram sederhana yang menggambarkan hubungan antara entity luar, masukan dan keluaran dari sistem. Diagram konteks dipresentasikan dengan lingkaran tunggal yang mewakili keseluruhan sistem. Diagram konteks merupakan level tertinggi dari DFD. 2. Diagram Zero/ Diagram Level 0
21
Tingkat yang lebih bawah dari diagram konteks adalah diagram zero atau DFD level 0. Diagram zero menggambarkan proses–proses utama dari sistem. 3. Diagram Level n Diagram level n adalah hasil dekomposisi dari diagram zero. Diagram level n menjelaskan proses secara lebih terperinci. Diagram level 1 merupakan turunan langsung dari diagram zero, artinya diagram level 1 berada satu tingkat lebih rendah dari diagram zero. Apabila diagram level 1 ini diuraikan lagi, maka akan terbentuk diagram level 2, dan seterusnya. 2.4
Kamus Data
2.4.1
Definisi Kamus Data Kamus data (KD) adalah katalog fakta tentang data dan kebutuhan-kebutuhan
informasi dari suatu sistem informasi (Jogiyanto, 1999). Dengan menggunakan KD analis sistem dapat mendefinisikan data yang mengalir di sistem dengan lengkap. 2.4.2
Perancangan Kamus Data Sebagian besar sistem manajemen dalam sebuah perusahaan/instansi telah
dilengkapi dengan
suatu kamus data, baik dilakukan secara sederhanan atau rumit.
Beberapa kamus data yang terkomputerisasi mengkatalogikan item-item data pada saat pemograman dilakukan, kamus data ini bisa menyediakan suatu template untuk mendorong pengisian kamus secara seragam untuk setiap masukan. Menurut Kendall Tujuan dari perancangan kamus data yaitu untuk mengurangi redudansi data yang digunakan untuk : 1. Menvalidasi diagram alir data dalam hal kelengkapan dan keakuratan. 2. Menyediakan suatu titik awal untuk mengembangkan layar dan laporanlaporan.
22
3. Menentukan muatan data (atribute) yang disimpan dalam file-file. 4. Mengembangkan logika untuk proses-proses diagram alir data. Hubungan kamus data dengan diagram aliran data dapat digambarkan seperti di bawah ini :
Aliran Data
Formulir Deskripsi Aliran Data XXX
Struktur Data XXX
Elemen-elemen data (Atribute) XXX
Simpanan Data
Formulir Deskripsi Aliran Data XXX
Struktur Data XXX
Elemen-elemen data (Atribute) XXX
Gambar 2.1 Hubungan Kamus Data dengan Diagram Aliran Data Perancangan kamus data diperoleh berdasarkan hasil perancangan diagram aliran data. Kamus data dibuat dengan memperhatikan dan menggambarkan muatan aliran data (atribute), simpanan data (basis data) dan proses-proses. 2.5
Metode Pengembangan Sistem Metode pengembangan sistem yang penulis gunakan yaitu menggunakan metode
Prototype karena metode ini merupakan suatu metode dalam pengembangan sistem yang menggunakan pendekatan untuk membuat suatu program dengan cepat dan bertahap sehingga segera dievaluasi oleh pemakai. Selain itu, prototype membuat proses pengembangan sistem informasi menjadi lebih cepat dan lebih mudah, terutama pada keadaan kebutuhan pemakai sulit untuk diidentifikasi. (Abdul Kadir, 2003:416) Pengembangan prototype dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu langsung untuk mendefinisikan keseluruhan dari perangkat lunak,
23
mengidentifikasi segala kebutuhan yang telah diketahui dan mencari bidang-bidang yang masih memerlukan pendefinisian kemudian dilakukan perancangan kilat terhadap kebutuhan yang telah teridentifikasi pada pertemuan. Perancangan kilat berfokus pada penyajian dari aspek-aspek perangkat lunak tersebut yang akan nampak bagi pelanggan/pemakai. Perancangan ini menuntun pembangunan perangkat lunak yang akan diberikan kepada pemakai. Selanjutnya prototype itu dievaluasi oleh pemakai dan digunakan sebagai landasan untuk memperbaiki spesifikasi kebutuhan. Proses ini akan berulang sampai prototype yang dikembangkan memenuhi seluruh kebutuhan pemakai. Identifikasi Kebutuhan Pemakai
Membuat Prototipe
- Pengembang dan pemakai bertemu - Pemakai menjelaskan kebutuhan user
- Pengembang mulai membuat Prototype
Menguji Prototipe
- Pemakai menguji prototype dan memberikan kritikan atau saran
Memperbaiki Prototipe
- Pengembang melakukan modifikasi sesuai dengan masukan dari pemakai
Mengembangkan Versi Produk
- Pengembang merampungkan sistem sesuai dengan masukan terakhir
Gambar 2.2 Mekanisme Pengembangan Sistem dengan Prototype (Sumber : Abdul Kadir, Pengenalan Sistem Informasi 2003, Andi. Yogyakarta) Tahapan dalam metode Prototype : 1. Identifikasi kebutuhan (Data)
24
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan buat. 2. Membangun prototyping Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output). a. Merancang sistem Dalam tahap ini prototype dirancang secara terstuktur dari proses basis data hingga rancangan menu program. b. Mengkodekan sistem Dalam tahap ini prototyping yang sudah dirancang diterjemahkan ke dalam bahasa pemrograman yang sesuai. 3. Menguji sistem Setelah sistem sudah menjadi suatu perangkat lunak, harus diuji dahulu sebelum digunakan. 4. Evaluasi Sistem Pelanggan mengevaluasi apakah sistem yang sudah buat sudah sesuai dengan yang diharapkan, apabila belum sesuai maka tahapan 2 dan 3 diulang kembali hingga sesuai dengan yang diharapkan oleh pelanggan dan lanjut ke tahap berikutnya. 5. Mengembangkan versi produk (penerapan sistem) Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
25
2.6
Basis Data
2.6.1 Definisi Basis Data Menurut Fathansyah basis data dapat didefinisikan sebagai berikut : 1. “Basis data adalah himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasikan sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah “. 2. “Basis data adalah kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan ( redudansi ) yang tidak perlu, untuk memenuhi berbagai kebutuhan “. 3. Basis data adalah kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik.
2.6.2 Kegunaan Basis Data Penyusunan basis data digunakan untuk mengatasi masalah-masalah pada penyusunan data yaitu: a. Redudansi dan inkonsistensi data 1. Redudansi adalah penyimpanan dibeberapa tempat untuk data yang sama, dan ini akan mengakibatkan pemborasan ruang penyimpanan. 2. Inkosistensi (tidak konsisten) adalah penyimpanan data yang sama berulang-ulang dibeberapa file. b. Kesulitan pengaksesan data c. Isolasi data untuk standarisasi. d. Multi User (banyak pemakai) e. Masalah keamanan (security)
26
f. Masalah integritas g. Masalah data independence (kebebasan data)
2.6.3. Perancangan Basis Data Tujuan perancangan adalah untuk mendefinisikan informasi apa yang dibutuhkan oleh sistem yang akan dibangun sehingga mudah untuk dilakukan transformasi kedalam kode aktual dan kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data.
2.6.4. Entity Relationship Diagram (E-R Diagram) Entity Relationship Diagram (E-R Diagram) adalah suatu model relasi yang menggunakan susunan data yang disimpan dalam sistem secara abstrak. Diagram E-R merupakan model E-R yang berisi komponen-komponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi atribut-atribut yang merepresentasikan seluruh fakta dari dunia nyata yang kita tinjau, dan dapat digambarkan dengan lebih sistematik. Jadi jelaslah bahwa E-R diagram berbeda dengan DFD, yang menggunakan model jaringan fungsi yang akan dilaksanakan oleh sistem, sedang E-R diagram merupakan model data yang menekankan pada struktur-struktur dan relasi data. Notasi-notasi di dalam diagram E-R Diagram yang dapat kita gunakan seperti gambar berikut :
27
TABEL 2.3 NOTASI YANG DIGUNAKAN PADA ER-DIAGRAM Simbol
Deskripsi
Menunjukkan entitas yang Entitas
terhubungan dengan sistem
Atribut Menunjukkan atribut yang dimiliki oleh entitas
Menunjukkan relasi antar entitas
Relasi
Menunjukkan link
Link
2.6.4.1 Pemetaan Antara Set Entitas penggambaran relasi antar himpunan entitas, serta relasi itu sendiri digunakan untuk menjelaskan batasan-batasan pada jumlah entitas yang dihubungkan dengan melalui suatu relationship. Ada tiga derajat relasi, yaitu : 1) One to One (1 : 1) Pada hubungan ini berarti untuk setiap entitas di sebuah himpunan entitas paling banyak berhubungan dengan satu entitas di himpunan entitas yang lain dan begitu juga sebaliknya.
Dosen
1
Mengepalai
1
Jurusan
Gambar 2.3 Contoh Relasi One to One
28
Pada relasi ini, satu dosen hanya dapat mengepalai satu jurusan dan satu jurusan hanya bisa dikepalai oleh satu dosen. 2) One to Many ( 1: N ) Pada hubungan ini berarti untuk setiap entitas di himpunan entitas pertama dapat berhubungan dengan lebih dari satu entitas di himpunan entitas kedua, tetapi setiap entitas di himpunan entitas kedua hanya akan berhubungan dengan paling banyak satu entitas di himpunan entitas pertama.
Dosen
1
Memberikan
N
Kuliah
Gambar 2.4 Contoh Relasi One to Many Pada relasi ini, satu dosen dapat memberikan banyak mata kuliah dan banyak mata kuliah bisa diberikan oleh satu dosen 3) Many to Many ( N : M ) Pada hubungan ini berarti untuk setiap entitas di himpunan pertama dapat berhubungan dengan lebih dari satu entitas di himpunan entitas kedua, begitu juga sebaliknya.
Mahasiswa
N
Mempelajari
M
Kuliah
Gambar 2.5 Contoh Relasi Many to Many Pada relasi ini, banyak mahasiswa dapat mempelajari banyak mata kuliah dan banyak mata kuliah bisa dipelajari oleh banyak mahasiswa, [Fathansyah, 1999]
29
2.6.5. Keuntungan Penggunaan Basis Data Penggunaan DBMS untuk mengelola data mempunyai beberapa keuntungan yaitu [Andri Kristanto, 2003] : 1. Kebebasan data dan akses yang efisien 2. Mereduksi waktu pengembangan aplikasi 3. Integritas dan keamanan data 4. Administrasi keseragaman data 5. Akses bersamaan dan perbaikan dari terjadinya crashes (tabrakan dari proses serentak).
2.7
Java Java adalah sebuah bahasa pemrograman yang dibuat oleh James Gosling di Sun
MicroSystems dan dirilis pada tahun 1995 sebagai inti dari komponen platform java Sun
MicroSystem. Bahasa pemrograman ini merupakan turunan dari bahasa C maupun C++ tetapi memiliki model objek yang sederhana serta fasilitas terhadap low level yang lebih sedikit dibandingkan oleh Ibunya. Java dikompilasi dalam bentuk bytecode yang nantinya akan dijalankan di JVM (Java Virtual Machine) yang sudah terlepas dari arsitektur Komputer. Oleh karena itu, Java disebut juga Write Once Run Anywhere. Sekali di develop, bisa berjalan di sistem manapun, asalkan terdapat JVM. Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain. Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya
30
terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source. Teknologi Java sebagai suatu platform, yang biasa disebut juga sebagai Java Runtime Environment (JRE). Platform ini diperlukan sebagai lapisan atau layer untuk menjalankan program Java yang telah dikompilasi (bytecode). Untuk melakukan kompilasi kita memerlukan tools tambahan yang ditambahkan ke dalam JRE dan dikenal sebagai Java Development Kit (JDK). Jadi di dalam JDK sendiri secara otomatis sudah terdapat platform JRE. (http://ajimedia.com/264/tutorial-java-instalasi-java)
2.7.1 Instalasi Java Berikut langkah-langkah nya: 1. Install jdk-6u17-windows-i586.exe kemudian klik “accept”
Gambar 2.6 Licence Agrement Java™ SE Development 2. Klik Next. Tahap ini adalah Tahap Setting JDK (Java Development Kit)
31
Gambar 2.7 Custom Setup Select the Program Java™ SE Development
Gambar 2.8 Installing Java™ SE Development 3. Klik Next. Tahap ini adalah Tahap Setting JRE (Java Runtime Environment)‐nya
Gambar 2.9 Java Setup - Destination Folder
32
Gambar 2.10 Java Setup - Progress 4. . Klik Finish
Gambar 2.11 Successfully Installed Java ™ SE Development 5.
Untuk mengecek, apakah Java yang kita instalkan sukses : Klik Start → klik Command Prompt
Gambar 2.12 Menu untuk menuju Command Prompt
33
6.
Ketikkan java –version di layar DOS anda, akhiri dengan enter. Apabila instalasi Java sukses, akan muncul command dibawah : Java version “1.6.0_17” Java(TM) SE Runtime Environment (build 1.6.0_17‐b04) Java HotSpot(TM) Client VM (build 14.3‐b01, mixed mode, sharing)
7. Implementasi Instalasi Program
Gambar 2.13 Tampilan layar DOS 8.
2.8
Sampai disini, proses Instalasi Java telah berhasil dan sukses.
Netbeans NetBeans mengacu pada kedua platform kerangka untuk aplikasi desktop Java, dan
sebuah lingkungan pengembangan terpadu (IDE) untuk pengembangan dengan Java, JavaScript , PHP , Python , Ruby , Groovy , C , C + + , Scala , Clojure , dan lain-lain. NetBeans IDE ditulis dalam Java dan berjalan di mana-mana mana JVM diinstal, termasuk Windows, Mac OS, Linux, dan Solaris. Sebuah JDK diperlukan untuk pengembangan fungsionalitas Java, tetapi tidak diperlukan untuk pembangunan di bahasa pemrograman lain. Platform NetBeans memungkinkan aplikasi untuk dikembangkan dari
34
satu set modular komponen software yang disebut modul. Aplikasi berbasis platform NetBeans (termasuk IDE NetBeans) dapat diperpanjang oleh pengembang pihak ketiga .
2.8.1. Sejarah Netbeans NetBeans dimulai pada tahun 1996 sebagai Xelfi (kata bermain pada Delphi ), Java IDE proyek mahasiswa di bawah bimbingan Fakultas Matematika dan Fisika di Charles University di Praha . Pada tahun 1997 Staněk Romawi membentuk perusahaan sekitar proyek tersebut dan menghasilkan versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun Microsystems pada tahun 1999. Komunitas NetBeans sejak terus tumbuh, berkat individu dan perusahaan yang menggunakan dan berkontribusi dalam proyek ini.
2.8.2. Perkembangan Netbeans NetBeans IDE 6.0 memperkenalkan dukungan untuk mengembangkan modul IDE dan aplikasi klien kaya berdasarkan platform NetBeans, Java Swing GUI builder (sebelumnya dikenal sebagai "Proyek Matisse"), meningkatkan CVS dukungan, WebLogic 9 dan JBoss 4 dukungan, dan perangkat tambahan banyak editor. NetBeans 6 tersedia dalam repositori resmi dari distribusi Linux utama. Selain itu, NetBeans Enterprise Pack mendukung pengembangan aplikasi Java EE 5 perusahaan, termasuk SOA alat desain visual, skema XML tools, web orkestrasi layanan (untuk BPEL), dan UML modeling. NetBeans IDE Bundle untuk C / C + + mendukung C / C + + pembangunan. Hosting pengembang sumber terbuka proyek di kenai tambahan manfaat dari instant messaging dan pelacakan masalah integrasi dan navigasi kanan dalam IDE,
35
dukungan untuk pengembangan aplikasi web dengan PHP 5.3 dan kerangka Symfony, dan kode selesai diperbaiki, layout, petunjuk dan navigasi dalam proyek JavaFX. Dirilis pada bulan Juni 2010, menambahkan dukungan untuk OSGi , Spring Framework 3.0, Java EE injeksi ketergantungan (JSR-299), Zend Framework untuk PHP , dan navigasi kode lebih mudah (seperti "Apakah / ditimpa penerapan" penjelasan), format , petunjuk, dan refactoring di beberapa bahasa.
2.8.3
Instalasi Netbeans Berikut langkah-langkah nya: 1. Double klik installer JAVA yang ada di folder E:\Skripsi Ndah\Software Pendukung\ netbeans-7.0.1-ml-windows sehingga muncul form configuring installer
Gambar 2.14 Instalasi Netbeans (1) 2. Tunggu sampai konfigurasi selesai
36
Gambar 2.15 Instalasi Netbeans (2) 3. Pilih paket program yang akan diinstall dengan cara meng Klik tombol “customize” kemudian klik “Next”.
Gambar 2.16 Instalasi Netbeans (3) 4. Beri tanda cetang pada “I accept the term in the licence agreement”. Kemudian klik “Next”.
37
Gambar 2.17 Instalasi Netbeans (4) 5. Tentukan instalasi GlashFish (sudah di set otomatis). GlashFish berguna untuk menjalankan aplikasi desktop menggunakan web browser. Perhatikan dan ingat username dan password, port, dan lokasi instalasi. Lalu klik “Next”.
Gambar 2.18 Instalasi Netbeans (5) 6. Tentukan lokasi GlashFish v3 (sudah diset otomatis). Lalu klik “Next”.
38
Gambar 2.19 Instalasi Netbeans (6) 7. Pada form summary akan ditampilkan informasi mengenai installer Netbeans IDE yang akan dilakukan. Kemudian klik “Install”.
Gambar 2.20 Instalasi Netbeans (7) 8. Tunggu sampai proses instalasi selesai.
39
Gambar 2.21 Instalasi Netbeans (8) 9. Instalasi telah sukses dilakukan. Kemudian klik “Finish”.
Gambar 2.22 Instalasi Netbeans (9)
2.9.
Pengujian Software Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat
lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean.
40
Testabilitas perangkat lunak secara sederhana adalah seberapa mudah sebuah program komputer dapat diuji. Karena pengujian sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi mudah. Kadang-kadang pemrogram bersedia melakukan hal-hal yang membantu proses pengujian, dan checklist mengenai masalahmasalah desain yang mungkin, fitur, dan lain sebagainya dapat menjadi masalah berguna dalam bernegosiasi dengan mereka. Ada beberapa parameter untuk melihat seberapa kuat proses pengujian tersebut, diantaranya adalah: 1. Operabilitas. “Semakin baik dia bekerja, semakin efisien dia dapat diuji.” 2. Observabilitas. “Apa yang anda lihat adalah apa yang anda uji.” 3. Kontrolabilitas. “Semakin baik kita dapat mengontrol perangkat lunak, semakin banyak pengujian yang dapat diotomatisasi dan dioptimalkan.” 4. Dekomposabilitas.”Dengan mengontrol ruang lingkup pengujian, kita dapat dengan lebih cepat mengisolasi masalah dan melakukan pengujian kembali secara lebih halus.” 5. Kesederhanaan. “Semakin sedikit yang diuji, semakin cepat kita mengujinya.” 6. Stabilitas. “Semakin sedikit perubahan, semakin sedikit gangguan dalam pengujian.” 7. Kemampuan untuk dapat dipahami. “Semakin banyak informasi yang kita miliki, semakin halus pengujian yang akan dilakukan.” [Pressman, 2002]
2.9.1. Black Box Testing Menurut Bambang Heriyanto (2004:569) pengujian adalah proses pemeriksaan atau evaluasi sistem atau komponen sistem secara manual atau otomatis untuk memverifikasi
41
apakah
sistem
memenuhi
kebutuhan-kebutuhan
yang
dispesifikasikan
atau
mengidentifikasi perbedaan-perbedaan antara hasil yang diharapkan dengan yang terjadi. Pengujian black box adalah pengujian aspek fundamental sistem tanpa memperhatikan struktur logika internal perangkat lunak. Metode ini digunakan untuk mengetahui apakah perangkat lunak berfungsi dengan benar. Pada pengujian black-box, kasus-kasus pengujian berdasarkan pada spesifikasi sistem. Rencana pengujian dapat dimulai sedini mungkin di proses pengembangan perangkat lunak. Pada pengujian black box, mencoba beragam masukan dan memeriksa keluaran yang dihasilkan. Teknik pengujian black box juga dapat digunakan untuk pengujian berbasis skenario, dimana isi dalam sistem mungkin tidak tersedia untuk diinspeksi tapi masukan dan keluaran yang didefinisikan dengan use case dan informasi analisis yang lain.