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

Explanation :

CONVERT : adalah perintah untuk mengubah karakter yang ada di dalam kurung
VARCHAR (_) : menentukan jenis variabel dan jumlah karakter yang ditampilkan 
GETDATE : perintah untuk mengambil timestamp atau waktu dan tanggal saat itu
Angka terakhir setelah GETDATE(), : adalah kode untuk menampilkan style tanggal (misal dd/mm/yy, yymmdd, dsb)  

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

Jumat, 03 Maret 2017

Mengubah format tanggal di php

Untuk mengubah format tanggal dari database yang biasanya berupa yyyy-mm-dd ke format yang kita inginkan, berikat format sebagai berikut di dokumen php anda :
$tanggal = 2017-03-03; // 3 maret 2017
$tanggaloke = date("d-m-Y",strtotime($tanggal)); //variabel peubah ke format dd-mm-yyy
$tanggalcoba = date("d-F-Y",strtotime($tanggal)); //variabel peubah ke format dd-mm-yyy
echo $tanggaloke;
echo $tanggalcoba;
?>
Maka hasilnya adalah
03-03-2017
03-Maret-2017

Menampilkan Tanggal Sekarang
$tanggalhariini = date('d-m-Y');
?>

Menampilkan tanggal, bulan, atau tahun saja :
 $tanggal =date('d');
$bulan = date('m');
$tahun = date ('y')
?>

Menampilkan 2 digit terakhir tahun sekarang :

    $tahun_sekarang = date('Y');
    $tahun = substr($tahun_sekarang, -2);

    echo "$tahun";
?>


Selamat mencoba.
lihat manual lengkapnya di http://php.net/manual/en/function.date.php

Selasa, 14 Februari 2017

Menghilangkan tanda petik di php dengan str_replace

Beberapa waktu yang lalu, saya mendapatkan sebuah masalah dalam ekseskusi SP atau Store Procedure di SQL Server. Sebuah kasus yang aneh, karena eksekusi yang lain berjalan dengan baik dan hanya terjadi pada beberapa kasus saja.
Ternyata, usut punya usut. Kasus ini terjadi karena insert SP tidak berjalan sempurna karena eror. Yang dikarenakan record yang akan dimasukkan memiliki tanda petik atas. Misalnya pada nama arab.
Nah, untuk mengatasi hal tersebut, mau tidak mau kita harus menghilangkan tanda petik yang ada pada variabel nama itu, karna bisa menjadikan eror berkepanjangan. Kita bisa mengganti tanda petik tersebut dengan spasi saja. Caranya dengan script str_replace. Str_replace di php berfungsi untuk menggantikan sebuah string dengan karakter lain yang bisa kita tentukan sendiri. Contoh :

$nama = "Ali Ma'shum";
$nama_ok = str_replace("'"," ",$nama);
echo $nama_ok;

maka hasil keluaran akan menjadi 
Ali Ma shum

Totally cure the error, dan semoga yang punya nama tidak keberatan namanya berkurang satu karakter, hehe. Asalkan nama tidak menjadi variabel unik yang menjadi primary key.
Demikian menjadi catatan kecil saya, semoga bermanfaat.

Taraaaaaam.....

Hallo ... 2017!
OMG, setahun tidak posting di blog itu rasanya lamaaaaa sekali. Maaf maafkan, jika penulis agak lebay hehe. Semenjak bekerja sebagai full time programmer, hari-hari rasanya berlalu cepat sekali. Sebenarnya ada banyak ide yang berkelebatan untuk sekedar ber-share ria atau mengungkapkan isi hati disini. Namun karna terbatasnya waktu, dan hilangnya kesempatan untuk membuka blog, hilanglah semuanya....
Starting 2017...
Meskipun sudah satu setengah bulan berlalu, tiada salahnya resolusi yang telah lama terpendam di dalam dada diungkapkan kembali ya...
Improve, improve, improve ....
Hidup memang tak selalu sejalan dengan rencana kita, tapi rencana Tuhan, iya kan?
Nah, makanya, kita harus pandai-pandai berimprovisasi dalam kehidupan. Tak hanya be better, karna terkadang menjadi lebih baik itu bukan terbaik, upsss. Kita bisa menjadi lebih baik, mungkin setelah melakukan kesalahan, atau mengalami sebuah kesusahan, that should made us think better. Namun semuanya bukan berarti penyesalan.
Random, agak random ya tulisan saya kali ini. Meskipun, sebenarnya ingin menyampaikan filosofi. Yah, pikiran saya sudah cukup random dengan kehidupan dan kode program.
Selamat menempuh tahun 2017, semoga improvisasi yang kita lakukan bisa mengantarkan kita ke arah kesuksesan, Amin...
2017, berbuat lebih banyak, lebih baik, lebih bermanfaat.
salam untuk tahun depan, sampai ketemu sebentar lagi. setelah mewujudkan mimpi di '17 ini
:)