Thursday, June 30, 2011

SQL Join Revealed -Part 1-

Sedikit catatan SQL Join karena sudah lama gak pegang SQL, biar gak lupa aja.
Ada 2 jenis Join dalam SQL:
1. Inner Join
2. Outer Join

Join / inner join itu kalo kita belajar diagram venn analoginya seperti intersect.
Outer join analoginya seperti Union / gabungan.
Dibedakan menjadi 3 macam :
Biar mudah, saya masukkan juga contoh output dan sample tablenya :)

 


- Left Join
Output semua isi table kiri yang dijoin, sekalipun tidak ada key/PK yang sama/cocok di table kanannya.


- Right Join
Output isi table kanan yang dijoin, sekalipun tidak ada key/PK yang sama/cocok di table kirinya.


- Full Join
Menggabungkan/output isi kedua table sekalipun tidak ada key/PK yang sama/cocok).


Setiap relasi/hubungan antar key yang di join tidak mempunyai pasangannya, maka akan di replace dengan NULL.

Belakangan ini saya juga menemukan ada 2 jenis inner join yang baru bagi saya.
Yaitu:
- Natural Join
Menggabungkan/output isi kedua table berdasarkan nama kolom yang sama tanpa suatu kondisi(qualifier).
Menurut para pengamat, natural join sangat disarankan tidak digunakan.
 

- Cross Join
Menggabungkan/output isi kedua table secara permutasi (Cartesian Products)
Dengan kata lain, cross join akan menghubungkan tiap-tiap kolom table A dengan masing-masing kolom di table B tanpa memperhatikan PK.



Contoh sintaks:
Ket: Khusus untuk inner join bisa di tuliskan secara implisit.
Inner Join
SELECT *
  FROM employee INNER JOIN department
    ON employee.DepartmentID = department.DepartmentID;
Secara emplisit:
SELECT *
  FROM employee, department
    WHERE employee.DepartmentID = department.DepartmentID;
 
Natural Join
SELECT *
  FROM employee NATURAL JOIN department;

Cross Join
SELECT *
  FROM employee CROSS JOIN department;

Ket: sintaks "Outer" sifatnya optional. Lebih disarankan tanpa kata "Outer".

Right Outer Join
SELECT *
  FROM employee RIGHT OUTER JOIN department
    ON employee.DepartmentID = department.DepartmentID;

Left Outer Join
SELECT *
  FROM employee LEFT OUTER JOIN department
    ON employee.DepartmentID = department.DepartmentID;

Full Outer Join
SELECT *
  FROM employee FULL OUTER JOIN department
    ON employee.DepartmentID = department.DepartmentID;

Dalam oracle, terdapat alternatif penulisan left join secara singkat, sbb:
Left Join
SELECT *
  FROM employee, department
    WHERE employee.DepartmentID = department.DepartmentID (+);

Namun sangat tidak disarankan karena tidak menganut standard ANSI. Dan dapat menjadi ambigu.
Dalam Sysbase juga terdapat alternatif penulisan, yaitu dengan menambahkan "*"
SELECT *
  FROM employee, department
    WHERE employee.DepartmentID *= department.DepartmentID ;

Setiap database (Oracle, MSSQL, MySql, PostgreSQL, DB2, dll) memiliki implementasi INNER dan OUTER JOIN yang berbeda-beda. Ada yang tidak memiliki natural join, ada juga yang memiliki. Ada yang memiliki penyingkatan penulisan left dan right join, ada yang tidak.

Kalo ada yang salah, mohon beri comment untuk revisinya ya :D

Tuesday, June 21, 2011

Cek Warna Urine Anda Sekarang

Ternyata warna urine kita bisa dijadikan alat memprediksi kondisi kesehatan kita pada saat itu, ini juga bisa dijadikan acuan bagaimana tindakan yang harus kita ambil setelahnya.
Kenali warna urine ini dan prediksi kesehatannya :
Kuning
"Urine sehat itu berwarna kuning pucat atau kuning gelap", kata konsultan ahli urologi Tim Terry. Hal ini tergantung pada tingkat hidrasi, sehingga jika urine Anda tetap berada di koridor warna kuning, Anda bisa bernapas lega.
Hijau
"Beberapa obat antiseptik dan anestesi memberikan warna semburat hijau pada urine," kata Terry. Ini karena biru metilen, pewarna yang kadang-kadang perlu diperjuangkan ginjal kita. Namun bila urine Anda berwarna hijau tidak usah terlalu khawatir.

Orange
"Ini adalah tanda disfungsi hati," jelas Terry. Jika urine Anda berwarna seperti ini biasanya dibarengi dengan tinja yang berwarna putih, bisa jadi ini karena ikterus obstruktif. Jadi segera ambil tindakan bila urine Anda berwarna orange.
Cokelat
Urine cokelat menampakkan ada masalah ginjal. "Ini bisa menjadi tanda penyakit ginjal yang serius, bahkan fistula," kata Terry. Keadaan ini biasanya karena ada kebocoran usus ke kandung kemih Anda. Segera lari ke dokter Anda untuk kasus ini.

Merah
Ini benar-benar buruk. Merah berarti ada darah dalam urine Anda, dapat mengartikan pendarahan atau kanker. "Pada orang yang berusia lebih dari 40 tahun hipotesis pertama adalah kanker kandung kemih," kata Terry. Segera hubungi dokter dan lakukan deteksi dengan cepat.
Sumber kutipan: Inilah.com, TribuneNews.com

Thursday, June 16, 2011

BRRip dan BDRip

Berhubung lagi sering download-download film hasil encode (walaupun sepertinya illegal, namun bagi saya itu tidak illegal selama tidak diperjualbelikan, karena menganut prinsip "sharing" ) :)

Penasaran dengan perbedaan antara BRRip dan BDRip. Karena untuk jenis "rip" yang satu ini sama-sama bersumber dari BluRay atau resolusi 720p / 1080p.
Berikut perbedaannya dalam bahasa Inggris :

BRRip = An XviD encode from a Blu-Ray release (i.e. a 1080p *.mkv file).

BDRip = An XviD encode directly from a source Blu-Ray disk.

Nah, secara garis besar tidak ada perbedaan antara 2 jenis "Rip" ini. Namun ada sedikit pertimbangan khusus yang dapat membuat keduanya berbeda.
BRRip diambil langsung dari sumber Blu-Ray disk yang sudah di Rip (bukan sumber langsung dari Blu Ray nya), jadi jika sumber RIP yang diambil memiliki error atau AR (aspect ratio) yang buruk, maka hasilnya BRRip juga akan buruk.
Berbeda dengan BDRip, karena rip langsung dari sumbernya (tanpa orang "tengah"), masalah-masalah seperti AR tidak akan ada.

Namun walaupun begitu, kualitas rip baik BRRip maupun BDRip sangat tergantung orang/grup yang bertanggung jawab melakukan rip (encoder) -nya. Hasil akhirnya lebih ditentukan oleh keahlian mereka.

Tuesday, June 7, 2011

7 Deadly Sins = 7 Princes of Hell

Sewaktu menonton film anime Full Metal Alchemist (2002) dan dilanjutkan dengan Remake Full Metal Alchemist Brotherhood (2008 - 2010) yang sesuai dengan jalan cerita komiknya, ditemukan ada 7 villians (penjahat) yang menjadi pemeran antagonis dalam cerita ini.
7 penjahat tersebut memiliki karakter masing-masing yang unik, dimana diatas 7 penjahat tersebut ada "bapa"-nya.
Singkat cerita, bapa ini melahirkan / melepaskan masing-masing karakter yang dimilikinya ke 7 anaknya, dalam hal ini 7 penjahat tersebut.

Masing - masing adalah :
1. Pride
2. Wrath
3. Greed
4. Lust
5. Envy
6. Gluttony
7. Sloth

Pernah menonton pada tahun 2002, namun baru menyadari sekitar tahun 2008 bahwa 7 karakter ini sebenarnya adalah inspirasi dari Seven Princes of Hell dalam tradisi Kristen jaman klasik.

7 Pangeran ini juga dianalogikan sebagai 7 dosa dasar / dosa mematikan yang dimiliki setiap manusia. Masing - masing pangeran neraka tersebut mewakili dosa yang ada pada diri manusia.

Pangeran Iblis ini secara sejarah dikemukakan oleh Peter Binsfield, Jesuit, ditulis pada tahun 1589, yaitu sebagai berikut:
Jika dalam bahasa aslinya dan diterjemahkan ke Inggris adalah sebagai berikut:
  1. luxuria (lechery/lust)
  2. gula (gluttony)
  3. avaritia (avarice/greed)
  4. acedia (acedia/discouragement)
  5. ira (wrath)
  6. invidia (envy)
  7. superbia (pride)

    Mungkin bagi anda ada yang bingung apa perbedaan antara Greedy dan Gluttony?
    Keduanya memiliki arti "serakah", "rakus", "tamak", dan sejenisnya.
    Greedy lebih ke arah serakah dan tamak akan harta, uang, kekayaan, kekuasaan dimana
    Gluttony lebih ke arah rakus terhadap makanan, atau segala sesuatu yang mengenyangkan/memuaskan perut.

    Maaf kalo ada salah, cuman mao sharing yang saya tau :p