BAB 2 LANDASAN TEORI
2.1.
Teori - Teori Umum Database 2.1.1. Pengertian Database Menurut Connolly & Begg (2005, p. 65),
database adalah suatu
kumpulan logical data yang saling terhubung, dan deskripsi dari data, dirancang untuk mendapatkan informasi yang dibutuhkan organisasi. Menurut Elmasri & Navathe (2011, p. 4), database memiliki sifat yang harus dipatuhi : •
Database merepresentasikan beberapa aspek dari dunia nyata, terkadang disebut miniworld atau the universe of discourse (UoD). Perubahan pada miniworld tercermin dalam database.
•
Database adalah sekumpulan data yang koheren dengan makna yang melekat. Data acak yang bermacam-macam tidak dapat dengan tepat disebut sebuah database.
•
Database dirancang, dibangun, dan diisi dengan data untuk tujuan khusus. Database memiliki sekumpulan pengguna yang dimaksudkan dan beberapa aplikasi prasangka dimana diminati pengguna. Berdasarkan pengertian database yang telah disebutkan sebelumnya,
dapat disimpulkan bahwa database merupakan kumpulan logical data yang saling terhubung dan dirancang, dibangun, dan diisi dengan data untuk membantu pengguna mencapai tujuan khusus.
2.1.2. Data Store Design Process Menurut Silbermann et al (2013), Proses permodelan menghasilkan model
data,
yang
secara
kemudian
digunakan
untuk
menstrukturkan
penyimpanan data. Pada pendekatan tradisional (relasional), pengertian dari model atau skema data yang kaku dibutuhkan untuk menstrukturkan penyimpanan
data.
Semakin
tangkas
pendekatan
skema
yang kurang
memungkinkan untuk beberapa iterasi melalui proses perancangan, yang
7
8 membuatnya
semakin
mungkin
untuk
meningkatkan
struktur
tempat
penyimpanan.
Gambar 2.1. Data Store Design Process (Silbermann, Wernicke, Pospisil, & Frohme, 2013, p. 2)
2.1.3. Pengertian Database Management System (DBMS) Menurut Connolly & Begg (2005, p. 66), DBMS merupakan sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, mempertahankan, dan mengelola
akses ke database. DBMS merupakan
perangkat lunak yang berinteraksi dengan program aplikasi pengguna dengan database. Database memberikan fasilitas berikut : •
Memungkinkan pengguna untuk mendefinisikan database, biasanya melalui Data Definition Language (DDL). DDL memungkinkan pengguna untuk menentukan tipe data dan struktur dan batasan dari data yang disimpan ke database.
•
Memungkinkan pengguna unuk memasukan, memperbarui, menghapus, dan mendapatkan
kembali
data
dari
database,
biasanya
melalui
Data
Manipulation Language (DML). Memiliki repositori pusat untuk semua data
9 dan deskripsi data memungkinkan DML memberikan permintaan fasilitas umum untuk data ini, disebut query language. Query Language yang biasanya digunakan adalah Structured Query Language (SQL). •
Memberikan akses yang dapat dikelola ke database, sebagai contoh : o sistem pengamanan, yang mencegah pengguna tidak sah mengakses ke database; o sistem integritas, yang menjaga konsistensi dari data yang tersimpan; o sistem kontrol konkurensi, yang memungkinkan akses terbagi di database; o sistem kontrol pemulihan, yang menyimpan database ke status konsisten sebelumnya mengikuti kesalahan hardware dan software. o katalog yang dapat diakses pengguna, yang berisi deskripsi data dalam database. Menurut Elmasri & Navathe (2011, p. 6), terdapat fasilitas lain dari
DBMS, yaitu : •
application program mengakses database dengan cara mengirim query atau permintaan terhadap data ke DBMS.
•
query secara khusus membuat beberapa data untuk dapat didapatkan kembali
•
transaction dapat membuat beberapa data dibaca dan beberapa data ditulis dalam database. Fungsi yang lain yang diberikan oleh DBMS termasuk mempertahankan
database dan menjaganya selama periode yang lama. Protection termasuk perlindungan sistem terhadap kerusakan hardware atau software dan proteksi keamanan terhadap akses yang tidak diijinkan. Database yang besar mungkin memiliki siklus hidup selama beberapa tahun, jadi DBMS harus dapat menjaga sistem database dengan cara membuat perkembangan terhadap sistem seperti kebutuhan yang berubah setiap waktu.
2.1.3.1.
Komponen DBMS Menurut Connolly & Begg (2005, p. 68), terdapat 5 komponen
utama dari lingkungan DBMS yaitu: •
Hardware terdiri dari penyimpanan permanen, perangkat I/O, device controller, I/O Channels, hardware processor dan main memory.
•
Software,
mencakup
application
software,
Operating System, dan Software jaringan.
DBMS
software,
10 •
Data, merupakan komponen terpenting yang menghubungkan antar komponen mesin (Software dan Hardware) serta komponen manusia (procedures dan people).
•
Procedures, berhubungan dengan instruksi-instruksi dan aturan-aturan yang menentukan bagaimana perancangan dan penggunaan dari database. Prosedur tersebut meliputi: o masuk ke dalam DBMS. o menggunakan fasilitas DBMS atau aplikasi program. o memulai dan menghentikan DBMS. o membuat backup dan recovery database. o menangani kesalahan hardware dan software.
•
People, merupakan komponen yang juga terlibat dengan sistem yang meliputi: o Data Administrator (DA), mengatur sumber daya data yang meliputi perancangan database, pengembangan dan pemeliharaan standar, kebijakan, prosedur, dan perancangan konseptual dan logikal database. o Database Administrator (DBA), mengatur realisasi fisik dari aplikasi database yang meliputi perancangan fisik database, implementasi, pengaturan keamanan dan kontrol integritas, pengawasan performa sistem dan pengaturan ulang database. o Perancang database logikal dan fisikal o Programmer aplikasi, bertanggung jawab untuk membuat aplikasi database dengan menggunakan bahasa pemograman yang ada. o End Users, siapapun yang berinteraksi dengan sistem secara online melalui workstation atau terminal.
2.1.3.2.
Keuntungan dan Kerugian DBMS Menurut Connolly & Begg (2005, p. 77), terdapat keuntungan dan
kerugian DBMS, yaitu: A. Keuntungan DBMS 1. Kontrol terhadap redundansi data : pendekatan database mencoba menghapus redundansi dengan menggabungkan file-file sehingga salinan data yang sama tidak diinginkan.
11 2. Konsistensi data : database membantu menghilangkan atau mengatur redundansi. Hal ini akan mengurangi terjadinya data yang tidak konsisten. 3. Informasi lebih dari jumlah data yang sama : dengan integrasi data operasional,
hal
ini
akan
memungkinkan
perusahaan
untuk
mendapatkan tambahan informasi dari data yang sama. 4. Pembagian data : database dimiliki oleh seluruh organisasi dan dapat dibagi oleh semua user yang memiliki hak akses. Dengan demikian, banyak pengguna mampu membagi banyak data. 5. Peningkatan integritas data : integritas database menunjuk pada keabsahan dan konsistensi dari data yang disimpan. 6. Peningkatan keamanan : kemananan database adalah pelindung basis data dari user yang tidak memiliki hak akses. Tanpa keamanan yang tepat, integrasi hanya akan membuat data menjadi lebih mudah diserang. 7. Pemberlakuan standar : integrasi membolehkan DBA untuk menentukan dan menyeleggarakan standar yang diperlukan. 8. Skala ekonomi : dengan menggabungkan data operasional suatu perusahaan ke dalam satu database, dan membuat sebuah kumpulan aplikasi yang bekerja pada satu sumber data, akan dapat menghemat pengeluaran suatu perusahaan. 9. Keseimbangan terhadap kebutuhan bertentangan : setiap pengguna atau departemen memiliki kebutuhan yang berbeda akan data. Karena database berada dibawah control DBSA, maka DBA dapat membuat keputusan tentang perancangan dan operasional dari suatu database. 10. Peningkatan akses data dan responsibilitas : sebagai hasil dari integrasi, data yang melewati batas departemen dapat diakses oleh end-user. Hal ini akan menghasilkan sebuah sistem dengan fungsionalitas yang tinggi. 11. Peningkatan produktivitas : DBMS menyediakan sebuah lingkungan fourth-generation yang terdiri dari alat yang menyederhanakan pengembangan aplikasi database. Hal inilah yang dapat meningkatkan produktivitas pengembangan.
programmer
dan
juga
mengurangi
waktu
12 12. Peningkatan perbaikan melalui data yang independen : DBMS memisahkan deskripsi mengenai data dengan aplikasi. Hal ini akan membuat aplikasi bebas untuk berubah dalam deskripsi data. 13. Meningkatkan konkurensi : DBMS akan mengatur akses database secara bersamaan dan memastikan agar tidak terjadi kehilangan informasi atau integritas. 14. Peningkatan cadangan dan layanan pemulihan : DBMS menyediakan fasilitas yang dapat mengurangi proses yang akan mengalami kegagalan.
B. Kerugian DBMS 1. Kompleksitas :
ketentuan-ketentuan
dan
fungsionalitas
yang
diharapkan dari sebuah DBMS yang baik, membuat DBMS menjadi sebuah bagian dari software yang sangat rumit. 2. Ukuran : kompleksitas dan luasnya fungsionalitas yang dimiliki DBMS membuat DBMS menjadi sebuah bagian software yang besar, yang menempati banyak megabyte dari disk space dan membutuhkan ukuran memori yang besar untuk dapat berjalan dengan efisien. 3. Biaya untuk DBMS : biaya DBMS berubah-berubah secara signifikan, tergantung pada lingkungan dan fungsionalitas yang disediakan. 4. Biaya tambahan untuk hardware : kebutuhan akan tempat penyimpanan untuk DBMS dan database mengharuskan untuk membeli tempat penyimpanan tambahan. Selanjutnya untuk mencapai kinerja yang dibutuhkan, diperlukan untuk membeli alat yang lebih besar, bahkan sebuah alat khusus yang ditujukan untuk menjalankan DBMS. 5. Biaya untuk pengubahan : biaya ini termasuk biaya pelatihan staf untuk
dapat
menggunakan
sistem
yang
baru
dan
biaya
memperkerjakan spesialis staf untuk membantu dalam konversi dan menjalankan sistem. 6. Performa : DBMS secara umum berfungsi untuk memenuhi kebutuhan data dari berbagai aplikasi. Efek yang dapat ditimbulkan adalah beberapa aplikasi akan menjadi lebih lambat saat dijalankan ketika menggunakan DBMS.
13 7. Dampak yang lebih tinggi untuk kegagalan : sumber yang terpusat meningkatkan kemungkinan sistem untuk mudah terkena serangan. Karena semua pengguna dan aplikasi bergantung pada ketersediaan DBMS. Kegagalan beberapa komponen dapat menghentikan operasi.
2.1.4. Database Language 2.1.4.1.
Data Definition Language Menurut Connolly & Begg (2010, p. 188), DDL digunakan untuk
menentukan skema database dan DML digunakan untuk kedua membaca dan update database. Bahasa-bahasa ini disebut sub-languages data karena mereka tidak termasuk konstruksi untuk semua kebutuhan komputasi tingkat, seperti pernyataan kondisional atau iteratif, yang disediakan oleh bahasa pemograman tingkat tinggi.
2.1.4.2.
Data Manipulation Language Menurut Connolly & Begg (2010, p. 188), pengertian Data
Manipulation Language adalah suatu bahasa yang menyediakan seperangkat operasi untuk mendukung manipulasi data yang berada pada basis data. Pengoperasian data yang akan dimanipulasi biasanya meliputi: 1) Penambahan data baru ke dalam basis data. 2) Modifikasi data yang disimpan ke dalam basis data. 3) Pengembalian data yang terdapat di dalam basis data. 4) Penghapusan data dari basis data. Menurut Data Manipulation Language dibagi menjadi dua jenis, yaitu Procedural dan Non-Procedural. Procedural DML adalah suatu bahasa yang memperbolehkan pengguna untuk mendeskripsikan ke sistem data apa yang dibutuhkan dan bagaimana mendapatkan data tersebut secara tepat, sedangkan NonProcedural DML adalah sebuah bahasa yang mengizinkan pengguna untuk menentukan data apa yang dibutuhkan tanpa memperhatikan bagaimana data diperoleh.
14 2.1.5. Pengertian Database System Development Lifecycle (DSDLC) Menurut Connolly & Begg (2005, p. 313), untuk merancang aplikasi sistem basis data diperlukan tahapan-tahapan yang dinamakan dengan siklus hidup aplikasi basis data (DBLC).
Gambar 2.2. Database System Development Lifecycle (Connolly & Begg, 2010, p. 314)
15 2.1.5.1.
Database Planning Menurut Connolly & Begg (2005, p. 313), perencanaan basis data
(database planning) merupakan merencanakan bagaimana setiap tahapan dari siklus dapat direalisasikan menjadi lebih efisien dan efektif. Perencanaan basis data harus dapat terintegrasi dengan sistem informasi perusahaan secara umum. Beberapa hal yang terlibat dalam formula adalah strategi sistem informasi, yaitu: 1) Indentifikasi dari rencana dan tujuan perusahaan-perusahaan dengan menentukan kebutuhan sistem informasi. 2) Evaluasi sistem informasi yang sedang berjalan untuk menentukan kelebihan dan kekurangan. 3) Penilaian dari keuntungan teknologi informasi yang dapat memberi keuntungan kompetitif.
2.1.5.2.
System Definition Menurut Connolly & Begg (2005, p. 316), definisi sistem adalah
mendeskripsikan cakupan dan batasan dari aplikasi basis data, baik pengguna aplikasi tersebut. Sebelum mencoba untuk merancang aplikasi basis data, pertama-tama harus mengidentifikasi batasan dari sistem yang akan kita investigasi dan bagaimana membuat antarmuka dengan sistem informasi tiap bagian dari organisasi. Dalam mendefinisikan sistem, harus ditentukan oleh user view, yaitu mengidentifikasikan apa yang dibutuhkan oleh aplikasi basis data berdasarkan pandangan dari tiap bagian tugas (misalnya manajer atau supervisor) atau area aplikasi perusahaan (misalnya marketing, personnel, atau stock control), pemasaran, personalia, dan pengendalian persediaan.
2.1.5.3.
Requirements Collection and Analysis Menurut Connolly & Begg (2010, p. 316), analisis data dan
pengumpulan kebutuhan adalah proses mengumpulkan dan anlisis informasi tentang bagian dari organisasi yang dapat didukung leh aplikasi basis data, dan menggunakan bagian dari organisasi yang dapat didukung oleh aplikasi basis data, dan menggunakan informasi tersebut untuk mengidentifikasi kebutuhan pengguna dari sistem baru.
16 Banyak
informasi
teknik
yang
dapat
dilakukan
untuk
mengumpulkan informasi tersebut, disebut teknik-teknik yang dapat dilakukan untuk mengumpulkan informasi tersebut, disebut teknik fact finding. Informasi yang dikumpulkan untuk setiap user view, mencakup: 1) Deskripsi data yang digunakan. 2) Rincian mengenai bagaimana data dapat digunakan atau dihasilkan. 3) Kebutuhan tambahan lainnya untuk aplikasi basis data yang baru.
Informasi ini selanjutnya dianalisis untuk mengidentifikasi kebutuhan yang dapat dimasukkan ke dalam aplikasi basis data baru. Kebutuhan ini dideskripsikan ke dalam dokumen bersama sebagai requirements specifications untuk aplikasi basis data baru. Ada tiga pendekatan untuk mengelola kebutuhan dari aplikasi basis data dengan banyak user views, yaitu: 1) The centralized approach = kebutuhan dari setiap user view digabung menjadi sebuah set kebutuhan dari aplikasi basis data. 2) The view integration approach = kebutuhan dari setiap user view digunakan untuk membangun model data secara terpisah untuk merepresentasikan user view tersebut. Model data yang dihasilkan tersebut nantinya akan digabungkan pada tahapan database. 3) Kombinasi dari dua pendekatan diatas.
2.1.5.4.
Database Design Menurut Connolly & Begg (2010, p. 320), database design adalah
proses membuat perancangan basis data yang dapat mendukung pekerjaan dan tugas perusahaan. Perancangan basis data ini memiliki tiga tahapan, yaitu: A. Perancangan basis data konseptual Perancangan basis data konseptual yaitu proses membangun sebuah model informasi yang digunakan di sebuah perusahaan, terbebas dari segala pertimbangan fisik. Tahap-tahap dalam merancang basis data konseptual : 1. Mengidentifikasi tipe entitas : untuk mengidentifikasi tipe entitas yang dibutuhkan.
17 2. Mengidentifikasi tipe hubungan : untuk mengidentifikasi hubungan penting yang muncul diantara entitas yang ada. 3. Mengidentifikasi dan mengasosiasi atribut dengan entitas atau tipe hubungan : untuk mengasosiasikan atribut dengan tipe entitas atau tipe hubungan yang sesuai. 4. Menentukan batasan atribut : untuk memberikan batasan untuk atribut dalam model data konseptual. 5. Menentukan candidate, primary, dan alternate key attribute : untuk mengidentifikasi candidate key untuk setiap tipe entitas dan, jika terdiri lebih dari satu candidate key, untuk memilih satu untuk dijadikan primary key dan yang lainnya menjadi alternate key. 6. Memperhatikan penggunaan dari konsep enhanced modeling (tahap opsional) : untuk mempertimbangkan penggunaan dari konsep pemodelan yang ditingkatkan, seperti specialization / generalization, aggregation, dan composition. 7. Memastikan model untuk redundansi : untuk mengecek redundansi pada model. 8. Memvalidasi model konseptual terhadap transaksi pengguna : untuk memastikan model konseptual mendukung transaksi yang dibutuhkan. 9. Mengulas kembali model konseptual dengan pengguna : untuk mengulas kembali model data konseptual dengan pengguna untuk memastikan
bahwa
pengguna
memperhatikan
model
sebagai
perwakilan dari kebutuhan data dari perusahaan.
B. Perancangan basis data logikal Perancangan basis data logikal yaitu proses membangun sebuah model informasi yang digunakan di sebuah perusahaan berdasarkan pada sebuah mode data yang spesifik, tetapi terbatas dari DBMS tertentu dan pertimbangan-pertimbangan fisikal lainnya. Tahap-tahap dalam merancang basis data logikal : 1. Memperoleh hubungan untuk model data logikal : untuk membuat relasi untuk model data logikal untuk mewakilkan entitas, relasi, dan atribut yang telah diidentifikasi.
18 2. Memvalidasi
hubungan
menggunakan
normalisasi
:
untuk
memvalidasikan relasi pada model data logikal menggunakan normalisasi. 3. Memvalidasi hubungan terhadap transaksi pengguna : untuk memastikan bahwa relasi pada model data logikal mendukung transaksi yang dibutuhkan. 4. Mengecek batasan integritas : untuk mengecek batasan integritas diwakili pada model data logikal. 5. Mengulas kembali model data logikal dengan pengguna : untuk mengulas kembali model data logikal dengan pengguna untuk memastikan
bahwa
pengguna
memperhatikan
model
sebagai
perwakilan asli dari kebutuhan data dari perusahaan. 6. Menggabungkan model data logikal menjadi model global (tahap opsional) : untuk menggabungkan model data logikal lokal menjadi suatu model data logikal global yang mewakili tampilan pengguna dari basis data. 7. Mengecek untuk perkembangan masa depan : untuk memberikan apakah ada perubahan yang berarti yang dapat diduga dan untuk memberikan apakah model data logikal dapat mengakomodasi perubahan tersebut.
C. Perancangan basis data fisikal Perancangan basis data fisikal yaitu proses menghasilkan sebuah deskripsi dari pengimplimentasian basis data pada media penyimpanan sekunder, yang mendeskripsikan hubungan dasar, pengorganisasian file, dan indeks yang digunakan untuk memperoleh akses data secara efisien serta batasan integritas dan ukuran-ukuran keamanan yang berhubungan. Tahap-tahap dalam merancang basis data fisikal : 1. Menerjemahkan Model Data Logikal untuk target DBMS : untuk menghasilkan skema basis data relasional dari model data logikal yang dapat diimplementasi pada target DBMS. •
Merancang relasi dasar : untuk memutuskan bagaimana relasi dasar diidentifikasi pada model data logikal pada sasaran DBMS.
19 •
Merancang perwakilan dari data turunan : untuk memutuskan bagaimana mewakili data turunan ada pada model data logikal pada target DBMS.
•
Merancang batasan umum : untuk merancang batasan umum pada target DBMS.
2. Merancang file organisasi dan indeks : untuk menentukan file organisasi yang optimal untuk menyimpan relasi dasar dan indeks yang dibutuhkan untuk mencapai performa yang dapat diterima, dengan cara relasi dan tuple dapat disimpan pada tempat penyimpanan kedua. •
Menganalisa transaksi : untuk memahami fungsi dari transaksi yang akan beroperasi pada basis data dan untuk menganalisa transaksi yang penting.
•
Memilih organisasi file : untuk menentukan file organisasi yang efisien untuk setiap relasi dasar.
•
Memilih indeks : untuk menentukan apakah menambahkan indeks dapat meningkatkan performa dari sistem.
•
Mengestimasi kebutuhan ruang disk : untuk mengestimasi ukuran ruang penyimpanan yang dibutuhkan oleh basis data.
3. Merancang tampilan pengguna : untuk merancang tampilan pengguna yang diidentifikasi selama pengumpulan kebutuhan dan tahap analisis dari Database System Development Lifecycle. 4. Merancang mekanisme keamanan : untuk merancang mekanisme keamanan dari basis data seperti yang dispesifikasikan oleh pengguna selama kebutuhan dan tahap pengumpulan dari Database System Development Lifecycle. 5. Mempertimbangkan pengenalan redundansi terkontrol : untuk menentukan apakah mengenalkan redundansi secara terkendali dengan cara mengendurkan aturan normalisasi dapat meningkatkan performa dari sistem. 6. Memantau dan menyesuaikan sistem operasional : untuk memantau sistem operasional dan meningkatkan performa dari sistem untuk
20 membenarkan keputusan rancangan yang kurang sesuai atau mencerminkan perubahan kebutuhan.
Menurut Connolly & Begg (2010, p. 321), ada 4 pendekatan dalam desain basis data yaitu: 1) Top-Down Diawali dengan pembentukan model data yang berisi beberapa entitas high-level dan relationship, yang kemudian menggunakan pendekatan top-down secara berturut-turut untuk mengidentifikasi entitas lower level, relationship dan atribut lainnya. 2) Bottom-up Dimulai dari atribut dasar (yaitu, sifat-sifat entitas dan relationship), dengan analisis dari penggabungan antar atribut, yang dikelompokan ke dalam suatu relasi yang merepresentasikan tipe dari entitas dan relationship antar entitas. 3) Inside-out Berhubungan dengan pendekatan bottom-up tetapi sedikit berbeda dengan identifikasi awal entitas utama dan kemudian menyebar ke entitas, relationship, dan atribut terkait lainnya yang lebih dulu diidentifikasi. 4) Mixed Menggunakan pendekatan bottom-up dan top-down untuk bagian yang berbeda sebelum pada akhirnya digabungkan.
2.1.5.5.
DBMS Selection (optional) Menurut Connolly & Begg (2010, p. 325), pemilihan DBMS yang
sesuai untuk mendukung aplikasi basis data yang mencakup: 1) Mendefinisikan syarat-syarat referensi studi Menentukan sasaran, batasan masalah, dan tugas yang harus dilakukan. 2) Mendaftar 2 atau 3 jenis barang Membuat daftar barang-barang, misalkan dari mana barang ini didapat, berapa biayanya serta bagaimana bila ingin mendapatkannya. 3) Mengevaluasi barang
21 Barang-barang yang ada dalam daftar diteliti lebih lanjut untuk mengetahui kelebihan dan kekurangan barang tersebut. 4) Merekomendasikan pilihan dan membuat laporan Merupakan langkah terakhir dari DBMS yaitu mendokumentasikan proses dan untuk menyediakan pernyataan mengenai kesimpulan dan rekomendasi terhadap salah satu produk DBMS.
2.1.5.6.
Application Design Menurut Connolly & Begg (2010, p. 329), perancangan aplikasi
adalah merancang antarmuka pemakai (user interface) dan program aplikasi, yang akan memproses basis data. Dalam merancang aplikasi harus memastikan semua pernyataan fungsional dari spesifikasi kebutuhan pemakai (user requirement specification) yang menyangkut perancangan aplikasi program yang mengakses basis data dan merancang transaksi yaitu cara akses ke basis data dan perubahan terhadap isi basis data (retrieve, update, dan kegiatan keduanya). Artinya bagaimana fungsi yang dibutuhkan dengan cara untuk menciptakan user friendly. Kebanyakan antarmuka pemakai yang diabaikan akan niscaya membuat masalah. Terdapat 2 aspek dalam Application Design, yaitu : 1. Transaction Design Transaction adalah sebuah kegiatan, atau sekumpulan tindakan, yang dilakukan oleh seorang pengguna atau program aplikasi, yang mengakses isi dari basis data. Alasan dari merancang transaksi adalah untuk menjelaskan dan mendokumentasi karakteristik tingkat tinggi dari transaksi yang dibutuhkan pada basis data, termasuk : •
data digunakan oleh transaksi;
•
karakteristik fungsional dari transaksi;
•
hasil dari transaksi
•
kepentingan untuk pengguna
•
tingkat yang diharapkan dari penggunaan
22 Terdapat 3 tipe dari transaksi : •
Retrieval transactions : digunakan untuk mendapatkan kembali data untuk menampilkannya pada layar atau pada pelaporan.
•
Update transactions : digunakan untuk memasukan data baru, menghapus data lama, atau memodifikasi data yang ada pada basis data.
•
Mixed transactions : melibatkan retrieval dan updating dari data.
2. User Interface Design Terdapat panduan untuk merancang form atau laporan, yaitu : •
Meaningful title
•
Comprehensible instructions
•
Logical grouping and sequencing of fields
•
Visually appeling layout of the form/report
•
Familiar field labels
•
Consistent terminology adn abberviations
•
Consistent use of color
•
Visible space and boundaries for data-entry fields
•
Convenient cursor movement
•
Error correction for individual characters and entire fields
•
Error messages for unacceptable values
•
Optional values marked clearly
•
Explanatory messages for fields
•
Completion signal
2.1.5.7.
Prototyping Menurut Connolly & Begg (2010, p. 333), pengertian Prototyping
adalah membuat model kerja dari aplikasi basis data, yang membolehkan perancang atau user untuk mengevaluasi hasil akhir sistem, baik dari segi tampilan maupun fungsi yang dimiliki sistem. Tujuan utama dari mengembangkan suatu prototype adalah mengijinkan
user
untuk
menggunakan
prototype
guna
23 mengidentifikasikan corak sistem apakah bekerja dengan baik dan jika mungkin meningkatkan corak baru kepada aplikasi database. Dengan cara ini, kebutuhan dari pemakai dan pengembang sistem dalam mengevaluasi kelayakan design sistem akan semakin jelas sehingga kelebihan atau kekurangan sistem dapat ditangani dengan baik. Strategi prototyping yang umum digunakan sekarang ada dua, yaitu requirement dan evolutionary prototyping. Requirement prototyping adalah menggunakan prototype untuk menetapkan kebutuhan dari tujuan aplikasi basis data dan ketika kebutuhan sudah terpenuhi, prototype tidak digunakan lagi atau dibuang. Sedangkan evolutionary prototype menggunakan tujuan yang sama, tetapi perbedaan pentingnya adalah prototype tetap digunakan untuk selanjutnya dikembangkan menjadi aplikasi basis data yang lengkap.
2.1.5.8.
Implementation Menurut Connolly & Begg (2010, p. 333), Implementation
merupakan realisasi secara fisik dari database dan desain aplikasi. Pada tahap penyelesaian desain, dapat diterapkan basis data dan program aplikasi yang telah dibuat. Implementasi basis data menggunakan DDL yang dipilih dalam melakukan
pemilihan DBMS atau
dengan
menggunakan Graphical User Interface (GUI), yang menyediakan fungsional yang sama dengan pernyataan DDL yang low level. Pernyataan DDL digunakan untuk menciptakan struktur basis data dan mengosongkan file yang terdapat dalam basis data tersebut. Pandangan pemakai lainnya juga diimplementasikan dalam tahapan ini. Data
Manipulation
Language
(DML)
digunakan
untuk
mengimplementasikan transaksi basis data di dalam bagian aplikasi program dari sasaran DBMS, mungkin termasuk host programming language seperti, Visual basic, C, C++, Java, dan Pascal.
2.1.5.9.
Data Conversion and Loading Menurut Connolly & Begg (2010, p. 334), Data conversion and
loading adalah mencakup pengambilan data dari sistem lama untuk dipindahkan ke dalam sistem yang baru. Langkah ini diperlukan hanya
24 ketika suatu sistem basis data baru sedang menggantikan sistem yang lama. Sekarang, DBMS yang memiliki kegunaan yang dapat mengisi file yang ada ke dalam sistem yang baru telah dianggap umum, kegunaan yang ada umumnya memerlukan spesifikasi sumber file dan target basis data yang baru. Ketika conversion and loading dibutuhkan, prosesnya harus direncanakan untuk memastikan kelancaran transaksi untuk keseluruhan operasi.
2.1.5.10. Testing Menurut Connolly & Begg (2010, p. 334), testing adalah suatu proses melaksanakan program aplikasi dengan tujuan menemukan kesalahan. Sebelum diterapkan dalam suatu sistem, basis data harus dilakukan testing terlebih dahulu. Hal, ini dicapai dengan penggunaan secara hati-hati untuk merencanakan suatu test dan data yang realistis sedemikian sehingga keseluruhan proses pengujian sesuai dengan metode dan dilaksanakan sesuai aturan yang ada. Kriteria yang digunakan untuk evaluasi dari testing, yaitu : •
Learnability
•
Performance
•
Robustness
•
Recoverability
•
Adaptability
2.1.5.11. Operational Maintenanve Menurut Connolly & Begg (2010, p. 335), operational maintenance adalah proses memantau dan memelihara sistem setelah dipasang. Pada tahapan sebelumnya, basis data benar-benar diuji dan diimplementasikan. Sekarang sistem beralih ke tahapan pemeliharaan. Yang termasuk aktifitas dari tahapan ini adalah sebagai berikut: 1) Memantau kinerja dari sistem. Jika kinerjanya menurun dibawah level yang dapat diterima, mungkin basis data perlu diorganisasi. 2) Pemeliharaan dan upgrade aplikasi basis data (jika diperlukan). Ketika basis data sepenuhnya bekerja, pemantauan harus memastikan kinerjanya dapat berada dalam tingkat yang diterima. Sebuah
25 DBMS biasanya menyediakan berbagai kegunaan (utilities) untuk membantu administrasi basis data termasuk kegunaan untuk mengisi data ke dalam basis data dan untuk memberikan informasi seperti pemakaian basis data dan strategi eksekusi query. Database administrator dapat menggunakan informasi ini untuk memperbaiki sistem agar dapat memberikan kinerja yang lebih baik.
2.1.6. Entity-Relationship Modeling Menurut Connolly & Begg (2010, p. 371), entity-relationship modeling merupakan permodelan yang berguna untuk memberikan pemahaman yang tepat terhadap data dan penggunaannya di dalam suatu perusahaan. Model ini menggunakan pendekatan top-down dalam perancangan basis data yang di mulai dengan mengidentifikasikan data penting yang disebut entity dan relasi antar data yang akan direpresentasikan ke dalam model. Kemudian ditambahkan detaildetail lebih seperti informasi yang akan dicari mengenai entities dan relationship yang disebut dengan atribut dan constraints pada entity, atribut, dan relationship.
2.1.6.1.
Entity Type Menurut Connolly & Begg (2010, p. 372), entity type merupakan
sekumpulan objek di dunia yang memiliki property yang sama. Entity direpresentasikan dalam bentuk diagram berupa persegi panjang berlabel nama dari entity.
2.1.6.2.
Relationship Types Menurut Connolly & Begg (2010, p. 372), relationship types
merupakan suatu hubungan antar entity types. Relationship Types direpresentasikan dalam bentuk diagram berubah garis lurus yang menghubungkan dua buat entity types, ditandai dengan nama dari relasi tersebut. Pada umumnya, relasi dinamai dengan kata kerja. Menurut Connolly & Begg (2010, p. 376), dalam relationship types terdapat degree of relationship type. Degree of relationship type merupakan jumlah tipe entitas yang terkait dalam relationship. Entitas yang terkait dalam relationship disebut dengan participants. Jadi, degree dari suatu relationship menunjukkan banyaknya entitas yang tergabung dalam suatu relationship.
26 2.1.6.3. Attributes Menurut Connolly & Begg (2010, p. 379), atribute adalah property suatu entitas atau jenis relasi. atribut domain adalah himpunan nilai yang diperbolehkan untuk satu atau lebih atribut. Atribut dapat diklasifikasikan menjadi lima, yaitu: 1) Simple Attribute Simple attribute adalah sebuah atribut yang terdiri dari komponen tunggal yang mempunyai keberadaan bebas dan tidak dapat dibagi menjadi bagian yang lebih kecil dikenal dengan nama atomic attribute. 2) Composite Attribute Composite attribute adalah atribut yang terdiri dari beberapa komponen,
dimana
masing-masing
komponen
mempunyai
keberadaan yang bebas. 3) Single-valued Attribute Single-valued attribute adalah atribut yang mempunyai nilai tunggal untuk setiap kejadian dari tipe entity. 4) Multi-valued Attribute Multi-valued attribute adalah atribut yang mempunyai beberapa nilai untuk setiap kejadian dari tipe entity. 5) Derived Attribute Derived attribute adalah atribut yang memiliki nilai yang dihasilkan dari satu atau sekelompok atribut yang berhubungan, dan tidak harus berasal dari satu entitas.
2.1.6.4.
Key Menurut Connolly & Begg (2010, p. 381), key adalah sebuah field
yang digunakan untuk mengidentifikasi satu atribut atau lebih secara unik mengidentifikasi setiap record. Key yang sering digunakan yaitu: 1) Candidate key, merupakan kumpulan minimal dari atribut-atribut yang secara unik mengidentifikasikan suatu entity. 2) Primary Key merupakan candidate key yang dipilih untuk secara unik mengidentifikasikan suatu entity.
27 3) Composite Key merupakan candidate key yang terdiri atas dua atau lebih atribut. 4) Alternate Key merupakan candidate key yang tidak terpilih menjadi primary key, atau biasa disebut dengan secondary key. 5) Foreign Key merupakan sebuah primary key pada sebuah entitas yang digunakan pada entitas lainnya untuk mengidentifikasi sebuah entity.
2.1.6.5.
Structural Constraints Menurut Connolly & Begg (2010, p. 385), memeriksa batasan tipe
entitas yang mempunyai kesamaan dalam relationship. Multiplicity adalah jumlah atau range dari terjadinya yang mungkin dari suatu entity yang mungkin berhubungan dengan kejadian tunggal dari jenis entitas yang terkait melalui suatu hubungan tertentu. Hubungan Structural Constraints dibagi menjadi 3 jenis, yaitu: 1) Hubungan One-to-One (1:1) adalah hubungan antara entitas yang satu dengan entitas lain mempunyai relasi hubungan satu entitas. 2) Hubungan One-to-Many (1:*) adalah hubungan antara entitas pertama yang mempunyai banyak relasi dengan entitas kedua yang mempunyai relasi satu entitas. 3) Hubungan Many-to-Many (*:*) adalah hubungan antara entitas pertama yang mempunyai relasi banyak dengan entitas kedua. Cardinality adalah menjelaskan jumlah maksimum hubungan terjadinya yang mungkin untuk suatu entitas yang berpartisipasi dalam jenis hubungan tertentu. Participation adalah menentukan semua atau hanya beberapa terjadinya entitas berpartisipasi dalam hubungan.
2.1.6.6.
Normalization Menurut Connolly & Begg (2010, p. 415), Normalisasi adalah
sebuah teknik untuk menghasilkan sekelompok relasi atau hubungan dengan properti-properti yang diinginkan, yang memberikan kebutuhan data dari suatu perusahaan dan perancangan database harus memenuhi kondisi untuk tidak mengandung anomali, yaitu suatu kejanggalan dari penempatan atribut tertentu dari suatu objek data. Untuk membedakan
28 satu record dengan yang lainnya maka perlu dipilih atribut atau kombinasi atribut sebagai kunci primer (primary key). Tujuan pembuatan normalisasi adalah: 1) membuat kemungkinan terjadinya data rangkap menjadi minimal. 2) menghindarkan adanya data yang tidak konsisten terutama bila terjadi penambahan, penghapusan data sebagai akibat adanya data rangkap. 3) menjamin bahwa identitas tabel secara tunggal sebagai determinan semua atribut.
2.1.6.6.1. First Normal Form (1NF) Aturan normalisasi pertama (1NF) dapat dikatakan bahwa sebuah relasi dimana setiap baris dan kolom hanya berisi satu nilai. suatu data dikatakan unnormalized (UNF). Jika di dalamnya mengandung kelompok yang berulang (redundancy group), sehingga untuk membentuk normalisasi pertama, pengelompokan harus dihilangkan. Nilai dari setiap atribut adalah tunggal. Kondisi ini dapat diperoleh dengan melakukan eliminasi terjadinya data ganda (redundancy data). Namun pada kondisi pertama ini kemungkinan masih terjadi adanya data rangkap.
2.1.6.6.2. Second Normal Form (2NF) Aturan normalisasi kedua (2NF) dapat dikatakan bahwa sebuah relasi dalam bentuk normal pertama dan atribut bukan primary key yang tergantung secara fungsional kepada primary key. Pengujian bentuk normal kedua dapat dihasilkan dengan melihat apakah ada atribut bukan primary key yang merupakan fungsi dari sebagian primary key.
2.1.6.6.3. Third Normal Form (3NF) Aturan normalisasi ketiga (3NF) adalah sebuah relasi dalam bentuk normal pertama dan kedua dan setiap atribut yang bukan primary key yang bergantung secara transitif kepada primary key. Pengujian terhadap 3NF dilakukan dengan cara melihat apakah terdapat atribut yang bukan key tergantung fungsional terhadap atribut bukan key lainnya. Dengan cara yang sama, maka setiap
29 ketergantungan transitif dipisahkan. 3NF sudah cukup baik dalam arti anomali yang dikandungnya sudah sedemikian minimum.
2.1.6.6.4.
Boyce Codd Normal Form (BCNF)
Suatu relasi disebut memenuhi BCNF dan hanya jika setiap determinan yang ada pada relasi tersebut adalah candidate key. Untuk normalisasi ke bentuk BCNF, maka tabel 3NF didekomposis menjadi beberapa tabel yang masing-masing memenuhi BCNF. Tujuan membentuk BCNF: 1) Semantik multiple candidate key menjadi lebih eksplisit (FD hanya pada candidate key). 2) Menghindari update anomali yang masih mungkin terjadi pada 3NF. Dari definisi 3NF dan BCNF, maka apabila suatu relasi memenuhi BCNF pasti memenuhi 3NF, tetapi belum tentu sebaliknya.
2.1.7. Database Security Menurut Connolly & Begg (2010, p. 568), Keamanan basis data adalah mekanisme yang melindungi basis data terhadap ancaman yang secara sengaja maupun tidak sengaja. Situasi yang diperhatikan yang berhubungan dengan keamanan basis data adalah : •
pencurian dan penipuan
•
hilangnya kerahasiaan
•
hilangnya privasi
•
hilangnya integritas
•
hilangnya ketersediaan Tipe penanggulangan (countermeasures) terhadap ancaman dari sistem
komputer terbentang dari pengendalian fisik hingga prosedur administrasi. Sistem keamanan berbasis pada komputer untuk lingkungan multi-user : •
Authorization Otorisasi adalah pemberian ijin terhadap hak istimewa yang memungkinkan subyek untuk mengakses legitimasi kepada sistem atau obyek sistem. Proses otorisasi melibatkan otentikasi dari subyek yang meminta akses pada suatu
30 obyek. Otentikasi adalah mekanisme yang menentukan apakah hak akses pengguna tersebut. •
Access Controls Cara paling umum untuk memberikan akses kendali terhadap sistem basis data adalah berdasarkan pada memberikan dan mencabut hak istimewa. Hak istimewa (privilege) memungkinkan pengguna untuk membuat atau mengakses (membaca, menulis, atau memodifikasi) beberapa obyek basis data (relasi, view, indeks) atau untuk menjalankan keperluan DBMS tertentu. o DAC (Discretionary Access Control) merupakan pendekatan untuk memberikan hak istimewa menggunakan perintah GRANT dan REVOKE. Perintah GRANT memberikan hak istimewa kepada pengguna, dan perintah REVOKE mencabuk hak istimewa dari pengguna. o MAC (Mandatory Access Control) berdasarkan pada kebijakan luas sistem yang tidak dapat diubah oleh pengguna individu. Model yang paling populer dari MAC disebut sebagai Bell-LaPadula model yang menjelaskan istilah dari obyek, kelas keamanan, dan izin.
•
Views Sebuah tampilan adalah hasil dinamis dari satu atau lebih operasi relasional yang mengoperasikan pada relasi dasar untuk menghasilkan relasi lainnya. Sebuah Tampilan adalah relasi virtual yang tidak ada pada basis data, tetapi tetap dihasilkan berdasarkan pada permintaan oleh pengguna. Mekanisme tampilan memberikan mekanisme keamanan yang kuat dan fleksibel dengan cara menyembunyikan bagian dari basis data dari beberapa pengguna.
•
Backup and recovery Backup adalah proses mengambil tiruan dari basis data dan log file secara berkala pada media penyimpanan offline. Journaling adalah proses untuk menyimpan dan menjaga log file dari semua perubahan yang dibuat pada basis data untuk memungkinkan pemulihan untuk dilakukan secara efektif pada suatu kesalahan.
•
Integrity Batasan integritas juga mengkontribusikan untuk menjaga sistem basis data yang terlindungi dengan cara menjaga data menjadi tidak benar, dan karenanya memberikan hasil yang salah.
31 •
Encryption Enkripsi adalah pengkodean dari data oleh algoritma yang spesial yang membuat data menjadi tidak dapat dibaca oleh program manapun tanpa kunci dekripsi. Untuk mengirimkan data secara aman pada jaringan yang tidak aman membutuhkan cryptosystem, yang termasuk : o kunci enkripsi untuk mengenkripsikan data; o algoritma enkripsi, dengan kunci enkripsi, mengubah tulisan biasa menjadi chipertext; o kunci dekripsi untuk mendekripsikan chipertext; o algoritma dekripsi, dengan kunci dekripsi, mengubah chipertext menjadi tulisan biasa.
•
RAID (Redundant Array of Independent Disks) Technology RAID bekerja pada sebuah array disket yang besar yang terdiri dari pengaturan dari beberapa disket yang terkelola untuk meningkatkan keandalan dan pada waktu yang sama meningkatkan performa. Performa ditingkatkan melalui penggarisan data. Penggarisan meningkatkan performas I/O keseluruhan dengan cara memungkinkan beberapa I/O untuk dilayani secara paralel. Keandalan ditingkatkan melalui penyimpanan informasi redundan yang terdapat pada disket menggunakan skema keseimbangan atau skema pengkoreksi kesalahan.
32
2.1.8. DBMSs and Web Security Menurut Connolly & Begg (2010, p. 587), Internet merupakan jaringan yang terbuka. Tantangannya adalah untuk mengirim dan menerima informasi melalui Internet dan juga memastikan bahwa : •
ini tidak dapat diakses oleh siapapun kecuali pengirim dan penerima (privasi);
•
ini tidak dirubah selama pengiriman (integritas);
•
penerima dapat yakin bahwa ini datang dari pengirim (keaslian);
•
pengirim dapat yakin bahwa penerima tersebut murni (bukan pabrik);
•
pengirim tidak dapat menolak bahwa orang tersebut yang mengirim (tidak ada penolakan). Isi yang dapat dilaksanakan dapat melakukan aksi jahat, dan pengukuran perlu dilakukan untuk menjaganya :
•
data rusak atau status pelaksanaan dari program;
•
memformat disket yang lengkap;
•
menampilkan keseluruhan sistem shutdown;
•
mengumpulkan dan mengunduh data rahasia, seperti file atau password, pada situs lainnya;
•
merebut identitas dan menirukan pengguna atau komputer pengguna untuk menyerang target lain dalam jaringan;
•
mengunci sumber daya membuatnya menjadi tidak tersedia untuk pengguna dan program yang sah;
•
penyebab tidak fatal namun efek yang tidak diinginkan, terutama pada perangkat output.
2.1.8.1.
Proxy Servers Proxy server adalah komputer yang berada diantara browser
website dan server website. Ini menyadap semua permintaan pada server web untuk menentukan apakah itu dapat memenuhi permintaannya sendiri. Jika tidak, maka akan dilanjutkan permintaannya kepada server web. Proxy Server memiliki 2 tujuan inti yaitu improve performance dan filter requests.
33
2.1.8.2.
Firewalls Firewall adalah sistem yang dirancang untuk mencegah yang tidak
terotoritasi mengakses ke atau dari jaringan pribadi. Terdapat beberapa tipe teknik dari firewall : •
Packet filter : yang terlihat pada setiap paket yang masuk atau keluar dari jaringan komputer dan menerima atau menolak berdasarkan pada aturan yang disebutkan oleh pengguna.
•
Application gateway : yang menerapkan mekanisme keamanan pada aplikasi khusus seperti FTP dan server Telnet.
•
Circuit-level gateway : yang menerapkan mekanisme keamanan ketika koneksi TCP atau UDP (User Datagram Protocol) dibangun.
•
Proxy server : yang menghadang semua pesan masuk dan keluar dari jaringan.
2.1.8.3.
Message Digest Algorithms and Digital Signatures Sebuah algoritma pesan yang dicerna membuat ukuran string yang
semena-mena dan mengenerasikan string dengan panjang yang tetap. Karakteristik dari pencernaan : •
Ini seharusnya komputasi tidak layak untuk menemukan pesan yang lain yang akan mengenerasikan dengan pencernaan yang sama;
•
Pencernaan tidak menunjukkan apapun mengenain pesan tersebut. Penandaan digital terdiri dari 2 informasi : string dari bits yang
dihitung dari data yang telah ditandakan bersama dengan kunci privasi dari individu atau organisasi yang mengharapkan penandaan ini. Penandaan digital memiliki properti yang berguna : •
Keaslian dapat diverifikasi, menggunakan komputasi berdasarkan pada sesuai kunci publik;
•
Tidak dapat ditiru (mengasumsikan bahwa kunci privasi tetap rahasia);
•
Ini adalah fungsi dari data yang ditandakan dan tidak dapat diklaim sebagai tanda untuk data lainnya;
•
Data yang ditandakan tidak dapat diubah; terkecuali, tanda yang tidak akan lagi memverifikasi data sebagai asli.
34
2.1.8.4.
Digital Certificates Sertifikat digital adalah lampiran kepada pesan elektronik yang
digunakan
untuk
tujuan
keamanan,
yang
paling
sering
untuk
memverifikasi pengguna yang mengirim pesan adalah dia yang mengklaim
dan
memberikan
penerima
dengan
maksud
untuk
menyandikan balasan.
2.1.8.5.
Kerberos Kerberos adalah server dari username dan password yang dijaga.
Kepentingan dari Kerberos adalah itu dapat memberikan server keamanan terpusat untuk semua data dan sumber daya pada jaringan.
2.1.8.6.
Secure Sockets Layer and Secure HTTP Dasarnya, protokol ini memungkinkan browser dan server untuk
mengotentikasi satu dan yang lainnya dan menjaga informasi yang kemudian mengalir diantaranya. Dengan melalui penggunaan teknik kriptografis seperti enkripsi, dan penandaan digital, protokol ini : •
memungkinkan browser dan server website untuk mengotentikasi satu sama lain;
•
mengijinkan situs website pemilik untuk mengendalikan akses kepada server tertentu, direktori, files, atau layanan;
•
memungkinkan informasi sensitif untuk dibagikan diantara browser dan server, namun tetap tidak dapat diakses oleh pihak ketiga;
•
memastikan penukaran data diantara browser dan server tetap handal, yaitu, tidak dapat dirusak secara tidak sengaja maupun sengaja, tanpa terdeteksi.
2.1.8.7.
Secure Electronic Transactions and Secure Transaction Technology Protokol penjagaan transaksi elektronik terbuka, dapat bekerja
dalam standar untuk memproses transaksi kartu kredit pada Internet. Tujuan dari SET adalah untuk memungkinkan transaksi kartu kredit semakin simpel dan aman pada internet seperti mereka pada toko eceran.
35 Protokol penjagaan teknologi transaksi dirancang untuk menangani keamanan pembayaran bank pada internet. 2.1.8.8. Java Security Keamanan dan penjagaan adalah bagian internal dari perancangan Java, dengan 'sandbox' memastikan bahwa yang tidak dipercaya, yang kemungkinan jahat, aplikasi tidak dapat mengakses kepada sumber daya sistem. Untuk mengimplementasi sandbox, 3 komponen yang digunakan yaitu pemuat kelas, pemeriksa kode byte, dan manager keamanan. •
a class loader : membutuhkan kelas dan mengeceknya dengan format yang benar, mengecek aplikasi tidak melanggar keamanan sistem dengan cara menyediakan ruang penamaan.
•
a bytecode verifier : pemeriksa mengasumsi bahwa semua kode memiliki maksud untuk merusak keamanan sistem dan melakukan sekumpulan pemeriksaan, termasuk pelaksanaan teorema prover, untuk memastikan bahwa ini bukan kasusnya. Pengecekan termasuk memverifikasi bahwa : o kode yang disusun adalah dengan format yang benar; o tumpukan internal tidak akan melebihi atau kekurangan; o tidak ada konversi data ilegal yang akan terjadi o instruksi kode byte adalah diketik dengan benar; o semua akses anggota kelas adalah benar.
•
a security manager : melakukan verifikasi langsung dari metode yang berbahaya, yaitu metode yang meminta I/O, akses jaringan, atau permintaan untuk mengakses pemuat kelas yang baru. Download applet menjaga dari : o membaca dan menulis file pada sistem file klien. Ini juga menjaga applet untuk menyimpan data tetap pada sisi klien, walaupun data dapat dikirm kembali kepada host untuk penyimpanan; o membuat koneksi jaringan pada mesin lain dari host yang memberikan file kompilasi '.class'. Ini antara host dimana asal halaman HTML, atau host yang ditentukan pada parameter CODEBASE
pada
tag
applet,
didahulukan; o memulai program pada sisi klien;
dengan
CODEBASE
yang
36 o memuat library; o mendefinisikan panggilan metode. Memungkinkan applet untuk mendefinisikan pemanggilan metode asli akan memberikan applet akses langsung kepada sistem operasi pokok.
2.1.9. Database Integrity and Database Security Menurut Davis (2010), keamanan berarti menjaga agar data aman dan integritas berarti menjaga agar data tetap akurat, konsisten, dan benar. Beberapa hal untuk penjagaan data adalah : •
Data Encryption Ini mengacu pada data yang dibuat menjadi tidak dapat dibaca oleh siapapun yang tidak memiliki kunci dekripsi yang benar.
•
Firewall Firewall merupakan alat atau sistem perangkat lunak yang digunakan untuk menghadang akses yang tidak diijinkan kepada komputer, jaringan komputer, atau intranet.
•
Anti-virus software Tipe perangkat lunak ini membantu menjaga, mendeteksi, dan menghapus program atau kode jahat dari komputer. Ini juga dapat membantu untuk menghilangkan adware (perangkat lunak yang secara otomatis memulai atau mengunduh iklan) dan spyware (kode yang memasang sendiri pada komputer dan mengumpulkan informasi tentang pengguna tanpa pengetahuannya).
•
Database backups Backup adalah tiruan dari basis data. Ini harus dilakukan sering dan pada interval waktu, setidaknya pada jam malam. Pada suatu kejadian kegagalan perlengkapan atau beberapa kerusakan data, harus dapat memperbaiki basis data yang utuh seperti yang terakhir di backup. Mengingat untuk menjaga file backup data di lokasi yang aman dan terjaga. Ini merupakan tindakan yang terbaik untuk menyimpan data anda pada tempat yang terpisah dari sumber data aktual untuk menjaga dalam keadaan yang tidak dapat diperkirakan seperti pencurian, kebakaran, atau banjir.
•
Password protection Ini penting untuk membuat password yang kuat untuk komputer dan perangkat lunak basis data. Pastikan untuk memilih basis data yang
37 membutuhkan keamanan login. Password yang kuat merupakan satu hal yang sulit untuk ditebak dan harus termasuk karakter spesial seperti tanda seru atau tanda titik, angka, dan paduan dari huruf besar dan huruf kecil. Password harus disertakan tidak hanya pada saat anda menghidupkan komputer, tetapi juga komputer sedang tidak aktif dalam jangka waktu yang cukup lama. Perangkat lunak basis data harus dapat memantau upaya login yang gagal dan dengan siap memberikan dengan kunci ini sehingga dapat menentukan jika seorang yang tidak diijinkan sedang mencoba mengakses data. •
Log off Ketika meninggalkan tempat kerja, jangan pernah tetap masuk kepada komputer. Kapanpun hendak meninggalkan komputer, dengan waktu yang sedikit, harus keluar dari perangkat lunak basis data. Ketika meninggalkan kantor, harus menutup atau mengunci komputer sehingga yang lain tidak dapat mengakses apapun dari komputer atau jaringan menggunakan mandat tersebut.
•
Limit access Semua pengguna harus memiliki keunikan user id dan password untuk mengakses basis data. Basis data yang baik akan memungkinkan untuk melihat jejak pemeriksaan terhadap apa yang dilakukan pengguna pada basis data. Ketika pekerja meninggalkan pekerjaannya, dengan segera mencabut semua akses pada basis data dan jaringan komputer pada orgranisasi. Perlu juga mengganti password yang dibagi kepada pekerja tersebut. Akses pada fungsi basis data dan data tertentu harus dibatasi kepada apa yang dibutuhkan pengguna terhadap pekerjaannya. Melihat basis data yang memberikan peran dan hak berdasarkan pada keamanan.
•
PCI Compliance PCI DSS (Payment Card Industry Data Security Standard) untuk tidak menyimpan sepenuhnya nomor kartu kredit. Data sensitif harus dienkripsi dan mengakses pada informasi harus dijaga secara tertutup. Ini untuk menjaga dari kewajiban dan untuk menjaga informasi.
•
Physical Security Penjagaan secara fisik harus dilakukan sama seperti penjagaan digital.
38 •
Logical Security Semua koneksi pada server harus menggunakan keamanan dan protokol enkripsi seperti HTTPS.
2.1.10. Classical Attacks Menurut Burtescu (2009, p. 450), Fokus penyerangan pada basis data perusahaan dimotivasikan oleh faktor berikut : •
Basis data merupakan informasi masal yang perusahaan gunakan untuk bekerja;
•
Basis data dapat mengungkapkan data privasi dengan cara memproses data publik. Untuk memastikan keamanan dari basis data, kebutuhan-kebutuhan
berikut harus dipenuhi : •
Integritas fisikal dari basis data;
•
Integritas logikal dari basis data;
•
Integritas dari setiap elemen yang dibuat dari basis data;
•
Akses kontrol;
•
Identifikasi pengguna;
•
Ketersediaan. Integritas fisikal dan logikal dari basis data akan membutuhkan fokus dari
upaya untuk mempertahankan integritas fisikal dari basis data, terutama pencatatan terhadap pengrusakan. Integritas dari setiap elemen membentuk basis data akan mengasumsikan bahwa nilai dari setiap bidang dapat dicatat atau diganti oleh hanya pengguna yang diberikan otorisasi dan hanya jika terdapat nilai yang benar. Akses
kontrol
diselesaikan
dengan
pertimbangan
batasan
oleh
administrator basis data. DBMS akan menerapkan peraturan keamanan dari administrator basis data. Berikut adalah kebutuhan yang perlu dipenuhi : •
Keamanan server melibatkan membatasi akses terhadap penyimpanan data dari server. Ini merupakan opsi yang paling penting yang harus dipertimbangkan dan direncanakan sebaik-baiknya.
•
Koneksi terhadap basis data yaitu mengecek bahwa setiap koneksi mengkorespondensikan pada satu pengguna yang memiliki akses pada data.
39 •
Tabel akses kontrol merupakan bentuk yang paling umum dari keamanan basis data. Penggunaan yang tepat dari tabel akses kontrol melibatkan kolaborasi dekat antara administrator dan pembuat awal.
•
Tabel pembatasan akan termasuk daftar dari subyek yang tidak pasti yang dapat dibuka dari setiap sesi. Alamat IP yang aman. Beberapa server harus dikonfigurasikan untuk
menerima hanya pertanyaan dari sejumlah besar yang terdapat pada daftar. Server Oracle mengizinkan pertanyaan yang ditutup yang tidak terlibat dalam basis data. Pembatalan dari akun server. Kemampuan untuk menangguhkan akun ketika mencoba menebak password setelah sejumlah upaya ditentukan. Alat khusus. Program spesial seperti Real Secure dari ISS yang akan memberitahukan ketika upaya intrusi. Oracle memiliki sekumpulan metode otentikasi : Kerberos security; Virtual private database; Rule-based security; Grant-execute security; Authentication servers; Port access security. Identifikasi pengguna akan mengizinkan pada waktu yang telah diketahui yang melakukan apapun pada sistem. Semua operasi dilakukan oleh pengguna akan disimpan dan akan membentuk riwayat akses. Ketersediaan akan mengizinkan kebutuhan data untuk tersedia kepada pengguna yang terotorisasi.
2.1.11. Data Flow Diagram (DFD) Menurut Whitten & Bentley (2007, p. 317), Data Flow Diagram adalah model proses yang digunakan untuk menggambarkan aliran data melalui sistem dan kerja atau pengolahan yang dilakukan oleh sistem. Diagram ini mempunyai simbol-simbol yang dapat mengungkapkan komponen-komponen dasar dari proses dan aliran sistem. Beberapa pengertian simbol yang digunakan di dalam DFD, adalah : •
Process = kerja yang dilakukan oleh sistem dalam menanggapi arus data yang masuk atau kondisi.
40
Gambar 2.3 : Simbol Process (Sumber : Whitten & Bentley (2007)) •
External Agents = orang luar, unit organisasi, sistem, atau organisasi luar yang berinteraksi dengan sistem.
Gambar 2.4 : Simbol External Agents (Sumber : Whitten & Bentley (2007)) •
Data Stores = penyimpanan data yang ditujukan untuk penggunaan selanjutnya. Sinonimnya adalah file dan database.
Gambar 2.5 : Simbol Data Stores (Sumber : Whitten & Bentley (2007)) •
Data Flow = input data ke proses atau output data (atau informasi) dari proses. Data flow juga digunakan untuk menunjukan pembuatan, pembacaan, penghapusan atau pembaruan data dalam file atau database.
Gambar 2.6 : Simbol Data Flow (Sumber : Whitten & Bentley (2007))
41
2.2.
Teori Khusus 2.2.1. Definisi Financial Planning Menurut Keown et all (2008), definisi dari perencanaan finansial adalah pendekatan sistematik yang dimana seorang perencana finansial membantu pelanggannya untuk memaksimalkan sumber daya finansialnya dengan cara memanfaatkan alat finansial untuk mencapai tujuan finansialnya. Terdapat 3 komponen utama yaitu : •
Financial Resources (FR).
•
Financial Tools (FT).
•
Financial Goals (FG). Terdapat 6 tahap dalam proses perencanaan keuangan, yaitu :
•
Setting Financial Goals : Seorang perencana keuangan harus menjelaskan dan
mendokumentasi
layanan
yang
diberikan
pada
investor
dan
mendefinisikan tanggung jawabnya selama perjanjian perencanaan keuangan. •
Gathering Relevant Data : Seorang perencana keuangan harus menanyakan informasi mengenai situasi keuangan. Investor dan perencana keuangan harus mendefinisikan tujuan keuangan, mengerti kurun waktu untuk hasil dan mendiskusikannya, jika relevan, harus mengetahui perasaan investor mengenai resiko. Seorang perencana keuangan harus mengumpulkan semua dokumen yang diperlukan sebelum memberikan saran pada investor.
•
Data Analysis : Seorang perencana keuangan harus menganalisis informasi untuk mendapatkan situasi yang sedang terjadi dan memberikan apa yang harus dilakukan investor untuk mencapai tujuannya. Tergantung pada layanan apa yang investor minta, ini dapat termasuk menganalisa aset, pengeluaran dan arus kas, perlindungan asuransi, investasi atau strategi pajak.
•
Recommendation of Financial Plan : Seorang perencana keuangan harus memberikan rekomendasi perencanaan keuangan yang memberikan tujuan, bergantung pada informasi yang diberikan investor. Perencana keuangan harus membujuk rekomendasi kepada investor untuk membantu investor memahaminya sehingga dapat memilih keputusan. Perencana harus mendengarkan kecemasan dan merevisi rekomendasi.
42 •
Implementation of Financial Plant : Investor dan perencana keuangan harus setuju terhadap rekomendasi yang akan digunakan. Perencana keuangan memang yang memberikan rekomendasi, mengkoordinasikan proses dengan investor dan profesional lainnya.
•
Monitoring of Financial Plan : Investor dan perencana keuangan harus setuju terhadap siapa yang mengawasi kemajuan dengan tujuan. Jika seorang perencana
keuangan
mengawasi
proses,
perencan
keuangan
harus
melaporkan kepada investor secara periodik untuk mengulas kembali situasi dan memberikan rekomendasi.
2.3.
Theori Khusus Menurut FPSB Indonesia Menurut FPSB Indonesia (2006), definisi dari perencanaan keuangan adalah
proses untuk mencapai tujuan hidup seseorang melalui pengelolaan keuangan secara ter-integrasi dan terencana. Yang termasuk dalam tujuan hidup seseorang antara lain : menyiapkan dana pendidikan bagi anak, menyiapkan dana hari tua bagi diri dan pasangan hidup, menyiapkan dana untuk memiliki rumah, menyiapkan warisan bagi keluarga tercinta, menyiapkan dana untuk beribadah haji dan lain-lainnya. Perencanaan keuangan melibatkan 6 area perencanaan keuangan, yaitu : 1. Pengelolaan keuangan (mengelola penghasilan dan pengeluaran, mengelola harta dan hutang). 2. Manajemen risiko dan perencanaan asuransi. 3. Perencanaan investasi. 4. Perencanaan hari tua. 5. Perencanaan pajak. 6. Perencanaan harta waris.
Profesi atau praktisi perencanaan keuangan bisa terdiri dari para profesi atau praktisi yang menggunakan proses perencanaan keuangan seperti berikut : 1. Financial Planner. 2. Independent Financial Planner. 3. Independent Financial Advisor. 4. Investment Advisor. 5. Wealth Manager. 6. Wealth Planner.
43 7. Agen asuransi. 8. Financial Advisor.