BAB 2 LANDASAN TEORI 2.1 Konsep Sistem Basisdata 2.1.1 Latar Belakang Munculnya Penggunaan Basisdata Saat ini basisdata merupakan suatu teknologi yang tidak terpisahkan dalam kehidupan sehari-hari. Contohnya: saat kita mengakses suatu situs di internet, secara tidak sadar kita telah menggunakan suatu aplikasi basisdata. Sebelum adanya perangkat lunak basisdata seperti DBMS (Database Management System), penyimpanan data masih menggunakan pendekatan sistem file. Menurut Connolly dan Begg (2005, p7), sistem berbasis file adalah kumpulan program aplikasi yang memberikan fungsi pelayanan kepada end-user, misalnya untuk pembuatan laporan. Setiap program aplikasi mendefinisikan dan mengatur datanya masing-masing. Namun, ternyata banyak keterbatasan dari pendekatan sistem berbasis file, antara lain : • Data yang terpisah dan terisolasi. • Data yang sering terduplikasi. • Ketergantungan data pada program aplikasi tertentu. • Format file yang tidak cocok saat ingin digabungkan dengan file dari aplikasi yang berbeda. • Format query yang statis. 8 9 Untuk mengatasi berbagai keterbatasan tersebut, maka munculah pendekatan yang menggunakan basisdata dan DBMS untuk sistem penyimpanan data. 2.1.2 Pengertian Data Menurut George Schell dan Raymond McLeod, Jr (2004, p9), data terdiri dari fakta-fakta yang umumnya tidak dapat digunakan karena ukurannya yang besar dan belum terproses. Sebagai contoh, data adalah jumlah jam kerja dari setiap pekerja dalam perusahaan. Saat data diproses, data dapat diubah menjadi informasi. Prosesnya adalah jam kerja dari setiap pekerja ini dikalikan dengan tarif per jam dan menghasilkan pendapatan kotor, kemudian pendapatan kotor dari setiap pekerja ditambahkan dan menjadi daftar gaji total. Jumlah dari daftar gaji ini adalah informasi bagi pemilik perusahaan. Jadi data adalah fakta-fakta yang disimpan di dalam database, sedangkan informasi adalah bagaimana data diartikan dan dimengerti oleh user. 2.1.3 Pengertian Basisdata Menurut Connolly dan Begg (2005, p15), database adalah suatu kumpulan data komputer yang terhubung secara logikal serta berisi deskripsi dari data tersebut, yang dirancang untuk memenuhi kebutuhan informasi dari suatu perusahaan. Menurut Kroenke (2002, p15), ”Database is a self describing collection of integrated records”, yang berarti basisdata adalah suatu koleksi data yang menggambarkan integrasi antara record yang satu dengan yang lainnya. A self 10 describing di sini menjelaskan bahwa struktur data saling terintegrasi dalam suatu tempat yang dikenal sebagai kamus data atau metadata. Menurut Ramakrishnan dan Gehrke (2003, p4), basisdata adalah kumpulan data yang secara khusus menggambarkan kegiatan dari satu atau lebih bagianbagian yang berhubungan. Jadi, basisdata adalah suatu koleksi data yang saling berhubungan dan menggambarkan integrasi antara suatu record dengan record lainnya yang dirancang dan dimanfaatkan untuk memenuhi kebutuhan informasi dari suatu organisasi. 2.1.4 Sistem Basisdata Menurut C.J. Date (2000, p2), sistem basisdata adalah suatu sistem yang pada dasarnya menyimpan record-record di dalam suatu sistem komputerisasi, yang tujuan keseluruhannya adalah untuk memelihara infomasi dan untuk membuat informasi tersebut tersedia berdasarkan permintaan saat dibutuhkan. Menurut Fathansyah (2004, p2), sistem basisdata merupakan sistem yang terdiri atas kumpulan komponen-komponen yang saling berhubungan dan memiliki ketergantungan (dependence) dalam rangka mencapai suatu tujuan tertentu. Adapun komponen-komponen sistem basisdata yang saling bergantung adalah hardware, software, brainware, dan basisdata. Jadi, sistem basisdata adalah suatu sistem yang terdiri dari hardware, software, brainware, dan basisdata yang saling berhubungan, digunakan untuk penyimpanan data secara terkomputerisasi dengan tujuan untuk diolah menjadi informasi yang bermanfaat saat dibutuhkan oleh user. 11 2.1.5 Bahasa Basisdata (Database Design Language) Database Management System merupakan perantara antara user dengan basisdata. Cara interaksi antara user dengan basisdata tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan yang merancang Database Management System. Bahasa tersebut dapat kita sebut sebagai bahasa basisdata, yaitu sejumlah perintah (statement) terstruktur yang diformulasikan oleh user dan dapat dikenali / diproses oleh sistem aplikasi basisdata untuk melakukan suatu pekerjaan tertentu. Contoh bahasa basisdata adalah SQL dan DBase. Adapun bahasa basisdata terbagi menjadi dua bentuk, yaitu DDL dan DML. 2.1.5.1 Data Definition Language (DDL) Menurut Connolly dan Begg (2005, p40), DDL adalah suatu bahasa yang memungkinkan Database Administrator atau user untuk mendefinisikan, menerangkan dan memberi nama entiti, atribut dan hubungan yang dibutuhkan oleh aplikasi. DDL digunakan untuk menspesifikasi suatu skema baru atau untuk memodifikasi skema database yang sudah ada, namun tidak dapat digunakan untuk memanipulasi data. Menurut Fathansyah (2004, p13), DDL adalah struktur atau skema basisdata yang menggambarkan rancangan basisdata secara keseluruhan dengan dispesifikasikan melalui bahasa khusus. Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut kamus data. Beberapa statement DDL (Connolly dan Begg, 2005, p168 ), yaitu: a) Create Table : untuk membuat tabel dengan mengidentifikasikan tipe data untuk tiap kolom. 12 b) Alter Table : untuk menambah atau membuang kolom, nilai default, dan constraint ke atau dari suatu tabel. c) Drop Table : untuk membuang atau menghapus tabel beserta semua data yang terkait di dalamnya. d) Create Index: untuk membuat indeks pada suatu tabel. e) Drop Index: untuk membuang atau menghapus indeks yang telah dibuat sebelumnya. 2.1.5.2 Data Manipulation Language (DML) Menurut Connolly dan Begg (2005, p40), DML adalah suatu bahasa yang menyediakan kumpulan operasi yang akan diinginkan untuk mendukung operasi manipulasi data di dalam basisdata. DML menyediakan operasi dasar manipulasi data di basisdata, yaitu : • Penyisipan data baru ke dalam basisdata (insertion). • Mengubah atau modifikasi data yang disimpan di dalam basisdata (update). • Pemanggilan data yang ada dalam basisdata (retrieve). • Menghapus data dari basisdata (delete). Menurut Connolly dan Begg (2005, p41-p42), kita dapat membedakan DML menjadi dua tipe yang berbeda, yaitu : a) Procedural DML Procedural DML adalah suatu bahasa yang memungkinkan user (umumnya programmer) untuk memberi instruksi ke sistem mengenai data apa yang dibutuhkan dan bagaimana cara pemanggilannya (retrieve). Artinya user 13 harus menjelaskan operasi pengaksesan data yang akan digunakan dengan menggunakan prosedur yang ada untuk mendapatkan informasi yang dibutuhkan. b) Non-Procedural DML Non-Procedural DML adalah bahasa yang memungkinkan user untuk menentukan data apa yang dibutuhkan tanpa perlu menspesifikasikan bagaimana cara mendapatkan data tersebut. 2.1.6 Database Management System (DBMS) Menurut Connolly dan Begg (2005, p16), DBMS diartikan sebagai suatu software yang memungkinkan user untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke dalam suatu basisdata. Selain bertanggungjawab atas keamanan (security) dan kesatuan (integrity) basisdata tersebut, DBMS juga menerima permintaan data dari program aplikasi, yang kemudian memerintahkan sistem operasi untuk mengirimkan data yang dimaksudkan. DBMS merupakan program yang mempengaruhi program aplikasi user dan basisdata. Contoh perangkat lunak yang termasuk DBMS adalah Microsoft Access, Microsoft SQL Server, dan Oracle. Suatu DBMS harus mendukung fungsi-fungsi sebagai berikut : 1) Sebagai tempat penyimpanan data, pengambilan kembali data yang diinginkan, dan pembaharuan data. Ini merupakan fungsi pokok DBMS. 2) Sebagai kamus data (sistem katalog) yang bisa diakses oleh user. 14 Kamus data (Data Dictionary) adalah tempat penyimpanan dari informasi yang menjelaskan data yang ada di dalam basisdata. Biasanya kamus data menyimpan : • nama, tipe, dan ukuran dari item data • nama dari relationship (hubungan antar entiti / objek) • batasan integritas dari suatu data • nama dari user yang memiliki hak akses terhadap data • skema eksternal, konseptual, dan internal serta pemetaan antar skema • penggunaan statistik, seperti frekuensi dari transaksi dan jumlah akses yang dibuat ke dalam objek di basisdata. 3) Mendukung transaksi. DBMS harus menyediakan mekanisme yang dapat menjamin isi dari basisdata selalu mengikuti perubahan sesuai dengan transaksi yang dilakukan, sehingga data yang ada di dalam basisdata selalu akurat dan terjamin kebenarannya. 4) Mengontrol concurrency. DBMS memungkinkan pemakai untuk dapat mengakses data bersama secara bersamaan dan menjamin tidak terjadinya gangguan pada basisdata. 5) Menyediakan perbaikan data kembali (recovery). Jika terjadi error pada hardware atau software atau adanya transaksi yang gagal dilakukan, maka basisdata dapat dikembalikan pada kondisi semula (konsisten). 6) Menyediakan otorisasi bagi user. 15 DBMS harus dapat menjamin bahwa hanya user yang memiliki otorisasi / hak akses saja yang dapat mengakses basisdata 7) Membantu mendukung komunikasi data. 8) Meningkatkan integritas data. 9) Mengurangi ketergantungan data. 10) Menyediakan kegunaan-kegunaan lainnya pada level internal, seperti memonitor pemakaian basisdata dan operasi dan pemakaian program analisa statistik. 2.1.6.1 Komponen Penting Lingkungan DBMS Menurut Connolly dan Begg (2005, p18), ada lima komponen penting dalam lingkungan DBMS, yaitu : 1) Perangkat Keras (Hardware) DBMS dan aplikasi-aplikasi memerlukan hardware untuk beroperasi. Hardware tersebut dapat berupa komputer pribadi tunggal, suatu mainframe tunggal, sampai suatu jaringan komputer. Contohnya : harddisk sebagai media penyimpanan yang mempunyai kemampuan untuk penyimpanan basisdata. 2) Perangkat Lunak (Software) Komponen software terdiri dari DBMS itu sendiri, program aplikasi, dan sistem operasi, termasuk software jaringan jika DBMS digunakan melalui suatu jaringan. Contoh software pada Third-Generation Programming Language (3GL) adalah C, C++, Java, Visual Basic, COBOL, Fortran, Ada, dan Pascal. 16 3) Data Komponen yang paling penting dari lingkungan DBMS, tentu saja dari sudut pandang end-users, adalah data. Data berperan sebagai suatu jembatan antara komponen-komponen mesin dan komponen-komponen manusia. 4) Prosedur (Procedures) Prosedur menunjuk pada instruksi dan aturan-aturan yang mengatur rancangan dan kegunaan dari basisdata. Pengguna sistem dan staff yang mengatur basisdata membutuhkan dokumentasi prosedur yang menjelaskan bagaimana menggunakan dan menjalankan sistem. Prosedur terdiri dari instruksi mengenai cara masuk ke dalam DBMS, kegunaan fungsi atau fasilitas tertentu dalam DBMS, cara memulai dan menghentikan DBMS, cara membuat salinan (back-up) dari basisdata, cara mengatasi kegagalan hardware atau software, dan cara mengubah struktur dari sebuah tabel, mengatur kembali basisdata, meningkatkan kinerja, atau mengarsipkan data ke dalam secondary storage. 5) Manusia (People) Merupakan user yang menggunakan data secara optimal, seperti pemrograman piranti lunak untuk mengakses basisdata, user akhir yang menggunakan piranti lunak dalam mengakses basisdata, dan administrator yang bertanggung jawab atas kesalahan sistem basisdata. Peran yang ada di lingkungan basisdata, yaitu : Database Administrator (DBA), Database Designers, Application Developers, dan end-users. Berdasarkan cara mereka menggunakan sistem, end-users diklasifikasikan menjadi user ahli dan user awam. 17 2.1.6.2 Keuntungan dan Kerugian DBMS Menurut Connolly dan Begg (2005, p26-p30), DBMS memiliki keuntungan dan kerugian. Adapun keuntungan DBMS, yaitu: 1) Mengurangi pengulangan data yang sama (data redundancy). 2) Menciptakan data yang konsisten karena adanya pencegahan redundansi data. 3) Mampu mendapatkan semakin banyak informasi dari data yang sama. 4) Data dapat digunakan secara bersama-sama (sharing data). 5) Menambah integritas data, yang berarti keakuratan dan konsistensi dari data yang tersimpan. 6) Meningkatkan keamanan data. 7) Meningkatnya kualitas penyimpanan data dengan menggunakan standarisasi yang dibutuhkan. 8) Dapat mengurangi biaya pengembangan sistem karena menggabungkan data operasional semua bagian perusahaan hanya ke dalam suatu basisdata dan program aplikasinya. 9) Mengurangi terjadinya konflik terhadap kebutuhan data antar user / departemen yang satu dengan lainnya. 10) Meningkatkan kemampuan untuk mengakses data dan hasilnya. 11) Meningkatkan produktivitas user. 12) Memudahkan pemeliharaan data karena data bersifat independent. 13) Meningkatkan concurrency untuk mencegah hilangnya data atau informasi saat dua atau lebih user mengakses data yang sama pada waktu yang bersamaan. 14) Meningkatkan pelayanan terhadap back-up dan recovery service. 18 Kerugian DBMS, yaitu : 1) Merupakan software yang kompleks sehingga perancang basisdata harus mengerti fungsi-fungsi yang ada untuk mendapatkan hasil rancangan yang baik. 2) Membutuhkan disk space / memory yang cukup besar untuk instalasinya. 3) Biaya DBMS yang tergantung pada tipe DBMS yang digunakan. 4) Biaya tambahan terhadap kebutuhan perangkat keras. 5) Biaya tambahan lain seperti pelatihan para staff dan spesialis untuk menjalankan sistem yang baru. 19 2.1.7 Siklus Hidup Aplikasi Basisdata (Database Application Lifecycle) Gambar 2.1 berikut ini merupakan diagram tahap-tahap siklus hidup aplikasi basisdata. Gambar 2.1 Tahap-Tahap Siklus Hidup Aplikasi Basisdata ( Sumber : Connolly dan Begg, 2005, p284) 20 2.1.7.1 Database Planning (Perencanaan Basisdata) Database planning merupakan aktivitas-aktivitas manajemen yang memungkinkan tahap-tahap dalam aplikasi basisdata direalisasikan secara efektif dan efisien. Database planning harus diintegrasikan dengan keseluruhan sistem informasi suatu organisasi. Ada tiga persoalan pokok yang terlibat dalam perumusan suatu strategi sistem informasi, yaitu: • Identifikasi rencana, sasaran, dan tujuan perusahaan dengan penentuan kebutuhan sistem informasi. • Evaluasi sistem informasi yang sedang berjalan untuk menentukan kelebihan dan kekurangan yang ada. • Penilaian terhadap peluang teknologi informasi apakah mampu menghasilkan keuntungan yang kompetitif. Tahap awal yang penting dalam perencanaan basisdata adalah menentukan dengan jelas mission statement (pernyataan misi) untuk proyek basisdata. Mission statement ini menentukan tujuan utama aplikasi basisdata. Mission statement membantu menjelaskan tujuan proyek basisdata dan menyediakan cara yang lebih jelas untuk menciptakan suatu basisdata yang efektif dan efisien. Tahap selanjutnya adalah mission objective. Setiap mission objective harus mengidentifikasi tugas-tugas tertentu yang akan didukung basisdata. 2.1.7.2 System Definition (Definisi Sistem) System definition menggambarkan ruang lingkup dan batasan-batasan aplikasi basisdata dan user views (gambaran user) yang utama. User views 21 menentukan apa yang dibutuhkan di aplikasi basisdata dari sudut pandang jabatan pekerjaan tertentu (seperti manager atau supervisor) atau dari sudut pandang bagian-bagian di perusahaan (seperti marketing atau stock control). 2.1.7.3 Requirements Collection and Analysis (Pengumpulan dan Analisa Kebutuhan) Merupakan proses pengumpulan dan analisa informasi dari bagian-bagian perusahaan, yang akan digunakan untuk mengidentifikasi kebutuhan-kebutuhan user dari sistem yang baru. Tahap ini melibatkan pengumpulan dan analisa informasi tentang bagian-bagian perusahaan yang akan menerapkan basisdata. Ada tiga pendekatan utama untuk pengaturan kebutuhan aplikasi basisdata dengan multiple user views, antara lain: • Pendekatan centralized Kebutuhan-kebutuhan setiap user view digabung dalam suatu kumpulan kebutuhan tunggal untuk aplikasi basisdata baru. • Pendekatan view integration Kebutuhan-kebutuhan setiap user view digunakan untuk membangun sebuah model data yang terpisah untuk mewakili kebutuhan user itu sendiri. Model data yang dihasilkan nantinya akan digabung pada tahap perancangan basisdata. • Gabungan antara centralized dan view integration 22 2.1.7.4 Database Design (Perancangan Basisdata) Merupakan proses pembuatan suatu rancangan untuk basisdata yang akan mendukung operasi dan tujuan perusahaan. Perancangan basisdata terdiri dari tiga fase yaitu perancangan konseptual, perancangan logikal, dan perancangan fisikal. Tahap-tahap ini akan dijelaskan di subbab berikutnya. 2.1.7.5 DBMS Selection (Pemilihan DBMS) Merupakan pemilihan suatu DBMS yang tepat untuk mendukung aplikasi basisdata. Tahap-tahap pemilihan DBMS: 1) Menentukan DBMS dari rekomendasi yang berasal dari dokumen ilmiah. 2) Membuat daftar sementara dari dua atau tiga produk. 3) Mengevaluasi produk. 4) Terpilih produk yang tepat untuk aplikasi basisdata dan membuat laporannya. 2.1.7.6 Application Design (Perancangan Aplikasi) Merupakan perancangan user interface dan memilih program aplikasi yang akan digunakan untuk memproses basisdata. Ada dua aspek penting dalam perancangan aplikasi, yakni: • Transaction Design (Perancangan Transaksi) • User Interface Design (Perancangan Antarmuka) 23 2.1.7.7 Prototyping (optional step) Merupakan pembuatan suatu model aplikasi basisdata, yang memungkinkan perancang atau user untuk melihat dan mengevaluasi bagaimana fungsi dari sistem akhir yang dihasilkan. Ada dua strategi prototyping pada zaman sekarang, yaitu: • Requirements Prototyping, menggunakan suatu prototype untuk menentukan kebutuhan-kebutuhan dari aplikasi basisdata yang diusulkan dan saat kebutuhan-kebutuhan tersebut lengkap, prototype dibuang. • Evolutionary Prototyping, digunakan untuk tujuan yang sama, perbedaan yang penting adalah bahwa prototype tidak dibuang tetapi dengan perkembangan yang lebih jauh menjadi aplikasi basisdata yang digunakan. 2.1.7.8 Implementation (Implementasi) Merupakan realisasi fisik dari perancangan basisdata dan aplikasinya. Pada penyelesaian tingkat-tingkat perancangan (dimana melibatkan prototyping atau tidak), sekarang kita dalam posisi mengimplementasikan basisdata dan program aplikasi. Implementasi basisdata dicapai dengan menggunakan DDL dari DBMS yang dipilih, atau Graphical User Interface (GUI) yang menyediakan fungsi yang sama ketika menyembunyikan pernyataan DDL tingkat rendah. Pernyataan DDL tersebut digunakan untuk membuat struktur basisdata dan file basisdata kosong. 24 Program aplikasi diimplementasikan dengan menggunakan bahasa generasi ketiga atau keempat (3GL atau 4GL). Bagian dari program aplikasi ini adalah transaksi basisdata, dimana diimplementasikan dengan menggunakan DML dari DBMS sasaran, pemrograman, yang mungkin misalnya disimpan VisualBasic.NET. dalam sekumpulan Program bahasa aplikasi juga mengimplementasikan komponen-komponen lainnya seperti layar menu, form pemasukan data, dan laporan-laporan. 2.1.7.9 Data Conversion and Loading (Perubahan dan Pengambilan Data) Merupakan pemindahan data yang ada dari sistem lama ke dalam sistem basisdata baru dan mengubah aplikasi yang ada untuk beroperasi pada sistem basisdata yang baru. Langkah ini diperlukan hanya ketika suatu sistem basisdata baru menimpa sistem yang lama. 2.1.7.10 Testing (Pengetesan) Merupakan proses pengeksekusian program aplikasi dengan maksud pencarian kesalahan-kesalahan dan memvalidasi basisdata agar sesuai dengan kebutuhan yang dispesifikasikan oleh user. 2.1.7.11 Operational Maintenance (Perawatan Operasional) Merupakan proses pengawasan dan pemeliharaan sistem secara terusmenerus, yang melibatkan aktivitas pengawasan kinerja sistem, mempertahankan serta meng-upgrade aplikasi basisdata (ketika dibutuhkan). dan 25 2.1.8 Metodologi Perancangan Basisdata Menurut Connolly dan Begg (2005, p438), metodologi perancangan adalah suatu pendekatan struktural yang menggunakan bantuan sejumlah prosedur, teknik, tools serta bantuan dokumentasi untuk mendukung dan memfasilitasi proses dari suatu perancangan. Untuk merepresentasikan metodologi dari suatu perancangan basisdata, diperlukan suatu proses perancangan yang dibagi menjadi tiga tahap utama, yaitu perancangan basisdata konseptual, perancangan basisdata logikal, dan perancangan basisdata fisikal. 2.1.8.1 Perancangan Basisdata Konseptual Merupakan suatu proses dalam membangun suatu informasi yang digunakan oleh perusahaan dengan mengabaikan segi pengimplementasiannya terlebih dahulu, misalnya DBMS apa yang akan digunakan, program aplikasi, bahasa pemrogramannya, hardware yang akan digunakan , dan hal lainnya yang bersifat fisikal. Kegiatan utama di dalam perancangan basisdata konseptual adalah : Tahap 1 : Membangun Model Data Konseptual Lokal untuk Setiap View. Tujuan tahap ini adalah untuk membangun model data konseptual lokal suatu perusahaan dari sudut pandang masing-masing user. Selama proses analisa, sudut pandang dari masing-masing user diidentifikasikan dan dikombinasikan sehingga membentuk suatu pandangan yang kolektif. Setiap model data konseptual lokal terdiri dari : entiti, hubungan relasi antar entiti, atribut dan atribut domain, primary key dan alternate key, serta batasan integritas. Model data konseptual didukung oleh suatu dokumentasi 26 seperti kamus data. Rincian dari kamus data dapat diperoleh melalui sub tahap di bawah ini, yaitu : • Tahap 1.1: Mengidentifikasikan Tipe-Tipe Entiti Tujuannya untuk menentukan jenis entiti utama yang diperlukan oleh user. • Tahap 1. 2: Mengidentifikasikan Tipe-Tipe Relasi atau Hubungan Tujuannya untuk mengidentifikasi hubungan penting yang terjadi di antara jenis entiti yang sudah diidentifikasi di tahap sebelumnya. Relasi biasanya ditunjukkan dengan menggunakan sebuah kata kerja atau ungkapan yang berhubungan dengan kata kerja. Untuk mencegah hilangnya suatu relasi ketika dilakukan validasi terhadap suatu transaksi, kita harus melakukan hal-hal berikut, yaitu : a) Menggunakan Diagram Hubungan Antar Entiti (ER Diagram) Digunakan untuk merepresentasikan entiti dan bagaimana entiti tersebut mudah berhubungan satu sama lainnya. Hal ini juga membantu terbentuknya suatu gambaran tentang bagian-bagian dalam suatu perusahaan yang akan kita modelkan. b) Menentukan Multiplicity Constraint dari Tipe-Tipe Relasi Setelah menentukan relasi ke dalam suatu model, tahap berikutnya adalah menentukan multiplicity dari masing-masing relasi. Multiplicity constraint digunakan untuk memeriksa dan memelihara kualitas dari data. Constraint menyatakan tentang kejadian dari suatu entiti yang digunakan 27 ketika suatu basisdata di-update, untuk menentukan apakah perubahan yang dilakukan melanggar peraturan yang ditetapkan oleh perusahaan. c) Memeriksa Fan Traps dan Chasm Traps Setelah relasi ditentukan, lakukan pemeriksaan terhadap relasi dalam model tersebut apakah sudah merupakan perwujudan dari dunia nyata yang sebenarnya, dan apakah fan trap dan chasm trap telah dibuat dengan sesuai atau tidak. Fan trap adalah suatu model yang menggambarkan relasi antar entiti yang alur relasinya memperlihatkan ambiguitas (kesamaan). Chasm trap adalah suatu model yang menyarankan adanya suatu relasi antar entiti yang satu dengan yang lain, tetapi tidak ada relasi yang digambarkan antara kedua entiti utama. d) Memeriksa Setiap Entiti Memiliki Relasi Minimal Satu Saat pembuatan ER Diagram, pastikan entiti mempunyai minimal satu relasi dengan entiti yang lain. Jika memang entiti sudah mempunyai minimal satu relasi dengan entiti yang lain, maka tahap berikutnya adalah memperhatikan kamus data. e) Mendokumentasikan Tipe-Tipe Relasi Bersamaan dengan tipe relasi diidentifikasi, tetapkan nama yang berarti dan jelas kepada user, lalu dokumentasikan relasi dan constraint yang beragam (multiplicity constraint) tadi ke dalam kamus data. • Tahap 1.3 : Mengidentifikasikan dan Menghubungkan Atribut dengan TipeTipe Entiti atau Relasinya Tujuannya untuk menghubungkan atribut dan entiti yang telah kita tentukan sebelumnya untuk direpresentasikan dalam suatu basisdata. 28 • Tahap 1.4: Menentukan Domain-Domain Atribut Tujuannya adalah menentukan domain untuk semua atribut yang terdapat pada model data konseptual. Domain adalah suatu nilai valid dari satu atau lebih atribut (nilai valid yang berlaku bagi suatu atribut). Misalnya: Domain NIM Binusian adalah bilangan bulat sepanjang sepuluh digit; jenis kelamin dari entiti Pegawai adalah salah satu dari “P” atau “L”, jadi domain dari atribut jenis kelamin adalah sebuah karakter string tunggal yang berupa “P” atau “L”. • Tahap 1.5 : Menentukan Atribut-Atribut Candidate, Primary, dan Alternate Key Tujuannya adalah menentukan candidate key untuk tiap tipe entiti dan jika terdapat lebih dari satu candidate key, pilih salah satu untuk dijadikan sebagai primary key. Ada beberapa key yang dapat diterapkan dalam sebuah tabel yaitu: candidate key, primary key, alternate key, dan foreign key. Candidate key adalah suatu set atribut dari sebuah entiti yang memiliki nilai yang unik. Primary key adalah candidate key dalam suatu relasi yang dipilih untuk menjadi Primary key dimana harga atau nilai atributnya unik dan mampu dipakai untuk membedakan satu record dengan record lainnya. Alternate key adalah candidate key yang tidak terpilih menjadi primary key. Foreign key adalah salah satu atau sejumlah atribut yang melengkapi suatu relasi (hubungan) yang menunjuk ke parent-nya. Foreign key ditempatkan pada entiti child, dan atribut foreign key-nya sama dengan primary key parent yang direlasikannya. Hubungan antara entiti parent dengan child adalah hubungan satu lawan banyak (one-to-many relationship). 29 • Tahap 1.6 (optional step) : Mempertimbangkan Penggunaan dari Konsep Permodelan Enhanced, dengan Menggunakan Salah Satu dari Konsep Specialization / Generalization, Aggregation, dan Composition. • Tahap 1.7: Memeriksa Model untuk Redundansi Tujuannya untuk memeriksa adanya redundansi di model data. Langkah pengecekannya yaitu : a) Periksa Ulang One-to-One Relationship Periksa kembali dua entiti yang menampilkan objek yang sama. Misalnya entiti Klien dan entiti Penyewa. Dalam suatu rental film, Klien adalah sinonim dari Penyewa, maka kedua entiti tersebut dapat digabung menjadi satu. Jika kedua entiti tersebut memiliki primary key yang berbeda, maka pilih salah satu untuk menjadi primary key dan yang lainnya sebagai alternate key. b) Hilangkan Redundansi dari Suatu Relasi Redundansi dari suatu relasi dapat terjadi jika informasi yang sama didapatkan melalui relasi yang lain. Sangat penting untuk memeriksa relasi di antara entiti ketika melakukan pengecekan suatu redundansi. • Tahap 1.8 : Memvalidasi Model Data Konseptual Lokal Terhadap Transaksi User Tujuannya untuk meyakinkan bahwa model konseptual lokal dapat mendukung kebutuhan yang diperlukan oleh user. Di sini kita memeriksa bahwa model tersebut mendukung transaksi yang diperlukan oleh user, dua pendekatan yang dilakukan tersebut adalah : 30 a) Mendeskripsikan Transaksi Dalam pendekatan ini kita melakukan pemeriksaan terhadap semua informasi yang dibutuhkan seperti entiti, relasi, dan atribut yang diperlukan dalam setiap transaksi yang disediakan oleh suatu model, lalu mendokumentasikan transaksi tersebut ke dalam tiap-tiap kebutuhan transaksi. b) Menggunakan Jalur Transaksi Pendekatan ini menggunakan suatu diagram yang merepresentasikan suatu jalur pada tiap-tiap transaksi secara langsung dalam ER Diagram. Pendekatan ini juga membantu perancang untuk memvisualisasikan suatu model yang tidak diperlukan dan yang sangat kritis dalam suatu transaksi. • Tahap 1.9: Meninjau Ulang Model Data Konseptual Lokal dengan User 31 Gambar 2.2 Model Data Konseptual untuk Staff View yang Menunjukkan Semua Atribut ( Sumber : Connolly dan Begg, 2005, p464) 2.1.8.2 Perancangan Basisdata Logikal Merupakan proses membangun sebuah model dari informasi yang digunakan di dalam perusahaan berdasarkan model data yang spesifik tanpa menggunakan DBMS atau peralatan fisikal lainnya. Model data logikal meliputi : ER Diagram, skema relasional, dan dokumentasi pendukung seperti kamus data. 32 Di dalam perancangan basisdata logikal, tahapan utama adalah : Tahap 2: Membangun dan Memvalidasi Model Data Logikal Global untuk Setiap Sudut Pandang. Tujuannya adalah membangun model data logikal lokal dari model data konseptual lokal yang telah dibuat, yang merepresentasikan sudut pandang tertentu dari perusahaan dan memvalidasi model ini untuk memastikannya benar secara struktural (menggunakan teknik normalisasi) dan mampu mendukung kebutuhan transaksi yang diminta. Adapun kegiatan yang dilakukan pada tahap ini adalah : • Tahap 2.1: Menentukan Relasi untuk Model Data Logikal Lokal Tujuannya adalah menciptakan relasi untuk model data logikal untuk mewakili entiti, tipe relasi, dan atribut yang telah diidentifikasi di tahap pertama. Relasi yang dimiliki oleh entiti yang satu dengan entiti yang lain digambarkan dengan primary key / foreign key. Yang dilakukan pertama kali adalah mengidentifikasikan terlebih dahulu entiti parent dan entiti child. Kemudian posting primary key yang ada di entiti parent ke dalam entiti child untuk berperan sebagai foreign key. Berikut adalah penjelasan bagaimana relasi-relasi dibuat untuk strukturstruktur di bawah ini yang mungkin terjadi pada model data konseptual yang telah diidentifikasi di tahap sebelumnya : a) Strong entity types Entiti kuat adalah entiti yang keberadaannya tidak bergantung pada tipe entiti lain. Untuk setiap tipe entiti kuat pada model data, buatlah sebuah relasi yang meliputi semua atribut sederhana di entiti tersebut. 33 b) Weak entity types Entiti lemah adalah entiti yang tergantung pada keberadaan entiti lain. Untuk setiap entiti lemah di model data, buatlah sebuah relasi yang meliputi semua atribut sederhana dari entiti tersebut. Primary key pada tipe entiti lemah diturunkan sebagian atau seluruhnya dari entiti tersebut, jadi identifikasi primary key pada tipe entiti lemah tidak dapat dibuat sampai seluruh hubungan dengan entiti asalnya telah dibuat. c) One-to-many (1:*) binary relationship types Untuk relasi one-to-many, entiti parent ditempatkan pada sisi yang memiliki relasi one dan entiti child pada sisi yang memiliki relasi many. d) One-to-one (1:1) binary relationship types Menciptakan relasi yang mewakili hubungan 1:1 lebih kompleks karena kardinalitasnya tidak dapat digunakan untuk membantu mengidentifikasi entiti parent dan child dalam sebuah hubungan. e) One-to-one (1:1) recursive relationships Relasi rekursif merupakan jenis relasi dimana setiap entiti memiliki sebuah relasi dengan dirinya sendiri. Relasi tersebut dapat digantikan dengan mengidentifikasikan sebuah entiti baru sebagai penghubung dengan hubungan one-to-many. f) Superclass / subclass relationship types Untuk setiap hubungan superclass / subclass di model data konseptual, kita mengidentifikasi setiap entiti superclass sebagai entiti parent dan entiti subclass sebagai entiti child. Ada banyak pilihan bagaimana merepresentasikan hubungan tersebut sebagai satu atau lebih 34 relasi. Seleksi pilihan yang paling tepat tergantung dari sejumlah faktor, seperti disjointness dan participation constraints dari hubungan superclass / subclass. merepresentasikan Tabel hubungan 2.1 merupakan superclass / panduan subclass untuk berdasarkan disjointness dan participation constraints. Tabel 2.1 Tabel Relasi Superclass / Subclass Participation Disjoint constraint constraint Relations required Nondisjoint Relasi tunggal (dengan satu atau lebih pembeda Mandatory {And} untuk membedakan tipe dari setiap tuple) Dua relasi dimana satu relasi untuk superclass dan Nondisjoint satu relasi untuk semua subclass (dengan satu atau {And} lebih pembeda untuk membedakan tipe dari setiap Optional tuple) Banyak relasi dimana satu relasi untuk setiap Mandatory Disjoint {Or} gabungan superclass / subclass Banyak relasi dimana satu relasi untuk superclass Optional Disjoint {Or} dan relasi lainnya untuk setiap subclass g) Many-to-many ( *:*) binary relationship types Jika masih ada relasi many-to-many pada model data konseptual, maka kita gantikan dengan dua buah relasi one-to-many dengan mengidentifikasikan sebuah entiti baru sebagai penghubung. 35 h) Complex relationship types Relasi yang kompleks adalah sebuah relasi yang terjadi antara tiga entiti atau lebih. Relasi yang kompleks ini dapat disederhanakan dengan menempatkan sebuah entiti baru di tengah entiti yang sebelumnya dan mendefinisikan relasi (binary) one-to-many di antara setiap entiti. i) Multi-valued attributes Atribut yang bernilai banyak adalah atribut yang memiliki berbagai macam nilai di dalam sebuah entiti. Kita bisa mendekomposisi atribut tersebut dan menempatkannya ke dalam entiti baru. • Tahap 2.2: Validasi Relasi dengan Menggunakan Teknik Normalisasi Normalisasi digunakan untuk menghindari terjadinya duplikasi dari data. Normalisasi menjamin bahwa hasil dari model yang telah kita rancang benar-benar mencerminkan model yang ada di perusahaan, yang memiliki konsistensi, redundansi yang minimal, dan stabilitas yang maksimal. Tahap normalisasi akan dijelaskan di subbab berikutnya. • Tahap 2.3 : Validasi Relasi dengan Transaksi-Transaksi yang Sesuai dengan Kebutuhan User Tujuan tahap ini adalah memvalidasi model data logikal lokal untuk menjamin agar model yang telah dirancang dapat mendukung transaksitransaksi yang diperlukan sesuai dengan kebutuhan user. • Tahap 2.4 : Menentukan Batasan-Batasan Integritas Batasan-batasan integritas merupakan batasan yang digunakan untuk menjaga basisdata dari inkonsistensi. Pada tahap ini kita menentukan batasan-batasan integritas yang perlu diperhatikan, yaitu : 36 a) Data yang Diperlukan (Required Data) Beberapa atribut harus memiliki nilai yang valid, dengan kata lain tidak boleh ada yang bernilai NULL (tidak bernilai). Ketentuan tersebut harus diidentifikasikan pada waktu kita mendokumentasikan atributatribut di dalam kamus data (Tahap 1.3). b) Batasan Domain Atribut (Attribute Domain Constraints) Batasan domain harus diidentifikasi saat kita memilih domain atribut untuk model data (Tahap 1.4). c) Multiplicity Multiplicity mewakili batasan yang ditempatkan pada hubungan antar data dalam basisdata. d) Integritas Entiti (Entity Integrity) Ketentuan yang benar dari sebuah entiti adalah primary key dari sebuah entiti tidak boleh bernilai NULL. Batasan ini seharusnya dipertimbangkan saat kita mengidentifikasi primary key untuk setiap tipe entiti (Tahap 1.5). e) Referential Integrity Maksud dari referential key adalah jika foreign key memiliki sebuah nilai, maka nilai tersebut harus menunjuk kepada tuple (baris dalam suatu relasi) yang terdapat pada relasi parent. f) Batasan Umum (General Constraints) Batasan ini seringkali disebut sebagai aturan bisnis. Untuk melakukan perubahan pada suatu entiti harus sesuai dengan ketentuan transaksi-transaksi yang ada di dunia nyatanya. 37 • Tahap 2.5: Review Model Data Logikal Lokal terhadap Kebutuhan User Tujuannya adalah untuk menjamin model data logikal lokal dan dokumentasi pendukung yang menjelaskan model tersebut benar-benar menggambarkan proses bisnis yang nyata dari perusahaan dan dapat mendukung transaksi sesuai dengan kebutuhan user. • Tahap 2.6 (optional step) : Menggabungkan Model Data Logikal Lokal ke dalam Model Data Logikal Global - Tahap 2.6.1 : Menggabungkan Model Data Logikal Lokal ke dalam Model Data Logikal Global Untuk menggabungkan model data logikal lokal ke dalam model data logikal global, yang harus dilakukan adalah : a) Memeriksa kembali nama dan isi dari sejumlah entiti / relasi dan candidate key-nya. Jangan sampai dua entiti / relasi atau lebih memiliki nama yang sama, tetapi pada kenyataannya memiliki peran yang berbeda, demikian juga sebaliknya. b) Memeriksa kembali nama dan isi dari relasi / foreign key. Pada tahap ini kita menjamin bahwa entiti / relasi yang memiliki nilai yang sama menggambarkan konsep yang sama di dunia nyatanya. c) Menggabungkan entiti / relasi dari model data lokal. d) Memasukkan (tanpa menggabungkan) entiti / relasi secara unik ke dalam setiap model data lokal. e) Menggabungkan relasi / foreign key dari model data lokal. 38 f) Memasukkan (tanpa menggabungkan) relasi / foreign key secara unik ke dalam setiap model data lokal. g) Memeriksa apakah ada entiti / relasi dan hubungan / foreign keys yang belum diidentifikasi. h) Memeriksa kebenaran dari foreign key yang terdapat di dalam relasi child dan lakukan perubahan bila perlu. i) Memeriksa batasan integritas. j) Menggambarkan ER Diagram global. k) Melakukan update dokumentasi terhadap perubahan yang terjadi selama proses pengembangan model data global. - Tahap 2.6.2 : Memvalidasi Model Data Logikal Global Pada tahap ini kita memvalidasi relasi / hubungan yang telah dibuat dari model data logikal global menggunakan teknik normalisasi untuk menjamin agar model data tersebut dapat mendukung transaksi yang dibutuhkan. - Tahap 2.6.3 : Review Model Data Logikal Global Terhadap Kebutuhan User Model data yang telah jadi direview kembali oleh user untuk menjamin bahwa model tersebut mencerminkan gambaran dari proses bisnis perusahaan di dunia nyatanya. • Tahap 2.7 : Memeriksa Model Data untuk Kebutuhan Masa Depan Tujuannya untuk menjamin model data tersebut dapat juga mendukung kebutuhan perusahaan di masa yang akan datang. 39 Gambar 2.3 Diagram Relasi Global untuk DreamHome ( Sumber : Connolly dan Begg, 2005, p489) 2.1.8.3 Perancangan Basisdata Fisikal Merupakan proses yang menghasilkan sebuah gambaran implementasi basisdata pada media penyimpanan yang menggambarkan hubungan dasar, organisasi data, dan indeks-indeks yang memungkinkan pengaksesan data yang 40 efisien. Pada umumnya, tujuan utama dari perancangan basisdata fisikal adalah menjelaskan bagaimana cara mengimplementasikan perancangan basisdata logikal secara fisik. Berikut adalah enam tahap utama dalam perancangan basisdata fisikal, yaitu : Tahap 3 : Menerjemahkan Model Data Logikal Global untuk DBMS yang Digunakan. Tujuannya adalah menghasilkan sebuah skema basisdata relasional dari model data logikal global ke dalam bentuk yang dapat diimplementasikan pada relational DBMS yang digunakan. Aktivitas pertama dari perancangan basisdata fisikal adalah menerjemahkan relasi di dalam model data logikal global ke dalam suatu bentuk yang dapat diimplementasikan pada relational DBMS yang digunakan. Bagian pertama dari proses ini memerlukan perbandingan informasi yang dikumpulkan selama perancangan basisdata logikal dan didokumentasikan ke dalam kamus data. Aktivitas kedua yaitu menggunakan informasi ini untuk menghasilkan rancangan dari base relation. Proses ini membutuhkan pengetahuan yang mendalam dari fungsi-fungsi yang dihasilkan oleh DBMS yang digunakan. Kegiatannya antara lain : • Tahap 3.1 : Merancang Relasi Dasar (Base Relation) Tujuannya untuk menentukan bagaimana menggambarkan base relation yang diidentifikasikan pada model data logikal global di dalam DBMS yang digunakan. 41 Untuk memulai proses perancangan fisikal, kita mulai dengan mengumpulkan dan mengolah informasi tentang relasi yang dihasilkan selama perancangan basisdata logikal. Informasi yang dibutuhkan dapat diperoleh dari kamus data dan definisi dari relasi yang digambarkan menggunakan DDL. Untuk setiap relasi yang diidentifikasikan pada model data logikal global harus memiliki definisi sebagai berikut : - nama relasi - daftar atribut sederhana dalam tanda kurung besar - primary key, alternate key, dan foreign key - daftar dari atribut turunan dan bagaimana mereka dihitung - referential integrity constraint untuk setiap data, panjang, foreign key yang diidentifikasi Dari kamus data, setiap atribut memiliki : - domain yang terdiri dari tipe dan batasan lainnya yang ada pada domain - suatu nilai default optional untuk atribut-atribut - keterangan apakah atribut dapat bernilai NULL Untuk menggambarkan perancangan dari base relation, kita menggunakan suatu bentuk perluasan dari bahasa basisdata untuk mengartikan domain, default values, dan indikasi nilai NULL. Langkah selanjutnya adalah memutuskan bagaimana mengimplementasikan base relation. Keputusan ini tergantung pada DBMS yang digunakan. Rancangan dari base relation harus secara lengkap mendokumentasikan alasan dipilihnya rancangan yang diusulkan. 42 • Tahap 3.2 : Merancang Representasi dari Derived / Calculated Data. Tujuannya untuk menentukan bagaimana menggambarkan derived data yang ada dalam model data logikal pada DBMS yang digunakan. Nilai suatu atribut yang dapat diperoleh dengan mengambil atau dari hasil perhitungan nilai atribut lainnya yang dikenal sebagai derived / calculated attributes. Sering kali, derived attribute tidak muncul dalam model data logikal, tapi didokumentasikan dalam kamus data. Jika suatu derived attribute muncul dalam model, “/” digunakan untuk mengidentifikasikan bahwa itu adalah derived attribute. • Tahap 3.3 : Merancang Batasan Umum Tujuannya untuk merancang batasan umum untuk DBMS yang digunakan. Rancangan dari batasan umum tergantung lagi dengan pilihan dari DBMS. Beberapa sistem menyediakan lebih banyak fasilitas dari lainnya untuk mengartikan batasan umum. Seperti langkah sebelumnya, jika sistem dipenuhi dengan standar SQL, beberapa batasan dapat dengan mudah diimplementasikan. Tahap 4 : Merancang Organisasi File dan Indeks Tujuannya untuk merancang organisasi file yang optimal untuk menyimpan base relation dan indeks yang dibutuhkan untuk mencapai hasil yang dapat diterima, ini adalah cara yang ditempuh dimana relasi akan berada pada penyimpanan sekunder. Satu tujuan utama dari perancangan basisdata fisikal adalah menyimpan data dengan cara yang efisien. Kegiatan yang ada di tahap ini yaitu : 43 • Tahap 4.1 : Analisa Transaksi. Tujuannya untuk mengerti kemampuan dari transaksi yang akan berjalan dalam basisdata dan untuk menganalisa transaksi yang penting. Untuk merancang basisdata fisikal yang efektif, kita harus memiliki pengetahuan dari transaksi atau query yang dijalankan dalam basisdata. Ini meliputi informsi yang kualitatif dan kuantitatif. Dalam menganalisa transaksi, kita mengidentifikasi kriteria kinerja, seperti : - Transaksi yang seringkali dilakukan dan mempunyai pengaruh yang signifikan pada kinerja. - Transaksi yang bersifat kritis pada operasi bisnis. - Tingkat transaksi yang tinggi selama satu hari atau satu minggu yang dihasilkan di dalam basisdata. Untuk berfokus pada area-area yang mungkin menyebabkan masalah, cara menelusurinya adalah dengan : a) Memetakan semua jalur transaksi ke relasinya. b) Memutuskan relasi mana yang paling sering diakses oleh transaksitransaksi. c) Menganalisa penggunaan data dari transaksi tertentu yang termasuk relasi tersebut. • Tahap 4.2 : Memilih Organisasi File yang Sesuai untuk Setiap Relasi Dasar. Satu tujuan utama perancangan basisdata fisikal adalah menyimpan data dengan cara yang efektif. Tujuan utama dari tahap ini adalah untuk 44 memilih organisasi file yang optimal untuk setiap relasi sesuai dengan ketentuan DBMS yang digunakan. • Tahap 4.3 : Pemilihan Indeks. Tujuannya adalah menentukan apakah dengan menambah indeks akan meningkatkan kinerja sistem. Secondary indexes menyediakan mekanisme untuk menetapkan suatu key tambahan untuk suatu base relation yang dapat digunakan untuk mendapatkan kembali data secara lebih efisien. • Tahap 4.4 : Memperkirakan Kebutuhan Disk Space. Dalam proses perancangan perlu untuk melakukan estimasi terhadap jumlah disk space yang dibutuhkan untuk menyimpan basisdata. Sama seperti tahap sebelumnya, memperkirakan disk space sangat tergantung pada DBMS dan hardware yang akan digunakan untuk mendukung basisdata. Secara umum, estimasi ini berdasarkan pada ukuran setiap record dan jumlah record dalam relasi. Selain itu juga perlu dipertimbangkan faktor peningkatan transaksi di masa mendatang. Tahap 5 : Perancangan User Views Tujuannya adalah untuk merancang user view yang telah diidentifikasikan pada tahap sebelumnya. User view didefinisikan untuk menyederhanakan permintaan pada basisdata. Dalam multiuser DBMS, user view memainkan peran penting dalam mendefinisikan struktur dari basisdata dan menjalankan keamanan. 45 Tahap 6 : Perancangan Mekanisme Keamanan Tujuannya adalah untuk merancang standar keamanan basisdata seperti yang dispesifikasi oleh user. Suatu basisdata menggambarkan suatu sumber daya perusahaan yang penting, jadi keamanan untuk sumber daya ini sangat penting. Selama pengumpulan kebutuhan dan tahap analisa dari siklus hidup aplikasi basisdata, kebutuhan keamanan yang spesifik seharusnya didokumentasikan dalam spesifikasi kebutuhan sistem. Beberapa sistem menawarkan fasilitas yang berbeda dari sistem lainnya. Perancang basisdata harus berhati-hati dengan fasilitas yang ditawarkan oleh DBMS yang digunakan. Secara umum relational DBMS menyediakan dua tipe dari keamanan basisdata, yaitu : - Keamanan Sistem Keamanan sistem melindungi akses dan kegunaan basisdata pada tingkat sistem, seperti user name dan password. - Keamanan Data Keamanan data melindungi akses dan kegunaan dari objek basisdata (seperti relasi dan view) dan kegiatan yang user dapat lakukan pada objek. Tahap 7 : Mempertimbangkan Kemunculan Redundansi Terkontrol Tujuannya untuk menentukan apakah kemunculan redundansi secara terkontrol dengan mengendurkan aturan normalisasi akan meningkatkan kinerja sistem. Tahap-tahapnya meliputi : • Tahap 7.1 : Menggabungkan relasi 1:1. • Tahap 7.2 : Menduplikasi atribut non key pada relasi 1:* untuk mengurangi penggunaan joins. 46 • Tahap 7.3 : Menduplikasi atribut foreign key pada relasi 1:* untuk mengurangi joins. • Tahap 7.4 : Menduplikasi atribut pada relasi *:* untuk mengurangi joins. • Tahap 7.5 : Mengenali repeating groups. • Tahap 7.6 : Membuat tabel ekstraksi. Teknik yang paling umum digunakan untuk membuat tabel ini adalah dengan membuat dan mempopulasi tabel-tabel dalam sebuah proses yang dijalankan sepanjang malam di saat sistem tidak bekerja berat. • Tahap 7.7 : Mempartisi relasi Ada dua cara partisi, yaitu : a) Partisi Horizontal, yaitu mendistribusikan tuples dalam sebuah relasi melalui sejumlah kecil relasi. b) Partisi Vertikal, yaitu mendistribusikan atribut-atribut dari sebuah relasi melalui sejumlah kecil relasi (primary key diduplikasi untuk memperbolehkan relasi aslinya untuk direkonstruksi). Tahap 8 : Mengawasi Sistem Operasional Setelah rancangan dasar diimplementasikan, sistem harus diawasi dan disetel. Tujuannya untuk mengawasi sistem operasional dan meningkatkan kinerja dari sebuah sistem untuk memperbaiki keputusan rancangan yang tidak sesuai atau kebutuhan yang berubah. Ada beberapa faktor yang dapat digunakan untuk mengukur efisiensi, yaitu: - Transaction Throughput Merupakan sejumlah transaksi yang dapat diproses pada interval waktu yang diberikan. 47 - Response Time Merupakan waktu untuk menyelesaikan transaksi tunggal. - Disk Storage Merupakan sejumlah disk space yang dibutuhkan untuk menyimpan file basisdata. Perancang bisa meminimumkan jumlah dari disk space yang digunakan. Untuk meningkatkan kinerja, perancang basisdata fisikal harus hati-hati pada bagaimana empat komponen hardware dasar mempengaruhi kinerja sistem, yaitu : main memory, CPU, Disk I/O, dan jaringan. 2.1.9 Entity-Relationship Modelling (ER Modelling) Menurut Silberschatz, Korth, dan Sudarshan (2002, p27-p34), ER Modelling memiliki tiga notasi dasar, yaitu : 1. Entiti (Entity) Yaitu sesuatu atau sebuah objek dalam dunia nyata yang dapat dibedakan dari objek-objek yang lain. Set entiti adalah sekumpulan entiti-entiti dengan tipe yang sama, yang memiliki properti-properti atau atribut-atribut yang sama. Contohnya : Nasabah, Cabang. 2. Atribut (Attribute) Yaitu properti-properti pembentuk karakteristik yang dimiliki oleh setiap anggota dari sebuah set entiti. Contohnya : pada tabel Nasabah, atributnya yaitu KodeNasabah, NoRekTab, NamaNasabah, Alamat, dan NoTelp. 48 3. Relasi (Relation) Yaitu hubungan di antara beberapa entiti. Set relasi adalah sekumpulan relasi dengan tipe yang sama. Di antara dua himpunan entiti (misal A dan B ) terjadi kardinalitas relasi (derajat relasi) yang berupa : • Hubungan One-to-One (1:1) Berarti setiap entiti pada himpunan entiti A berhubungan paling banyak dengan satu entiti pada himpunan entiti B, dan sebaliknya setiap entiti pada himpunan entiti B berhubungan paling banyak dengan satu entiti pada himpunan entiti A. Gambar 2.4 Kardinalitas Relasi One-to-One (Sumber : Silberschatz, Korth, dan Sudarshan, 2002, p34) • Hubungan One-to-Many (1:*) Berarti setiap entiti pada himpunan entiti A dapat berhubungan dengan banyak entiti pada himpunan entiti B, tetapi tidak sebaliknya, dimana setiap entiti pada himpunan entiti B berhubungan dengan paling banyak dengan satu entiti pada himpunan entiti A. 49 Gambar 2.5 Kardinalitas Relasi One-to-Many (Sumber : Silberschatz, Korth, dan Sudarshan, 2002, p34) • Hubungan Many-to-One (*:1) Berarti setiap entiti pada himpunan entiti A berhubungan dengan paling banyak dengan satu entiti pada himpunan entiti B, tetapi tidak sebaliknya, dimana setiap entiti pada himpunan entiti B berhubungan dengan banyak entiti pada himpunan entiti A. Gambar 2.6 Kardinalitas Relasi Many-to-One (Sumber : Silberschatz, Korth, dan Sudarshan, 2002, p34) • Hubungan Many-to-Many (*:*) Berarti setiap entiti pada himpunan entiti A dapat berhubungan dengan banyak entiti pada himpunan entiti B, dan sebaliknya setiap entiti pada himpunan entiti B berhubungan dengan banyak entiti pada himpunan entiti A. 50 Gambar 2.7 Kardinalitas Relasi Many-to-Many (Sumber : Silberschatz, Korth, dan Sudarshan, 2002, p34) Entity-Relationship Diagram (ERD) adalah model entity relationship yang berisi komponen-komponen himpunan entiti dan himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut yang merepresentasikan seluruh fakta yang dapat digambarkan dengan lebih sistematis. Entity name Entiti Relationship name Relasi Relationship name Role name Relasi Rekursif dengan Role name untuk mengidentifikasi peranan entiti relasi tersebut. Entity name Entity name Attribute name Attribute 1 Attribute 2 Attribute n Atribut dituliskan di bagian bawah simbol entiti. Atribut yang merupakan primary key digarisbawahi. Atribut multi-valued diletakkan diantara {}. Relationship name One-to-one relationship Relationship name One-to-many relationship 51 Relationship name Many-to-many relationship Relationship name B A One-to-many relationship with mandatory participation untuk kedua entiti, baik A maupun B. Relationship name B A Relationship name B A One-to-many relationship with optional participation untuk kedua entiti, baik A maupun B. Notasi ini digunakan untuk menggambarkan generalisasi / spesialisasi. Superclass Subclass One-to-many relationship with optional participation untuk entiti A dan mandatory participation untuk entiti B. Subclass Gambar 2.8 The Crow’s Feet Notation for ER Modeling (Sumber : Connolly dan Begg, 2005, p1323) 2.1.10 Normalisasi Menurut Hoffer (2002, p189), normalisasi adalah proses formal dalam menentukan atribut mana yang harus dikelompokkan bersama dalam satu relasi. Menurut Post (2005, p78), relasi basisdata mengoperasikan tabel-tabel data dan tabel-tabel tersebut harus didefinisikan untuk mendapat keuntungan dari basisdata. Proses penentuan dari tabel-tabel yang sesuai tersebut untuk suatu basisdata disebut normalisasi. 52 Menurut Connolly dan Begg (2005, p388), normalisasi merupakan suatu teknik untuk menghasilkan kumpulan relasi-relasi dengan properti yang diperlukan, untuk menyediakan kebutuhan data dari perusahaan. Jadi, normalisasi adalah suatu teknik formal untuk menganalisa relasi berdasarkan primary key dan ketergantungan fungsional di antara atribut tiap tabelnya. Tujuan normalisasi adalah terjaminnya struktur yang konsisten, duplikasi data yang minimal, dan stabilitas struktur data yang maksimal. Adapun manfaat normalisasi yaitu : 1) Meminimalkan jumlah kapasitas penyimpanan yang diperlukan untuk menyimpan data. 2) Meminimalkan resiko data yang tidak konsisten dalam suatu basisdata. 3) Meminimalkan kemungkinan anomali update dan delete. 4) Memaksimalkan stabilitas dari struktur data. Tabel yang belum dinormalisasi dinamakan Unnormalized Form (UNF). Menurut Connolly dan Begg (2005, p403) Unnormalized Form (UNF) adalah suatu tabel yang berisikan satu atau lebih repeating group. Repeating group adalah suatu atribut atau sejumlah atribut dalam suatu tabel yang memiliki banyak nilai yang sama pada suatu kejadian yang muncul secara berulangulang. Normalisasi yang umum dipakai adalah sampai dengan bentuk normal ketiga, yaitu : 1) First Normal Form (1NF) Menurut Connolly dan Begg (2005, p403), First Normal Form (1NF) adalah relasi dimana pertemuan antar setiap baris dan kolom terdiri dari 53 satu dan hanya satu nilai. Dalam normalisasi pertama ini, data yang berulang-ulang efektif dihilangkan dengan menempatkan data yang berulang ke dalam sebuah relasi baru dan menghubungkan atribut key yang sama di antara dua tabel tersebut. 2) Second Normal Form (2NF) Menurut Connolly dan Begg (2005, p407), sebuah relasi sudah dalam bentuk Second Normal Form (2NF) jika merupakan sebuah relasi 1NF dan setiap atribut non primary key memiliki full function dependency pada atribut yang merupakan primary key dari relasi tersebut. Full functional dependency adalah jika A dan B adalah atribut dari sebuah relasi, B adalah fully functional dependent dari A jika B secara fungsional tergantung pada A tapi bukan merupakan bagian dari A. Sebuah tabel dikatakan tidak memenuhi 2NF jika ketergantungannya hanya bersifat parsial (hanya bersifat pada sebagian dari primary key). Maka setiap atribut yang tergantung sebagian tersebut harus dipisahkan beserta determinannya. 3) Third Normal Form (3NF) Menurut Connolly dan Begg (2005, p408), Third Normal Form (3NF) adalah sebuah relasi yang memenuhi 1NF dan 2NF, serta tidak ada atribut non primary key yang bersifat transitively dependent dari primary key-nya. Transitive dependency terjadi ketika ada atribut non primary key yang memiliki ketergantungan pada atribut lain yang juga non primary key. Dalam normalisasi ketiga ini, atribut yang tidak memberikan kontribusi terhadap penjelasan karakteristik primary key, akan dipindahkan ke sebuah tabel yang terpisah. Keuntungan dari tabel relasional dalam 3NF adalah 54 menghilangkan data yang berulang-ulang dengan tujuan menghemat tempat dan mengurangi keanehan manipulasi. 2.1.11 Fourth-Generation Language (4GL) Menurut Connolly dan Begg (2005, p42), 4GL merupakan esensi dari bahasa pemrograman. 3GL (Third-Generation Language) seperti COBOL yang memerlukan ratusan baris algoritma dapat dipersingkat oleh bahasa pemrograman 4GL. Dibandingkan dengan 3GL yang prosedural, 4GL tidak prosedural, user menitikberatkan pada apa yang harus dikerjakan bukan bagaimana cara mengerjakannya. Dikatakan bahwa 4GL dapat meningkatkan produktivitas menjadi sepuluh kali lipat dalam mempersingkat pekerjaan seperti: program presentasi dan program laporan (reports generator), program akuntansi (Excel) dan pemrograman basisdata, program aplikasi yang meliputi insert, update dan retrieve data dari basisdata ke aplikasi lainnya dan bahasa tingkat tinggi yang digunakan untuk menjalankan kode-kode aplikasi. Contoh software di Fourth-Generation Language (4GL) adalah SQL dan QBE. Beberapa tipe lain dari 4GL (Connolly dan Begg , 2005, p42-p43) adalah form generators, reports generators, graphic generators, dan application generators. 2.1.12 Data Flow Diagram (DFD) Menurut Whitten, Bentley, dan Dittman (2004, p344), DFD adalah sebuah alat yang menggambarkan aliran data melalui sebuah sistem dan bagaimana sebuah proses ditampilkan oleh sistem tersebut. 55 DFD dapat digunakan untuk mempresentasikan suatu sistem manual maupun yang terkomputerisasi dengan menggunakan komponen-komponen simbol, yaitu : • Entiti Eksternal (Terminal) Merupakan entiti di luar sistem. Entiti ini menyediakan bagi sistem input data dan menerima output data sistem. Pada DFD, tidak dibuat perbedaan antara data dan informasi. Semua arus dipandang sebagai data. Entiti eksternal dapat berupa sistem lain, orang, atau organisasi. Entiti Eksternal Gambar 2.9 Simbol Entiti Eksternal Model DeMarco/Yourdon (Sumber : Whitten, Bentley, dan Dittman, 2004, p365) • Proses Proses adalah kegiatan yang menggambarkan sistem atau prosedur yang berjalan. Proses berfungsi untuk mentransformsikan suatu atau beberapa data masukan menjadi satu atau beberapa data keluaran sesuai dengan spesifikasi yang digunakan (mengubah input menjadi output). Proses Gambar 2.10 Simbol Proses Model DeMarco/Yourdon ( Sumber : Whitten, Bentley, dan Dittman, 2004, p347) • Arus Data Terdiri dari sekelompok elemen data yang berhubungan secara logis yang bergerak dari satu titik atau proses ke titik atau proses lain. Tanda panah menggambarkan aliran data yang terjadi, bisa antara dua proses yang 56 berurutan, dari data store ke proses atau sebaliknya dari proses ke terminal akhir. Gambar 2.11 Arus Data (Sumber : Whitten, Bentley, dan Dittman, 2004, p357) • Penyimpanan Data (Data Store) Data store adalah suatu tempat penampung data. Proses dapat memasukkan atau mengambil data dari data store. Data Store Gambar 2.12 Penyimpanan Data Model DeMarco/Yourdon (Sumber : Whitten, Bentley, dan Dittman, 2004, p366) Tingkatan dalam DFD (G. Schell dan R.McLeod, 2004, p173), yaitu : a) Diagram Konteks Merupakan level tertinggi di dalam DFD yang hanya terdiri dari satu simbol proses yang menggambarkan sistem secara keseluruhan. Diagram ini digunakan untuk menggambarkan seluruh input ke atau output dari sistem. b) Diagram Nol DFD yang levelnya berada di bawah diagram konteks dan mempresentasikan gambaran level tertinggi dari fungsi utama di dalam sistem. Diagram Nol merupakan rincian dari Diagram Konteks dan memperlihatkan data store yang digunakan. 57 c) Diagram Gambar n Jika perlu mendokumentasikan sistem secara lebih rinci dari Diagram Nol, bisa digunakan satu atau beberapa Diagram Gambar n. Diagram Gambar n mendokumentasikan satu proses DFD secara lebih rinci. Huruf n menggambarkan jumlah proses pada tingkat selanjutnya yang lebih tinggi yang sedang didokumentasikan. 2.1.13 State Transition Diagram (STD) Menurut Whitten, Bentley, dan Dittman (2004, p673), STD adalah sebuah alat yang digunakan untuk menggambarkan urutan dan variasi dari layar-layar yang dapat muncul saat user menggunakan sistem. Menurut Hoffer (1999, p462), STD adalah suatu alat untuk membuat model yang menggambarkan sifat ketergantungan pada waktu dari suatu sistem real time dan interaksi manusia pada sistem online. Jadi STD adalah diagram yang menggambarkan langkah-langkah perubahan state dari awal hingga akhir dengan memperlihatkan ketergantungan akan waktu. STD menggambarkan state yang dimiliki sistem komputer dan hal-hal yang terjadi sebagai suatu sebab untuk perubahan state ke state lainnya. Simbol-simbol yang digunakan dalam STD, yaitu : a) State adalah kumpulan keadaan atau atribut yang mencirikan seseorang atau suatu benda pada waktu tertentu, pada kondisi tertentu. Contoh: mesin ATM menunggu user memilih menu atau mengisi password. State disimbolkan dengan segi empat. Gambarnya : 58 b) Transition State atau perubahan state , disimbolkan dengan panah berarah. Gambarnya : 2.2. Teori-Teori Perbankan 2.2.1 Pengertian Perbankan Berdasarkan Undang-Undang perbankan Nomor 10 tahun 1998 (Kasmir, 2000, Lampiran), perbankan merupakan segala sesuatu yang menyangkut tentang bank, mencakup kelembagaan, kegiatan usaha, serta cara dan proses dalam melaksanakan kegiatan usahanya. Fungsi dasar lembaga perbankan, seperti tertera dalam Undang-Undang nomor 7 tahun 1992 tentang Perbankan adalah sebagai lembaga yang melakukan mobilitas dana dan kemudian menyalurkan kembali pada masyarakat dalam bentuk kredit dengan menerapkan konsep yang menuntut setiap bankir untuk berhati-hati dalam menjalankan usahanya. 2.2.2 Pengertian Bank Menurut Dewan Pengawasan Bank Perkreditan Rakyat (DPBPR) di http://www.bi.go.id/web/id/Tentang+BI/Sektoral/Perbankan/dpbpr/bpr.htm, bank adalah badan usaha yang menghimpun dana dari masyarakat dalam bentuk simpanan dan menyalurkannya kepada masyarakat dalam bentuk kredit dan atau bentuk-bentuk lainnya dalam rangka meningkatkan taraf hidup rakyat banyak. Landasan hukumnya adalah Undang-Undang Republik Indonesia Nomor 7 tahun 1992 tentang Perbankan sebagaimana telah diubah dengan Undang-Undang Nomor 10 tahun 1998. Berdasarkan jenisnya bank terdiri dari dua jenis, yaitu : 59 1. Bank Umum Bank Umum adalah bank yang melaksanakan kegiatan usaha secara konvensional dan atau berdasarkan prinsip syariah yang dalam kegiatannya memberikan jasa dalam lalu lintas pembayaran. 2. Bank Perkreditan Rakyat (BPR) BPR adalah bank yang melaksanakan kegiatan usaha secara konvensional dan atau berdasarkan prinsip syariah yang dalam kegiatannya tidak memberikan jasa dalam lalu lintas pembayaran. Bentuk hukum bank umum dan BPR dapat berupa Perseroan Terbatas, Perusahaan Daerah, dan Koperasi. 2.2.3 Persamaan dan Perbedaan antara Bank Umum dan BPR Persamaan Bank Umum dan BPR adalah sama-sama merupakan lembaga keuangan yang menghimpun dana dari mayarakat dan menyalurkan kembali kepada masyarakat dalam bentuk pemberian kredit dalam rangka meningkatkan taraf hidup masyarakat banyak. Perbedaan antara Bank Umum dan BPR, yaitu : • Bank Umum memberikan jasa dalam lalu lintas pembayaran. Sedangkan BPR adalah tidak memberikan jasa dalam lalu lintas pembayaran (misalnya cek). Artinya, di sini kegiatan BPR jauh lebih sempit jika dibandingkan dengan kegiatan Bank Umum. 60 • Dari segi jangkauan wilayah operasi, operasi bank-bank umum dapat dilakukan di seluruh wilayah. Sedangkan jangkauan wilayah operasi BPR hanya dibatasi dalam wilayah-wilayah tertentu saja. • Pendirian BPR dengan modal yang lebih kecil jika dibandingkan dengan modal awal Bank Umum. 2.2.4 Ketentuan Usaha pada BPR Kegiatan usaha yang dapat dilakukan BPR menurut DPBPR (http://www.bi.go.id/web/id/Tentang+BI/Sektoral/Perbankan/dpbpr/dpbpr.htm), yaitu : 1) Menghimpun dana dari masyarakat dalam bentuk simpanan berupa deposito berjangka, tabungan dan atau bentuk lainnya yang dipersamakan dengan itu; 2) Memberikan kredit; 3) Menyediakan pembiayaan dan penempatan dana berdasarkan Prinsip Syariah, sesuai dengan ketentuan yang ditetapkan oleh Bank Indonesia; 4) Menempatkan dananya dalam bentuk Sertifikat Bank Indonesia, deposito berjangka, sertifikat deposito dan atau tabungan pada bank lain. Kegiatan usaha yang dilarang dilakukan BPR, yaitu : 1) Menerima simpanan berupa giro dan ikut serta dalam lalu lintas pembayaran; 2) Melakukan kegiatan usaha dalam valuta asing; 3) Melakukan penyertaan modal; 4) Melakukan usaha perasuransian; 5) Melakukan usaha lain diluar kegiatan usaha yang dapat dilakukan oleh BPR. 61 2.2.5 Produk BPR Menurut Kasmir (2000, p74-p92), produk BPR meliputi : 1) Simpanan Tabungan (Saving Deposit) Menurut UU Perbankan No. 10 tahun 1998, tabungan adalah simpanan yang penarikannya hanya dapat dilakukan menurut syarat-syarat tertentu yang disepakati , tetapi tidak dapat ditarik dengan cek dan bilyet. 2) Deposito Berjangka Menurut UU Perbankan No.10 tahun 1998, deposito adalah simpanan yang penarikannya hanya dapat dilakukan pada waktu tertentu berdasarkan perjanjian nasabah penyimpan dengan bank. Jangka waktunya biasanya bervariasi mulai dari 1, 3, 6, sampai 12 bulan. Bunga deposito dapat ditarik setiap bulan atau setiap jatuh tempo (sesuai jangka waktunya), secara tunai dan dikenakan pajak dari jumlah bunga yang diterimanya. 3) Kredit Menurut UU Perbankan No. 10 tahun 1998, kredit adalah penyediaan uang atau tagihan yang dapat dipersamakan dengan itu, berdasarkan persetujuan atau kesepakatan pinjam-meminjam antara bank dengan pihak lain yang mewajibkan pihak peminjam melunasi utangnya setelah jangka waktu tertentu dengan pemberian bunga. Berdasarkan jenis penggunaannya, kredit yang diberikan BPR dirinci atas ( http://www.bi.go.id/NR/rdonlyres/8CC76CF7-B68B-490C-8710- ED3F32F2C4CD/3628/pedoman.pdf#search=%22jenisjenis%20nasabah%20Bank%20Perkreditan%20Rakyat%22 ): 62 a) Kredit Modal Kerja Yaitu kredit jangka pendek (paling lama 1 tahun) yang diberikan untuk keperluan modal kerja debitur yang bersangkutan. b) Kredit Investasi Yaitu kredit jangka menengah/panjang (lebih dari 1 tahun) untuk pembelian barang modal dan jasa yang diperlukan guna rehabilitasi, modernisasi, ekspansi, relokasi usaha dan/atau pendirian usaha baru. c) Kredit Konsumsi Yaitu kredit yang diberikan kepada pihak ketiga, termasuk pegawai BPR, untuk keperluan konsumsi berupa barang atau jasa, dan dirinci atas: a. Kredit Pemilikan Rumah (KPR) b. Kredit pemilikan kendaraan bermotor c. Kredit konsumsi lainnya Dilihat dari cara pelunasan, kredit dibedakan menjadi : a) Kredit Flat Dimana setiap bulan nasabah debitur mencicil pokok kredit beserta bunga yang dikenakan. b) Kredit Tetap Dimana setiap bulan nasabah debitur mencicil bunga yang dikenakan saja. Pokok pinjaman dikembalikan setelah jatuh tempo. Adapun sistem pemberian kredit pada BPR harus disertai dengan jaminan. Jaminan tersebut dapat berbentuk barang berwujud atau tidak berwujud. Artinya setiap kredit yang dikeluarkan akan dilindungi senilai jaminan yang diberikan calon debitur. 63 Jaminan benda berwujud yaitu barang-barang yang dapat dijadikan jaminan, seperti : tanah, bangunan, dan kendaraan bermotor. Jaminan benda tidak berwujud yaitu benda-benda yang merupakan surat-surat yang dijadikan jaminan, seperti : sertifikat tanah, BPKB kendaraan, rekening tabungan yang dibekukan, dan sertifikat deposito. 2.2.6 Nasabah BPR Berdasarkan Undang-Undang Perbankan Nomor 10 tahun 1998, nasabah dapat dibedakan menjadi dua, yaitu : 1. Nasabah Penyimpan Yaitu nasabah yang menempatkan dananya di bank dalam bentuk simpanan dan deposito berdasarkan perjanjian antara bank dan nasabah yang bersangkutan. 2. Nasabah Debitur Yaitu nasabah yang memperoleh fasilitas kredit atau pembiayaan berdasarkan prinsip syariah atau yang dipersamakan itu berdasarkan perjanjian bank dengan nasabah yang bersangkutan. 2.2.7 Definisi Suku Bunga Menurut http://www.bi.go.id/NR/rdonlyres/8CC76CF7-B68B-490C-8710ED3F32F2C4CD/3628/pedoman.pdf#search=%22jenisjenis%20nasabah%20Bank%20Perkreditan%20Rakyat%22, yang dimaksud suku bunga adalah persentase bunga setahun yang dibayarkan kepada penabung. 64 Yang dimaksud dengan suku bunga juga bisa berarti persentase bunga kredit setahun yang tercantum dalam perjanjian kredit antara bank dengan debitur yang bersangkutan. BPR dalam memperhitungkan bunga atas kredit yang diberikan didasarkan pada plafond kredit maupun baki debet. Cara perhitungan bunga ini dirinci atas: a. Bunga Flat Yang dimaksud dengan cara perhitungan suku bunga flat adalah cara yang digunakan oleh BPR dalam menetapkan suku bunga kredit angsuran yang didasarkan atas plafond kredit. b. Bunga Tidak Flat Yang dimaksud dengan cara perhitungan suku bunga tidak flat adalah cara yang digunakan oleh BPR dalam menetapkan suku bunga kredit yang didasarkan atas baki debet. 2.2.8 Istilah Perbankan yang Digunakan dalam BPR Menurut http://www.bi.go.id/NR/rdonlyres/8CC76CF7-B68B-490C-8710ED3F32F2C4CD/3628/pedoman.pdf#search=%22jenisjenis%20nasabah%20Bank%20Perkreditan%20Rakyat%22 beberapa istilah yang biasanya digunakan dalam BPR, antara lain : 1) Kolektibilitas Yang dimaksud dengan kolektibilitas adalah sebagaimana diatur dalam ketentuan Bank Indonesia mengenai penggolongan kolektibilitas aktiva produktif, dengan kriteria sebagai berikut, yaitu : lancar, kurang lancar, diragukan, dan macet. 65 2) Plafond Kredit Yang dimaksud dengan plafond adalah jumlah maksimum kredit yang tercantum dalam perjanjian kredit. 3) Baki Debet Yang dimaksud dengan baki debet adalah jumlah saldo debet dari kredit yang diberikan pada tanggal laporan yang diisi dalam ribuan rupiah.