BAB II LANDASAN TEORI
2.1 SISTEM BERKAS / FILE Berkas komputer atau berkas (Inggris: file) adalah entitas dari data yang disimpan di dalam sistem berkas yang dapat diakses dan diatur oleh pengguna. Sebuah berkas memiliki nama yang unik dalam direktori di mana ia berada. Alamat direktori dimana suatu berkas ditempatkan diistilahkan dengan path. File secara fisik dapat diatur oleh sistem berkas yang digunakan oleh media penyimpanan di mana berkas disimpan. Secara logis, user membutuhkan sebuah utilitas untuk melakukan manajemen file, yang sering disebut sebagai "File Manager", atau manajer berkas. Contoh dari file manager adalah Windows Explorer dalam sistem operasi Windows, Norton Commander, Konqueror (dalam KDE), Nautilus (dalam GNOME), Midnight Commander, dan DOS Shell (dalam sistem operasi DOS).
2.2 SISTEM MANAJEMEN BASIS DATA 2.2.1 Apakah Basis Data Itu? Basisdata adalah kumpulan data (elementer yang secara logik berkaitan dalam merepresentasikan fenomena / fakta secara terstruktur dalam domain tertentu untuk mendukung aplikasi pada sistem tertentu. Basisdata adalah kumpulan data yang saling berhubungan yang merefleksikan fakta – fakta yang terdapat di
5
6
organisasi. Basisdata mendeskripsikan state organisasi/perusahaan/sistem. Saat satu kejadian muncul di dunia nyata mengunbah state organisasi / perusahaan / sistem maka satu perubahan pun harus dilakukan terhadap data yang disimpan di basisdata. Basisdata merupakan komponen utama sistem informasi karena semua informasi untuk pengambilan keputusan berasal dari data di Basisdata. Pengelolaan basisdata yang buruk dapat mengakibatkan ketidaktersediaan data penting yang digunakan untuk menghasilkan informasi yang diperlukan dalam pengambilan keputusan.
2.2.2 Sistem Manajemen Basisdata Sistem Manajemen Basisdata atau DBMS (Database Management System) adalah perangkat lunak untuk mendefinisikan, menciptakan, mengelola, dan mengendalikan pengaksesan Basisdata. Fungsi sistem manajemen basisdata saat ini yang paling penting adalah menyediakan basis untuk sistem informasi manajemen.
2.2.3 Tujuan Utama Tujuan utama Sistem Manajemen Basisdata adalah menyediakan lingkungan yang nyaman dan efisien untuk penyimpanan dan pengambilan data dari Basisdata.
7
Sistem manajemen Basisdata berperan memberi abstraksi data tingkat tinggi ke pemakai. Sistem manajemen Basisdata adalah perangkat lunak yang dirancang untuk membantu pengelolaan dan rangkaian koleksi data yang besar. Pemakai berurusan dengan abstraksi tingkat tinggi yang lebih akrab, nyaman dan fleksibel bukan rincian fisik penyimpanan data.
2.2.4 Diagram Blok DBMS Sistem Manajemen Basisdata dipartisi menjadi modul – modul dengan masing – masing modul mempunyai satu peran atau tanggung jawab tertentu. Komponen fungsional Sistem Manajemen Basisdata, antara lain : 1. Pengelola Berkas (File Manajer) 2. Pengelola Basisdata (Database Manager) 3. Pemroses Query (Query Processor) 4. Pre-Kompilator DML (DML Precompiler) 5. Kompilator DDL (DDL Compiler) Struktur data untuk implementasi secara fisik adalah : 1. Data Dictionary 2. Berkas – berkas data 1.
Data Dictionary / Directory
Subsistem data dictionary /directory (DD) menyimpan definisi – definisi semua item data di basisdata. Kamus data ini berisi definisi – definisi item – item data elementer (Field), kelompok, struktur, data level rekord, file – file dan tabel –
8
tabel relasional. Kamus data tidak hanya mengelola informasi – informasi ini tapi juga informasi hubungan antar struktur data. Kamus data juga mengelola indeks untuk mengakses data secara cepat. Kamus data dapat dipandang sebagai bagian basis data itu sendiri. Dengan demikian, basisdata mendeskripsikan dirinya sendiri karena berisi informasi mengenai struktur yang dimilikinya. Informasi di kamus data disebut Metadata yaitu ‘data mengenai data’. Metadata juga dapat dikenai query dan manipulasi sebagaimana data lain yang berada di basisdata.
2.
Berkas – Berkas Data
Data di basisdata harus distrukturkan secara hati – hati. Fungsi bisnis arus dianalisis, elemen – elemen data dan hubungan antar elemen – elemen data harus dapat diidentifikasi serta didefinisikan secara presisi, dan definisi – definisi ini harus direkam ke kamus data secara akurat. Data kemudian dapat dikumpulkan dan dimasukkan ke basisdata sesuai struktur yang telah didefinisikan. Data akan disimpan oleh manajer basisdata sebagai berkas – berkas data sesuai model fisik yang digunakan oleh manajer basis data yang tidak menjadi kepedulian pemakai basis data. Kebanyakan pemakai basisdata tidak berurusan dengan model fisik secara langsung, kebanyakan hanya berhubungan dengan model logik yang lebih mudah dan ampuh untuk dimanipulasi seperti pandangan data di basisdata sebagai kumpulan relasi pada model relasional. Pemakai memandang data – data yang di
9
basisdata relasional sebagai kumpulan relasi – relasi yang saling terhubug melalui hubungan – hubungan logik atribut – atribut di dalam relasi – relasi itu sendiri. Pemakai Awam
Pemrogram Aplikasi
Pemakai Canggih
Interface Aplikasi
Program Aplikasi
Query
Pre-Kompilator bahasa Manipulasi data (DML) Kode Objek Program Aplikasi
Administrator Basisdata
Skema Basisdata
Pengolah
Manajer Basisdata
Pre-Kompilator bahasa Definisi Data (DDL)
File Manager
File – file data
Data Dictionary
GAMBAR 2.1 Skema Blok DBMS 2.3 ALGORITMA PENCARIAN BERURUTAN (SEQUENSIAL LINIER) Pencarian data sering juga disebut table look-up atau storage and retrieval information adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam pengingat komputer dan kemudian mencari kembali informasi yang diperlukan secepat mungkin. Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari ekaman
10
dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan (successful) atau tidak ditemukan (unsuccessful). Pencarian berurutan sering disebut pencarian linear merupakan metode pencarian yang paling sederhana. Pencarian berurutan menggunakan prinsip sebagai berikut: data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan.Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai dengan jumlah data. Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir pengulangan tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula. Algoritma pencarian berurutan dapat dituliskan sebagai berikut : 1
i
0
2
ketemu
3
Selama (tidak ketemu) dan (i <= N) kerjakan baris 4
4
Jika (Data[i] = x) maka ketemu
5
Jika (ketemu) maka i adalah indeks dari data yang dicari, jika tidak data tidak
false
true, jika tidak i
i+1
ditemukan
Di bawah ini merupakan fungsi untuk mencari data menggunakan pencarian sekuensial.
11
! "
# $
%% &
'! & Program 2.1 Fungsi untuk Mencari Data dengan Metode Sekuensial
Fungsi diatas akan mengembalikan indeks dari data yang dicari. Apabila data tidak ditemukan maka fungsi diatas akan mengembalikan nilai –1.
2.4 BORLAND DELPHI Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak. Produk ini dikembangkan oleh CodeGear sebagai divisi pengembangan software milik Embarcadero, divisi tersebut sebelumnya adalah milik Borland. Bahasa Delphi, atau dikenal pula sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft .NET
12
framework (lihat di bawah). Dengan menggunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE Aspek penting yang perlu dicatat tentang Bahasa pemrograman Delphi termasuk: •
Penanganan object sebagai reference/pointer secara transparan
•
Properti sebagai bagian dari bahasa tersebut; benar, sebagai getter dan setter
(atau
accessor
and
mutator),
yang
secara
transparan
mengenkapsulasi akses pada field-field anggota dalam kelas tersebut. •
Property index dan Default yang menyediakan akses pada data kolektif
•
Pendelegasian (type safe method pointer) yang digunakan untuk memproses event yang dipicu oleh component
•
Pendelegasian implementasi interface pada Field ataupun property dari class.
•
Implementasi penanganan windows message dengan cara membuat method dalam class dengan nomer/nama dari windows message yang akan dihandle.
•
COM bersifat sebagai interface yang independen dengan implementasi class sebagai reference counted
•
Kompilasi yang dapat menghasilkan kode yang berjalan secara native x86 ataupun managed code pada arsitektur framework .NET.
13
2.5 BAHASA PEMODELAN OBYEK STANDAR (UNIFIED MULTIPLE LANGUAGE / UML) Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa berorientasi objek. UML diagram: •
Menggambarkan konsep (Dalam bentuk symbol)
•
Menggambarkan hubungan/relasi antar konsep (Berupa garis)
•
Menggambarkan nama (Label dibawah atau samping suatu simbol dan garis)
Diagram UML terdiri dari : •
Use-Case (relasi dari fungsi sistem aktor)
•
Class (Struktur klas statis)
•
Object (sama dengan klas −hanya menggunakan klas instansi – contoh objek)
•
State (Kondisi objek dalam klas biasa)
•
Sequence (Struktur Pesan objek saat transisi)
•
Collaboration (Sama seperti sequence tapi menunjukkan konteks, contohnya objek dan relationship-nya)
•
Activity (sequential flow dari aktivitas, contohnya : kondisi aksi)
14
•
Component (Kode Struktur)
•
Deployment (Pemetaan dari perangkat lunak ke perangkat keras)
UML diagrams Use-Case Static Structure Object
Class Interaction
Sequence
Collaboration State Activity
Implementation Component
Deployment
GAMBAR 2.2 Contoh Diagram UML Notasi Dasar UML : 1. Actor : Segala sesuatu yang berinteraksi langsung dengan sistem Tugas : Memberikan informasi kepada sistem dan memerintahkan sesuatu ke sistem
GAMBAR 2.3 Notasi Actor pada UML 2. Class Notasi utama dan yang paling mendasar pada diagram UML adalah notasi untuk merepresentasikan suatu class beserta dengan atribut dan operasinya. Class adalah pembentuk utama dari sistem berorientasi objek.
15
Class Atribut Operasi GAMBAR 2.4 Notasi Class pada UML 3. Use Case Use case adalah deskripsi fungsi dari sebuah sistem dari perspektif pengguna. Use case bekerja dengan cara mendeskripsikan tipikal interaksi antara pengguna sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Urutan langkah–langkah yang menerangkan antara pengguna dan sistem disebut skenario.
GAMBAR 2.5 Notasi Use Case pada UML 2.5.1 Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem.Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam
16
dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali usecase yang meng-include dieksekusi secara normal.Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common.
Daftar Kursus Ambil kursus Pelajar Tambah kelas Kursus Batal kelas Kursus
Guru
Administrator Hapus kelas Kursus
GAMBAR 2.6 Contoh Use Case dalam Sistem Pendaftaran Kursus 2.5.2 Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir serta menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem)
17
secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Simbol dalam Activity Diagram : Tabel 2.1 Simbol Activity Diagram Simbol
Keterangan Titik Awal Titik Akhir Activity Pilihan untuk pengambilan keputusan Fork; untuk menunjukkan kegiatan yang dilakukan secara paralel Rake; menunjukkan adanya dekomposisi Tanda waktu Tanda Penerimaan Aliran Akhir (Flow final)
AWAL
Datang ke tempat kursus
Tidak jadi kursus
Memilih Jenis Kursus
AKHIR
Administrator
Registrasi Kursus
GAMBAR 2.7 Contoh Activity Diagram
18
2.5.3 Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.
NAME
NAME Objek
Life Line GAMBAR 2.8 Contoh Sequence Diagram 2.6 REKAYASA PERANGKAT LUNAK 2.6.1 Model Sequensial Linier Sekuensial linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan.
19
Dimodelkan setelah siklus rekayasa konvensional, model sekuensial linier, melingkupi aktifitas – aktifitas sebagai berikut (Pressman, 2002. 36-39)
Pemodelan sistem informasi
Analisis
Desain
Kode
Tes
Gambar 2.9 Model Sequensial Linier 2.6.1.1. Rekayasa Dan Pemodelan Sistem Informasi Karena perangkat lunak selalu merupakan bgian dari sebuah sistem (bis bis) yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke perangkat lunak tersebut. Pandangan sistem itu penting ketika perangkat lunak harus berhubungan dengan elemen – elemen yang lain seperti perangkat lunak, manusia, dan database.
2.6.1.2. Analisis Kebutuhan Perangkat Lunak Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun; prekayasa perangkat lunak (analisis) harus memahami domain informasi, tingkah laku, unjuk kerja, dan antar muka (interface) yang diperlukan.
20
2.6.1.3. Desain Desain perangkat lunak sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda; struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) pro sedural.
2.6.1.4. Generasi Kode Desain harus diterjemahkan ke dalam bentuk mesin yang bisa dibaca langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis.
2.6.1.5. Pengujian BlackBox Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karena itu ujicoba Blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan metode whitebox. Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya : 1.
Fungsi-fungsi yang salah atau hilang
2.
Kesalahan interface
3.
Kesalahan dalam struktur data atau akses database eksternal
21
4.
Kesalahan performa
5.
Kesalahan inisialisasi dan terminasi
Input Data
I
Inputs causing anomalous behaviour
System
Output Data
Oe
Outputs which reveal the presence of defects
Gambar 2.10 Tes BlackBox Contoh lain Black Box Testing adalah 1.
Equivalence partitioning, membagi domain input dari program ke dalam klasklas data
2.
Boundary Value Analysis (BVA) melengkapi Equivalence Partitioning, dengan melakukannya dari domain output
3.
Cause-effect Graphing, memvalidasi aksi – aksi dan kondisi yg kompleks
Partisi Ekivalensi (equivalensi partition) •
Input data dan output hasil terdapat di klas yang berbeda yang sesuai dengan klas inputnya
•
Masing-masing klas equivalensi partition diproses dimana program akan memproses anggota klas-klas tersebut secara equivalen.
•
Test cases dipilih dari masing-masing partisi
22
2.6.2 Notasi Diagram Alir Notasi sederhana untuk merepresentasikan alira kontrol yang disebut Diagram Alir (Atau diagram program). Untuk menggambarkan grafik alir, perhatikan presentasi desain prosedural pada gambar 2.8.a. Disini bagan alir digunakan untuk menggambarkan struktur kontrol program. Gambar 2.8.b memetakan bagan alir tersebut kedalam grafik alir yang sesuai (dengan mengasumsikan bahwa tidak ada kondisi senyawa yang diisikan di dalam diamond keputusan dari bagan alir tersebut). Pada gambar 2.3.b, masing – masing lingkaran, yang disebut simpul grafik alir, merepresentasikan satu atau lebih statemen prosedural. Urutan kotak proses dan permata keputusan dapat memetakan simpul tunggal. Anak panah pada grafik alir tersebut, yang disebut edges atau links, merepresentasikan aliran kontrol dan analog dengan anak panah bagan alir. Edge harus berhenti pada suatu simpul, meskipun bila simpul tersebut tidak merepresentasikan statemen prosedural (misalnya, lihat simpul bangun if-then-else). Area yang dibatasi oleh edge dan simpul disebut region. Pada saat menghitung region, kita memasukkan area diluar grafik dan menghitungnya sebagai sebuah region.
23
1 2 3 4
6 7
8
5
• •
11
GAMBAR 2.8.a Diagram Alir
1 2,3 6 7
4,5 8
9 10 11 GAMBAR 2.8.b Grafik Alir