BAB 2 Tinjauan Pustaka
2.1 Teori yang berkaitan dengan Database 2.1.1 Basis Data Basis data adalah kumpulan data logis yang saling berhubungan, yang mendeskipsikan data tersebut, yang dirancang untuk memenuhi kebutuhan informasi suatu organisasi (Connolly & Begg, 2010, p. 65). 2.1.2 Database System Development Lifecycle Tahapan penerapan database system development lifecycle (Connolly & Begg, 2010, pp. 313-336) :
Gambar 2. 1 Tahapan dari Database System Development Lifecycle Sumber (Connolly & Begg, 2010, p. 314) 7
8 2.1.2.1 Database Planning Perencanaan basis data adalah aktivitas manajemen yang memungkinkan tahapan-tahapan dari database system development lifecycle untuk direalisasikan secara efesien dan seefektif mungkin. Terdapat 3 masalah utama yang terlibat di dalam perumusan IS (Information System): 1) Mengidentifikasikan rencana dan tujuan perusahaan dengan penentuan selanjutnya dari kebutuhan IS. 2) Evaluasi IS saat ini untuk menentukan kelebihan dan kekurangan yang ada. 3) Penilaian kesempatan IT yang mungkin menghasilan keunggulan kompetitif.
2.1.2.2 System Definition Defenisi sistem menggambarkan ruang lingkup dan batasan dari sistem basis data serta pandangan utama user. User view mendefenisikan apa yang dibutuhkan sistem basis data dari sudut pandang sebuah peran kerja tertentu(seperti: manager atau supervisor) atau area aplikasi perusahaan(seperti: marketing, personnel, atau stock control).
2.1.2.3 Requirements collection and Analysis Pengumpulan
dan
analisis
kebutuhan
adalah
proses
mengumpulkan dan menganalisis informasi mengenai bagian dari organisasi yang didukung oleh sistem basis data, dan informasi ini digunakan untuk mengidentifikasi kebutuhan untuk sistem baru. Untuk mengumpulkan dan menganalisis informasi digunakan banyak teknik yang disebut fact-finding techniques. Informasi yang dikumpulkan untuk setiap pandangan utama user, diantaranya: 1). Deskripsi data yang digunakan atau dihasilkan. 2). Rincian bagaimana data digunakan atau dihasilkan. 3). Penambahan kebutuhan apapun untuk sistem basis data baru. Dalam
penulisan skripsi ini kami menggunakan beberapa
proses pengumpulan dan analisis kebutuhan antara lain:
9 1. Teknik Fact-Finding Fact-finding adalah proses formal yang menggunakan teknikteknik seperti interview dan quisioner untuk mengumpulkan faktafakta mengenai sistem, kebutuhan, dan preferensi (Connolly & Begg, 2010, p. 368). Ada lima teknik pencarian fakta yang umum digunakan (Connolly & Begg, 2010, pp. 344-346) : 1). Examining Documentation Examining documentation dapat dilakukan dengan cara memeriksa dokumen, formulir, laporan, dan beberapa file terkait dengan sistem tertentu, dengan begitu akan lebih cepat memperoleh beberapa pemahaman dari sistem tersebut. 2). Interviewing Interviewing merupakan teknik yang paling sering digunakan dan biasanya termasuk dalam teknik pencarian fakta yang berguna. Ada dua jenis interview: a. Interview terstruktur Pewawancara memiliki sekumpulan pertanyaan yang spesifik untuk ditanyakan ke narasumber. b. Interview tidak terstruktur Dilakukan hanya dengan berdasarkan tujuan umum yang ingin diajukan. 3). Observing the Enterprise in Operation Observasi merupakan salah satu dari teknik factfinding yang paling efektif untuk pemahaman sebuah sistem. Dengan teknik ini memungkinkan untuk berpartisipasi atau memantau seseorang dalam melakukan aktivitas untuk mempelajari mengenai sistem. 4). Research Research merupakan sebuah teknik pencarian fakta yang berguna untuk meneliti aplikasi dan masalah.
10 5). Quisioner Quisioner merupakan dokumen yang memiliki tujuan khusus yang memungkinkan fakta-fakta untuk dikumpulkan dari sejumlah besar responden. 2. Flowchart Flowchart secara grafis mewakili logika program dengan serangkaian simbol geomatris standar dan menghubungkan garis (Robertson, 2007, p. 264). Berikut terdapat enam simbol standar flowchart yang akan digunakan untuk mewakili algoritma, diantaranya: Tabel 2. 1 Table Komponen Flowchart Simbol dan Nama Simbol Simbol terminal
Penjelasan Suatu simbol yang menunjukkan titik mulai (start) atau titik akhir (end) dalam logika. Setiap flowchart harus dimulai dan diakhiri dengan simbol terminal.
Simbol input/output
Sutu simbol yang mewakili proses input atau output dalam algoritma. Seperti : membaca (read) sebagai input atau menulis (write) sebagai output.
Simbol proses
Suatu simbol yang mewakili setiap proses tunggal dalam algoritma. Seperti
memberikan
melakukan
nilai
perhitungan.
atau Alur
kontrolnya berurutan. Simbol proses yang telah ditetapkan (Predefined process)
Suatu simbol yang mewakili sebuah modul dalam algoritma, yaitu suatu proses yang telah ditetapkan yang memiliki flowchart nya sendiri.
11 Simbol keputusan (decision)
Suatu simbol yang mewakili sebuah keputusan dalam logika dengan melibatkan perbandingan dua nilai. Jalur
alternatif
tergantung pada
yang
diikuti,
apakah
simbol
keputusan itu benar atau salah. Flowlines
Flowlines menghubungkan berbagai simbol dalam sebuah flowchart, dan mengandung tanda panah yang alur kontrolnya tidak dari atas ke bawah atau dari kiri ke kanan.
Terdapat tiga struktur kontrol dasar, diantaranya (Robertson, 2007, pp. 265-267): 1). Sequence Struktur
kontrol
sequence
didefinisikan
sebagai
eksekusi langsung dari langkah awal pemrosesan setelah yang lain. Contoh: Membaca tiga karakter.
Gambar 2. 2 Contoh Sequence Sumber (Robertson, 2007, p. 269)
12 2). Selection Struktur kontrol selection dapat didefinisikan sebagai presentasi dari sebuah kondisi, dan pilihan antara dua tindakan yang tergantung pada apakah kondisi tersebut benar atau salah. Contoh: Proses catatan pelanggan.
Gambar 2. 3 Contoh Selection Sumber (Robertson, 2007, p. 277) 3). Repetition Struktur kontrol repetition dapat didefinisikan sebagai presentasi dari sekumpulan instruksi dilakukan berulangulang, selama kondisinya benar. Contoh: Konversi fahrenheitcelcius.
13
Gambar 2. 4 Contoh Repetition Sumber (Robertson, 2007, p. 284) 2.1.2.4 Database Design Perancangan basis data adalah proses pembuatan sebuah perancangan yang akan mendukung pernyataan dan tujuan misi perusahaan untuk sistem basis data yang dibutuhkan. Ada 3 metodologi dalam mendesain basis data, yaitu Conceptual database design, Logical database design, dan Physical database Design (Connolly & Begg, 2010, pp. 467-543).
14 1. Conceptual Database Design Conceptual database design adalah proses dari pembangunan sebuah model data yang digunakan dalam sebuah perusahaan, independen dari semua pertimbangan fisik (Connolly & Begg, 2010, p. 467). Langkah-langkah dalam membangun Conceptual database design (Connolly & Begg, 2010, pp. 470-485): Langkah 1.1: Mengidentifikasi tipe entitas Tujuan dari langkah ini adalah untuk mengidentifikasi tipe entitas yang dibutuhkan. Setelah tipe entitas diidentifikasi, maka dilakukan pemberian nama yang jelas untuk pengguna. Jika sebuah entitas diketahui dengan nama yang berbeda, nama tersebut menunjuk sebagai sinonim atau alias yang dicatat dalam kamus data.
Gambar 2. 5 Contoh pengekstrakan kamus data untuk StaffClient user view DreamHome Sumber (Connolly & Begg, 2010, p. 427) Tipe entitas dapat diklasifikasikan menjadi strong and weak entity types (Connolly & Begg, 2010, pp. 383-384). Strong entity types adalah sebuah tipe entitas yang keberadaannya tidak tergantung pada tipe entitas lainnya. Sedangkan weak entity types adalah sebuah tipe entitas yang keberadaannya tergantung pada tipe entitas lainnya.
15
Gambar 2. 6 Contoh Strong dan Weak Entity Type Sumber (Connolly & Begg, 2010, p. 384) Langkah 1.2: Mengidentifikasi tipe relasi Tujuan dari langkah ini adalah untuk mengidentifikasi relasi penting yang ada antar tipe entitas. Relasi binary merupakan relasi yang digunakan dalam banyak contoh. Yang artinya, relasi yang ada antar dua tipe entitas yang tepat. Langkah-langkah yang digunakan dalam mengidentifikasi tipe relasi sebagai berikut: a. Menggunakan Entity-Relationship (ER) Diagram Dalam
hal
ini,
ERD
digunakan
untuk
merepresentasikan entitas dan bagaimana tiap-tiap entitas berhubungan satu sama lain dengan mudah. Melalui fase perancangan basis data, ERD sangat disarankan untuk digunakan dalam pembuatan gambaran umum perancangan basis data. b. Menentukan multiplicity constraints dari tipe relasi Multiplicity constraints digunakan untuk mengecek dan menjaga kualitas data. Suatu model yang termasuk multiplicity constraints secara eksplisit merepresentasikan relasi semantik dan menghasilkan representasi yang lebih baik dari data yang dibutuhkan untuk perusahaan. c. Mengecek Fan Traps dan Chasm Traps Langkah selanjutnya yang dilakukan adalah mengecek setiap relasi didalam ER model. Yang mana fan traps dapat didefinisikan sebagai suatu model yang merepresentasikan
16 relasi antar tipe entitas, tetapi alur relasinya terlihat ambigu. Sedangkan chasm traps adalah suatu model yang terdapat hubungan antar entitas, tetapi tidak ada relasi antar kedua entitas. d. Mendokumentasikan tipe relasi Langkah selanjutnya adalah memberi nama yang berarti dan jelas kepada pengguna. Selain itu juga mencatat deskripsi relasi dan multiplicity constraints dalam kamus data.
Gambar 2. 7 Contoh kamus data relationship yang mendeskripsikan relasi StaffClient user view DreamHome Sumber (Connolly & Begg, 2010, p. 475) Tipe relasi adalah sekumpulan asosiasi yang berhubungan antara satu atau lebih entitas.
Gambar 2. 8 Diagram Tipe Relationship 'Branch has Staff' Sumber (Connolly & Begg, 2010, p. 376) Derajat relationship adalah sejumlah tipe entitas yang berpartisipasi dalam sebuah relationship. Derajat tipe relasi terdiri dari:
17 1). Binary relationship Binary Relationship merupakan sebuah relasi dengan dua derajat tipe entitas. Contohnya adalah antara PrivateOwner dan PropertyForRent yang dihubungkan dengan relasi POwns.
Gambar 2. 9 Contoh Binary Relationship Sumber (Connolly & Begg, 2010, p. 376) 2). Ternary relationship Ternary Relationship merupakan sebuah relasi dengan tiga derajat tipe entitas. Contohnya adalah Registers dengan tiga tipe entitas yang berpartisipasi: Staff, Branch, Client. Relasi ini menggambarkan registrasi klien oleh anggota staff dari branch.
Gambar 2. 10 Contoh Ternary Relationship Sumber (Connolly & Begg, 2010, p. 377) 3). Quaternary relationship Quaternary relationship adalah relasi derajat empat tipe entitas. Contohnya adalah Arranges memiliki empat tipe entitas yang berpartisipasi: Buyer, Solicitor, Financial Institution, dan Bid. Relasi tersebut menggambarkan situasi pembeli, dimana pembeli disarankan oleh pengacara dan didukung oleh sebuah institusi keuangan, serta menempatkan tawaran.
18
Gambar 2. 11 Contoh Quaternary Relationship Sumber (Connolly & Begg, 2010, p. 377) Multiplicity adalah jumlah dari kejadian-kejadian yang mungkin terjadi pada tipe entitas yang berhubungan dengan kejadian tunggal dari suatu entitas yang terkait melalui relasi tertentu. Derajat yang paling umum untuk sebuah relasi adalah binary. Binary relationship umumnya antara lain (Connolly & Begg, 2010, pp. 385-389): 1). One-to-One (1:1) Relationships
Gambar 2. 12 Contoh One-to-One (1:1) Relationships Sumber (Connolly & Begg, 2010, p. 386) 2). One-to-Many (1:*) Relationships
Gambar 2. 13 Contoh One-to-Many (1:*) Relationships Sumber (Connolly & Begg, 2010, p. 388)
19 3). Many-to-Many (*:*) Relationships
Gambar 2. 14 Contoh Many-to-Many (*:*) Relationships Sumber (Connolly & Begg, 2010, p. 389) Multiplicity terdiri dari dua jenis constraint, yaitu (Connolly & Begg, 2010: 390) : a. Cardinality, yaitu penggambaran jumlah maksimum dari kemungkinan batasan sebuah entitas yang ikut berpartisipasi
dalam
sebuah
relasi.
Mapping
Cardinalities menunjukkan jumlah entitas yang dapat dihubungkan melalui sebuah hubungan (Connolly & Begg, 2010: 390). b. Participation, yaitu penggambaran yang menentukan apakah semua atau hanya beberapa entity occurance (anggota entitas) yang ikut berpartisipasi dalam sebuah hubungan (Connolly & Begg, 2010: 391).
20
Gambar 2.15 Contoh Cardinality dan Participation Sumber (Connolly & Begg, 2010, p. 391) Langkah 1.3: Mengidentifikasi dan asosiasi atribut dengan entitas atau tipe relasi Tujuan dari langkah ini adalah untuk mengasosiasikan atribut dengan entitas atau tipe relasi yang sesuai. Terdapat beberapa macam atribut, diantaranya : a. Simple atau Composite Attributes Suatu
hal
yang
penting
untuk
diingat
adalah
memperhatikan apakah suatu atribut itu merupakan simple atau composite. Simple Attributes adalah sebuah atribut yang terdiri dari komponen tunggal dengan keberadaan independen. Sedangkan composite attributes adalah suatu atribut yang dibangun dari simple attributes. Contohnya pada atribut alamat, yaitu ‘115 Dumbarton Road, Glasgow, G11 6YG’. Atribut alamat tersebut dapat merepresentasikan sebuah composite attributes yang berasal dari simple attributes. Dan terdiri dari beberapa detail alamat yang mencakup street, city, dan postcode tergantung kebutuhan pengguna. b. Single atau Multi-valued Attributes Atribut lainnya adalah single atau multi-valued attributes sebagai contohnya adalah atribut nomor telepon.
21 Yang berarti suatu atribut dapat mempunyai satu atau lebih nilai. Karena seseorang bisa memiliki lebih dari satu nomor telepon, hal tersebut lah yang disebut sebagai multi-valued attributes. Sebaliknya apabila atribut tersebut hanya memiliki satu nilai, maka disebut single attributes. c. Derived Attributes Derived attributes merupakan suatu atribut yang nilainya tergantung dengan nilai atribut lainnya. Contoh dari derived attributes adalah umur seorang staff, banyaknya properti yang dikelola oleh seorang staff, dan pinjaman deposito yang dihitung dua kali pada pinjaman bulanan. Langkah 1.4: Menentukan domain atribut Tujuan dari langkah ini adalah untuk menentukan domain atribut dalam model data konseptual. Sebagai contoh : -
Domain attributes untuk staffNo yang terdiri dari 5 karakter, dua karakter awal adalah huruf dan tiga karakter selanjutnya berupa angka dari 1-999.
-
Nilai yang mungkin untuk atribut sex dari Staff adalah ‘M’ atau ‘F’. domain dari atribut ini berupa satu karakter yang mempunyai nilai ‘M’ atau ‘F’.
Langkah 1.5: Menentukan atribut candidate, primary, dan alternate key Tujuan dari langkah ini adalah untuk mengidentifikasi candidate key(s) pada setiap tipe entitas, dan jika terdapat lebih dari satu candidate key, untuk itu dipilih salah satu sebagai primary key dan yang lain sebagai alternate key. Ada beberapa tipe key diantaranya (Connolly & Begg, 2010, pp. 381-382): 1). Candidate Key Candidate Key adalah sekumpulan atribut yang secara unik mengidentifikasikan setiap kejadian dari sebuah tipe entitas. Contohnya: atribut branchNo merupakan candidate key untuk tipe entitas Branch, memiliki sebuah nilai yang berbeda untuk setiap kemunculan entitas Branch.
22 2). Primary key Primary key adalah candidate key yang dipilih untuk diidentifikasikan secara unik setiap kemunculan tipe entitas. 3). Alternate key Alternate key adalah candidate key yang tidak terpilih untuk menjadi Primary Key. 4). Composite key Composite key merupakan candidate key yang berisi 2 atau lebih atribut. Langkah 1.6: Mempertimbangkan penggunaan dari enhanced modeling concepts (langkah optional) Tujuan dari langkah ini adalah untuk mempertimbangkan penggunaan
enhanced
modeling
concepts,
seperti
specialization/generalization, aggregation, dan composition. Langkah 1.7 : Mengecek model untuk redundancy Tujuan dari langkah ini adalah untuk mengecek kehadiran dari redundancy apapun dalam model. Terdapat tiga bagian dari langkah ini, diantaranya : 1. Menguji kembali relasi one-to-one (1:1). 2. Menghilangkan relasi redundant. 3. Mempertimbangkan time dimension. Langkah 1.8: Validasi model konseptual terhadap transaksi pengguna Tujuan dari langkah ini adalah untuk memastikan model konseptual mendukung transaksi yang dibutuhkan. Terdapat dua pendekatan untuk tujuan diatas, yaitu : 1. Mendeskripsikan transaksi. 2. Menggunakan jalur transaksi. Langkah 1.9: Me-review model data konseptual dengan pengguna Tujuan dari langkah ini adalah untuk me-review model data dengan
pengguna
untuk
memastikan
pengguna
mempertimbangkan model sebagai representasi ‘asli’ dari kebutuhan data enterprise.
23
Gambar 2. 16 Contoh ERD Konseptual Sumber (Connolly & Begg, 2010, p. 481) 2. Logical Database Design Logical database design adalah proses dari pembangunan sebuah model data yang digunakan dalam sebuah perusahaan berbasis pada sebuah spesifikasi model data, tapi independen dari sebuah DBMS tertentu dan pertimbangan fisik lainnya (Connolly & Begg, 2010, p. 467). Langkah-langkah dalam membangun Logical database design (Connolly & Begg, 2010, pp. 490-518): Langkah 2: Membangun dan Memvalidasi Model
Data
Logikal Tujuan dari langkah ini adalah untuk menerjemahkan model data konseptual menjadi model data logikal dan kemudian memvalidasi model tersebut untuk memeriksa bahwa itu secara struktural benar dan
mampu mendukung transaksi yang
dibutuhkan. Langkah 2.1: Menentukan relasi untuk model data logikal Tujuan dari langkah ini adalah untuk membuat suatu relasi pada model data logikal yang merepresentasikan suatu entitas,
24 relasi
dan
atribut
yang
telah
diidentifikasi.
Adapun
pendeskripsian bagaimana relasi dapat diturunkan dari struktur di bawah ini yang terjadi dalam model data konseptual antara lain: 1. Tipe entitas kuat (Strong Entity Type) 2. Tipe entitas lemah (Weak Entity Type ) 3. Tipe relasi binary one-to-many (1:*) 4. Tipe relasi binary one-to-one (1:1) 5. Tipe relasi rekursif one-to-one (1:1) 6. Tipe relasi superclass atau subclass 7. Tipe relasi binary many-to-many 8. Tipe relasi kompleks 9. Atribut multi-valued Langkah 2.2: Memvalidasi relasi dengan menggunakan normalisasi Tujuan dari langkah ini adalah untuk memvalidasi relasi model data logikal menggunakan normalisasi. Langkah 2.3: Memvalidasi relasi terhadap transaksi user Tujuan dari langkah ini adalah untuk memastikan bahwa relasi dalam model data logikal mendukung transaksi yang dibutuhkan, seperti yang tercantum dalam spesifikasi kebutuhan user. Pada langkah ini, dilakukan pemeriksaan bahwa relasi yang dibuat pada langkah sebelumnya juga mendukung transaksi ini, dan dengan demikian memastikan bahwa tidak ada kesalahan dalam relasi yang telah dibuat. Langkah 2.4: Memeriksa batasan integritas Tujuan dari langkah ini adalah untuk memastikan batasan integritas yang direpresentasikan dalam model data logikal. Batasan integritas merupakan batasan yang diharapkan dapat menjaga basis data dari ketidaklengkapan (incomplete), tidak akurat (inaccurate), atau tidak konsisten (inconsistent). Ada beberapa tipe batasan integritas, antara lain: data yang dibutuhkan, batasan domain atribut, multiplicity, integritas entitas, integritas referensial, dan batasan umum.
25 Langkah 2.5: Meninjau model data logikal terhadap kebutuhan user Tujuan dari langkah ini adalah untuk meninjau model data logikal dengan user untuk memastikan bahwa model tersebut mempertimbangkan model menjadi representasi yang benar dari kebutuhan data perusahaan. Langkah
2.6:
Menggabungkan
model
data
logikal
kedalam model global (langkah optional) Tujuan dari langkah ini adalah untuk menggabungkan model data logikal lokal kedalam model data logikal global yang merepresentasikan sudut pandangan user terhadap basis data. Langkah 2.6.1: Penggabungan model data logikal lokal kedalam model global Tujuan dari langkah ini adalah untuk menggabungkan model data logikal lokal kedalam satu model data logikal global. Beberapa tugas dari pendekatan ini adalah sebagai berikut : 1. Review nama dan isi dari suatu entitas atau relasi dan candidate key-nya. 2. Me-review nama dan isi dari suatu relasi atau foreign key. 3. Menggabungkan entitas atau relasi dari model data lokal. 4. Memasukkan(tanpa penggabungan) entitas atau relasi yang unik untuk setiap model data lokal. 5. Menggabungkan relasi atau foreign key dari model data lokal. 6. Memasukkan(tanpa penggabungan) relasi atau foreign key yang unik untuk setiap model data lokal. 7. Memeriksa entitas atau relasi dan relasi atau foreign key yang hilang. 8. Memeriksa foreign key. 9. Memeriksa batasan integritas. 10. Menggambar ER global atau diagram relasi. 11. Meng-update dokumentasi.
26 Langkah 2.6.2: Memvalidasi model data logikal global Tujuan dari langkah ini adalah untuk memvalidasi relasi yang dibuat dari model data logikal global dengan normalisasi dan juga memastikan bahwa relasi yang dibuat mendukung transaksi yang dibutuhkan, jika perlu. Langkah 2.6.3: Me-review model data logikal global dengan user Tujuan dari langkah ini adalah untuk me-review model data logikal global dengan user untuk memastikan bahwa model yang dibuat tersebut merupakan representasi yang benar terhadap kebutuhan data perusahaan. Langkah 2.7: Memeriksa kemungkinan pengembangan di masa depan Tujuan dari langkah ini adalah untuk menentukan bagian mana yang kelihatannya akan berubah ke masa depannya dan juga
memperhatikan
supaya
model
data
logikal
dapat
mengakomodasi perubahan tersebut. Hasil akhir dari perancangan basis data logikal adalah merancang suatu model informasi berdasarkan spesifik model yang ada (seperti: model relasional), tetapi tidak tergantung terhadap suatu DBMS dan perangkat keras lainnya. Basis data logikal merancang suatu map untuk setiap lokal konseptual data. Jika terdapat lebih dari satu pandangan user, maka model data logikal lokal akan dikombinasikan menjadi suatu model data logikal global yang merepresentasikan semua pandangan user dari suatu perusahaan.
27
Gambar 2. 17 Contoh ERD Logikal Sumber (Connolly & Begg, 2010, p. 516) 3. Physical Database Design Physical database design adalah proses yang menghasilkan sebuah gambaran dari implementasi database pada secondary storage. Proses tersebut menggambarkan relasi-relasi, organisasi file,
dan indeks-indeks
yang digunakan untuk mencapai
pengaksesan secara efesien ke data, dan setiap batasan integritas terkait serta tindakan pengamanan (Connolly & Begg, 2010, p. 467). Langkah-langkah dalam membangun Physical database design (Connolly & Begg, 2010, pp. 522-543):
28 Langkah 3: Menerjemahkan Model Data Logikal sesuai DBMS yang Dituju Tujuan dari langkah ini adalah untuk membuat suatu skema basis data relasional dari model data logikal yang dapat diimplementasikan ke DBMS yang dituju. Langkah 3.1: Merancang relasi dasar Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan relasi dasar yang diidentifikasi dalam model data logikal pada DBMS yang dituju. Untuk memulai proses perancangan basis data fisikal, pertama-tama
dengan
menyatukan
dan
mengasimilasikan
informasi tentang relasi yang dirancang selama perancangan basis data logikal. Informasi yang diperlukan dapat berasal dari kamus data dan definisi relasi yang didefinisikan menggunakan Database Design Language(DDL). Untuk setiap relasi yang diidentifikasi pada model data logikal, dapat didefinisikan berisi: a. Nama relasi; b. Daftar simple atribut dalam tanda kurung; c. Primary key (PK), alternate key (AK), dan foreign key (FK); d. Batasan integritas referensial untuk setiap foreign key yang diidentifikasi; Dari kamus data, dari setiap atributnya dapat diketahui; e. Domain
atribut tersebut yang terdiri dari
tipe
data,
panjang, dan berbagai constraint pada domain tersebut; f. Suatu optional nilai default untuk atribut; g. Apakah atribut dapat diisi dengan nilai null; h. Apakah atribut dapat diturunkan dan jika demikian bagaimana perhitungannya.
29
Gambar 2. 18 Contoh DBDL untuk relasi PropertyForRent Sumber (Connolly & Begg, 2010, p. 526) Langkah 3.2: Merancang representasi data turunan Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan beberapa data turunan yang terdapat pada model data logikal pada DBMS yang dituju. Atribut yang nilainya didapatkan dari mengevaluasi atribut lain dikenal sebagai atribut turunan atau atribut kalkulasi. Contohnya adalah: a. Jumlah staf yang bekerja pada suatu cabang. b. Total gaji bulanan untuk semua staf. c. Jumlah properti yang di-handle oleh anggota staf.
30
Gambar 2. 19 Contoh Relasi PropertyForRent dan Relasi Staff dengan atribut turunan noOfProperties Sumber (Connolly & Begg, 2010, p. 527) Langkah 3.3: Merancang general constraint Tujuan dari langkah ini adalah untuk merancang kendala umum untuk DBMS yang dituju. Meng-update suatu relasi yang mungkin dibatasi oleh batasan integritas yang mengatur transaksi ‘real world’ yang direpresentasikan
oleh
peng-update-an
tersebut. Perancangan batasan tersebut sekali lagi tergantung pada DBMS yang dipilih. Beberapa sistem menyediakan fasilitasfasilitas dibandingkan yang lainnya untuk mendefinisikan kendala umum. Seperti langkah sebelumnya, jika sistem tersebut mempunyai aturan sesuai aturan standar SQL, beberapa batasan dapat diterapkan. CONSTRAINT StaffNotHandlingTooMuch CHECK (NOT EXISTS (SELECT staffNo FROM PropertyForRent GROUP BY staffNo HAVING COUNT(*) >100))
31 Langkah 4: Merancang Organisasi File dan Indeks Tujuan dari langkah ini adalah untuk menentukan organisasi file yang optimal untuk menyimpan relasi dasar dan indeks yang dibutuhkan untuk mencapai kinerja yang diharapkan. Karena itu, cara dimana relasi dan tuples yang ada akan disimpan pada penyimpanan secondary. Langkah 4.1: Menganalisis transaksi Tujuan
dari
langkah
ini
adalah
untuk
memahami
fungsionalitas dari suatu transaksi dimana akan dijalankan pada basis data untuk menganalisis transaksi yang penting.
Gambar 2. 20 Contoh Transaksi Cross-referencing Pada Relasi Sumber (Connolly & Begg, 2010, p. 531) Langkah 4.2: Memilih organisasi file Tujuan dari langkah ini adalah untuk menentukan organisasi file yang efisien untuk setiap relasi dasar. Karena itu, tujuan dari langkah ini adalah untuk memilih organisasi file yang optimal untuk tiap relasi, jika DBMS yang dituju memperbolehkannya. Dalam banyak kasus yang ada, suatu relasional DBMS akan memberikan sedikit bahkan tanpa pilihan dalam memilih organisasi file, walaupun beberapa akan mempunyai indeks yang spesifik. Beberapa macam organisasi file yang ada adalah sebagai berikut : a. Heap
32 b. Hash c. Indexed Sequential Office Access Method (ISAM) d. B*-three e. Clusters. Jika DBMS yang dituju tidak memperbolehkan adanya pemilihan organisasi file, maka langkah ini dapat dihilangkan. Langkah 4.3: Memilih indeks Tujuan dari langkah ini adalah untuk menentukan apakah dengan adanya penambahan indeks akan meningkatkan kinerja dari suatu sistem. Salah satu pendekatan untuk memilih organisasi file yang sesuai untuk relasi yaitu menjaga agar tuple tidak berurutan dan membuat indeks secondary sebanyak mungkin. Pendekatan lainnya yaitu untuk mengurutkan tuple dalam relasi dengan menspesifikasi primary atau clustering indeks. Langkah 4.4 : Mengestimasi kapasitas penyimpanan Tujuan dari langkah ini adalah untuk mengestimasi jumlah kapasitas disk yang akan dibutuhkan oleh basis data. Itu bertujuan untuk mendukung implementasi basis data fisikal dapat ditangani oleh konfigurasi perangkat keras saat ini. Langkah 5 : Merancang Tampilan untuk User Tujuan dari langkah ini adalah untuk merancang tampilan user yang diidentifikasi selama tahap pengumpulan dan analisis kebutuhan pada database system development lifecycle. Langkah 6 : Merancang Mekanisme Keamanan Tujuan dari langkah ini adalah untuk merancang mekanisme keamanan untuk basis data seperti yang telah dispesifikasikan user selama pengumpulan kebutuhan pada database system development lifecycle. 4. Normalisasi Normalisasi adalah sebuah teknik untuk menghasilkan sekumpulan relasi dengan sifat yang diinginkan, dan memberikan data kebutuhan untuk perusahaan (Connolly & Begg, 2010, pp. 416-435).
33 1).
Redudansi Data Tujuan utama dari desain basis data relasional adalah untuk mengelompokkan atribut-atribut ke dalam relasi-relasi agar meminimalisasi redundansi data
dan mengurangi
penggunaan tempat penyimpanan yang dibutuhkan oleh sebuah relasi dasar (Connolly & Begg, 2010, pp. 418-420). 2).
Proses Normalisasi Normalisasi
merupakan
teknik
formal
untuk
menganalisis relasi berdasarkan dari primary key (atau candidate key) dan ketergantungan fungsional (Codd, 1972b) (Connolly & Begg, 2010, pp. 428-437). Terdapat beberapa proses normalisasi diantaranya: 1). Unnormalized form (UNF) Merupakan suatu tabel yang berisikan satu atau lebih gorup yang berulang. 2). First normal form (1NF) Merupakan sebuah relasi dimana setiap irisan antara baris dan kolom berisikan satu dan hanya satu nilai. Untuk membentuk
UNF
menjadi
1NF,
yaitu
dengan
mengidentifikasikan dan menghilangkan pengelompokan yang berulang dalam tabel. 3). Second normal form (2NF) Merupakan sebuah relasi yang berada di dalam 1NF dan setiap atribut nonprimary key nya bergantung penuh pada fungsionalitas primary key. Hubungan normalisasi 1NF
menjadi
2NF
perlu
menghilangkan
partial
dependency. 4). Third normal form (3NF) Merupakan sebuah relasi yang ada di 1NF dan 2NF dimana atribut yang tidak mempunyai non-primary key mempunyai ketergantungan transitif kepada primary key. normalisasi 2NF menjadi 3NF perlu menghilangkan transitive dependency.
34 2.1.2.5 DBMS Selection (optional) Database Management System (DBMS) adalah sistem perangkat lunak yang memungkinkan user untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke basis data (Connolly & Begg, 2010, p. 66). 1. Database Languange Bahasa basis data berisi dua bagian yaitu (Connolly & Begg, 2010, pp. 91-92): 1). Data Definition Language(DDL) Merupakan
sebuah
bahasa
yang memungkinkan
DBA(Database Administrator) atau user dan menamai entitas, atribut, dan relasi yang diperlukan untuk aplikasi, bersama dengan integritas asosiasi dan kendala keamanan. 2). Data Manipulation Language(DML) Merupakan
sebuah
bahasa
yang
menyediakan
sekumpulan operasi untuk mendukung operasi manipulasi data dasar pada data yang dimiliki dalam basis data. 2. Komponen DBMS Terdapat 5 komponen utama dalam lingkungan DBMS, yaitu (Connolly & Begg, 2010, pp. 68-71): 1). Hardware (Perangkat Keras) DBMS membutuhkan perangkat keras untuk bekerja. Perangkat
keras
tertentu
tergantung
pada
kebutuhhan
organisasi dan penggunaan DBMS. 2). Software (Perangkat Lunak) Komponen perangkat lunak terdiri dari perangkat lunak DBMS itu sendiri dan program aplikasi, bersama dengan sistem operasi, meliputi perangkat lunak jaringan jika DBMS digunakan melalu jaringan. 3). Data Merupakan komponen paling penting pada lingkungan DBMS, tentunya dari sudut pandang end-user yaitu data.
35 4). Prosedur Prosedur mengacu pada intruksi dan aturan yang mengatur desain dan penggunaan basis data. 5). Manusia Terdapat empat tipe orang-orang yang berpartisipasi dalam
lingkungan
DBMS:
data
dan
DBA(Database
Administrator), perancang basis data, pengembangan aplikasi, dan end-user. 3. Fungsi DBMS Terdapat 10 tipe fungsi dan layanan yang disediakan DBMS diantaranya sebagai berikut (Connolly & Begg, 2010, pp. 99-104): 1). Penyimpanan, pengambilan dan perubahan data Sebuah DBMS harus memberikan user dengan kemampuan untuk menyimpan, mengambil, dan mengubah data dalam database. 2). Katalog yang diakses user Sebuah DBMS harus memberikan katalog yang mana menggambarkan sebuah item data yang disimpan dan dapat diakses oleh user. 3). Dukungan transaksi Sebuah DBMS harus memberikan sebuah mekanisme yang akan memastikan dengan baik bahwa semua perubahan data berhubungan dengan pemberian transaksi yang dibuat atau tidak. 4). Layanan kontrol konkurensi Sebuah DBMS harus memberikan sebuah mekanisme untuk memastikan bahwa database diperbaharui dengan benar ketika beberapa user memperbarui konkurensi database. 5). Layanan pemulihan Sebuah DBMS harus memberikan mekanisme untuk memulihkan database yang rusak.
36 6). Layanan kepemilikan Sebuah DBMS harus memberikan mekanisme untuk memastikan bahwa hanya user yang memiliki hak autorisasi yang dapat mengakses database. 7). Dukungan komunikasi data Sebuah DBMS harus mampu berintegrasi dengan perangkat lunak. 8). Layanan integritas Sebuah DBMS harus memberikan sarana untuk memastikan bahwa kedua data di dalam database
dapat
berubah pada data yang mengikuti aturan tertentu. 9). Layanan untuk mendukung indepedensi data Sebuah DBMS harus mencakup fasilitas untuk mendukung program-program yang independen dari struktur database yang sebenarnya. 10). Layanan utilitas Sebuah DBMS harus menyediakan satu set layanan utilitas untuk membantu DBA dan mengelola database secara efektif. 4. Tahap-tahap DBMS Tahap-tahap utama untuk pemilihan DBMS (Connolly & Begg, 2010, pp. 325-329): 1). Mendefenisikan istilah studi refensi Menyatakan tujuan dan ruang lingkup penelitian serta tugas-tugas yang perlu dilakukan berdasarkan pada spesifikasi kebutuhan user. 2). Mendaftarkan dua atau tiga produk Kriteria yang dianggap kritis untuk kesuksesan sebuah implementasi yang dapat digunakan untuk menghasilkan sebuah daftar awal produk-produk DBMS untuk evaluasi. Contohnya yaitu keputusan untuk memasukan produk DBMS yang tergantung pada anggaran yang tersedia, tingkat dukungan vendor, kompetibilitas dengan software lain, dan apakah produk berjalan pada hardware tertentu.
37 3). Mengevaluasi produk Ada berbagai fitur yang dapat digunakan untuk mengevaluasi produk DBMS, diantaranya: definisi data, definisi fisik, aksesibilitas, penanganan transaksi, utilitas, pengembangan, dan fitur lainnya. 4). Merekomendasi pilihan dan menghasilkan laporan Mendokumentasikan proses dan untuk memberikan pernyatan dari penemuan dan merekomendasikan untuk produk DBMS tertentu. 2.1.2.6 Application Design System design didefenisikan sebagai
tugas-tugas
yang
berfokus pada spesifikasi rincian solusi berbasis komputer (Whitten & Bentley, 2007, p. 446). 1. DFD (Data Flow Diagram) Melalui teknik analisis terstruktur yang disebut Data Flow Chart Diagram (DFD), analisis sistem dapat mengumpulkan representasi grafis dari proses data pada seluruh organisasi. Terdapat empat simbol yang digunakan untuk memetakan pergerakan data pada data flow diagram, diantaranya (Kendall & Kendall, 2011, pp. 193-211): Tabel 2. 2 Tabel Komponen DFD Simbol
Nama simbol
Contoh
External Entity
Student
New Student Data Flow
Information
38 2.1 Create Student Record
Proses
Data Store
D3
Student Master
Seluruh sistem dan banyak subsistem dapat digambarkan secara grafis dengan empat simbol diatas, dengan masing-masing penjelasannya sebagai berikut : 1). External entity, merupakan suatu simbol yang dapat mengirim data ke sistem dan menerima data dari sistem. External entity atau entity juga disebut sebagai sebuah sumber atau tujuan dari data, dan setiap entitas diberi label dengan nama yang sesuai. Setiap entitas juga harus dinamai dengan kata benda, dan entitas yang sama dapat digunakan lebih dari sekali pada data flow diagram yang diberikan untuk menghindari pelintasan garis aliran data. Contohnya pada : departemen, business, person, atau machine. 2). Tanda
panah atau
disebut
sebagai
data flow,
yaitu
menunjukkan perpindahan data dari satu titik ke titik yang lain, dengan kepala panah yang menunjukkan arah ke tujuan dari data tersebut. 3). Persegi panjang dengan sudut membulat atau disebut sebagai proses, yaitu menunjukkan terjadinya proses transformasi atau perubahan data. Proses juga merepresentasikan pekerjaan yang dilakukan dalam sistem dan harus diberi nama yang jelas agar lebih mudah memahami proses yang dicapai. Sebuah proses juga harus diberi nomor identifikasi yang unik untuk menunjukkan tingakatan dalam diagram. 4). Data store, yaitu secara sederhana menunjukkan tempat penyimpanan untuk data yang memungkinkan pemeriksaan, penambahan, dan pengambilan data. Data store dapat merepresentasikan penyimpanan secara manual, seperti :
39 lemari arsip, dan berkas komputer atau basis data. Serta memberikan masing-masing data
store
sebuah nomor
referensi yang unik, seperti : D1, D2, D3, dan sebagainya. Hal ini digunakan untuk mengidentifikasikan tingkatannya. Data flow diagram dapat dibagi menjadi beberapa tingkatan, yaitu: 1). Membuat Diagram Konteks Diagram konteks merepresentasikan gambaran dari seluruh sistem dan tidak menggambarkan proses secara rinci. Berikut merupakan sebuah contoh dari Order Processing System pada World's Trend.
Gambar 2. 21 Diagram Konteks untuk Order Processing System pada World's Trend Sumber (Kendall & Kendall, 2011, p. 209) 2). Menggambar Diagram 0 Daigram 0 ini menggambarkan aktivitas utama untuk FilmMagic Video Rental System. Setiap proses dianalisis untuk menentukan data yang dibutuhkan dan output yang dihasilkan. Berikut contoh diagramnya :
40
Gambar 2. 22 Diagram 0 dari Order Processing System pada World's Trend untuk Catalog Division Sumber (Kendall & Kendall, 2011, p. 210) 3). Membuat Child Diagram Child diagram juga biasa disebut Diagram Level 1. Proses Child diagram merupakan proses lebih rinci dimana menggambarkan logika yang diperlukan untuk proses output. Berikut contoh diagramnya:
41
Gambar 2. 23 Diagram 1 dari Order Processing System pada World's Trend untuk Catalog Division Sumber (Kendall & Kendall, 2011, p. 211) Secara ringkas, dapat disebutkan bahwa Data Flow Diagam (DFD) menurut (Kendall & Kendall, 2011, p. 224) adalah suatu analisis terstruktur dan alat desain yang memungkinkan analis untuk memahami sistem dan subsistem secara visual sebagai kumpulan data flow yang saling berhubungan (Kendall & Kendall, 2011, p. 217). 2. User Interface Komputer dan user interface menjadi dasar untuk sistem sociotechnical yang semakin kuat, kebijakan analisis, para ekonom, pengacara, pendukung privasi, dan ahli etika dalam
42 memainkan peran yang berkembang (Shneiderman & Catherine, 2005, p. 4). 3. State Transition Diagram State transition diagram adalah alat yang digunakan untuk menggambarkan urutan dan variasi layar yang dapat terjadi selama sesi pengguna. State transition diagram dapat menjadi cukup besar, terutama ketika semua input, output, help, dan layar lainnya yang ditambahkan ke diagram. Jadi, hal tersebut umum untuk partisi diagram menjadi sekumpulan diagram terpisah yang sederhana dan mudah dibaca.
Gambar 2. 24 SoundStage Partial State Transition Diagram Sumber (Whitten & Bentley, 2007, p. 636) Yang dapat dijelaskan dari gambar diatas adalah, persegi panjang pada gambar diatas hanya menjelaskan apa yang dapat ditampilkan selama dialog. Kemudian arah tanda panah yaitu menunjukkan urutan layar tersebut terjadi. Dan untuk setiap tanda panah
yang
terpisah
dengan
labelnya
masing-masing,
menggambarkan arah yang berbeda karena dipicu dari aliran kontrol dan aliran kontrol ke layar yang diberikan (Whitten & Bentley, 2007, p. 635).
43 2.1.2.7 Prototyping (optional) Prototyping adalah membangun sebuah model kerja dari sebuah sistem basis data. Ada dua strategi prototyping : 1). Requirement Prototyping, menggunakan sebuah prototype untuk menentukan kebutuhan sistem basis data yang diusulkan, dan ketika kebutuhan tersebut lengkap, prototype tidk digunakan lagi. 2). Evolutionary Prototyping, digunakan untuk tujuan sama, tapi terdapat perbedaan penting bahwa prototype tidak dibuang namun dengan pengembangan lebih lanjut sistem basis dapat bekerja. 2.1.2.8 Implementation Implementasi adalah realisasi fisik dari basis data dan desain aplikasi. Pada penulisan skripsi ini kami melalukan implementasi aplikasi dengan menggunakan bahasa pemograman PHP dan implementasi basis data dengan menggunakan MySQL sebagai DBMS (Database Management System) dari aplikasi tersebut. 1. PHP PHP adalah server-side HTML atau XHTML-embedded scripting language. Dengan demikian, itu adalah sebuah alternatif untuk Microsoft's Active Server Pages dan Sun's Java Server Pages. Script diinterpretasikan, PHP berkaitan dengan clien-side pada JavaScript. Ketika sebuah browser menemukan kode JavaScript tertanam dalam dokumen HTML atau XHTML itu ditampilkan,
itu
disebut
intrepreter
JavaScript
untuk
menginterpretasikan script. Ketika browser meminta sebuah dokumen
yang
meliputi
script
PHP,
server
Web
yang
menyediakan dokumen yang memanggil prosesor PHP nya. Server menentukan bahwa dokumen termasuk script PHP dengan ekstensi nama file, seperti .php,. php3, atau .phtml, dokumen telah tertanam di PHP (Sebesta, 2011, p. 374). 2. MySQL Menurut situs MySQL(2014), MySQL adalah software database open source yang paling populer di dunia, dengan lebih dari 100 juta copy dari software yang telah diunduh atau
44 didistribusikan sepanjang sejarah itu. Dengan kecepatan superior, kehandalan, dan kemudahan penggunaan, MySQL telah menjadi pilihan yang lebih disukai untuk Web, Web 2.0, SaaS, ISV, perusahaan
Telecom
dan
forward-thingking
Manajer
TI
perusahaan karena menghilangkan masalah utama yang terkait dengan downtime, pemeliharaan dan administrasi modern, aplikasi online. Banyak organisasi terbesar yang tumbuh cepat menggunakan MySQL untuk menghemat waktu dan uang powering situs Web volume tinggi, sistem bisnis penting, dan paket perangkat lunak termasuk pemimpin industri seperti Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube, Wikipedia, dan Booking.com. Menurut artikel yang berjudul “Pengembangan Aplikasi Absensi Pegawai Berbasis Web dan Absensi Siswa Berbasis SMS SMA Negeri 1 Imogiri", MySQL memiliki keunggulan, antara lain: 1. Mendukung
Relational
Database
Management
System
(RDBMS), sehingga memiliki kemampuan untuk menangani data-data yang berukuran sangat besar. 2. Memiliki kemampuan Multithread sehingga dapat melayani banyak permintaan secara bersamaan. 3. Dapat berjalan pada banyak sistem operasi. 4. Memiliki metode enkripsi yang baik. 5. Menggunakan autentikasi user dan kata sandi sehingga menjadikan lebih aman. 2.1.2.9 Data Coversion and Loading Konversi dan muatan data adalah memindahkan setiap data yang ada ke dalam basis data baru dan mengubah setiap aplikasi yang ada untuk dijalankan dalam basis data yang baru. 2.1.2.10 Testing Uji coba adalah proses yang menjalankan sistem basis dengan tujuan untuk menemukan kesalahan.
45 1. Database Testing Tujuan dari database testing adalah untuk menemukan kesalahan(errors), namun database testing dipersulit oleh beberapa faktor. Diantaranya (Pressman, 2010, pp. 533-537): a. Permintaan asli client-side untuk informasi jarang disajikan dalam bentuk formulir. Oleh karena itu, uji coba harus dirancang untuk menemukan errors yang dibuat dalam menerjemahkan permintaan pengguna ke dalam sebuah form yang dapat diproses oleh DBMS. b.
Basis data yang mungkin jauh ke server yang merupakan tempat dari WebApp. Maka dari itu, uji coba yang digunakan untuk menemukan errors dalam komunikasi antara WebApp dan basis data yang kecil harus dikembangkan.
c.
Data mentah yang diperoleh dari basis data harus dikirimkan ke WebApp server dan diformat untuk selanjutnya dikirim ke client.
d.
Konten obyek yang dinamis harus dikirimkan ke client di dalam suatu bentuk yang dapat ditampilkan kepada end-user.
1). Integrity constraints Merupakan bagian dari model data yang memastikan bahwa data tersebut akurat. Terdapat dua aturan integritas penting yang merupakan batasan yang berlaku untuk semua contoh dari database, yaitu entity integrity dan referential integrity. Tipe lainnya dari integrity constraints adalah multiplicity dan general constraints (Connolly & Begg, 2010, p. 153). Integration testing adalah sebuah teknik sistematis untuk membangun arsitektur perangkat lunak pada saat yang sama ketika melakukan tes untuk menemukan kesalahan yang terkait
dengan
interfacing.
Tujuannya
adalah
untuk
mendapatkan banyak komponen yang diuji dan membangun
46 sebuah struktur program yang telah ditentukan oleh desain (Pressman, 2010, pp. 459-464). Ada
beberapa
perbedaan
strategi
integrasi
tambahan,
diantaranya : a. Top-down integration Top-down integration testing adalah sebuah pendekatan tambahan untuk pembangunan arsitektur perangkat lunak. Strategi top-down integration memverifikasi pengendali utama atau keputusan awal dalam proses uji coba. b. Bottom-up integration Strategi bottom-up integration dapat diimplementasikan dengan langkah berikut : 1). Komponen tingkat kedalam
clusters
rendah yang dikombinasikan (atau
disebut
builds)
dengan
melakukan spesifikasi software. 2). Driver, yaitu sebuah program pengendali uji coba yang ditulis untuk mengkoordinasikan uji coba dengan input dan output. 3). Cluster diuji. 4). Drivers dihapus dan clusters dikombinasikan dengan bergerak ke atas dalam struktur program. c. Regression testing Regression testing adalah eksekusi ulang dari beberapa bagian uji coba yang telah dilakukan untuk memastikan bahwa perubahan menyebarkan efek samping yang tidak diinginkan. d. Smoke testing Smoke testing adalah sebuah pendekatan integration testing yang umum digunakan ketika produk software dikembangkan.
Produk
dirancang
sebagai
acuan
mekanisme untuk proyek yang mempunyai waktu penting. e. Strategic options Pemilihan
dari
strategi
integrasi
tergantung
karakteristik software dan terkadang, jadwal proyek.
pada
47
f. Integration test work products Keseluruhan rencana untuk integrasi software
dan
deskripsi uji coba khusus didokumentasikan dalam test specification. Kerja produk ini yaitu menggabungkan rencana uji coba, dan prosedur uji coba, serta menjadi bagian konfigurasi software. 2). Database security Merupakan mekanisme yang melindungi basis data dari ancaman yang disengaja maupun tidak disengaja (Connolly & Begg, 2010, p. 568). 2. Application Testing System testing adalah serangkaian uji coba yang berbeda, dan tujuan utamanya adalah sepenuhnya untuk melaksanakan sistem berbasis komputer. Meskipun masing-masing uji coba memiliki tujuan yang berbeda, namun semua pekerjaannya yaitu tetap untuk memverifikasi bahwa sistem elemen telah terintegrasi dengan baik dan melakukan fungsi-fungsi yang dialokasikan (Pressman, 2010, pp. 470-472). Ada beberapa tipe dari system testing, diantaranya : 1). Recovery testing, adalah suatu sistem uji coba yang memaksa software untuk gagal dalam berbagai cara dan memverifikasi bahwa pemulihan dilakukan dengan benar. 2). Security testing, adalah suatu sistem uji coba yang dilakukan untuk memverifikasi bahwa mekanisme perlindungan yang dibangun
ke
dalam
sistem,
pada
kenyataannya
akan
melindunginya dari penetrasi yang tidak tepat. 3). Stress testing, adalah suatu sistem yang didesain untuk menghadapi program dengan situasi yang tidak normal. Stress testing mengeksekusi suatu sistem dengan cara meminta sumber daya dalam jumlah, frekuensi, atau volume yang tidak normal. Dan secara teknik, stress testing juga disebut sebagai sensitivity testing.
48 4). Performance testing, adalah suatu sistem yang sering dipasangkan dengan stress testing dan biasanya membutuhkan instrumentasi hardware dan software dari keduanya. Deployment testing, adalah suatu sistem yang menjalankan software di setiap lingkungan yang mana merupakan tempat untuk beroperasi. Disamping itu, deployment testing juga menentukan semua prosedur instalasi dan instalasi software khusus. Dan terkadang disebut juga dengan configuration testing. 3. User Interface Testing Ada 8 prinsip yang disebut
delapan aturan emas dalam
mendesain sistem interaktif, di antaranya sebagai berikut (Shneiderman & Catherine, 2005, p. 74): 1). Mengupayakan untuk konsistensi Konsistensi di sini artinya konsisten dalam urutan tindakan diminta dalam situasi yang sama,terminologi yang sama harus digunakan dalam petunjuk, menu, dan layar bantuan, serta konsisten
warna, tata letak,
huruf
besar, huruf, dan
sebagainya harus digunakan di seluruh halaman. 2). Menyediakan usability universal Perbedaan
pemula dan ahli, rentang usia, cacat, dan
keanekaragaman
teknologi
masing-masing
memperkaya
spektrum persyaratan yang memandu desain. Menambahkan fitur untuk pemula, seperti penjelasan, dan fitur untuk para ahli, seperti cara pintas dan mondar-mandir lebih cepat, bisa memperkaya desain antarmuka dan meningkatkan kualitas sistem yang dirasakan. 3). Memberikan umpan balik yangg informatif Untuk setiap tindakan user, harus ada umpan balik sistem. Untuk tindakan sering dan sederhana, respon dapat menjadi sederhana, sedangkan untuk tindakan jarang dan besar, respon harus lebih substansial. 4). Merancang dialog yang memberikan penutupan(keadaan akhir)
49 Urutan tindakan harus diatur ke dalam kelompok dengan awal, tengah, dan akhir. Umpan balik yang informatif pada penyelesaian sekelompok tindakan memberikan operator kepuasan pencapaian, rasa lega, sinyal untuk menghentikan rencana darurat dari pikiran mereka, dan sinyal untuk mempersiapkan tindakan berikutnya. 5).
Mencegah kesalahan Sebisa mungkin, merancang sistem sedemikian rupa sehingga user tidak membuat kesalahan serius. Jika user membuat kesalahan, antarmuka harus mendeteksi kesalahan dan menawarkan instruksi sederhana, konstruktif, dan khusus untuk pemulihan.
6).
Memungkinkan pembalikkan tindakan yang mudah Sebisa mungkin, tindakan harus dapat dibalikkan. Fitur ini mengurangi kecemasan, karena user tahu bahwa kesalahan dapat dibatalkan, sehingga mendorong eksplorasi opsi asing.
7).
Mendukung pusat kendali internal Operator yang berpengalaman sangat menginginkan mereka dapat bertanggung jawab atas antarmuka dan antarmuka merespon tindakan mereka. Urutan membosankan entri data, ketidakmampuan atau kesulitan untuk memperoleh informasi yang diperlukan, dan ketidakmampuan untuk menghasilkan tindakan yang diinginkan mengakibatkan ketidakpuasan.
8). Mengurangi beban ingatan jangka pendek Keterbatasan pemrosesan informasi manusia dalam ingatan jangka pendek mensyaratkan bahwa tampilan akan dibuat sederhana,
beberapa
halaman
yang
ditampilkan
dapat
digabung, frekuensi window-motion dikurangi, dan waktu pelatihan yang cukup
dialokasikan untuk kode,
cara
menghafal, dan urutan tindakan. Apabila diperlukan, akses online ke bentuk perintah sintaks, singkatan, kode, dan informasi lainnya harus disediakan.
50 4. User Acceptance Test (UAT) Berikut adalah proses yang sering digunakan oleh software builder untuk menemukan kesalahan yang terlihat pada end-user, yaitu alpha dan beta testing (Pressman, 2010, pp. 468-469). 1). Alpha testing yaitu suatu proses yang dilakukan di situs developer oleh perwakilan dari sekelompok end-user. 2). Beta testing atau biasa disebut sebagai user acceptance testing, adalah suatu proses yang dilakukan pada satu atau lebih situs end-user. Variasi pada beta testing ini terkadang dilakukan ketika software yang dibuat kemudian dikirim ke customer (user) berdasarkan kontrak. Yang sebelumnya customer (user) dapat melakukan serangkaian uji coba dalam upaya untuk menemukan errors dari software yang akan diberikan. Dalam beberapa kasus, acceptance testing bisa dilakukan sangat formal dalam pengujian dan mencakup beberapa hari atau bahkan berminggu-minggu untuk uji coba. 2.1.2.11 Operational Maintenance Pemeliharaan operasional adalah proses pemantauan dan pemeliharaan sistem basis data setelah instalasi. Terdapat beberapa aktivitas dalam pemeliharaan sistem: 1). Pemantauan kinerja sistem. Jika kinerja turun dibawah tingkat yang dapat diterima, penyetelan atau reorganisasi basis data mungkin diperlukan. 2). Pemeliharaan dan pembaharuan basis data(ketika dibutuhkan). Kebutuhan baru dimasukan dalam sistem basis data melalui tahap siklus hidup sebelumnya.
2.2 Teori yang terkait tema penelitian 2.2.1 Kinerja Karyawan Menurut Mathis dan Jackson (2006: 378) berpendapat bahwa kinerja (performance) pada dasarnya adalah apa yang dilakukan atau tidak dilakukan oleh karyawan. Kinerja karyawan yang umum untuk kebanyakan pekerjaan meliputi elemen yaitu kuantitas dari hasil,
51 ketepatan waktu dari hasil, kehadiran dan kemapuan bekerjasama. Ada 3 faktor utama yang mempengaruhi kinerja karyawan yaitu: 1. Kemampuan individual Kemampuan individual ini mencakup bakat, minat, dan faktor kepribadian. Tingkat ketrampilan, merupakan bahan mentah yang dimiliki seorang karyawan berupa
pengetahuan, pemahaman,
kemampuan, kecakapan interpersonal dan kecakapan teknis. Dengan demikian, kemungkinan seorang karyawan akan mempunyai kinerja yang baik, jika karyawan tersebut memiliki tingkat ketrampilan baik maka karyawan tersebut akan menghasilkan kinerja yang baik pula. 2. Usaha yang dicurahkan Usaha yang dicurahkan dari karyawan bagi perusahaan adalah etika kerja, kehadiran, dan motivasinya. Tingkat usahanya merupakan gambaran motivasi yang diperlihatkan karyawan untuk menyelesaikan pekerjaan dengan baik. Meskipun karyawan mempunyai tingkat ketrampilan untuk mengerjakan akan tetapi tidak akan bekerja dengan baik jika hanya sedikit upaya. Hal ini berkaitan dengan perbedaan antara tingkat ketrampilan dengan tingkat upaya. Tingkat ketrampilan merupakan cermin apa yang dilakukan, sedangkan tingkat upaya merupakan cermin apa yang dilakukan. 3. Dukungan organisasional Dalam dukungan organisasional, perusahaan menyediakan fasilitas bagi karyawan dasarnya adalah apa yang dilakukan atau tidak dilakukan
karyawan.
Kinerja
karyawan
akan
mempengaruhi
kontribusi pada organisasi. Menurut jurnal yang berjudul “Perancangan Penilaian Kinerja Karyawan Berdasarkan Kompetensi Spencer Dengan Metode Analytical Hierarchy Process” yang dimaksud dengan dimensi kerja menurut Gomes (1995: 142) memperluaskan dimensi prestasi kerja karyawan yang berdasarkan: 1. Quantity work: jumlah kerja yang dilakukan dalam suatu periode waktu yang ditentukan. 2. Quality of work: kualitas kerja berdasarkan syarat-syarat kesesuaian dan kesiapannya.
52 3. Job knowledge: luasnya pengetahuan mengenai pekerjaan dan ketrampilannya. 4. Creativeness: Keaslian gagasan-gagasan yang dimunculkan dan tindakan-tindakan untuk menyelesaikan persoalan-persoalan yang timbul. 5. Cooperation: kesetiaan untuk bekerjasama dengan orang lain. 6. Dependability: kesadaran dan kepercayaan dalam hal kehadiran dan penyelesaian kerja. 7. Initiative: semangat untuk melaksanakan tugas-tugas baru dan dalam memperbesar tanggung jawabnya. 8. Personal qualities: menyangkut kepribadian, kepemimpinan, keramahtamahan, dan integritas pribadi. 2.2.2 Absensi Menurut Kamus Besar Bahasa Indonesia (2008:4), absensi adalah ketidakhadiran (sekolah, kerja, dan sebagainya). Sedangkan menurut jurnal
yang
berjudul
“Implementasi
Sistem
absensi
Pegawai
menggunakan QR Code pada Smartphone berbasis Android”, absensi adalah suatu pendataan kehadiran, bagian dari pelaporan aktivitas suatu institusi, atau komponen institusi itu sendiri yang berisi data kehadiran yang disusun dan diatur sedemikian rupa sehingga mudah untuk dicari dan dipergunakan apabila sewaktu-waktu diperlukan oleh pihak yang berkepentingan. Sistem absensi terbagi menjadi dua kelompok, yaitu sistem absensi secara manual dan sistem absensi secara otomatis. Sistem absensi secara otomatis memiliki keunggulan sebagai berikut: 1. Lebih akurat dan lebih cepat dalam waktu pencatatan, proses, dan menghasilkan laporan. 2. Mengurangi faktor kesalahan manusia. 3. Mengurangi biaya sumber daya manusia. 4. Akses yang lebih baik terhadap data aktivitas pegawai. 5. Laporan yang flexible dapat di-generate dengan cepat dan mudah. 6. Data dapat digunakan untuk perangkat lunak lainnya. 7. Dapat diperluas fitur-fiturnya seperti pelacakan pegawai secara online, mengatur distribusi pegawai, dan lain-lain.
53 2.2.3 Internet dan Web 2.2.3.1 Pengertian Internet dan Intranet Internet adalah sebuah kumpulan besar komputer yang terhubung dalam jaringan komunikasi. Bahkan beberapa perangkat yang bukan komputer terhubung ke internet, seperti plotters dan printer. Semua perangkat ini dapat berkomunikasi satu sama lain protokol tingkat rendah: Transmission Control Protocol / Internet Protocol (TCP / IP) (Sebesta, 2011, p. 23). Intranet adalah sebuah situs web atau sekelompok situs milik sebuah organisasi, hanya dapat diakses oleh anggota organisasi (Connolly & Begg, 2010, p. 1026). Ada beberapa model pemanfaatan intranet menurut jurnal international berjudul “Antecedents and Impact of Intranet Utilization: A Conceptual Framework”, yaitu : 1. Publikasi Pemanfaatan intranet untuk publikasi informasi misalnya halaman utama, memo, buletin, manual, dokumen teknis, dan lain-lain. 2. Transaksi Pemanfaatan intranet untuk bertransaksi dengan fungsionalitas pada halaman intranet dan bentuk berbasis web lain dari sistem informasi organisasi seperti Sumber Daya Manusia, Keuangan, Hubungan Pelanggan, dan lain-lain. 3. Interaksi Pemanfaatan intranet untuk berinteraksi dengan orang lain dan kelompok dalam organisasi melalui ruang forum, ruang diskusi, egroup, e-mail. 4. Pencarian Pemanfaatan intranet untuk mencari informasi organisasi, seperti: informasi staf, formulir, buletin, dokumen teknis, dan lain-lain melalui staf direktori atau mesin pencari 5. Rekaman Pemanfaatan intranet untuk merekam memori organisasi, seperti: praktik terbaik, proses bisnis, pertanyaan yang sering diajukan (FAQ), dan lain-lain.
54 2.2.3.2 Pengertian Web Web adalah kumpulan perangkat lunak dan protokol yang telah diinstal pada sebagian besar, jika tidak semua, dari komputer yang terhubung internet. Beberapa komputer ini menjalankan web server, yang menyediakan dokumen, tetapi web client atau browser paling sering dijalankan, yang meminta dokumen dari server dan menampilkannya kepada pengguna (Sebesta, 2011, p. 27).