Showing posts with label MySql. Show all posts
Showing posts with label MySql. Show all posts

Setiap data yang akan diproses atau disimpan pada database, sebaiknya sudah melalui proses validasi terlebih dulu. Hal ini bertujuan agar mengurangi resiko adanya serangan melalui sql injection yang dapat merusak struktur database, atau adanya pencurian data yang sangat berbahaya. Dengan adanya validasi karakter ini memungkinkan kita mengendalikan mekanisme masuknya data sebagai hasil interaksi antara pengguna dan sistem.

Proses validasi karakter pada pemrograman PHP dapat disesuaikan dengan standar atau aturan yang kita buat, baik yang berbasis database atau berbasis kebiasaan pengguna. Berdasarkan pengalaman, penggunaan validasi yang melibatkan 2 (dua) aspek tersebut cukup efektif mengurangi resiko dan dapat diterapkan pada beberapa proses sekaligus. Sebelum kita beranjak pada masalah teknikal kita akan membahas terlebih dulu apa saja yang akan kita validasi pada data masukan (input) sehingga bisa tersimpan pada tabel-tabel database dengan aman.

1. Memahami Tipe Karakter Database

Tipe karakter berhubungan dengan prilaku sebuah karakter sehingga sistem memberikan perlakuan yang berbeda pada masing-masing tipe. Ada baiknya kita memahami tipe-tipe karakter tersebut karena akan sangat bermanfaat ketika kita menghadapi project yang menuntut pendalaman pada basis data. Untuk memahami lebih mendalam mengenai tipe data ini baiknya pelajari terlebih dulu Memahami Tipe Data Pada DBMS MySql yang sudah dibahas pada postingan lain di seri belajar ini. 

2. Contoh Program Input Data Sederhana

Untuk mempersingkat waktu, kita akan melanjutkan beberapa tutorial yang pernah kita buat sebelumnya. Hal ini bertujuan agar kita paham dengan alur proses belajarnya. Jadi silahkan ikuti dulu langkah-langkahnya pada 2 (dua) postingan artikel tutorial berikut ini:

Silahkan ikuti kedua tutorial tersebut dengan baik. Kemudian kita langsung saja buat program berbasis web untuk input data sederhana pada database. Silahkan buat sebuah database dengan nama misalnya "belajar_php" kemudian buat juga tabel di dalam database tersebut dengan nama misalnya "pasien" spesifikasinya seperti ini: 

Validasi Karakter Yang Diinput Menggunakan Pemrograman PHP

Penjelasan:

Kolom id_pasien dibatasi dengan jumlah 10 digit, yang artinya database hanya akan dibatasi kurang dari 10 milyar baris data.

Kolom nama kita batasi hingga 225 karakter, dimana nantinya kita bisa batasi lebih ketat hingga 200 karakter.

  1. Kolom kontak kita coba menggunakan varchar, agar kita tahu perbedaannya nanti saat uji coba.
  2. Kolom alamat menggunakan text agar pengguna lebih leluasa pada saat input alamat dengan jelas.
  3. Kolom tempat_lahir, walaupun rata-rata pendek namun kita antisipasi jika ada yang memiliki nama daerah yang terlalu panjang.
  4. Kolom tanggal_lahir menggunakan format date (YYYY-mm-dd)
  5. Kolom input_date menggunakan format DATETIME (YYYY-mm-dd hh:ii)

Dalam project yang sudah kita buat pada tutorial sebelumnya, silahkan buat sebuah folder dengan nama "_Config" yang di dalamnya kita buat juga sebuah file PHP dengan nama "Connection.php". Jika sudah ketik script berikut in:

  1. <?php
  2. //Ini adalah halaman untuk melakukan konfigurasi database
  3. $servername = "localhost";
  4. $username = "root";
  5. $password = "";
  6. $db = "belajar_php";
  7. // Mulai Koneksi
  8. $Conn = new mysqli($servername, $username, $password, $db);
  9. // Check Koneksi
  10. if ($Conn->connect_error) {
  11. die("Connection failed: " . $Conn->connect_error);
  12. }
  13. ?>

Pada file index.php yang ada pada directory utama project, silahkan lakukan perubahan pada beberapa baris sehingga menjadi seperti berikut:

Penjelasan: Pada baris ke 54 sampai dengan 62 merupakan script jQuery yang digunakan untuk menentukan event ketika pengguna memilih menu dengan nilai "id" berupa "FormTambahPasien" maka akan diarahkan pada halaman "_Page/Pasien/FormTambahPasien.php".

Dari Source Code diatas kita buat sebuah folder dengan nama "pasien" kemudian didalamnya kita buat sebuah file dengan nama "FormTambahPasien.php". Jika sudah ketik script berikut ini:

 

Buat sebuah file dengan nama ProsesTambahPasien.php pada folder "_Page/Pasien/" untuk proses validasi dan menyimpan datanya pada database kemudian ketik script berikut ini:

Penjelasan :

  1. Pada baris 9 sampai dengan 20 merupakan perintah validasi, dimana sistem akan menampilkan notifikasi ketika form tidak diisi.
  2. Pada baris 21 sampai 26 digunakan untuk antisipasi jika pengguna tidak memiliki nomor kontak.
  3. Baris 31 sampai 34 berfungsi untuk membuat variabel yang menghitung jumlah karakter masing-masing data yang sudah ditangkap.
  4. Baris 35 sampai 57 berfungsi untuk melakukan validasi jumlah karakter masing-masing tipe data.
  5. Baris 52 berfungsi untuk validasi bahwa form nama tidak boleh mengandung angka.
  6. Baris 55 berfungsi untuk validasi tempat lahir tidak boleh mengandung angka.
  7. Baris 59 berfungsi untuk validasi kontak hanya boleh angka
  8. Baris 63 digunakan untuk validasi tanggal lahir hanya boleh angka dan tanda strip.
  9. Baris 67 sampai 82 digunakan untuk proses input data ke database.

Sekarang coba jalankan programnya, jika sudah benar maka akan seperti pada vidio demo berikut ini:


3. Penutup

Beberapa fungsi yang digunakan pada saat proses input data, sebelumnya dengan menggunakan PHP kita bisa melakukan berbagai cara validasi. Fungsinya agar pada saat proses input, kita bisa mengetahui penyebab kesalahannya. Selain itu dari segi keamanan akan jauh lebih efektif karena kita membatasi karakter macam apa yang diperbolehkan untuk diproses. Informasi lebih lanjut, apabila ada kesalahan pada langkah-langkah di atas, atau kurang paham dengan penjelasan di atas, silahkan tinggalkan komentar.

Tipe Data DBMS MySql

Database Management System (DBMS) merupakan sebuah program (perangkat lunak) yang dirancang, dikembangkan dan digunakan dengan tujuan melakukan organisir, mengelola, menjaga integritas dan kemanan didalam basis data (Database). Dengan adanya DBMS tersebut maka pengguna dapat melakukan berbagai hal terkait objek data tersebut. Lebih kompleks dengan aplikasi yang dikembangkan tersebut memungkinkan pengguna melakukan berbagai rekayasa secara bebas untuk tujuannya masing-masing. Saat ini banyak sekali DBMS yang telah dikembangkan dan digunakan juga dengan kekurangan dan kelebihannya masing-masing. Beberapa contoh misalnya DBMS yang tergolong dalam relasional DBMS (RDBMS) seperti MySql, PostgreSQL, Oracle Database, Microsoft SQL Server dan lainnya. Kemudian ada lagi yang tergolong dalam objek-rasional DBMS seperti Oracle Database, PostgreSQL dan lainnya. Jenis-jenis DBMS ini masih banyak, sesuai karakter dan tujuan penggunaannya, dilain kesempatan kita akan bahas satu-persatu.

Pada kesempatan kali ini kita akan membahas mengenai salah satu DBMS yang paling sering digunakan dalam aplikasi berbasis web yaitu MySql. Adapun latar belakang kenapa mayoritas pengembang aplikasi merekomendasikan menggunakan DBMS ini. MySql memiliki kompleksitas yang cukup untuk memenuhi berbagai kebutuhan aplikasi yang dikembangkan, selain itu dari sisi ketahanan dan sekala dapat digunakan secara luas, berkelanjutan dan dinamis. Dengan menggunakan MySql kita bisa menampung banyak data dalam jangka waktu lama, mudah untuk diubah, dimanipulasi dan dianalisis secara dinamis. Dari kelebihan itu tidak dipungkiri bahwa MySql masih memiliki beberapa kekurangan tentunya.

Dalam pemahaman dasar mengenai MySql kita perlu untuk memahami tipe-tipe data yang berlaku pada DBMS tersebut. Tipe-tipe data ini memiliki karakter dan kegunaannya masing-masing sehingga akan mengoptimalkan pengembangan aplikasi. Lebih jauh, dengan memahami tipe-tipe data yang ada, kita akan lebih mudah dalam adaptability antara tujuan program dengan implementasinya nanti. Lebih jelas mengenai tipe-tipe data tersebut dapat dilihat pada tabel berikut ini:

Tipe Keterangan Ukuran
A. Tipe Data Numeric
Type data numerik (Angka) dapat kita gunakan untuk variabel konstanta yang menyimpan nilai berupa angka. berikut ini adalah kelompok tipe data numerik.
Integer (INT) Bilangan Bulat Positif dan Negatif 0 s/d 4294967295 4 byte
Desimal (Dec) Bilangan Pecahan Positif dan Negatif Tergantung nilai bilangan penyerta
Tinyint (TINYINT) Bilangan Bulat Kecil Positif dan Negatif -128 s/d 127 1 byte
Smallint (SMALLINT) Bilangan Bulat Kecil Positif dan Negatif -32768 s/d 32767 2 byte
Mediumint (MEDIUMINT) Bilangan Bulat Sedang Positif dan Negatif -8388608 s/d 838860 3 byte
Bigint (BIGINT) Bilangan Bulat Besar Positif dan Negatif - 922337203685477808 s/d 9223372036854775807 8 byte
Float (FLOAT) Bilangan Pecahan Presisi Tunggal 4 byte
Double (DOUBLE) Bilangan Pecahan Presisi Ganda 8 byte
Real (REAL) Digunakan untuk menyimpan nilai bilangan real (floating-point) 4 byte
Bit (BIT) Digunakan untuk menyimpan nilai bit, baik 0 atau 1 1 bit
Bolean (BOLEN) digunakan sebagai sinonim untuk tipe data TINYINT(1) 1 byte
Serial (SERIAL) Menyimpan bilangan bulat yang secara otomatis diinkrementasi setiap kali baris baru ditambahkan ke dalam tabel 4-8 byte
B. Tipe Data String
Tipe data string sering disebut juga tipe text. Tipe data string adalah tipe data yang digunakan untuk merepresentasikan teks atau urutan karakter
Character (CHAR) Data yang menyatakan deretan karakter (string) yang lebarnya tetap yaitu maksimum adalah 255 karakter Sesuai jumlah karakter (1byte/karakter)
Varchar (VARCHAR) Data string dengan jumlah karakter maksimal 255 karakter Sesuai jumlah karakter (1byte/karakter)
TINYTEXT Data string dengan jumlah karakter maksimal 255 karakter 255 byte
Text (TEXT) Data string dengan jumlah karakter maksimal 6.5535 karakter 65.535 byte (64 KB)
Mediumtext (MEDIUMTEXT) Data string dengan jumlah karakter maksimal 16.777.215 karakter 16 mb
Longtext (LONGTEXT) Data string dengan jumlah karakter maksimal 4.294.967.295 karakter 4.294.967.295 (4 GB)
C. Tipe Data Blob
Tipe data BLOB (Binary Large Object) adalah tipe data yang digunakan untuk menyimpan data biner, seperti gambar, audio, video, atau dokumen biner lainnya.
Tinyblob (TINYBLOB) Tipe data ini dirancang untuk menyimpan data biner dengan panjang yang sangat kecil, dan batasan maksimum ukuran penyimpanan biasanya adalah 255 byte Maksimal 255 byte
Blob (BLOB) Tipe data yang digunakan untuk menyimpan data biner. Maksimum 64 KB
Mediumblob (MEDIUMBLOB) Tipe data yang digunakan untuk menyimpan data biner. 16 MB
Longblob (LONGBLOB) ipe data yang digunakan untuk menyimpan data biner. 4 GB
D. Tipe Data Date & Time
Tipe data Date and Time digunakan untuk menyimpan informasi tentang tanggal dan waktu dalam sistem manajemen basis data (DBMS).
DATETIME CCYY-MM-DD hh:mm:ss
TIMESTAMP YY-MM-DD hh:mm:ss
CCYYMMDDhhmmss
YYMMDDhhmmss
CCYYMMDDhhmmss
YYMMDDhhmmss

DATE CCYY-MM-DD
YY-MM-DD
CCYYMMDD
YYMMDD
CCYYMMDD
YYMMDD

TIME hh:mm:s
hhmmss
hhmmss

YEAR CCYY
YY
CCYY
YY

Dari berbagai jenis tipe data di atas sebetulnya ada lagi tipe data lainnya yang tidak dibahas dalam postingan kali ini. Namun jangan khawatir, dilain kesempatan kita bahas mengenai tipe data lainnya setelah kita pahami bagian dasarnya terlebih dulu.