Tampilkan postingan dengan label Operator. Tampilkan semua postingan
Tampilkan postingan dengan label Operator. Tampilkan semua postingan

Reset Auto Increment Pada MySQL dan PostgreSQL

Jika dalam suatu kondisi Anda perlu reset, atau menentukan sendiri nilai auto increment yang ada pada column auto increment database MySQL dan PostgreSQL, makadapat menggunakan cara berikut ini.

Untuk MySQL
mysql> ALTER TABLE t_table AUTO_INCREMENT = x;
x : nilai auto increment selanjutnya.
Jika Anda memiliki data didalam table dan mengeksekusi query diatas dengan memberikan nilai x lebih kecil dari id terakhir di table, maka nilai x akan tetap di set 1 angka setelah angka terakhir id data pada database Anda.

Untuk PostgreSQL
Untuk PostgreSQL memiliki cara sendiri. Anda mungkin perlu tahu dulu nama seq nya sebelum bisa melakukan reset.
Jika Anda menggunakan type data SERIAL untuk id auto increment, maka untuk mendapatkan nama seq nya bisa menggunakan query berikut :
test=# SELECT pg_get_serial_sequence('t_table', 'id');
t_table : adalah nama table
id : adalah column yang diberi type data SERIAL.

Setelah mendapatkan nama seq nya, selanjutnya bisa di reset dengan menggunakan fungsi SETVAL
test=# SELECT SETVAL((SELECT pg_get_serial_sequence('t_table', 'id')), 1, false);
Atau cara yang lebih mudah lagi adalah dengan menggunakan fungsi RESTART IDENTITY jika Anda ingin mereset nilai auto increment berbarengan dengan TRUNCATE
test=# TRUNCATE t_table RESTART IDENTITY CASCADE

Membuat View pada PostgreSQL atau MySQL

Sekarang syuaa akan memberikan contoh kecil cara membuat view pada query PostgreSQL atau MySQL, pada dasarnya kedua database ini memiliki bentuk query yang sama.

View digunakan untuk mempersimple penggunaan query yang panjang jika query yang panjang tersebut akan digunakan berulang-ulang kali. Hal ini tentu akan mempermudah programmer untuk melakukan query yang panjang tersebut dan meminimalisir kesalahan.

Sebagai contoh, saya memiliki table seperti ini :

1. t_murit
mysql> create table t_murit ( mid integer not null auto_increment, mname varchar(150), primary key ( mid ));

mysql> desc t_murit;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| mid   | int(11)      | NO   | PRI | NULL    | auto_increment |
| mname | varchar(150) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2. t_kelas
mysql> create table t_kelas ( id integer not null auto_increment, mid integer, fval varchar(10), primary key ( id ));

mysql> desc t_kelas;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| mid   | int(11)     | YES  |     | NULL    |                |
| fval  | varchar(10) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3. t_jenis_kelamin
mysql> create table t_jenis_kelamin ( id integer not null auto_increment, mid integer, fval integer, primary key ( id ));

mysql> desc t_jenis_kelamin;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    | auto_increment |
| mid   | int(11) | YES  |     | NULL    |                |
| fval  | int(11) | YES  |     | NULL    |                |
+-------+---------+------+-----+---------+----------------+
4. t_point
mysql> create table t_nilai ( id integer not null auto_increment, mid integer, fval integer, primary key ( id ));

mysql> desc t_nilai;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    | auto_increment |
| mid   | int(11) | YES  |     | NULL    |                |
| fval  | int(11) | YES  |     | NULL    |                |
+-------+---------+------+-----+---------+----------------+
Selanjutnya, silahkan eksekusi query berikut untuk menambahkan value pada masing-masing tabel.
insert into t_murit (mname) values ('Syuaa'), ('Gadis'), ('Agus'), ('Indah'), ('Sobari');
insert into t_kelas (mid,fval) values(1,'1.5'), (2,'1.6'), (3,'1.1'), (4,'1.2'), (5,'1.1');
insert into t_jenis_kelamin (mid,fval) values(1,1), (2,2), (3,1), (4,2), (5,1);
insert into t_nilai (mid,fval) values(1,10), (2,9), (3,6), (4,8), (5,9);
Sehingga isi dalam tabel kita nanti jadi seperti ini :
mysql> select * from t_murit;
+-----+--------+
| mid | mname  |
+-----+--------+
|   1 | Syuaa  |
|   2 | Gadis  |
|   3 | Agus   |
|   4 | Indah  |
|   5 | Sobari |
+-----+--------+

mysql> select * from t_kelas;
+----+------+------+
| id | mid  | fval |
+----+------+------+
|  1 |    1 | 1.5  |
|  2 |    2 | 1.6  |
|  3 |    3 | 1.1  |
|  4 |    4 | 1.2  |
|  5 |    5 | 1.1  |
+----+------+------+

mysql> select * from t_jenis_kelamin;
+----+------+------+
| id | mid  | fval |
+----+------+------+
|  1 |    1 |    1 |
|  2 |    2 |    2 |
|  3 |    3 |    1 |
|  4 |    4 |    2 |
|  5 |    5 |    1 |
+----+------+------+

mysql> select * from t_nilai;
+----+------+------+
| id | mid  | fval |
+----+------+------+
|  1 |    1 |   10 |
|  2 |    2 |    9 |
|  3 |    3 |    6 |
|  4 |    4 |    8 |
|  5 |    5 |    9 |
+----+------+------+
Secara umumnya, ketika kita ingin mengambil seluruh siswa beserta datanya, maka setidaknya kita harus mengekseskusi query sepanjang ini :
mysql> select t_murit.mid as mid, t_murit.mname as mname, t_kelas.fval as kelas, t_jenis_kelamin.fval as jenis_kelamin, t_nilai.fval as nilai from t_murit, t_kelas, t_jenis_kelamin, t_nilai where t_murit.mid = t_kelas.mid and t_murit.mid = t_jenis_kelamin.mid and t_murit.mid = t_nilai.mid;
+-----+--------+-------+---------------+-------+
| mid | mname  | kelas | jenis_kelamin | nilai |
+-----+--------+-------+---------------+-------+
|   1 | Syuaa  | 1.5   |             1 |    10 |
|   2 | Gadis  | 1.6   |             2 |     9 |
|   3 | Agus   | 1.1   |             1 |     6 |
|   4 | Indah  | 1.2   |             2 |     8 |
|   5 | Sobari | 1.1   |             1 |     9 |
+-----+--------+-------+---------------+-------+
Dan tentu saja bisa terjadi kesalahan dalam pengetikan jika programmer harus mengetikkan query sepanjang itu setiap kali membutuhkan data siswa.

Untuk mengantisipasi terjadinya kesalahan dalam pengetikan berulang-ulang untuk query tersebut, maka view adalah solusi yang tepat untuk masalah ini.

Sekarang kita akan membuat sebuah view yang mewakili query panjang tersebut. Silahkan eksekusi query berikut :
mysql> create view v_murit as select t_murit.mid as mid, t_murit.mname as mname, t_kelas.fval as kelas, t_jenis_kelamin.fval as jenis_kelamin, t_nilai.fval as nilai from t_murit, t_kelas, t_jenis_kelamin, t_nilai where t_murit.mid = t_kelas.mid and t_murit.mid = t_jenis_kelamin.mid and t_murit.mid = t_nilai.mid;
Dengan bermodalkan view ini, akan cukup mudah untuk melakukan pencarian data siswa keseluruhan atau dengan kriteria tertentu.

Selanjutnya, untuk menampilkan data siswa secara keseluruhan, kita bisa menggunakan query berikut :
mysql> select * from v_murit;
+-----+--------+-------+---------------+-------+
| mid | mname  | kelas | jenis_kelamin | nilai |
+-----+--------+-------+---------------+-------+
|   1 | Syuaa  | 1.5   |             1 |    10 |
|   2 | Gadis  | 1.6   |             2 |     9 |
|   3 | Agus   | 1.1   |             1 |     6 |
|   4 | Indah  | 1.2   |             2 |     8 |
|   5 | Sobari | 1.1   |             1 |     9 |
+-----+--------+-------+---------------+-------+
Untuk menampilkan data siswa dengan id 4, bisa dengan menggunakan query berikut :
mysql> select * from v_murit where mid = 4;
+-----+-------+-------+---------------+-------+
| mid | mname | kelas | jenis_kelamin | nilai |
+-----+-------+-------+---------------+-------+
|   4 | Indah | 1.2   |             2 |     8 |
+-----+-------+-------+---------------+-------+

Penggunaan Fungsi Timer Pada Javascript

Pada kesempatan kali ini Syuaa akan memberikan tips trik penggunaan fungsi timer pada JavaScript.

Ada dua fungsi Timer pada JavaScript yang umum digunakan saat ini, yaitu setTimeout(), dan setInterval().

1. Timer setTimeout

Fungsi ini akan menunda eksekusi suatu fungsi dalam waktu yang telah ditentukan, contoh penggunaanya :

function TimeOut() {
	setTimeout(function() { alert("Yay,,, i get you"); }, 5000);
}

Klik dan tunggu 5 detik

Jika dalam suatu kondisi Anda ingin menghentikan timer yang sedang berjalan untuk fungsi setTimeout, maka bisa dilakukan dengan cara sebagai berikut :

_to = null;
function TimeOut() {
	_to = setTimeout(function() { alert("Yay,,, i get you"); }, 5000);
}
function clearTimeOut() {
	clearTimeout(_to);
}

Klik dan tunggu 5 detik
Klik untuk mematikan timer, (cancel alert)

2. Timer setInterval

Fungsi setInterval merupakan fungsi timer javascript yang akan selalu melakukan pengulangan sampai fungsi ini dimatikan, untuk setiap kurun waktu yang ditentukan. Contoh penggunaan :

_si = null;
_gn = 0;
function Interval() {
	_si = setInterval(function() {
		var btn = document.getElementById("buttonIn");
		_gn++
		btn.value = "Interval ("+_gn+")";
	}, 1000);
}
function clearInter() {
	clearInterval(_si);
}

Klik dan tunggu setiap 1 detik
Klik untuk menghentikan timer



Fungsi Pengganti If Else pada PHP

Secara standar, fungsi If Else dapat dilihat sebagai berikut :
if(condition) {
   "condition if true";
}else{
   "condition if false";
}

Untuk menggantinya, bisa menggunakan operator ? dan : sehingga code diatas bisa dipersingkat menjadi seperti ini:
condition ? "condition if true" : "condition if false";

Untuk penggunaannya bisa dilihat pada contoh dibawah :
$x = "Syuaa";
if($x == "Syuaa") {
   echo "Selamat datang Syuaa"; 
}else{
   echo "Maaf, Anda tidak di kenal"; 
}

Setelah di konversi, maka hasilnya seperti ini :
$x = "Syuaa";
echo $x=="Syuaa" ? "Selamat datang Syuaa" : "Maaf, Anda tidak dikenal";