Menampilkan postingan yang diurutkan menurut relevansi untuk kueri database. Urutkan menurut tanggal Tampilkan semua postingan
Mengenal SQL Server
Pengertian SQL Server
SQL adalah singkatan atau kependekan dari Structured Query Language.SQL SERVER adalah sistem manajemen database relasional (RDBMS) yang dirancang untuk aplikasi dengan arsitektur client/server.
Istilah client, server, dan client/server dapat digunakan untuk merujuk kepada konsep yang sangat umum atau hal yang spesifik dari perangkat keras atau perangkat lunak.Pada level yang sangat umum.
Jadi secara umum SQL Server adalah sebuah Software yang dibuat oleh perusahaan Microsoft yang digunakan untuk membuat database yang dapat diimplementasikan untuk Client Server.
CLIENT adalah setiap komponen dari sebuah sistem yang meminta layanan atau sumber daya (resource) dari komponen sistem lainnya.
SERVER adalah setiap komponen sistem yang menyediakan layanan atau sumber daya ke komponen sistem lainnya.
Apa itu RDBMS?
RDBMS adalah singkatan Relational Database Management System.
RDBMS adalah dasar untuk SQL, dan untuk semua sistem database modern seperti MS SQL Server, IBM DB2, Oracle, MySQL, dan Microsoft Access.
Data dalam RDBMS disimpan dalam objek database yang disebut tabel.
TABEL adalah kumpulan data entri terkait dan terdiri dari kolom dan baris.
Pengertian SQL
Seperti yang sudah dijelaskan diatas, bahwa SQL merupakan singkatan dari Structured Query Language, yang diantaranya mempunyai fungsi :
- SQL memungkinkan anda mengakses dan memanipulasi database.
- SQL dapat mengeksekusi query terhadap database
- SQL dapat mengambil data dari database
- SQL dapat menyisipkan data dalam database
- SQL dapat memperbarui data dalam database
- SQL dapat menghapus data dari database
- SQL dapat membuat database baru
- SQL dapat membuat tabel baru dalam database
- SQL dapat membuat prosedur yang tersimpan dalam database
- SQL dapat menggabungkan beberapa tabel didalam database
- SQL dapat mengatur hak akses pada tabel, prosedur, dan lain-lain
Kenapa SQL Server
Alasan kenapa harus mempelajari SQL Server dan Kenapa pada website Javanet Media dibahas secara detail SQL Server? Pada tutorial sebelumnya saya sudah membuat tutorial VB 6.0 maupun VB .NET yang menggunakan database SQL Server.Kenapa anda harus mempelajari SQL Server :
1. SQL Server adalah product dari Microsoft, maka jika anda menggunakan Windows, kemudian bahasa pemograman dengan Visual Studio, dan server anda menggunakan OS Windows Server yang kesemuanya itu menggunakan product dari microsoft maka akan mudah dalam konfigurasi secara akun dan sangat kompability karena berasal dari perusahaan yang sama.
2. SQL Server Mempunyai Privileged Access atau hak Akses yang digunakan untuk mengakses database pada SQL Server. Oleh karenanya jika anda menggunakan domain pada Server maka SQL Server sangat support dengan satu pintu login bisa mengakses banyak aplikasi dari product microsoft
3. Bagi Dunia Kerja SQL Server banyak digunakan pada perusahaan besar. Bagi anda yang masih duduk didunia sekolah atau perguruan tinggi, bekerja diperusahaan besar adalah sebuah impian. Maka jika perusahaan besar saja menggunakan SQL Server maka jika anda bisa mengoperasikan SQL Server kesempatan untuk bisa masuk ke perusahaan besar tersebut akan terbuka.
Demikian beberapa alasan kenapa anda harus memperlajari SQL Server
Kelebihan dan Kekurangan SQL Server
Kelebihan SQL Server adalah SQL Server sangat powerfull dan banyak sekali digunakan di perusahaan-perusahaan besar karena memang sangat powerfull untuk konsep Client Server. Selain ada kelebihan pasti ada kekurangannya. Apa kekurangan SQL Server?Yappp SQL Server adalah software berbayar. SQL Server tidak gratis, oleh karenanya hanya perusahaan-perusahaan besar yang mampu untuk menggunakan SQL Server. Walaupun ada SQL Server yang gratis yaitu versi Express namun banyak fitur yang kurang lengkap dari versi yang berbayar.
Laravel #2
Tools Andalan Laravel
Selain itu, ada dua tools Laravel yang jarang dimiliki oleh framework lain (kecuali Symphony), yaitu Composer dan Artisan. Apa kegunaan masing-masing dari tool tersebut?
1. Composer
Composer merupakan tool yang di dalamnya terdapat dependencies dan kumpulan library. Seluruh dependencies disimpan menggunakan format file composer.json sehingga dapat ditempatkan di dalam folder utama website. Inilah mengapa composer terkadang dikenal dengan dependencies management.
Pertanyaannya lain, apa itu dependencies management?
Misalnya Anda mempunyai sebuah website yang membutuhkan sebuah library. Saya ambil contoh library untuk mengimplementasikan validasi dan proteksi untuk spamming, yaitu Google reCaptcha.
Tentu saja untuk menyediakan Google reCaptcha tidak bisa menggunakan satu library saja, tapi membutuhkan beberapa library. Anda tidak mungkin menginstall satu per satu library, kan?
Nah! Composer membantu Anda untuk menginstall library yang dibutuhkan oleh library Google reCaptcha. Jadi jika menggunakan composer Anda tinggal menginstall library Google reCaptcha dan secara otomatis library lain akan terinstall.
Begitu pun ketika ingin memperbarui library, Anda cukup menggunakan perintah “$ composer update” dan satu per satu library akan diperbarui secara otomatis.
2. Artisan
Sudah pernah mendengar ini? Artisan merupakan command line interface yang dimiliki oleh Laravel. Artisan mencakup sekumpulan perintah yang membantu Anda untuk membangun sebuah website atau aplikasi web.
Kumpulan perintah Artisan juga termasuk penggabungan dengan framework Symphony yang menghasilkan fitur add-on di Laravel 5.1 (sekarang sudah masuk ke versi Laravel 5.8). Dengan adanya fitur add-on, Anda bisa menambahkan berbagai macam fitur baru ke Laravel.
Fitur-Fitur Laravel Lainnya
Laravel mempunyai berbagai macam fitur yang tidak semua framework menyediakannya. Apalagi Laravel adalah framework yang modern sehingga Anda dapat melakukan berbagai hal menggunakan framework ini seperti proses otentifikasi terbaru.
Berikut ini beberapa fitur Laravel yang perlu Anda ketahui.
Blade Template Engine | Laravel menggunakan Blade. Blade merupakan template engine untuk mendesain layout yang unik. Layout yang didesain dapat digunakan di tampilan lain sehingga menyediakan konsistensi desain dan struktur selama proses pengembangan.. Dibandingkan dengan template engine lain, Blade mempunyai kelebihan: tidak membatasi pengembang untuk menggunakan kode PHP biasa di dalam tampilan; desain tampilan blade akan tetap di-cache sampai dengan ada modifikasi. |
Routing | Di Laravel, semua request dipetakan dengan bantuan rute. Dasar dari routing adalah merutekan request ke kontroler terkait. Routing ini dianggap dapat mempermudah pengembangan website dan meningkatkan performanya. Setidaknya ada tiga kategori routing di Laravel, yaitu basic routing, route parameters, dan named routes. |
Modularity | Seperti yang sudah dibahas di bagian sebelumnya, di dalam Laravel terdapat kumpulan modul dan library yang terkait dengan composer. Fitur ini membantu Anda untuk menyempurnakan dan meningkatkan fungsionalitas dari website yang dibangun, serta mempermudah proses update. |
Testability | Laravel dibangun dengan fitur proses pengecekan yang cukup lengkap. Framework ini mendukung proses pengecekan dengan PHPUnit dan file phpunit.xml yang dapat disesuaikan dengan aplikasi web yang sedang dibangun. Framework ini juga dibangun menggunakan metode pembantu yang nyaman. Metode ini memungkinkan Anda untuk menguji website secara ekspresif. |
Query Builder and ORM | Laravel database query builder menyediakan antarmuka yang lancar untuk membuat dan menjalankan database query. Fitur ini dapat digunakan untuk menjalankan berbagai operasi database di dalam website dan mendukung berbagai sistem database. |
Authentication | Laravel membuat pengimplementasian otentikasi menjadi sangat sederhana. Seluruh proses konfigurasi otentikasi sudah berjalan secara otomatis. Anda bisa menemukan file konfigurasi otentikasi ini di ‘config/auth.php’. Di dalam file ini terdapat beberapa opsi otentifikasi yang sudah terdokumentasikan dengan baik dan sewaktu-waktu dapat Anda sesuaikan dengan kebutuhan sistem. |
Schema Builder | Class Laravel Schema menyediakan database agnostic untuk memanipulasi tabel. Schema ini berjalan baik di berbagai tipe database yang didukung Laravel dan mempunyai API yang sama di seluruh sistem. |
Configuration Management Features | Seluruh file konfigurasi Laravel disimpan di dalam direktori config. Setiap opsi didokumentasikan dengan baik. Jadi Anda tidak perlu khawatir untuk mengubah setiap konfigurasi yang tersedia. |
E-mail Class | Laravel menyediakan API beberapa library SwiftMailer yang cukup populer dengan koneksi ke SMTP, Postmark, Mailgun, SparkPost, Amazon SES, dan sendmail. Fitur ini memungkinkan Anda untuk mengirimkan email dengan cepat melalui aplikasi lokal maupun layanan cloud. |
Redis | Laravel menggunakan Redis untuk menghubungkan antara sesi yang sudah ada dengan cache general-purpose. Redis terkoneksi dengan session secara langsung. Redis merupakan aplikasi open source yang menyimpan key-value. Redis juga sering dikenal dengan server struktur data yang dapat menyimpan key dengan tipe strings, hashes, lists, sets, dan sorted sets. |
Event and Command Bus | Laravel Command Bus menyediakan metode pengumpulan tugas yang dibutuhkan aplikasi supaya dapat berjalan secara simpel dan perintah yang mudah dimengerti. |
Itulah tadi beberapa fitur yang dimiliki oleh Laravel dan belum tentu bisa Anda temui di framework lain. Framework ini cukup menarik dan sangat cocok untuk membuat sistem dengan skala besar.
Tipe Data #MySQL
TIPE DATA PADA MYSQL
Berikut ini
akan diberikan tipe-tipe data yang didukung oleh MySQL yang terambil dari
dokumentasi MySQL. Tipe - tipe data ini diberikan dalam bentuk yang siap
dituliskan pada sintaks-sintaks MySQL, misalnya Create Table. Pada tipe-tipe
data tersebut terdapat beberapa atribut yang memiliki arti sebagai berikut:
- M, menunjukkan lebar karakter maksimum. Nilai M maksimum adalah 255.
- D, menunjukkan jumlah angka di belakang koma. Nilai maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak boleh lebih besar daripada M-2.
- Atribut yang diberi tanda [ dan ] berarti pemakaiannya adalah optional.
- Jika atribut ZEROFILL disertakan, MySQL akan otomatis menambahkan atribut UNSIGNED.
- UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya tanda negatif).
Inilah
tipe-tipe data tersebut:
- TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang sangat kecil jangkauan
nilainya, yaitu -128 hingga 127. Jangkauan unsigned adalah 0 hingga 255.
- SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang kecil jangkauan
nilainya, yaitu -32768 hingga 32767. Jangkauan unsigned adalah 0 hinga 65535.
- MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Integer tingkat menengah. Jangkauan
nilainya adalah -8388608 hingga 8388607. Jangkauan unsigned adalah 0 hingga
16777215.
- INT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang berukuran normal.
Jangkauan nilainya adalah -2147483648 hingga 2147483647. Jangkauan unsigned
adalah 0 hingga 4294967295.
- INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Sama dengan INT.
- BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Integer berukuran besar. Jangkauan
nilainya adalah -9223372036854775808 hingga 9223372036854775807. Jangkauan
unsigned adalah 0 hingga 18446744073709551615.
- FLOAT(precision) [ZEROFILL]
Bilangan floating-point. Tidak dapat
bersifat unsigned. Nilai atribut precision adalah <=24 untuk bilangan
floating-point presisi tunggal dan di antara 25 dan 53 untuk bilangan
floating-point presisi ganda.
- FLOAT[(M,D)] [ZEROFILL]
Bilangan floating-point presisi
tunggal. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah
-3.402823466E+38 hingga -1.175494351E-38 untuk nilai negatif, 0, and
1.175494351E-38 hingga 3.402823466E+38 untuk nilai positif.
- DOUBLE[(M,D)] [ZEROFILL]
Bilangan floating-point presisi
ganda. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah
-1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk nilai negatif,
0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai
positif.
- DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL]
Keduanya sama dengan DOUBLE.
- DECIMAL[(M[,D])] [ZEROFILL]
Bilangan floating-point yang
“unpacked”. Tidak dapat bersifat unsigned. Memiliki sifat mirit dengan CHAR.
Kata “unpacked'' berarti bilangan disimpan sebagai string, menggunakan satu
karakter untuk setiap digitnya. Jangkauan nilai dari DECIMAL sama dengan
DOUBLE, tetapi juga tergantung dai nilai atribut M dan D yang disertakan. Jika
D tidak diisi akan dianggap 0. Jika M tidak diisi maka akan dianggap 10. Sejak
MySQL 3.22 nilai M harus termasuk ruang yang ditempati oleh angka di belakang
koma dan tanda + atau -.
- NUMERIC(M,D) [ZEROFILL]
Sama dengan DECIMAL.
- DATE
Sebuah tanggal. MySQL menampilkan
tanggal dalam format 'YYYY-MM-DD'. Jangkauan nilainya adalah '1000-01-01'
hingga '9999-12-31'.
- DATETIME
Sebuah kombinasi dari waktu (jam)
dan tanggal. MySQL menampilkan waktu dan tanggal dalam format 'YYYY-MM-DD
HH:MM:SS'. Jangkauan nilainya adalah '1000-01-01 00:00:00' hingga '9999-12-31
23:59:59'.
- TIMESTAMP[(M)]
Sebuah timestamp. Jangkauannya
adalah dari '1970-01-01 00:00:00' hingga suatu waktu di tahun 2037. MySQL
menampilkan tipe data TIMESTAMP dalam format YYYYMMDDHHMMSS, YYMMDDHHMMSS,
YYYYMMDD, atau YYMMDD, tergantung dari nilai M, apakah 14 (atau tidak ditulis),
12, 8, atau 6.
- TIME
Tipe data waktu. Jangkauannya adalah
'-838:59:59' hingga '838:59:59'. MySQL menampilkan TIME dalam format
'HH:MM:SS'.
- YEAR[(2|4)]
Angka tahun, dalam format 2- atau
4-digit (default adalah 4-digit). Nilai yang mungkin adalah 1901 hingga 2155,
0000 pada format 4-digit, dan 1970-2069 pada format 2-digit (70-69).
- CHAR(M) [BINARY]
String yang memiliki lebar tetap.
Nilai M adalah dari 1 hingga 255 karakter. Jika ada sisa, maka sisa tersebut
diisi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya
memiliki 7 karakter, maka 3 karakter sisanya diisi dengan spasi). Spasi ini
akan dihilangkan apabila data dipanggil. Nilai dari CHAR akan disortir dan
diperbandingkan secara case-insensitive menurut default character set yang
tersedia, kecuali bila atribut BINARY disertakan.
- VARCHAR(M) [BINARY]
String dengan lebar bervariasi.
Nilai M adalah dari 1 hingga 255 karakter. Jika nilai M adalah 10 sedangkan
data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut
hanya 5 karakter saja, tidak ada tambahan spasi.
- TINYBLOB dan TINYTEXT
Sebuah BLOB (semacam catatan) atau
TEXT dengan lebar maksimum 255 (2^8 - 1) karakter.
- BLOB dan TEXT
Sebuah BLOB atau TEXT dengan lebar
maksimum 65535 (2^16 - 1) karakter.
- MEDIUMBLOB dan MEDIUMTEXT
Sebuah BLOB atau TEXT dengan lebar
maksimum 16777215 (2^24 - 1) karakter.
- LONGBLOB dan LONGTEXT
Sebuah BLOB atau TEXT dengan lebar
maksimum 4294967295 (2^32 - 1) karakter.
- ENUM('value1','value2',...)
Sebuah enumerasi, yaitu objek string
yang hanya dapat memiliki sebuah nilai, dipilih dari daftar nilai 'value1', 'value2',
..., NULL atau nilai special "" error. Sebuah ENUM maksimum dapat
memiliki 65535 jenis nilai.
- SET('value1','value2',...)
Sebuah set, yaitu objek string yang
dapat memiliki 0 nilai atau lebih, yang harus dipilih dari daftar nilai
'value1', 'value2', .... Sebuah SET maksimum dapat memiliki 64 anggota.
Nah, dengan mengenal tipe-tipe data yang didukung oleh MySQL, Anda dapat dengan tepat memilih tipe data yang Anda butuhkan dalam menyusun sebuah database.
Misalnya
Anda hendak menyimpan data jumlah suatu stok barang yang tidak melebihi angka
200 misalnya, maka sebaiknya Anda memilih tipe data TINYINT yang diberi atribut
UNSIGNED. Alasannya adalah jumlah stok tidak melebihi 200 dan tidak mungkin
lebih kecil dari 0, dan tipe data TINYINT memiliki jangkauan 0 hingga 255, jadi
memenuhi syarat untuk digunakan.
Contoh yang
lain, misalnya Anda hendak membuat database nomor telpon dari teman-teman Anda.
Memang nomor telpon seluruhnya terdiri dari angka, namun nampaknya tidak tepat
bila disimpan dalam tipe data INT (atau bahkan BIGINT bila hendak menyimpan
nomor handphone). Lebih baik dimasukkan ke dalam CHAR atau VARCHAR dengan M
adalah 12. Mengapa 12? Karena nomor handphone terpanjang terdiri dari 12 digit.
Sedangkan nomor telpon rumah terpanjang adalah 8 digit ditambah kode area
terpanjang 4 digit, jadi angka 12 sangat pas.
Lalu
bagaimana penerapannya dalam operasi MySQL? Misalnya Anda hendak membuat tabel
stok barang dengan masing-masing field adalah kode barang, nama barang, harga
barang, supplier, dan tanggal beli, maka kemungkinan perintah yang harus
ditulis adalah sebagai berikut:
mysql>
create table stok(
-> kode char(5),
-> nama varchar(20),
-> harga mediumint unsigned,
-> supplier char(5),
-> tanggal date);
-> kode char(5),
-> nama varchar(20),
-> harga mediumint unsigned,
-> supplier char(5),
-> tanggal date);