Materi 9
Menggunakan Struktur Data
1.Mengidentifikasi konsep data dan struktur data
Data
berasal dari bahasa latin yaitu datum, yang berarti item informasi. jika lebih
dari satu datum (jamak) maka disebut dengan data. jadi dapat disimpulkan data
adalah bentuk jamak dari datum. Database ( Basis Data ) Merupakan Kumpulan dari
suatu data yang tersimpan dan saling berhubungan satu sama lain tersimpan dalam
suatu komputer dan digunakan perangkat lunak untuk memanipulasinya.
Penerapan database dalam suatu informasi disebut dengan datebase System. Suatu
data didefinisikan sebagai kumpulan data yang disatukan didalam suatu
organisasi.Organisasi tersebut data dikatakan sebagai company, bank sekolah - sekolah,
universitas - universitas dan lain - lain. Maksudnya database digunakan untuk
menyimpan semua data yang diinginkan pada suatu lokasi tertentu.sehingga suatu
data dalam organisasi tersebut dapat dieleminasi. Data perlu disimpan di dalam
basis data untuk keperluan penyediaan informasi lebih lanjut.data didalam basis
data supaya dirganisasikan sedemikian rupa, sehingga membentuk informasi yang
lebih berkualitas.
KOMPONEN BASIS DATA
komponen didalam basis data ada 4 yang mendominasi, :
a.Data
Ciri-ciri data didalam database :
·Data disimpan secara terintegrasi (integrated) : Database merupakan kumpulan dari berbagai macam file dari aplikasi-aplikasi yang berbeda, yang disusun dengan cara menghilangkan bagian-bagian yang rangkap (redundant)
·Data dapat dipakai secara bersama-sama (shared) : Masing-masing bagian dari database dapat diakses oleh pemakai dalam waktu yang bersamaan, untuk aplikasi yang berbeda.
b.Hardware ( Perangkat Keras )
Terdiri dari semua perangkat keras koputer sebagai pengolahan database tersebut :
·Peralatan untuk menyimpan data base , yaitu second storage (Harddisk, CD, disket, flashdisk dll)
·Peralatan out put & Input Device.
·Peralatan Komunikasi data
c. Software ( Perangkat Lunak )
Berfungsi
sebagai perantara (interface) antara pemakai dengan data physik pada database.
Softwar
pada sistem database dapat berupa:
·DBMS ( Database Management System ) ,Menangani akses dalam database , sehingga proses tidak terlalu memikirkan penyimpanan dan pengolahan yang terlalu detail.
·Program - program aplikasi dan prosedur - prosedur.
d. User
Terbagi menjadi 4 klasifikasi :
a. Sistem Engineer
Yaitu tenaga ahli yang bertanggung
jawab atas pemasangan sistem basis data dan
juga mengadakan peningkatan dan
melaporkan kesalahan dari sistem tersebut
kepada pihak penjual.
b. Database
Administrator (DBA), orang/tim yang bertugas mengelola system
database secara keseluruhan.
c. Programmer,
orang/tim membuat program aplikasi yang mengakses database dengan
menggunakan bahasa pemprograman
d. End user,
orang yang mengakases database melalui terminal dengan menggunakan
query language atau program aplikasi yang
dibuat oleh programmer.
2.Menerapkan struktur data dan akses terhadap struktur data tersebut
Memahami Istilah Database
Table : Sebuah tabel merupakan kumpulan data (nilai) yang diorganisasikan ke dalam baris (record) dan kolom (field). Masing-masing kolom memiliki nama yang spesifik dan unik.
Field : Field merupakan kolom dari sebuah table. Field memiliki ukuran type data tertentu yang menentukan bagaimana data nantinya tersimpan.
Record : Field merupakan sebuah kumpulan nilai yang saling terkait.
Key : Key merupakan suatu field yang dapat dijadikan kunci dalam operasi tabel. Dalam konsep database, key memiliki banyak jenis diantaranya Primary Key, Foreign Key, Composite Key, dll.
SQL : SQL atau Structured Query Language merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL sering disebut juga sebagai query.
Hierarki Database : Dalam konsep database, urutan atau hierarki
database sangatlah penting. Urutan atau hierarki database digambarkan dalam
gambar sbb :
Manajemen Database dengan MySQL
Tipe-tipe Field (Kolom) MySQL
MySQL memiliki cukup banyak tipe data untuk field (kolom) tabel. Tipe field (kolom) ini menentukan besar kecilnya ukuran suatu tabel. Tipe field di MySQL setidaknya terbagi menjadi beberapa kelompok, yaitu numerik, string, date-andtime, dan kelompok himpunan (set dan enum). Masing-masing tipe field memiliki batasan lebar dan ukurannya.
Tipe Numeric
Tipe data numerik digunakan untuk menyimpan data numeric (angka). Ciri utama data numeric adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe numerik:
1. TINYINT Penggunaan Jangkauan Ukuran
2. SMALLINT Penggunaan Jangkauan Ukuran
: digunakan untuk menyimpan data bilangan bulat positif dan negatif. : -128 s/d 127: 1 byte (8 bit).
: digunakan untuk menyimpan data bilangan bulat positif dan negatif. : -32.768 s/d 32.767: 2 byte (16 bit).
3. MEDIUMINT Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
4. INT Penggunaan Jangkauan Ukuran
5. BIGINT Penggunaan Jangkauan Ukuran
6. FLOAT Penggunaan Jangkauan Ukuran
7. DOUBLE Penggunaan Jangkauan Ukuran
8. REAL
: -8.388.608 s/d 8.388.607 : 3 byte (24 bit).
: digunakan untuk menyimpan data bilangan bulat positif dan negatif. : -2.147.483.648 s/d 2.147.483.647 : 4 byte (32 bit).
: digunakan untuk menyimpan data bilangan bulat positif dan negatif. : ± 9,22 x 1018 : 8 byte (64 bit).
: digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi tunggal.
: -3.402823466E+38 s/d -1.175494351E-38, 0, dan 1.175494351E-38 s/d 3.402823466E+38.
: 4 byte (32 bit).
: digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi ganda.
: -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308. : 8 byte (64 bit).
9. DECIMAL Penggunaan Jangkauan Ukuran
10. NUMERIC
: digunakan untuk menyimpan data bilangan pecahan positif dan negatif. : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308. : 8 byte (64 bit).
Merupakan sinonim dari DECIMAL.
Tipe Date dan Time
Tipe data date dan time digunakan untuk menyimpan data tanggal dan waktu. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe date dan time:
11. DATE Penggunaan Jangkauan Ukuran
: digunakan untuk menyimpan data tanggal. : 1000-01-01 s/d 9999-12-31 (YYYY-MM-DD) : 3 byte.
12. TIME Penggunaan Jangkauan Ukuran
13. DATETIME Penggunaan Jangkauan Ukuran
14. YEAR Penggunaan Jangkauan Ukuran
: digunakan untuk menyimpan data waktu. : -838:59:59 s/d +838:59:59 (HH:MM:SS): 3 byte.
: digunakan untuk menyimpan data tanggal dan waktu. : '1000-01-01 00:00:00' s/d '9999-12-31 23:59:59 : 8 byte.
: digunakan untuk menyimpan data tahun dari tanggal. : 1900 s/d 2155 : 1 byte.
Tipe String (Text)
Tipe data string digunakan untuk menyimpan data string (text). Ciri utama data string adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe string:
15. CHAR Penggunaan Jangkauan
16. VARCHAR Penggunaan Jangkauan
17. TINYTEXT Penggunaan Jangkauan
18. TEXT Penggunaan Jangkauan
: digunakan untuk menyimpan data string ukuran tetap. : 0 s/d 255 karakter
: digunakan untuk menyimpan data string ukuran dinamis. : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535 (versi 5.0.3)
: digunakan untuk menyimpan data text.: 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535 (versi 5.0.3)
: digunakan untuk menyimpan data text. : 0 s/d 65.535 (216 - 1) karakter
19. MEDIUMTEXT
Penggunaan Jangkauan
20. LONGTEXT Penggunaan Jangkauan
: digunakan untuk menyimpan data text. : 0 s/d 224 - 1 karakter
: digunakan untuk menyimpan data text. : 0 s/d 232 - 1 karakter
Tipe BLOB (Biner)
Tipe data blob digunakan untuk menyimpan data biner. Tipe ini biasanya digunakan untuk menyimpan kode-kode biner dari suatu file atau object. BLOB merupakan singkatan dari Binary Large Object. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe blob:
21. BIT (sejak versi 5.0.3)
Penggunaan Jangkauan
22. TINYBLOB Penggunaan Jangkauan
23. BLOB Penggunaan Jangkauan 24. MEDIUMBLOB Penggunaan : digunakan untuk menyimpan data biner. Jangkauan : 224 - 1 byte
25. LONGBLOB Penggunaan : digunakan untuk menyimpan data biner. Jangkauan : 232 - 1 byte
Tipe Data yang Lain
Selain tipe data di atas, MySQL juga menyediakan tipe data yang lain. Tipe data di MySQL mungkin akan terus bertambah seiring dengan perkembangan versi MySQL. Berikut ini beberapa tipe data tambahan MySQL:
26. ENUM Penggunaan Jangkauan
27. SET Penggunaan Jangkauan
: enumerasi (kumpulan data). : sampai dengan 65535 string.
: combination (himpunan data). : sampai dengan 255 string anggotas.
Merancang Database yang Baik
Seperti telah disebutkan sebelumnya, bahwa rancangan database menentukan suatu aplikasi efektif atau tidak, efisien atau tidak, baik atau tidak. Pembahasan mengenai bagaimana merancang database yang baik tentunya sangat panjang. Kita dapat mencari referensi terkait dengan perancangan database.
Beberapa Aturan Merancang Database yang Baik.
1.Tabel dalam database tidak boleh mengandung record (data) ganda, atau dengan kata lain tidak boleh ada redudancy data. Jika terdapat data yang sama, maka perlu dilihat kembali rancangan tabelnya.
2.Setiap tabel dalam database, harus memiliki field (kolom) yang unik. Field ini disebut sebagai Primary Key.
3.Tabel harus sudah normal.
4.Besar atau ukuran database hendaknya dibuat seminimal mungkin. Hal ini ditentukan oleh pemilihan tipe data yang tepat.
5.Merancang database hendaknya memperhatikan apakah rancangan dapat menampung data (record) sesuai yang dibutuhkan oleh aplikasi.
Merancang Database
Merancang database merupakan hal yang pertama kali harus dilakukan sebelum membuat suatu aplikasi berbasis database. Rancangan database yang baik akan menentukan seberapa baik sebuah aplikasi dibangun.
Berikut ini contoh sederhana sebuah rancangan database dalam pada Sistem Akademik Rancangan database disajikan dalam bentuk class diagram.
Merancang Database yang Baik
Seperti telah disebutkan sebelumnya, bahwa rancangan database menentukan suatu aplikasi efektif atau tidak, efisien atau tidak, baik atau tidak. Pembahasan mengenai bagaimana merancang database yang baik tentunya sangat panjang. Kita dapat mencari referensi terkait dengan perancangan database.
Beberapa Aturan Merancang Database yang Baik.
6.Tabel dalam database tidak boleh mengandung record (data) ganda, atau dengan kata lain tidak boleh ada redudancy data. Jika terdapat data yang sama, maka perlu dilihat kembali rancangan tabelnya.
7.Setiap tabel dalam database, harus memiliki field (kolom) yang unik. Field ini disebut sebagai Primary Key.
8.Tabel harus sudah normal.
9.Besar atau ukuran database hendaknya dibuat seminimal mungkin. Hal ini ditentukan oleh pemilihan tipe data yang tepat.
10.Merancang database hendaknya memperhatikan apakah rancangan dapat menampung data (record) sesuai yang dibutuhkan oleh aplikasi.
Merancang Database
Merancang database merupakan hal yang pertama kali harus dilakukan sebelum membuat suatu aplikasi berbasis database. Rancangan database yang baik akan menentukan seberapa baik sebuah aplikasi dibangun.
Berikut ini contoh sederhana sebuah rancangan database dalam pada Sistem Akademik Rancangan database disajikan dalam bentuk class diagram.
Langkah-langkah membuat database di MySQL adalah sebagai berikut:
1.Aktifkan terlebih dahulu Control Panel XAMPP,
2.Setelah mengaktifkan control panel XAMPP langkah selanjutnya adalah Buka browser (Internet Explorer, Mozilla Firefox, Chrome, etc)
3.Ketik localhost,
4.Pilih phpMyAdmin
5.Langkah selanjutnya adalah membuat database,
6.pilih Tab Databases,
7.Isikan nama database pada kotak TextFields Create database dengan Akademik, lalu klik tombol Create.
8.Langkah selanjutnya, membuat Table dengan nama tabel admin
9.Langkah selanjutnya mengisi Fields yang dibutuhkan.
10.Lakukan langkah 6-8 hal yang sama untuk membuat tabel mahasiswa, Number of columns 4, Primary Key nim
11.Lakukan langkah 6-8 hal yang sama untuk membuat tabel dosen, Number of columns 4, Primary Key nidn
12.Setelah membuat Tabel dan Fields, langkah selanjutnya adalah mengisi masing-masing tabel dengan sebanyak 3 buah data record.
Mengenal JDBC
JDBC adalah sebuah nama dari sebuah produk yang ada dalam Java, atau yang dikenal sebagian orang sebagai Java Database Connectivity , seperti dokumentasi yang dikeluarkan oleh Sun Microsystem sendiri dalam situs resminya. Sebenarnya lengkapnya adalah JDBC API yaitu Application Programming Interface, yang menyediakan akses data secara universal dan independent. Bekerja dengan JDBC secara umum adalah sebagai berikut:
11.Me-load JDBC Driver ke dalam JVM.
12.Membuat koneksi ke database yang direpresentasikan sebagai objek java.sql.Connection
13.Membuat objek java.sql.Statement yang akan digunakan untuk mengirimkan perintah SQL ke database.
14.Menjalankan metode yang bersesuaian dari objek java.sql.Statement
, seperti executeQuery() untuk membaca atau executeUpdate () untuk menulis ke
tabel. Kelas untuk Mengakses Database Java menyiapkan
paket khusus untuk menyimpan kelas-kelas yang terlibat dalam operasi akses
database, yaitu dalam paket java.sql. Seperti yang Anda ketahui sebelumnya
bahwa perlu ada beberapa tahapan agar bisa melakukan operasi ke dalam database,
antara lain pengenalan dirver, pembuatan koneksi/hubungan, statement/perintah
SQL baru, kemudian operasi baca dengan excecuteQuery ataupun operasi tulis dengan
executeUpdate(). Setiap tahap dan pekerjaan yang berbeda-beda tersebut
dilakukan oleh kelas yang berbeda, mulai dari DriverManager, Connection,
Statement, PreparedStatement, Resulset. DriverManager DriverManager
adalah kelas untuk manajemen driver, seperti yang Anda ketahui bahwa untuk bisa
mengakses database diperlukan sebuah driver JDBC. Untuk itu file driver
tersebut harus ada, dan terpasang dalam kelas path dalam program kerjanya.
Untuk memastikan sebuah driver sudah terpasang atau belum, bisa digunakan objek
Class untuk mengidentifikasinya, seperti berikut.
Jika program tersebut dijalankan, akan menghasilkan pesan "jdbc.Driver : OK”, bila dalam project Anda sudah terpasang classpath untuk driver MySQL. Akan tetapi, program akan menampilkan pesan "Kelas: jdbc.Driver tidak ada” bila direktori kerja Anda tidak mengenali path dari Driver tersebut, walaupun dalam komputer Anda sudah ada filenya, ataupun dalam editor sudah terpasang dalam lingkungan library.
Dalam aplikasinya, Anda tidak mesti memberikan operasi pengecekan driver ini, karena hanya untuk melakukan trace jika terjadi kesalahan, agar diketahui penyebabnya saja.
Objek DriverManager ini bisa menghasilkan sebuah koneksi melalui metode getConnction(), dengan menyertakan URL sebagai parameternya. Adapun penulisannya menggunakan titik dua (, seperti contoh:
Berikut ini penjelasannya.
jdbc:mysql adalah nama drivernya
localhost adalah nama hostname (komputer address).
db_akademik adalah nama databasenya.
root adalah nama account user MySQL.
admin adalah password dari account MySQL tersebut. Connection Kelas Connection adalah kelas yang menyimpan sebuah koneksi atau hubungan yang telah dilakukan oleh DriverManager. Untuk selanjutnya kelas ini sendiri bisa dipakai untuk menentukan jenis operasi baca atau operasi tulis pada tabel. Seperti contoh potongan program berikut.
Instance conn tersebut menyimpan sebuah koneksi ke database "db_akademik”, dengan komputer localhost (komputer lokal).
Statement
Kelas ini digunakan untuk mengirimkan statement SQL ke database, tanpa penggunaan parameter. Seperti contoh berikut:
Instance st tersebut membuat sebuah statement baca, yaitu "Select * from user”, melalui metode executeQuery yang dimilikinya. Selain itu, Statement tersebut juga bisa melakukan operasi baca dengan metode executeUpdate() yang juga dimiliki oleh kelas ini.
PreparedStatement
Kelas ini digunakan untuk mengirimkan statement SQL ke database, yang disertai dengan penggunaan parameter, seperti contoh:
Instance pStatement tersebut membuat sebuah statement tulis, yaitu "insert into user (user_id, password, jabatan)”, dan dijalankan melalui metode executeUpdate() yang dimiliki oleh kelas ini.
Perhatikan metode setString([nomor kolom], [isi dari parameter]) nomor kolom dimulai dari 1, sehingga contoh di atas dapat disimpulkan user_id=”fery”, password=”123”, jabatan=”Kepala IT”.
ResultSet
Kelas yang menyimpan dataset (sekumpulan data) dari hasil statement query "SELECT”. Seperti contoh berikut ini.
Instance rs, akan menyimpan hasil query yang bisa diakses dengan cara memanggil metode getter untuk setiap jenis datanya. Misalnya getString() adalah untuk mendapat nilai string, diikuti nama fieldnya. Sedangkan untuk membaca record berikutnya bisa dilakukan dengan metode next().