Monday, May 21, 2018

Kelebihan, Kekurangan dan cara Install DBMS (MySQL / XAMPP)




Kelebihan, Kekurangan dan cara Install DBMS (MySQL / XAMPP)

Database saat ini sudah menjadi kebutuhan hampir disemua bidang. Untuk memenuhi kebutuhan akan basis data, maka digunakan DBMS sebagai aplikasi basis data. Saat ini banyak DBMS yang dapat digunakan untuk kebutuhan tersebut. Berbagai DBMS itu ada yang free ada juga yang berbayar. Untuk kebutuhan belajar kita bisa menggunakan DBMS yang free (Open Source), diantara produk-produk yang Opensource, satu diantaranya yaitu MySQL untuk itu pada kesempatan kali ini, saya akan menuliskan cara install (pemasangan) MySQL dalam hal ini saya menggunakan xampp yang didalamnya sudah mencakup MySQL, Apache dll.
Kenapa menggunakan DBMS? Kita menggunakan DBMS selain ada yang free (Opensource), selain itu dengan menggunakan DBMS, kita akan mendapatkan manfaat yang lebih besar disbanding jika menggunakan penyimpanan konvensional. Diantara manfaat dari DBMS, yaitu :
1.      Lebih cepat dalam hal pencarian dan menampilkan data.
2.      Praktis, karena penyimpanan data sudah berbasis komputer bukan konvensional seperti kertas dll.
3.      Up to date, dimana data dan informasi yang dibutuhkan dan disampaikan selalu berubah dan lebih akurat.
4.      Menghilangkan kejenuhan karena semua pekerjaan yang berulang-ulang dilakukan oleh komputer (mesin), bandingkan jika pekerjaan itu dilakukan manual oleh manusia.
Disamping manfaat seperti yang disebutkan tadi, ada juga kelebihan dari DBMS tersebut, diantaranya :
1.      Penggunakan basis data lebih terkontrol meski digunakan oleh beberapa user (bersama-sama).
2.      Mudah menambah program baru meski dengan data bebas dan berbeda dari data yang sudah ada pada harddisk (data lama).
3.      Pemusatan DBMS dibawah satu orang/kelompok menjamin terpeliharanya standar kualitas data, keamanan batas penggunaan serta menetralkan konflik dalam persyaratan data dan integritas dapat terjaga.
4.      DBMS dapat mengontrol tingkat kelengkapan data yang masuk, dan mengelola segala hal yang berhubungan dengan pembaruan data.
5.      Menyediakan interface secara langsung, sehingga memudahkan user mengelola data secara langsung.
6.      Mampu mengatur interface yang berbeda-beda sesuai kebutuhan user, meski basis data yang diakses sama.
Jika ada kelebihan pasti juga DBMS memiliki kekurangan, diantarakekurangan dari DBMS yaitu :
1.      Lebih kompleks, sehingga mudah terjadi kesalahan, sulit dalam pemeliharaan data.
2.      Memerlukan pembiayaan yang tinggi, terutama untuk pembelian perangkat lunak dan perangkat komputer yang sesuai dengan kebutuhan. Juga dalam hal pemeliharaan aplikasi basis data, belum lagi tentang sumber daya manusia yang akan mengelola basis data.
3.      Sifatnya yang terpusat, maka resiko kehilangan seluruh data lebih besar disbanding jika data yang terpisah dalam hal penyimpanannya.

Walaupun memiliki kekurangan, tetapi penggunaan DBMS masih merupakan pilihan tepat untuk pengelolaan data yang besar dan kompleks. Dan untuk menggunakan DBMS kita harus memiliki software DBMS tersebut. Salah satu yang bisa digunakan yaitu MySQL, dan MySQL bisa kita peroleh/dapatkan dalam xampp yang free (opensource). Berikut cara instalasi DMBS, disini saya menggunakan xampp-win32-7.2.3-0-VC15-installer.exe.
Baiklah berikut cara instalasi xampp di windows (saya menggunakan Windows 8.1) :
1.      Yang pertama harus dilakukan yaitu mendapatkan file installer xampp, dapat di download disini.
2.      Setelah proses download selesai, cari file hasil download, umumnya berada di folder download.

3.      Jalankan file xampp-win32-7.2.3-0-VC15-installer.exe (atau versi yang lain)
4.      Selanjutnya akan tampil menu konfirmasi UAAC, klik OK.


5.      Setelah itu muncuk menu tahapan instalasi xampp. Pilih Next.

6.      Selanjutnya terdapat menu pilihan komponen yang akan kita install. Disini kita bisa memilih apa saja komponen yang akan kita install, secara default pilihannya semua komponen sudah terchecklist, jika tidak ingin diinstall kita hilangkan checklist pada komponen tersebut. Atau untuk default kita langsung klik Next.


7.      Setelah itu akan tampil menu, dimana pada menu ini kita bisa merubah di direktori mana aplikasi xampp akan kita tempatkan, secara default xampp akan diinstal di drive C:\xampp. Setelah menentukan direktori tempat xampp akan diinstal kita klik Next.

8.      Selanjutnya tampil menu pilihan konfirmasi, dan informasi aplikasi pihak ke tiga yang dapat berjalan pada DBMS MySQL, klik Next.


9.      Tampil menu xampp siap di install, klik Next.

10.  Proses instalasi aplikasi xampp sedang berjalan.

11.  Setelah itu tampil menu pilihan apakah setelah instalasi Control Panel xampp akan langsung dijalankan? Jika tidak, maka hapus tanda checklist pada pilihan. Selanjutnya Finish.


12.  Tampil pilihan bahasa (Inggris atau German) yang akan digunakan, defaultnya English US. Klik Save.

Menjalankan xampp
1.      Computer atau My Computer dan ke drive c:\ cari xampp dan jalankan file xampp-control.exe (klik 2x).
2.      Maka akan tampil menu xampp control panel.

3.      Selanjutnya klik pada tombol Start pada Apache dan MySQL.

4.      Setelah Apache dan MySQL aktf (ditandai warna hijau), maka selanjutnya buka browser yang ada pada komputer kita. Pada address bar ketikkan : localhost/phpmyadmin


5.      Jika browser menampilkan menu phpMyAdmin seperti gambar dibawah, maka DBMS MySQL siap digunakan.

Demikian sedikit tutorial cara instalasi xampp pada windows 8.1. semoga dapat bermanfaat.

Sumber :

SQL dan NoSQL


SQL dan NoSQL

Pada kesempatan ini saya akan menuliskan tentang SQL dan NoSQL. Teman-teman mungkin sudah pernah mendengar tentang SQL dan NoSQL, bahkan ada yang sudah mengerti dan faham apa itu SQL dan NoSQL. Tetapi tidak ada salahnya saya berbagi sedikit, karena berbagai tentang ilmu dan kebaikan itu akan mendatangkan ilmu dan kebaikan juga.
Gambaran umum dari bahasa SQL dan NoSQL yaitu bahasa yang digunakan untuk melakukan operasi pada struktur database, tetapi kedua bahasa ini memiliki cara yang kontras dalam melakukannya.
SQL
SQL singkatan dari Structured Query Language. Pengertian dari SQL sendiri yaitu suatu bahasa yang digunakan untuk mengakses data yang terdapat dalam sebuah database relasional. SQL saat ini digunakan sebagai bahasa standart de facto untuk manajemen database relasional. SQL sendiri sering disebut dengan istilah Query.
Pada tahun 1969 Dr. Edgar F. Codd dengan papernya tentang Teori Database Relational, mengajukan sebuah bahasa yang disebut DSL/Alpha untuk memanajemen data dalam relational database. Pada tahun 1970 IBM dengan team penelitinya (Donald D. Chamberlin dan Raymond F. Boyce) mengembangkan SQUARE menjadi SEQUEL (Structured English Query Language). Sequel ini digunakan untuk mengoperasikan prototype RDBMS pertama milik IBM system R.
Melihat potensi dari bahasa SQL ini, maka perusahaan Relational Software, Inc (Oracle Corporation) mengembangkan versi SQL untuk RDBMS. Pada Juni 1979, RDBMS komersial pertama dari Oracle yang mengimplementasikan SQL dirilis yaitu Oracle V2 (versi 2).
Semakin berkembangnya SQL yang mulai diimplementasikan oleh berbagai RDBMS dangan menggunakan versi SQL mereka sendiri, sehingga menimbulkan permasalahan karena penerapan SQL antara satu aplikasi dengan aplikasi database yang lain tidak seragam. Maka pada tahun 1986, ANSI American National Standards Institute) merancang sebuah standar untuk bahasa SQL. Pada tahun 1987 International Organization for Standardization (ISO) juga mengeluarkan standar untuk bahasa SQL. Pada tahun 2011 dirilis standar SQL yang dinamakan SQL 2011, dengan dirilisnya standar SQL 2011 ini diharapkan adanya keseragaman bahasa SQL antar aplikasi RDBMS yang mengimplementasikan SQL. Meski begitu ada juga RDBMS yang tidak standar seperti MySQL, didalamnya ada “fitur” SQL yang tidak terdapat pada Oracle begitu juga sebaliknya.
SQL digunakan untuk mengelola data dala sistem manajemen basis data relational, dimana data disimpan dalam cara yang terstruktur dan terorganisasi dalam tabel yang terdiri dari kolom dan baris. Kolom dalam basis data berisi bidang/tempat yang berkaitan dengan data yang harus disimpan. Sedang baris yang berhubungan dengan kolom berisi bagian-bagian data yang disebut dengan entri.
Dalam bahasa SQL yang terdapat pada berbagai RDBMS memiliki perintah-perintah dasar yang sama, contoh dalam hal pembuatan tabel, perintah ini dapat digunakan baik di Oracle maupun MySQL. Didalam SQL perintah-perintah (instruksi) dikelompokkan berdasarkan jenis dan fungsinya, terdapat 3 jenis perintah dasar SQL dan 2 jenis perintah tambahan, yaitu
1.      Data Definition Language (DDL), jenis instruksi (perintah) ini berkaitan dangan pembuatan struktur tabel maupun basis data. Ternmasuk : Create, Alter, Rename dan Update.
2.      Data Manipulation Language (DML), jenis instruksi yang berkaitan dengan data yang yang ada dalam tabel, missal bagaimana menginput, menghapus, memperbaharui dan membaca data yang tersimpan dalam basis data. Contoh perintah DML : DELETE, UPDATE, INSERT dan SELECT.
3.      Data Control Language (DCL), jenis instruksi yang berkaitan dengan manajemen hak akses pan pengguna (user) yang dapat mengakses basis data maupun tabel, (GRANT dan REVOKE).
4.      Transaction Control Language (TCL), yaitu perintah untuk proses transaksi. Perintah ini digunakan untuk perintah yang lebih dari 1, namun harus berjalan atua tidak sama sekali. Contoh perintahnya COMMIT, ROLLBACK dan SET TRANSACTION.
5.      Programmatic SQL, yaitu perintah yang berkaitan dengan sub program (stored procedure) maupun penjelasan mengenai struktur basis data. Contoh perintah programmatic SQL yaitu DECLARE, PREPARE, DESCRIBE dan EXPLAIN.
Kelebihan SQL (Dalam ha ini MySQL) yaitu :
1.      Free (gratis)
2.      Lebih stabil dan tangguh
3.      Memiliki security yang baik.
4.      Mudah dalam memanajemen basis datanya
5.      Fleksibel dengan berbagai pemrograman
6.      Banyak komunitas tempat berdialog (diskusi) yang mendukung.
7.      Softwarenya berkembang dengan pesat.
8.      Mendukung transaksi
NoSQL
NoSQL kependekan dari Not Only SQL, yaitu sebuah onsep penyimpanan data non-relationall. Dalam NoSQL menggunakan metode yang berbeda-beda. NoSQL biasanya digunakan untuk data-data yang terus berkembang, dimana data tersebut sangat kompleks yang tidak bisa lagi diakomodir oleh bahasa SQL (basis data relational).
Secara umum basis data NoSQL dapat dibagi menurut format penyimpanan documentnya, yaitu :
1.      Document Database, setiap satu object data disimpan dalam satu document. Document sendiri dapat terdiri dari key-value (Array atau key-value bertingkat). Contohnya MongoDB.
2.      Key-Value, contoh dari basis data jenis ini yaitu Apache Cassandra.
3.      Graph, format penyimpanan data pada format ini disimpan dalam struktur graph. Dan format ini biasa dipakai pada data yang saling berhubungan seperti jejaring social. Contoh basis data dengan format graph yaitu Neo4J dan FlockDB (dipakai Twitter).
4.      Object Database, yaitu format basis data yang disimpan dalam object-object (seperti Object dalam PBO), contoh basis datanya Db4o.
5.      Format yang lain diantaranya tuple store dan tabular.
Kelebihan NoSQL yaitu :
1.      NoSQL  layaknya big data/cloud, dimana basis data ini dapat menampung semua data, baik yang terstruktur, semi terstruktur bahkan data yang tidak terstruktur.
2.      Menggunakan OOP dalam pengaksesan dan manipulasi datanya.
3.      Autosharding, jika dijalankan pada cluster server (multiple server), maka secara otomatis data akan tersebar merata keseluruh server (Sharing Otomatis).
4.      Tidak mengenal schema tabel yang kaku dengan format data yang kaku. Schema dalam NoSQL adalah Dynamic Schema.
Kekurangan NoSQL yaitu :
1.      Hosting untuk data NoSQL tergolong mahal.
2.      Belum adanya standar format penyimpanannya, sehingga menyulitkan ketika akan pindah dari satu produk NoSQL yang satu ke prodek NoSQL yang lain.
3.      Sulit mencari dukungan hosting Cpanel yang mendukung basis data MongoDB dan yang lainnya.


Desain database Logis dan model data relational


Desain database Logis dan model data relational

Desain database adalah tentang pembuatan struktur database yang stabil, dengan mempunyai persyaratan-persyaratan yang tepat. Hal itu sebagai langkah penting yang harus ada untuk pembuatan sebuah database yang tepat. Dan persyaratan-persyaratan itu harus dilakukan dengan hati-hati. Disini kita memiliki dua alasan untuk menekankan model data relasional. Pertama, model data relasional paling banyak digunakan dalam aplikasi database kontemporer. Kedua, beberapa prinsip desain database logis untuk model relasional juga berlaku bagi model logis lainnya.

Model database relational
Pada tahun 1970, E. F. Codd memperkenalkan model data relational, kemudian diikuti oleh IBM (Codd, 1970).  Pada awalnya dilakukan dua proyek penelitian untuk membuktikan kelayakan model relational dan prototype pengembangan sistemnya. Pada akhir 1970, IBM mengembangkan sistem yang dikenal dengan sistem R (prototype untuk relational DBMS-RDBMS). Yang kedua di Universitas alifornia, Berkeley mengembangkan RDBMS yang berorientasi akademis.
Model data relational merepresentasika datadalam bentik tabel. Dalam model data relational terdapat 3 komponen :
1.      Stuktur data, data dikelompokkan dalam bentuk tabel ( baris dan kolom)
2.      Manipulasi data, dengan menggunakan operasi yang kuat (database sql), untuk memanipulasi data yang tersimpan dalam relasi.
3.      Integritas data, menentukan aturan untuk menjaga integritas data pada saat data tersebut dimanipulasi.
Relasi Struktur Data
Dalam pemodelan database relational mendefinisikan sebuah relasi dari tabel 2 dimensi yang terdiri dari kolom dan baris dengan indeks acak. Baris dalam tabel berisi record (data/atribut) sebagai contoh Karyawan1 : Id_karyawan, Nama, Departemen, Gaji. Dalam penulisannya kita dapat menyingkat nama relasi itu diikuti atributnya.
            Karyawan1(Id_karyawan, Nama, Departemen, Gaji)
Relation Key
Didalam relasi setiap atribut digunakan semacam kunci (key) sebagai kunci primer yang digunakan untuk memanggil atribut dalam tabel relasi. Karena itu setiap nama relasi pasti memiliki satu atribut yang dijadikan seabgai kunci primer. Dan biasanya kunci primer ini ditandai dengan adanya garis bawah pada nama atributnya. Seperti contoh diatas : .
            Karyawan1(Id_karyawan, Nama, Departemen, Gaji)
Dapat dilihat bahwa pada Id_Karyawan terdapat garis bawah, itu menandakan bahwa Id_Karyawan merupakan primary key dari relasi Karyawan1. Dalam relasi selain adanya kunci primer, bisa juga kita dapati entitas asosiatif dimana entitas ini tidak harus memiliki pengenal. Karena entitas ini biasanya merupakan pengenal dari attribute pada relasi yang lainnya. Pengenal (primary key) pada satu entitas dapat menjadi foreign key pada entitas hasil relational many-to-many pada entitas-entitas utama (Normal). Jadi foreign key merupakan attribute database yang melayani primary key dari relasi yang lain dalam database yang sama.
Atau dapat disimpulkan Foreign Key adalah Òeld pengenal yang berisi primary key dari suatu relasi lain. Key ini merepresentasikan hubungan antara record di relasitsb dengan record di relasi pemilik primary key. Key dapat terdiri dari satu Òeld (sederhana) atau lebih dari satu Òeld (komposit).

Contoh Diagram ER


Contoh Skema Logis



Properti (Sifat) Relasi
Relasi dapat di definisikan sebagai hubungan tabel data dua dimensi. Tetapi tidak semua hubungan antar tabel adalah sebuah relasi. Tetapi relasi sendiri memiliki properti yang berbeda dari hubungan tabel no relational. Property (sifat) dari relasi dapat di didefinisikan sebagai berikut :
1.      Setiap relasi (atau tabel) dalam database memiliki nama yang unik.
2.      Sebuah entri di persimpangan setiap baris dan kolom adalah atom (atau bernilai tunggal). Tidak mungkin ada atribut multinilai adalah relasi.
3.      Setiap baris itu unik, tidak ada dua deretan dalam suatu relasi yang identik.
4.      Setiap atribut (atau kolom) dalam tabel memiliki nama yang unik.
5.      Urutan kolom (kiri atau kanan) tidak signifikan. kolom suatu relasi dapat dipertukarkan tanpa mengubah arti atau penggunaan relasinya.
6.      Urutan baris (atas ke bawah) tidak signifikan. seperti kolom, baris relasi dapat dipertukarkan atau disimpan dalam urutan apa pun.
Mengubah Diagram E-R ke Relasi
Memetakan hubungan binary Satu-ke-Banyak (one-to-many)
Primary key di pihak satu menjadi foreign key di pihak banyak.
Skema Hubungan Binary 1:N
Skema Hubungan antara KONSUMEN dan PESANAN





Memetakan hubungan binary Banyak-ke-Banyak (many-to-many)
Buat relasi baru dengan primary key komposit yang terdiri dari primary key dari kedua entitas.
Diagram E-R (N:N)



Memetakan hubungan binary Satu-ke-Satu (one-to-one)
Primary key di pihak wajib menjadi foreign key di pihak opsional.
Skema Hubungan Binary 1:1


Relasi Unary
Juga disebut hubungan rekursif. dua kasus yang paling penting dari relasi unary adalah satu-ke-banyak dan banyak-ke-banyak.
Memetakan relasi unary Satu-ke-Banyak (1:N)
foreign key bersifat rekursif (dalam relasi yang sama).
Skema Relasi Unary 1:N

Memetakan relasi unary Banyak-ke-Banyak (N:N)
Menjadi dua relasi:
·         Satu untuk tipe entitas.
·         Satu untuk relasi asosiatif dengan primary key yang terdiri dari dua field, yang keduanya mengacu pada primary key tipe entitas diatas.
Skema relasi unary N:N

Relasi Ternary
Satu relasi untuk merepresentasikan tiap entitas dan satu relasi untuk entitas asosiatif (total empat relasi). Primary key dari setiap entitas yang terlibat dalam hubungan dijadikan foreign key dalam relasi entitas asosiatif.
Skema relasi tenary



Skema Relasi Tenary N:N


Normalisasi Data
Normalisasi skema logis
Melakukan validasi dan penyempurnaan rancangan logis database sehingga memenuhi format tertentu (form normal) untuk meminimasi duplikasi data. Definisi teknis: proses dekomposisi atau memecah relasi-relasi yang mengandung anomali menjadi relasi-relasi kecil yang terstruktur dengan baik (memenuhi form normal).
Form Normal
Suatu skema relasi-relasi yang mengandung duplikasi data minimal sehingga memungkinkan penambahan, penghapusan, dan pengubahan record secara efisien dengan resiko inkonsistensi data minimal.
Menjadikan Form Normal
Tujuannya adalah untuk menghilangkan anomali-anomali. Anomali Penambahan Data Penambahan record baru mengharuskan duplikasi nilai-nilai atribut tertentu. Anomali Penghapusan Data Penghapusan record dapat mengakibatkan hilangnya nilai atribut yang hanya terdapat pada record tsb. (yang mungkin masih dibutuhkan). Anomali Modifikasi Data Pengubahan nilai atribut suatu record mengharuskan pengubahan atribut yang sama pada banyak record-record lain.
Contoh Anomali Penambahan :

Anomali penambahan : Tidak dapat memasukkan pegawai baru yang tidak mengambil kursus.
Contoh Anomali Penghapusan :

Anomali penghapusan : Jika pegawai dengan NIP 140 dihapus, informasi tentang kursus Tax Acc akan hilang.

Contoh Anomali Perubahan (Modifikasi)

Anomali modifikasi : menaikan gaji pegawai dengan NIP 100 mengharuskan perubahan pada beberapa record.

Penyebab terjadinya anomaly
Mengapa anomali-anomali ini terjadi?
Karena menggabungkan dua tema (konsep entitas) dalam satu relasi. Ini mengakibatkan duplikasi-duplikasi sebagai akibat dari ketergantungan antar atribut yang tidak pada tempatnya. Untuk mencegah terjadinya anomaly maka perlu dilakukan Normalisasi. Oleh karena itu secara umum prinsip suatu tabel seharusnya tidak merepresentasikan lebih dari satu tipe entitas.

Langkah-langkah melakukan Normalisasi

Form Normal Ke-1 (1NF)
Tidak ada atribut bernilai-banyak Setiap nilai atribut adalah atomik. Merupakan syarat suatu relasi.
Contoh berikut tidak memenuhi syarat sebagai “relasi”:

Contoh suatu relasi, yang memenuhi 1NF

Dependensi Fungsional
Nilai suatu atribut yang disebut atribut determinan dalam suatu relasi menentukan nilai dari atribut yang lain.
Kandidat Key
adalah atribut determinan Atribut pengenal dengan nilai unik. Salah satu dari kandidat-kandidat key dipilih menjadi primary key. Setiap atribut yang bukan primary key (non-key) secara fungsional tergantung (dependen) pada primary key.

Form Normal ke-2 (2NF)
Syarat: memenuhi 1NF dan setiap atribut non-key secara fungsional bergantung penuh kepada SEMUA primary key.
Tidak ada dependensi fungsional parsial : Nilai setiap atribut non-key harus ditentukan oleh nilai atribut-atribut key secara keseluruhan, bukan hanya sebagian dari atribut-atribut key tsb.

Normalisasi : dekomposisi menjadi dua relasi terpisah

Form Normal ke-3 (3NF)
2NF plus tidak ada dependensi transitif: Satu atribut secara fungsional menentukan nilai atribut kedua yang pada gilirannya menentukan nilai atribut ketiga.
Relasi dengan dependensi transitif:



Normalisasi: dekomposisi relasi SALES menjadi dua relasi




Semoga materi ini dapat bermanfaat.

Sumber :
Ebook Modern Database Management Eighth Edition : Chapter 5 (Jeffrey A. Hoffer, Marry B. Prescott, Fred R. McFadden)


Cara Instal DBMS ( MySQL/XAMPP )

Kelebihan, Kekurangan dan cara Install DBMS (MySQL / XAMPP) Database saat ini sudah menjadi kebutuhan hampir disemua bidang. Untuk me...