Jumat, 18 Agustus 2017

Membuat PIVOT tabel dengan MySQL

Berasa bandung bondowoso! Saking penasarannya saya membuat tabel pivot di mysql, akhirnya semalaman saya kerjakan tantangan ini. Jadi ceritanya, di suatu malam yang dingin seorang teman datang kepada saya untuk membuat suatu revisi program. Cuma ditambah bikin laporan sih, but,  ketika saya lihat programnya ternyata ada yang beda. Lalu usut menyusut saya cari asal usul datanya hingga terlihat demikian ini :


Banyak juga ya datanya, hehe, tapi pada intinya. Saya diminta untuk mengeluarkan data pokoknya saja seperti ini :

Jadi, untuk mendapatkan format ini cukup panjang perjalanan saya bersama google. Yah, memang jarang utak atik query di mySQL. Mulai dari pakai group, case when, concat dan lain sebagainya, sampai saya menemukan if(MAX) dari tutorial di buysql (terima kasih Tuhan, sudah mempertemukan aku dengannya!) Jadi, seperti di gambar di atas dan ini scriptnya. Semoga bermanfaat!


SELECT  a.nik, a.nama_alternatif,
MAX(if(nama_kriteria = 'Kedisiplinan', bobot_normalisasi, NULL)) as Kedisiplinan,
MAX(if(nama_kriteria = 'Kejujuran', bobot_normalisasi, NULL)) as Kejujuran,
MAX(if(nama_kriteria = 'Inisiatif', bobot_normalisasi, NULL)) as Inisiatif,
MAX(if(nama_kriteria = 'Komunikasi', bobot_normalisasi, NULL)) as Komunikasi,
MAX(if(nama_kriteria = 'Kerjasama', bobot_normalisasi, NULL)) as Kerjasama,
hasil_alternatif, now() as tgl_simpan
FROM alternatif a, kriteria b, rangking c where a.id_alternatif=c.id_alternatif and b.id_kriteria=c.id_kriteria group by a.id_alternatif

Selasa, 25 Juli 2017

Mengubah format Tanggal di query database

SQL Server merupakan database management server yang powerful, banyak hal yang memudahkan kita untuk mengolah data. Nah, sekarang kita akan belajar untuk memformat tanggal untuk menampilkan query database di sql server


Syntax = CONVERT(data_type(length),expression,style)

CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),10)
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),6)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)

Hasil :

Nov 04 2014 11:45 PM
11-04-14
11-04-2014
04 Nov 14
04 Nov 2014
04 Nov 2014 11:45:34:243

Rabu, 12 April 2017

Select data random dengan SQL

Untuk menseleksi sebuah data random dari sebuah database kita bisa menggunakan satu sintaks. Namun, ada beberapa sintaks yang berbeda untuk setiap database server. Berikut beberapa contohnya:

MySQL : SELECT kolom FROM tabel ORDER BY RAND() LIMIT 1
PostgreSQL : SELECT kolom FROM tabel ORDER BY RANDOM() LIMIT 1
Microsoft SQL Server : SELECT TOP 1 column FROM table ORDER BY NEWID()
IBM DB2 : SELECT column, RAND() as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY
Oracle : SELECT column FROM ( SELECT column FROM table ORDER BY dbms_random.value ) WHERE rownum = 1
Query di atas digunakan untuk memilih satu record secara acak dari tabel.

Link belajar

Jumat, 24 Maret 2017

Cara membuat auto increment di SQL Server

Banyaknya variasi database manager, membuat kita sebagai programmer harus menyesuaikan diri dengan banyaknya bahasa query yang banyak macamnya, namun sebenarnya sama saja. Kali ini dengan sql server kita akan membuat kolom dengan format auto increment. Auto increment merupakan kolom yang otomatis mengurutkan value secara berurutan jika kita memasukkan data.
Untuk membuat auto increment di sql server, langkah-langkah yang harus dilakukan adalah :
1. Pada kolom yang akan dibuat auto increment pilih data type : bigint
2. Pada bagian Column properties - Identity Specification pilih Yes
3. Untuk pilihan di bawahnya ada Identity Increment sebagai angka awal
Verify seed untuk menentukan jumlah nilai antara data pertama dan data yang diinput selanjutnya.



Demikian sedikit informasi dan sebagai catatan saya untuk mengoperasikan sql server

Menampilkan format Rupiah di PHP

Data yang berada di database programmer kadang berbeda dengan data yang sering dilihat manusia biasa (ciaaa).  Misalnya jika kita membuat program keuangan, dalam format database seperti sql atau yang lain format integer biasanya hanya berupa angka tanpa tanda pemisah apa apa.

untuk membuat format angka pada dokumen keuangan ada beberapa variabel yang perlu ditambahkan,

$biaya = '50000';
$angkabiaya = number_format($biaya, 2, ',', '.');
echo $angkabiaya;
echo 'Rp '.$angkabiaya;
hasil  :
50.000,00
Rp 50.000,00

penjelasan :
number_format =>  wajib dicantumkan untuk mengubah format angka
$biaya => variabel yang menampung angka
2 = jumlah angka di belakang koma
',' = pemisah angka di belakang koma
'.' = bisa diganti dengan titik

lihat detail untuk number_format di
http://php.net/manual/en/function.number-format.php