Pages

Saturday, December 31, 2011

Cohesion (Kohesi) & Coupling (Kopling)

Cohesion dan Coupling merupakan konsep dasar dalam perancangan dan rekayasa perangkat lunak.
Membagi software/perangkat lunak menjadi modul-modul yang kecil bukan sekedar memisahkan kumpulan kode dari kumpulan kode lainnya. Tetapi memastikan bahwa modul yang dirancang menganut prinsip
"Loose Coupling, High Cohesion"

Coupling  adalah ketergantungan antar modul satu dengan modul lainnya. Bayangkan jika anda mengubah 1 modul A tapi karena modul lain memiliki ketergantungan terhadap modul A, maka efek perubahan ini mungkin saja punya impact terhadap modul lain. Karena itu loose coupling sangat penting dalam perancangan software.

Cohesion adalah keterikatan fungsi-fungsi di dalam suatu modul. Maksudnya adalah modul yang dibuat memiliki fungsi-fungsi yang serupa untuk 1 tanggung jawab. Karena itu high cohesion sangat penting dalam perancangan software.

Contoh coupling -> Terdapat 1 modul Transaksi untuk Penjualan dan Pembelian. Karena Pembelian dan Penjualan bisa dipisahkan (Pembelian adalah transaksi ke supplier, sedangkan Penjualan adalah transaksi ke Customer) adalah suatu hal yang terpisah, maka modul Transaksi dapat dibagi menjadi 2 modul terpisah yaitu modul Pembelian dan modul Penjualan. Sehingga perubahan terhadapa Penjualan tidak mempengaruhi Pembelian.

Contoh cohesion -> 1 class Lampu memiliki 1 tanggung jawab untuk Lampu saja. Fungsi-fungsi seperti turningOn, turningOff, changeColour, dll harus identik dengan tanggung jawab terhadap prilaku lampu secara umum.



Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Sunday, December 25, 2011

Mutable, Immutable, Thread Safe, Not-Thread Safe

Just notes:

Mutable adalah objek yang ketika dibuat (instantiate), dapat dirubah isinya.
Immutable adalah kebalikan dari Mutable, ketika sudah di instantiated maka objek tersebut tidak dapat dirubah isinya. Contoh paling umum adalah objek String.

Contoh pada Java, kita harus berhati-hati dalam menggunakan String karena objek ini sifatnya immutable. Pada saat anda mendeklarasikan String kata = "Saya immutable", JVM akan membuat 1 objek immutable.
Ketika anda melakukan perubahan: kata = "Saya mutable" anda sebenarnya melakukan pembuatan objek baru lagi dengan variable "kata" dan isi "Saya mutable" namun pada alokasi memori yang berbeda dari variable sebelumnya. Jika terlalu banyak operasi seperti itu, dapat mempengaruhi performance.



Jika anda akan melakukan banyak perubahan atau penambahan kalimat pada String objek, biasakan menggunakan class StringBuilder atau StringBuffer, lalu pada akhir manipulasi tersebut ubah menjadi String.

Perbedaan StringBuilder dan StringBuffer hanya pada Thread Safe (String Buffer) dan Not-Thread Safe (String Builder).

Thread Safe adalah konsep yang menjelaskan jika terdapat 1 resource yang digunakan bersama pada satu waktu (shared resource) tidak memberikan hasil yang berbeda / tidak sinkron. Thread Safe dapat diartikan dengan synchronization. Sehingga terdapat aksi wait() terhadap resource yang dipegang oleh banyak thread.

Not-Thread Safe adalah kebalikan dari Thread Safe, jika ada 2 thread yang menggunakan 1 resource (shared resource) maka hasil/value yang diberikan bisa berbeda/tidak sinkron, tergantung siapa yang lebih dahulu mememegang resource tsb (hold / lock the resource).

Contoh kasus seperti ini:
Misal ada Objek X, resource A, resource B, perintah 1-2 pada Objek X.

1. Objek X di akses oleh dua thread A dan B
2. Objek X dipegang oleh A, melakukan 1 perintah terhadapa objek X, ketika selesai nilai Objek X berubah.
3. Objek X kemudian diakses oleh B setelah setelah perintah 1 diekseskusi A, objek X nilainya akan berubah setelah dieksekusi oleh B (perintah 1 diekseskusi oleh B).
4. Karena thread A agak lama, maka B tetap mengakses objek X dan mengeksekusi perintah 2 terhadap objek X, nilai objek X berubah. 
5. Objek X kemudian diakses kembali oleh thread A untuk mengeksekusi perintah 2, value apa yang diperoleh oleh A pada saat diakses kali ini?

- Jawaban tergantung pada Thread Safe dan Not Thread Safe.
Karena alokasi objek X terdapat pada alamat memori yang sama, maka pada langkah 5 nilai sebenarnya adalah: objek X setelah diekseskusi oleh B.
Jika Thread Safe, maka A akan membaca nilai objek X dimana dia terakhir diubah oleh B.
Jika, Not Thread Safe maka nilai objek X yang dibaca adalah nilai objek X yang terakhir diubah oleh A.

Semoga penjelasan ini bisa dimengerti.
Sebenarnya lebih enak pakai gambar :D

Jika ada salah, mohon koreksinya :) Maksud hati hanya mao sharing yang saya tau kok :D

Saturday, December 10, 2011

How Select Statement SQL Works

Berikut adalah cara kerja SELECT statement pada Query SQL (setidaknya secara teori):
  1. Dimulai dari FROM clause dan membuat sebuah table dari semua join, union, intersection dan apapun itu pada FROM clause. Pada momen ini diijinkan untuk membuat alias pada table ( AS
    ) yang akan digunakan untuk query statement berikutnya.

  2. Menuju ke WHERE clause dan membuang semua row/record yang tidak masuk kriteria; selalu menolak suatu kondisi yang unknown dan false. WHERE clause berkaitan dengan proses kerja dari FROM clause.

  3. Menuju ke GROUP BY clause (jika ada), melakukan grouping dan mengurangi tiap group yang ada menjadi single row, me-replace working table yang ada dengan grup table yang didefinisikan. Row/record yang akan di grouping harus memenuhi karakteristik: (1) kolom table (2) Perhitungan terhadap grouping tsb (cth, aggregate functions) (3) function atau (4) suatu ekspresi yang dibuat dari no 1, 2 dan 3.

  4. Menuju ke HAVING clause (jika ada) dan menerapkannya terhadap grouping table yang sudah terbentuk. Jika tidak ada, maka dianggap keseluruhan table sebagai satu grup.

  5. Menuju ke SELECT clause dan mengkonstruksi/menggabungkan ekspresi yang terdapat di SELECT clause. Ini berarti semua scalar subqueries, function calls dan expression yang terdapat pada SELECT dijalankan ketika semua clause selesai dieksekusi. "AS" operator pada SELECT statement yang berfungsi sebagai pemberi nama/alias juga dieksekusi sebagai satu kesatuan, karena itu ia tidak dapat digunakan pada WHERE clause ataupun SELECT list yang lain.

  6. Untuk nested query atau query rangkap mengikuti aturan umum yang terdapat pada bahasa pemograman seperti C, VB, Java, dll. Yaitu cakupan/scopes pada referensi kolom atau table yang digunakan. Contohnya: table atau kolom pada nested query hanya dikenal dari nested query yang dicakupnya, namun ia bisa menggunakan reference table atau kolom diluarnya dimana nested query itu digunakan.
Ex: Select Id, name, category, (Select name from Supplier As sup Where prodid.sup = id.Prod) as SupplierName
From Products prod

    Note: SELECT tidak dapat memiliki lebih banyak kolom daripada GROUP BY, tetapi dapat memiliki lebih sedikit kolom dibanding GROUP BY.

    Jika ada salah, mohon koreksinya :) Maksud hati hanya mao sharing yang saya tau kok :D

Saturday, December 3, 2011

Calendar dan Date (Part 1)

Tanggal merupakan hal sangat penting dalam aplikasi-aplikasi bisnis. Java menyediakan Calendar class sebagai utilitas untuk memanipulasi tanggal. Date class telah ditinggalkan oleh Java karena banyak mengandung bug, walaupun begitu Calendar class juga memiliki beberapa bug namun nampaknya sudah diperbaiki pada Java 7.

Saya masih sangat lemah dalam manipulasi tanggal, karena itu saya mencoba untuk merangkum beberapa snippet code yang mungkin membantu mengingat memory saya (walaupun dapat dilakukan dengan googling dan search ke oracle java docs)

Hirarki Class :
java.lang.Object
   java.util.Calendar

java.lang.Object
  java.text.Format
     java.text.DateFormat
         java.text.SimpleDateFormat 


Menampilkan tanggal hari ini:


public static void main (String [] args) {
    //menginisialisasi calendar dan mendapatkan tanggal dan waktu berdasarkan default locale dan timezone.
    Calendar now = Calendar.getInstance();
    // return Date object dari Calendar yang di instantiate, ini berguna untuk manipulasi ke String
    Date date = now.getTime();

    // dahulu anda dapat menginisialisasi seperti ini, namun tidak disarankan karena Date Class di Java sudah ditinggalkan, sebagai gantinya menggunakan Calendar.
    // date = date.now(); 

   // melakukan inisialisasi dan memberi date pattern, hanya date pattern yang didefinisikan yang akan dikenal oleh SimpleDateFormat.

   DateFormat df= new SimpleDateFormat("dd-mmm-yyyy");
    // df.format(date) akan me-return StringBuffer, karena itu harus diubah menjadi String

   String datestring = df.format(date).toString().toUpper();
   System.out.println (datestring);

   date = df.parse("15-Feb-2012");  // return date object
   System.out.println (df.format(date).toString() );


 }

Akan show (tanggal hari ini) contohnya : 11-NOV-2011 dan 15-Feb-2012

Keterangan:
date-pattern :
"dd.mm.yyyy", "mm/dd/yyyy", 
"E, dd MMM yyyy HH:mm:ss Z" (Tue, 03 Jan 2012 21:30:45 +0153), "EEEE, dd MMMM yyyy HH:mm:ss zzzz" (Tue, 03 Jan 2012 15:30:45 India Standard Time), 
dll. Lihat JavaDoc untuk lengkapnya.

Snippet diatas hanya secara sederhana menjelaskan konversi Date menjadi String dan String menjadi date berdasarkan format pattern yang telah sesuai. Mungkin berikutnya adalah manipulasi tanggal dengan Calendar class.

To be continued


Java Doc reference:
http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html


Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Sunday, November 27, 2011

Using Alias Select Statement as Where Clause

Sengaja menggunakan judul bahasa Inggris, karena menurut saya lebih mudah dicerna.
Intinya adalah "Bagaimana menggunakan Alias yang terdapat pada Select statement untuk Where clause"

Misal:
Select concat(FirstName, LastName) as FullName
from Employees
where FullName = 'Im Yoona'

Query diatas akan menimbulkan error, karena WHERE adalah T-SQL, WHERE clause selalu dieksekusi terlebih dahulu sebelum SELECT statement, sehingga alias FullName tidak akan terdefinisikan oleh WHERE clause.
Jika anda belum tahu/lupa dengan cara kerja garis besar query pada sql (untuk SELECT statement), bisa dilihat pada artikel :
How Select Statement Works

Ingat: pada SQL Server fungsi concat belum tentu ada, biasanya diganti dengan '+' (tanpa petik).
Hal tersebut mudah saja untuk diselesaikan, yaitu dengan menaruh formula concat(FirstName, LastName) = 'Im Yoona' pada WHERE clause.
Tetapi bagaimana jika formulanya kompleks seperti :
case when ctr.slrid =
 (select mbrcompany from CTRBOOK where ctrbook.CTRBOOKID = ctr.CTRBOOKID)
 then (select mbrshortname from jcmbr jc where MBRID = ctr.byrid)
 else (select mbrshortname from jcmbr jc where MBRID = ctr.slrid) end as 'counterparty'



Ada 2 cara:
1. Dengan melakukan aliasing table pada formula:

SELECT FullName
FROM  (
select concat(FirstName, LastName) as FullName
from Employees
) as sub
WHERE sub.FullName = 'Im Yoona'

2. Membuat View

CREATE VIEW dbo.EmployeesConcat
AS
    SELECT
        concat(FirstName,LastName) as FullName
        FROM Employees


-- maka sql statementnya menjadi lebih singkat
 
SELECT
    FullName
    FROM EmployeesConcat
    WHERE FullName = 'Im Yoona'


Untuk cara lainnya mungkin ada tapi belum dicari lagi, dan kiranya bisa kasih masukkan jika ada :)


Jika ada salah, mohon koreksinya :) Maksud hati hanya mao sharing yang saya tau kok :D

Sunday, November 20, 2011

Abbreviation & Terminology (1)

CMOS = Complementary Metal Oxide Semiconductor
Biasanya teknologi ini digunakan pada perangkat IC.
BIOS = Basic Input Output System
adalah suatu embedded system yang mengatur input output dari software ke hardware. Software yang dimaksud dalam hal ini adalah embedded system.
Bootloader = Adalah suatu package yg berisi kode-kode untuk mengeksekusi / meload Operating System software dalam sebuah device, PC/komputer, mesin, dll.
Kernel = Adalah jembatan antara software (Operating System) dengan hardware. Kernel mengatur proses manajemen memori, I/O dan alokasi proses.


Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Saturday, October 22, 2011

How To Use Power Forms JD Edwards EnterpriseOne

Okay.
Recently, I have been developed application using Power Form in JD Edwards EnterpriseOne.
Maybe you are a JD Edwards developer and try to create customize forms using "Power Form". Then, this is a good article to start knowing about that (although you can read from manual in Oracle site but can be a little confusing :p )

I assume you have the basic JD Edwards Technical Skills and knowledge in creating form (such as Headerless and Header Detail form) before you read this.


In my opinion the advantages (pro) and cons if using power form:


The pros:

  1. You can add several irrelated data (different Business View) grid with Subform while other forms can't.
  2. You can also add different object application (Pxxxx object form / reuseable form) in this Power Form with Subform alias.
  3. User don't need to go from link to link to browse or edit related data/table.
The cons:
  1. This form could be slower than the other forms (headerless or header detail), depend on how many Subform are created.
  2. Power form only run on the web.
  3. Power form can be a little confusing for develop.
There's two type of power form:
Browse and Edit.
Browse are only for search and browse, more likely a select and search form.
Edit are for revise or create data, more likely a headerless form.

Okay the basic creation is like this:

  • Create the Power Browse / Edit Form.
  • Create a Standard Subform / Reuseable Subform.
  • Create a Mapping Link.
  • Using Power Forms System Functions and Event Rules
  • Creating Grid

  1. I’ve assumed that you have two tables (for sample only) linked by its FK and PK, say the keys are DOCO, DCTO, KCOO. 
  2. For table 1, it has DELN, AN8, ALPH and for table 2, it has LNID, ITM, LITM, DESC.
  3. Choose Power EDIT form and insert a subform (reusable or embedded, depends on your design).
  4. Attach Header BV to Power form and detail BV to subform. (procedure is similar to any form). Make sure the Parent are right (I think it will only be one available because you now only have 1 subform).
  5. Check if subform datastructure has DOCO, DCTO, KCOO in it (I think there will be there because they are Primary Keys) if not, just add them. The purpose is to receive subform interconnect values.
  6. In properties of Power form, select tab “Mapping links”. Check whether proper subform is selected in “Link To” combo box. Assign the correspond keys field/variable of power form which would contain keys values and needs to be passed to subform. You can select the proper direction "Link To Parent", "Link To Child" or "Link To Child and Back To Parent" symbol.
  7. Use system function “Notify Child” to pass control and data to subform. Most probably you would like to use this function in “Post dialog is initialized” event of Power Form.
  8. Once this function is executed, an event “Notified by Parent” would be invoked in subform.
  9. Assign Subform interconnect values (SI DOCO for example) to the filter fiield on subform. This would show all the detail records on subform.
  10. The detail records would be shown out if Automatic find on entry property is set on the grid of subform, otherwise you must do step 11.
  11. Add/insert manually "Push Button FIND" on the subform and add System Function "Press Button" FIND in the "Notified by Parent" event of Subform.
  12. Make it hidden if you don't want user to see.
There are additional step if you want the Grid detail to be save to table if edited/added record.
  1. Insert a Push button with default functionality of “Save” on subform and Hide it if necessary.
  2. On Power form’s (Parent forms) OK button’s assign system function “Trigger Default Child Action” and choose SAVE button of subform. This would save the detail record along with header record. (there are other methods as well)
Okay that's all for a while, because maybe this will be the last basic tutorial of JD Edwards from me.
Hope it helps you

If anything wrong, feel free to inform me.
You can also get a complete overview for creating power form in powerpoint.
Just feel free to ask and comment.

Saturday, October 15, 2011

ARP (Address Resolution Protocol) Part 1

Istilah ARP sering muncul dalam artikel networking dan hacking.

Jujur saja, pada saat membaca tentang ARP, saya sama sekali buta tentang ARP dan kawan-kawannya.
Belakangan ini jadi teringat untuk menulis hal yang saya tau (walaupun hanya secara teori dan konsep) tentang apa itu ARP sebenarnya dan tentunya dituangkan dalam artikel ini :)
Diharapkan sebelum membaca sudah mengenal sedikit tentang konsep Internet, TCP/IP atau OSI Layer.

ARP  = Address Resolution Protocol.
Dilihat dari namanya yang bila diterjemahkan secara harafiah dalam bahasa indonesia:
"Suatu protokol (aturan) untuk memperoleh alamat (IP Address) yang terdapat dalam jaringan"

ARP didefinisikan di RFC 826 oleh David Plummer (1982). Agak lawas bukan?
ARP bekerja dengan melakukan broadcast. Ia akan menerima IP Address (selanjutnya IP saja) tujuan dan mengirim secara broadcast permintaan ke semua mesin untuk menjawabnya lewat ARP.

Ilustrasinya seperti ini,
- A menerima IP dari si C
- A mengirim request MAC Address (Ethernet) dari IP si C
- Semua menerima request ini karena dilakukan secara broadcast
- IP si C yang sesuai dengan request dari A, akan mengirim reply dengan ARP
- si A akan menerima sebuah balasan ARP dari si C melalui 48 bit MAC Address.

ARP berfungsi sebagai mapping address (pengalamatan) antara Data Link layer dan Network Layer dalam OSI Model. Atau Internet layer dan Network layer dalam model lainnya.

Dalam hal ini, TCP/IP pada Data Link layer merujuk pada MAC Address dan Network Layer merujuk pada IP Address sebagai pengalamatannya.

ARP akan menterjemahkan IP Address ke MAC Address.
Adanya ARP ini tidak lain karena IPv4 mempunyai keterbatasan untuk menyimpan MAC Address sebagai bagian dari IP Address (IPX dan IPv6 sudah dapat melakukannya, dengan kata lain bisa lebih sedikit protokol yang digunakan tanpa ARP, namun dapat dilakukan hal yang sama seperti IPv4 jika perlu, yaitu dengan ARP)


Karena itu, syarat agar kedua host tersebut saling berkomunikasi adalah IPv4 harus diterjemahkan menjadi alamat fisik pada ethernet card (MAC Address). Dan semua ini dilakukan oleh ARP. Protokol yang sudah cukup lawas ini sangat rentan terhadap security karena dibuat ketika belum adanya pertimbangan mengenai security.

Ada juga RARP (Reverse ARP), kebalikan dari ARP, ia akan melakukan mapping dari MAC Address ke IP Address. Untuk mengurangi jumlah ARP request yang berlebihan (load berlebih), hampir semua Operating System menerapkan ARP Cache untuk menyimpan mapping yang sering digunakan.
ARP ARP













Mengenai security issue, ARP cache dan tentang ARP lebih lanjut, jika memungkinkan, akan dibahas pada artikel selanjutnya.

Sumber:
www.wikipedia.org
www.tech-faq.com
www.softpanorama.org

Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Friday, October 7, 2011

Deities , Symbolism dan Paganism

Deities, Symbolism, and Paganism
(Dewa-dewa, Simbolisme, dan Paganisme)

Ternyata selama ini ada beberapa hal yang tidak kita ketahui karena sejarah tercampur aduk oleh cerita dongeng dan mitos (mouth to mouth). Sewaktu menonton film-film yang diangkat dari mitologi Yunani maupun Romawi, menggerakan hati saya untuk melakukan pencarian secara objektif dan menulis / menterjemahkan sumber-sumber tentang ketiga hal diatas : Dewa, Simbolisme dan Paganisme.

Sejak zaman manusia purba / lampau, paganisme dan simbolisme telah digunakan dalam mitologi.
Saat itu, usaha untuk menjelaskan mitologi kepada orang-orang tidak dapat dibuat melalui suatu bahasa, karenanya biasanya dilukiskan dalam dinding goa dan dijelaskan lewat lukisan/gambar/ukiran.

Seiring dengan waktu, simbol penyembahan pagan berkembang lewat simbol yang rumit, seperti pentricate, simbol yang digunakan untuk merepresentasikan dewa natural/alam dan dewi Roma, Venus ( Aphrodite Yunani ), oleh karena ia adalah personifikasi dari hasrat dan hubungan antara pria dan wanita ( jika anda pernah baca The Da Vinci Code, sangat menarik karena dijelaskan cukup informatif tentang hal ini )

Tetapi sayangnya, pada era Gereja, simbol-simbol tersebut digunakan untuk mengemukakan hal yang buruk tentang Kristiani, seperti tentang dewa Poseidon, senjatanya yang seperti garpu besar/gada (Trident) menyimbolkan Lucifer ( yang sekarang dikenal Si Iblis / The Devil ).
Orang-orang China dalam mitologinya menggunakan simbol Yin dan Yang sebagai dua kekuatan yang saling
bertubrukan tertahan dalam telur kosmik (Cosmic Egg) pada permulaan waktu, yang juga mengikutsertakan Pan Ku, Dewa Purba Iblis Raksasa (Primordial Giant God/Demon). Pan Ku berhasil lepas dengan Yin dan Yang dari telur, tetapi saat itu juga, kekuatan itu bertarung satu sama lain. Pan Ku memisahkan mereka, dimana simbol hitam dan putih yang saling berputar (seperti angin) satu sama lain menggambarkan keduanya saling bertarung. Tetapi telah disalahartikan sebagai simbol konstan martial arts (bela diri), dimana arti sesungguhnya telah hilang dan hanya sedikit yang mengetahuinya.

Pagans telah dikenal sebagai pengikut Satan, oleh karena gereja. Pagans adalah kata yang digunakan untuk menunjukkan penyembah berhala (Lucifer atau Satan), atau semua setan/iblis yang ditulis dalam Alkitab, dimana sesungguhnya makna awalnya tidaklah seperti itu. Pagans adalah pemujaan terhadap idols / idola, simbol, digunakan sebagai pengganti yang tepat terhadap unsur ketuhanan/kedewaan yang dipuja.
Untungnya bidang kesenian mampu melindungi simbolisme dan idols dalam pagan yang hampir lenyap atau gereja tetap melindunginya sekalipun penolakan yang ada dalam Gereja karena menganut paham monotheistic (Yang Esa) seperti mosaics of Poseidon, Venus De Milo atau Birth of Venus.


The Devils (Iblis)
Beberapa spesialis Mitologi yang juga memiliki sedikit pengetahuan tentang Yahudi dan Kristen, mempelajari konsep tentang "Iblis", yang menurutnya telah disalah artikan sebagai penguasa Neraka, seperti yang pernah disebut dalam Dante;s The Divine Comedy, the Inferno.
Iblis lebih tepatnya, secara teknis merujuk kepada malaikat pemberontak (fallen angel) yang dijatuhkan hukuman pada saat pertempuran Malaikat dan Tuhan. Lucifer yang biasanya disalahartikan sebagai Satan, adalah pemimpin daripada pemberontakan tersebut. Lucifer jika diterjemahkan ke dalam bahasa Inggris adalah "The Morning Star", yang merupakan malaikat tertinggi di mata Tuhan. Dia melakukan pemberontakan dan mengajak beberapa malaikat lainnya mengikut dia. Ia bertempur melawan Tuhan, tetapi malaikat Tuhan Archangel, Michael, mengirim pasukan dan mengalahkan Lucifer, membuangnya jauh beserta antek-anteknya ke dalam Neraka.

Di satu sisi, Satan, bukanlah malaikat pemberontak. Ia adalah Malaikat Penghakiman, yang terkadang misinya berbeda dengan Tuhan. Satan pergi ke padang gurun dimana Yesus sedang berkelana dan berpuasa. Satan menggodanya 3 kali untuk menguji iman Yesus, tetapi iman Yesus ternyata sama kuatnya seperti Tuhan dan selama 3 kali Yesus menolak Satan.
Satan tidak dilempar kedalam jurang api neraka, tetapi masih berkeliaran diantara Surga dan Bumi. Tetapi, menurut tulisan Yohanes dalam Kitab Wahyu tentang Hari Kiamat, Tuhan akan membuang Satan kedalam lembah belerang di dalam Neraka. Banyak nama yang mengistilahkan ketiga makhluk tersebut, tetapi mereka juga saling berhubungan pada masa Akhir Dunia, Raja Anti-Christ. Menurut Kitab Wahyu, ketika Israel telah memperoleh tujuan akhirnya, Anti-Christ akan muncul/lahir dan berkuasa. Dalam beberapa tahun, kekuasaanya akan sangat jahat, tetapi Yesus dari Nazaret akan turun ke Bumi, seperti yang sudah Ia lakukan sebelumnya, dan melawan Anti-Christ dan menang. Anti-Christ direpresentasikan sebagai salah satu dari kepala yang ada pada naga berkepala banyak yang muncul menjelang Hari Kiamat.


Karena itu, Satan, Lucifer dan Anti-Christ masing-masing memeliki sesuatu yang sama, masing-masing melakukan perlawanan terhadap kekuasaan Tuhan. Satan menguji iman Tuhan dan Yesus, Lucfier memberontak terhadap Surga, dan Anti-Christ melakukan perlawanan terhadap Yesus.
Tentunya kita berharap semua maksud jahat dari si Iblis digagalkan / tidak berhasil seperti yang pewahyuan telah katakan.

Tulisan ini hasil sunting dan terjemahan dari sumber di internet
Jika ada salah dalam referensi, nama, dan arti mohon koreksi dan masukkannya.
Thanks :)

Thursday, September 22, 2011

Fast Dormancy Feature

Sehubungan dengan ketertarikan saya yang tinggi terhadap platform Android, telah menyeret saya kedalam suatu lingkaran teknologi gadget. Hahahaha lebai abis :p

Yap, tidak lain adalah Fast Dormancy.

Sebenarnya tinggal googling aja maka sudah bisa tau apa itu Fast Dormancy dan apa kegunaannya.
Membaca dari artikel berita IDG News di ComputerWorld.com (2010 bulan 2), saya menemukan apa itu Fast Dormancy.

Fast Dormancy adalah sebuah feature pada operator seluler dan providernya dalam upaya meningkatkan peforma smartphone yang juga menurunkan tingkat kemacetan pada jaringan telekomunikasi.
Fast Dormancy sudah distandarisasi oleh Nokia Siemens Network dan Qualcomm. Pendekatan yang dilakukan pada feature ini adalah memutuskan koneksi jaringan ketika informasi sudah dikirim atau diterima. Akan tetapi, koneksi putus-nyambung yang konstan ini dapat mengakibatkan penuhnya traffic pada jaringan seluler. Karena adanya connect dan disconnect akan meningkatkan traffic sinyal, menurunkan peforma jaringan.

Karena itu, standarisasi baru oleh kedua perusahaan tersebut akan membuat sedemikian rupa sehingga komunikasi antara smartphone dan jaringan telekomunikasi akan memperhatikan tingkat lalu lintas jaringan. Tes ini sudah dilakukan oleh jaringan operator Nokia Siemens dan chipset dari Qualcomm.
Dengan begitu peforma jaringan akan lebih baik dan baterai smartphone akan lebih irit.


Akan tetapi tidak semua operator seluler mendukung fast dormancy. Jika feature ini dinyalakan pada smartphone anda sedangkan operator seluler terkait tidak menyediakan fitur fast dormancy terbaru ini, maka yang terjadi sebaliknya: pemborosan baterai berlebih!!

Untuk mengatasi masalah ini, biasanya ada setup khusus yang bisa menonaktifkan fast dormancy pada smartphone. Tergantung dari jenis Operating System ataupun Vendornya/Merk, fast dormancy dapat dimatikan lewat kode khusus. (Biasanya hanya smartphone - smarphone high end yang mendukung feature fast dormancy)

Contoh pada samsung android (kebetulan saya pakai samsung),
Buka phone dialer, ketik *#9900# --> Call --> disable fast dormancy

Saya tidak tau apakah kode tersebut compatible pada semua Android high-end atau hanya pada Samsung Android. Untuk memastikan operator seluler yang anda gunakan mendukung fast dormancy, anda bisa menanyakan pada customer service.

Sumber: 
http://www.computerworld.com
http://www.xda-developer.com

Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Friday, September 16, 2011

SQL Sequence / Auto Increments (Sample Code)

For documentation purposed.
So, I can open this article and being remembered again :)
For update increment number, such as line number, counter, etc. into table column "Counter" :
DECLARE @i As int
SET @i = 1

UPDATE USERS
SET @i= Counter = @i+1
For update table, in sequence (example):
SELECT counter = 0, * FROM Users INTO #tmp_Users
Should be
SELECT counter = 0, * INTO #tmp_Users FROM Users
 DECLARE @counter int
SET @counter = 0
UPDATE #tmp_Users
SET @counter = counter = @counter + 1
where "counter" is a column name in table "#tmp_user"

Doing the same (on the above) thing with the other method in SELECT statement :
We want something like this:
SELECT {increment value} as Counter, strUsername FROM Users

Counter   strUsername
----------------------
1             John
2             Mike
3             Laura
----------------------

Here is the solution:

CREATE TABLE #user
(
UserID int,
Username varchar(255)
)

INSERT INTO #user VALUES (10, 'John')
INSERT INTO #user VALUES (20, 'Mike')
INSERT INTO #user VALUES (30, 'Laura')
SELECT (
SELECT COUNT(UserID) + 1 AS Counter
FROM #user usr
WHERE usr.UserID < #user.UserID
) AS Counter, Username
FROM #user
For more information, we can all browse in here:

SQL SEQUENCE/AUTO INCREMENTS: RECOMMENDED ARTICLE/TUTOR
CLICK HERE :

Thanks.
Is there any wrong statement, reference or anything else in this article, I'm sorry and please let me know.
I just want to share what I knew :D

Sunday, September 11, 2011

Gangguan Mental Akibat Internet

Internet telah membuat banyak orang menjadi “gila”. Ada orang yang lebih mencintai internet melebihi rasa cinta kepada pasangannya. Ada juga orang yang rela tidak tidur demi chating dan browsing.Ada anak yang lebih memilih internet dari nasi. Dari orang dewasa hingga anak-anak memenuhi warung-warung internet, setiap harinya, karena “kegilaan” terhadap internet.

Ini dia ancaman ke 6 Gangguan mental saat kita sedang online di internet..

1. Gangguan kepribadian berupa emosi yang sebentar-sebentar meledak di saat online – mengamuk karena mudah tersinggung (Online Intermittent Explosive Disorder/OIED)
orang yang mengidap gangguan ini tampak normal pada awalnya. Beberapa hari atau jam sebelumnya mereka bisa saja melakukan pembicaraan-pembicaraan lucu atau komentar-komentar hangat. Akan tetapi beberapa saat kemudian berubah marah-marah dan mengumpat disebabkan sesuatu yang menyinggung perasaannya.

Kenapakah hal itu bisa terjadi di Internet?
* Kebanyakan dari kita hanya bisa menahan hasrat untuk melakukannya di dunia nyata, yang apabila dilakukan mungkin bisa membuahkan sebuah tinju ke wajah kita.

* Di Internet kebanyakan pengguna menyembunyikan identitas aslinya, sehingga mereka dengan bebas mengeluarkan isi hati dan kemarahannya tanpa khawatir reputasinya menjadi jelek.

* Karena pengungkapan perasaan dalam bentuk tulisan sering terlihat datar dan tidak menggambarkan emosi dengan jelas, seperti halnya nada suara, mimik wajah dan bahasa tubuh lainnya di saat tatap muka langsung, sehingga orang cenderung menggunakan kata-kata yang tajam, kasar dan keras untuk mewakili sebuah perasaan tertentu.

2. Toleransi rendah terhadap kekalahan dalam forum (Low Forum Frustration Tolerance/LFFT)
Digambarkan sebagai seseorang yang mencari-cari kepuasan segera atau penghindaran dari rasa sakit dengan segera. Pada awalnya mirip dengan perilaku anak tujuh tahunan yang menginginkan sebuah mainan, dan akan berteriak dengan menghentak-hentakan tangan dan kakinya agar segera mendapatkan apa diinginkannya.

Bagi orang yang suka menulis dan melakukan posting, sering kali merasa bahwa postingnya sangat sempurna. penulisnya hampir setiap waktu mengecek masuknya komentar yang baru diberikan pembacanya. Jika ia mendapat komentar-komentar miring penuh kritik, maka dengan cepat ia akan meluncurkan jawaban yang akan mematahkan tanggapan itu.

Jika tidak ada yang memberikan komentar, dia akan mengirimkan komentarnya sendiri – mungkin dengan nama lain – untuk meramaikan tulisannya.

Kenapakah hal itu bisa terjadi di Internet?
Kegiatan itu membuat kita menjadi tidak sabaran, karena ingin segera melihat respon dengan dari pihak lain. Ketidaksabaran ini meminimalkan toleransi terhadap serangan yang menimbulkan ketersinggungan.

3. Munchausen di Internet - tukang cerita untuk membangkitkan rasa kasihan (Munchausen Syndrom)
suatu kondisi di mana seseorang dengan sengaja membuat kebohongan, menirukan, menambah buruk suatu keadaan, atau mempengaruhi diri sendiri agar sakit dengan tujuan diperlakukan seperti orang sakit.

Kenapa hal itu bisa terjadi di internet?
Sangat mudah melakukan kebohongan dalam kehidupan nyata, dan sepuluh kali lebih mudah melakukannya di internet, karena tidak ada seorang pun bisa memeriksa kebenaran fakta-faktanya


4. Gangguan kepribadian yang tergoda untuk memaksa orang lain pada saat online (Online Obsessive-Compulsive Personality Disorder/OOCPD)
Gangguan kepribadian jenis ini bisa dijelaskan dengan contoh kegilaan akan tata bahasa. Ketika orang menemukan suatu kesalahan tata bahasa atau penulisan kata yang keliru dari orang lain dalam sebuah posting atau komentar, maka dia langsung menyerang dan dengan keras memprotesnya.

Kenapa hal demikian bisa terjadi di internet?
Dalam kenyataannya penderita OCPD merasakan ketakutan yang tidak logis terhadap dunia yang lebih berantakan, lebih kotor dan lebih kacau dibanding seharusnya yang dia pikirkan; sehingga secara cepat keadaan menjadi lebih buruk, dan akan mengalami kehancuran sampai ada seseorang yang memperbaikinya.

Di Internet, setelah membaca setiap komentar-komentar, orang normal akan menderita nasib yang sama. Tata bahasa yang keliru, pilihan kata yang tidak tepat, atau bahasa gaul yang membingungkan, mendesak anda untuk mengoreksinya. Tidak sulit merasakan keinginan untuk melatih diri menggunakan bahasa yang benar

5. Low Cyber Self-Esteem (LCSE) atau penghargaan terhadap diri sendiri yang rendah (Seperti seseorang yang dibenci setiap orang, tapi tidak ada yang meninggalkannya)
Di dalam kehidupan nyata ini disebut merendahkan diri sendiri atau perilaku pencarian perhatian.

Jika sampai kepada tingkat ekstrem, hal itu dapat berubah menjadi Online Erotic Humiliation atau pelecehan seksual secara online, di mana pelecehan menjadi sebuah tindakan nyata. Sehingga ketika anda mengatakan kepada seseorang agar melakukan sebuah tindakan seksual, mungkin dia akan menganggap hal itu penting dan dia dengan sungguh-sungguh akan melakukannya.

Kenapa hal itu bisa terjadi di Internet?
Pencari perhatian mendapatkan apa yang diinginkannya, dan penghina diri sendiri mendapatkan cukup ketegangan untuk mengaktualisasikan dirinya yang intropet melalui sinyal-sinyal yang dikirimnya via keyboard.


6. Internet Asperger’s Syndrome
hilangnya semua aturan sosial dan empati pada diri seseorang, disebabkan tanpa alasan selain hanya secara kebetulan berhadapan dengan sebuah benda mati; berkomunikasi via papan tombol dan monitor pada suatu waktu.

sindrom ini adalah bentuk halus dari autisme yang tampak berupa ketidakmampuan biologi untuk menunjukkan empati kepada manusia lain, mungkin disebabkan ketidakmampuan untuk mengenali isyarat nonverbal. Mereka secara terus-menerus bertingkah aneh dan mengganggu disebabkan mereka tidak mengetahui bahwa anda terganggu. Ada bagian dari otak mereka yang rusak.

(Beberapa kasus bunuh diri yang direkam dengan webcam – yang sebagian mungkin main-main – dan dipublikasikan di Internet. Untuk sekarang ini mungkin kita tidak yakin bahwa hal itu benar-benar terjadi, tetapi sebenarnya hanya masalah waktu.)

Kenapa hal itu bisa terjadi di Internet?
orang yang melakukan semua komunikasi online mereka menampilkan perilaku Asperger karena mereka ingin memberikan kesan ada kerugian yang sama pada diri sendiri. Di dalam hal ini, ketika kemampuan melihat respon dan mimik wajah atau ekspresi nonverbal sudah hilang, begitu juga dengan empati. Maka hal yang anda beritahukan hanya kepada orang yang tidak ada, karena itu hanyalah sekelompok kata-kata pada layar. Sekelompok kata-kata kecil yang tidak berarti.

Nah,tidak ada larangan untuk berinternet,akan tetapi beriternetlah dengan sehat,jagalah diri kita dan keluarga agar selamat dari sisi negatif internet.

Jangan biarkan diri kita dikendalikan oleh internet,tetapi kitalah yang harus mengendalikannya,dengan mengetahui batasan-batasan dan bertindak sesuai kewajaran dan tidak melebihi batas dalam ber-internet. Terima kasih. Semoga bermanfaat.


Dikutip dari salah satu thread indogamers.com

Thursday, September 8, 2011

Mengganti Background Welcome Screen (Logon Screen)

Ini trik lama dan langsung ketemu kalo cari di google dengan kata kunci yang kurang tepat sekalipun.

Tapi gak ada salahnya kalo ditulis lagi disini (sebagai dokumentasi :p )

Tips disini saya coba pada Windows 7 Ultimate Edition. Belum tau apa berjalan pada Windows 7 versi lain / Vista.


Langsung to the point aja:
  1. Masuk ke Regedit (Menu RUN --> REGEDIT), atau ketik: REGEDIT pada search bar menu windows.
  2. Masuk Ke : HKEY_LOCAL_MACHINE (HKLM)
  3. Pathnya : HKLM\Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background
  4. Di menu samping ubah nilai dari OEMBackground menjadi 1 ( HEXADECIMAL dan DECIMAL tidak berpengaruh)
  5. Taruh gambar yang anda inginkan ke folder C:\Windows\System32\oobe\
  6. Atau ketik %windir%\system32\oobe pada RUN / Search bar menu
  7. Buat folder "info" (tanpa kutip)
  8. Masuk ke folder "info", buat lagi folder "backgrounds" (tanpa kutip)
  9. Maka Path foldernya akan seperti ini %windir%\System32\oobe\info\backgrounds
  10. Taro file gambar di sana dengan nama backgroundDefault.jpg

INGAT : Ukuran gambar harus kurang dari 256kb.
backgroundDefault.jpg akan di load otomatis dan diperbesar sesuai ukuran layar jika gambar dengan resolusi yang spesifik (mis. 1024x768) tidak ditemukan.


Menurut Sumber Google :
Images Name with resolutions
================================================================
background768×1280.jpg (0.6)
background900×1440.jpg (0.625)
background960×1280.jpg (0.75)
background1024×1280.jpg (0.8)
background1280×1024.jpg (1.25)
background1024×768.jpg (1.33-)
background1280×960.jpg (1.33-)
background1600×1200.jpg (1.33-)
background1440×900.jpg (1.6)
background1920×1200.jpg (1.6)
background1280×768.jpg (1.66-)
background1360×768.jpg (1.770833-)

Sekedar sharing..
Not Copy-Paste, Just Re-Write with my own style.

Thursday, September 1, 2011

SQL Join Revealed - Part 2 -

Continued from Part 1

Belajar dari pengalaman, saya menyadari ada kesalahan konsep tentang Left, Right Inner dan Outer yang selama ini saya yakini berbeda. Namun ternyata, Left Join dan Right Join merupakan bagian dari Outer Join :)

Seperti yang pernah dijelaskan sebelumnya,
Inner = analogi intersect pada diagram venn. (A n B).

Outer = analogi union pada diagram venn. (A U B).

Berikut adalah ilustrasi detailnya:

UNION (A U B) menganalogikan FULL [OUTER] JOIN.
INTERSECTION (A n B) menganalogikan INNER JOIN.
DIFERENCIA (A-B) menganalogikan RIGHT [OUTER] JOIN.
DIFERENCIA (B-A) menganalogikan LEFT [OUTER] JOIN.

Untuk melakukan join 3 atau lebih tabel, dapat dilakukan dengan sintaks WHERE atau dengan JOIN.
ex.
SELECT p.Name, v.Name
FROM Production.Product p
JOIN Purchasing.ProductVendor pv
ON p.ProductID = pv.ProductID
JOIN Purchasing.Vendor v
ON pv.BusinessEntityID = v.BusinessEntityID
WHERE ProductSubcategoryID = 15
ORDER BY v.Name;

ex.
SELECT lastname, firstname, tag, open_weekends
FROM drivers, vehicles, locations
WHERE drivers.location = vehicles.location
AND vehicles.location = locations.location
AND locations.open_weekends = 'Yes'


Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Friday, August 26, 2011

Domain, Workgroup and Homegroup (Windows 7)

What is the difference between a domain, a workgroup, and a homegroup?

Domains, workgroups, and homegroups represent different methods for organizing computers in networks. The main difference among them is how the computers and other resources on the networks are managed.
Windows-based computers on a network must be part of a workgroup or a domain. Windows-based computers on home networks can also be part of a homegroup, but it's not required.
Computers on home networks are usually part of a workgroup and possibly a homegroup, and computers on workplace networks are usually part of a domain.
In a workgroup:
  • All computers are peers; no computer has control over another computer.
  • Each computer has a set of user accounts. To log on to any computer in the workgroup, you must have an account on that computer.
  • There are typically no more than twenty computers.
  • A workgroup is not protected by a password.
  • All computers must be on the same local network or subnet.
In a homegroup:
  • Computers on a home network must belong to a workgroup, but they can also belong to a homegroup. A homegroup makes it easy to share pictures, music, videos, documents, and printers with other people on a home network.
  • A homegroup is protected with a password, but you only need to type the password once, when adding your computer to the homegroup.
In a domain:
  • One or more computers are servers. Network administrators use servers to control the security and permissions for all computers on the domain. This makes it easy to make changes because the changes are automatically made to all computers. Domain users must provide a password or other credentials each time they access the domain.
  • If you have a user account on the domain, you can log on to any computer on the domain without needing an account on that computer.
  • You probably can make only limited changes to a computer's settings because network administrators often want to ensure consistency among computers.
  • There can be thousands of computers in a domain.
  • The computers can be on different local networks.
Conclusion / Summary:
Some people tend to confuse about the different between the three of them. The newest feature from Windows 7 is called Homegroup.
Homegroup makes home users configure several computer to connected in the same network more easier.

Source : Windows Help

Wednesday, August 24, 2011

Ketidakpuasan dan Ketidakadilan

Dalam hidup pasti kita pernah merasakan yang namanya "ketidakpuasan" atau mungkin "ketidakadilan".
Jika anda berkata belum pernah, maka saya cuman dapat menyimpulkan 2 hal:
1. Anda berbohong
2. Anda orang paling bahagia di muka bumi ini.

Mengatasi masalah-masalah seperti ini sebenarnya "gampang-gampang susah".
Gampang, karena cukup dengan 1 kata : "Bersyukur" maka semua hal diatas dapat diatasi.
Susah, karena kita menyimpan rasa "iri" terhadap orang lain / lingkungan sekitar.
Tidak puas ataupun diperlakukan tidak adil adalah case yang serupa.
Entah itu di lingkungan kerja, keluarga, teman-teman, atau mungkin tempat ibadah?

"Bersyukurlah dalam segala hal sebab itu yang dikehendaki Tuhan Allahmu". Bukan maksud menceramahi atau apapun. Satu hal yang dapat saya lakukan ketika mengalami ini hanyalah kalimat tersebut.
Saya bersyukur saja atas hidup yang saya alami saat ini. Tidak menyimpan iri, dan lakukan yang terbaik saja. Ketika kita melakukan yang terbaik, biarkan Tuhan yang melihat, karena Dia Maha Tahu. Dia tidak akan meninggalkan umatNya terlantar dalam berbagai2 duka yang berlarut2. Melainkan Dia telah merencanakan sesuatu yang indah dalam hidup kita melalui berbagai2 duka tsb. Just Believe in Your God!

Walaupun begitu, banyak orang bilang berbicara lebih mudah daripada melakukan. Yap, itu memang benar sekali! Tapi pernahkah kita berpikir kalau tidak ada yang berbicara hal tsb, mana mungkin ada orang yang melakukan?

Biarkan tulisan ini selalu mengingatkan saya pribadi ketika saya sedang dilanda perasaan "ketidakpuasan" atau "ketidakadilan"
 God bless.


Sumber: Pengalaman pribadi dan teman-teman:)

Wednesday, August 17, 2011

Engine pada Web Browser

Berawal dari rasa penasaran karena membaca Knowledge Resource di Oracle Support yang berhubungan dengan masalah pekerjaan. Akhirnya memunculkan niat untuk menulis (mengdokumentasi) tentang hal ini. Hehe..


Oke sebelumnya kita harus tau dulu apa itu engine pada web browser?
Engine = mesin.
Beberapa orang menyukai istilah lain seperti layout engine atau rendering engine.
Jadi, pada web browser terdapat engine yang bertugas dalam merendering layout pada website. Yang ia lakukan adalah melakukan translate dari HTML, CSS, JavaScript, image, dll. dalam bentuk tampilan yang sekarang kita lihat.


Sejauh yang saya tau, ada 4 besar jenis engine yang dipakai oleh berbagai browser di dunia (walaupun dalam kenyataannya market share web browser terbesar dipegang oleh IE, Firefox, Safari, Opera, Google Chrome)


1. Gecko

Didevelop oleh Mozilla Fondation. Awalnya dari Netscape.
Digunakan pada browser Firefox dan Skyfire (mobile)


2. WebKit
Didevelop oleh Apple Inc (dan masing-masing perusahaan secara individual). Awalnya dari browser KHTML (Konquerer) pada Linux yang didevelop oleh KDE.
Digunakan pada browser Safari dan Google Chrome


3. Trident
Didevelop oleh Microsoft.
Digunakan pada Internet Explorer untuk Windows, versi 4 keatas dan Maxthon.


4. Presto
Didevelop oleh Opera Software.
Digunakan pada Opera browser dan Nintendo DS browser.


Untuk list lengkapnya:

http://en.wikipedia.org/wiki/List_of_web_browsers


Untuk detailnya belum ada available waktu untuk menulis disini.. hehehe

Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Thursday, August 11, 2011

Mual dan Pusing Setelah Nonton 3D

Film 3 dimensi terlihat begitu nyata sehingga bagi sebagian orang akan merasakan mual dan pusing setelah menontonnya. Peneliti menyebutkan mual akibat film 3D dengan istilah cybersickness.

Peneliti menyebutkan bahwa gambar yang terlihat begitu nyata pada film 3 dimensi dapat mengacaukan kemampuan otak untuk memilah sinyal yang datang melalui indera, sehingga dapat memicu mual dan pusing.

"Pusing, sakit kepala dan mual yang terjadi saat menonton film 3D atau IMAX akan membuat otak menerima informasi yang bertentangan dari indera," ujar Prof Andrea Bubka, yang meneliti cybersickness di St. Peter's College, Jersey City, seperti dilansir Livescience, Rabu (10/8/2011).

Ketika gambar 'hidup' keluar dari layar, mata akan mengirimkan sinyal yang memberitahu otak bahwa tubuh sedang bergerak. Namun di bagian dalam telinga, di mana gerakan fluida digunakan untuk merasakan gerakan dan keseimbangan, tidak ada perubahan posisi tubuh yang terdeteksi.

"Mata memberitahu otak bahwa tubuh bergerak, tetapi telinga mengatakan tidak. Inilah yang menjadi penyebab mual," jelas Profesor Bubka.

Efek ini kebalikan dari kondisi yang terjadi selama motion sickness. Misalnya, ketika membaca buku saat naik mobil, mata difokuskan pada halaman dan tidak merasakan bahwa tubuh bergerak. Tapi cairan dalam telinga merasakan gerakan dari mobil.

"Perbedaan antara informasi yang datang dari kedua indera ini menyebabkan otak untuk memicu mual dan pusing," pungkasnya.


Sumber : DetikInet.com

Friday, August 5, 2011

4 Cara Agar Pakaian Tetap Terlihat Cerah

Bosan terus menerus membeli baju baru karena baju yang lama cepat belel? Atau warnanya pudar dan bahannya jadi melar? Mungkin ini akibat cara mencuci dan menyimpan yang salah. Agar baju terlihat senantiasa baru, ini triknya.

1. Jangan terlalu sering dicuci
Jika baju bersih hanya dipakai selama 2-3 jam dan tak terkena kotoran atau keringat, tak usah langsung dicuci. Gantung dan angin-anginkan saja. Proses pencucian dan pengeringan bisa mempengaruhi kualitas bahan pakaian.

2. Jangan pakai deterjen murahan
Deterjen murah memang membuat belanja bulanan jadi lebih hemat. Tapi budget belanja pakaian akan membengkak karena warna pakaian jadi cepat memudar. Berinvestasilah pada produk deterjen yang berkualitas. Atau gunakan cara natural: sebelum mencuci baju, rendam selama 10-15 menit di dalam bak berisi air yang sudah dicampur 2 sendok makan cuka. Ini berfungsi untuk menahan warna agar tak mudah luntur.

3. Pisahkan cucian
Ibu Anda mungkin sudah mengajari sejak dulu untuk memisahkan pakaian berwarna dengan pakaian putih. Namun akan lebih baik jika kita memisahkan cucian ke dalam 4 tipe:
- pakaian berwarna putih
- pakaian berwarna gelap (hitam, biru tua, coklat tua)
- pakaian berwarna cerah (pink, merah, kuning, dan warna-warna pelangi lainnya)
- pakaian lembut (yang harus dicuci dengan tangan seperti pakaian dalam, lingerie sutra, bikini, dan sebagainya)

4. Gunakan MSG untuk menghilangkan noda
Noda darah, minyak, minuman, dan makanan seringkali sulit dihilangkan dari pakaian. Trik untuk menghapusnya adalah dengan merendam pakaian di dalam air yang sudah dibubuhi satu sendok teh MSG alias vetsin. Setelah itu, cucilah seperti biasa.

4. Jangan bergantung pada mesin pengering
Meski memudahkan bagi kita, ada baiknya sesekali tinggalkan mesin pengering. Bahan pakaian yang dikeringkan secara alami akan lebih tahan lama dibanding yang selalu dimasukkan ke mesin pengering.

Sumber: Yahoo News

Sunday, July 24, 2011

Panggilan Orang Ketiga Dalam Bahasa Korea

Setelah lama nonton beberapa film korea, baru kepikiran kenapa teks "Ahjumma" , "Ahjussi", "Agassi:, "Sunsaengnim" , dan "Haraboji" sering dilafalkan oleh artis-aktor dalam film korea tsb.

Setelah melakukan sedikit explorisasi di yahoo answer, saya akhirnya menemukan berbagai perbedaan mendasar tentang maca-macam panggilan dlm bahasa korea tsb.

1. Ahjussi dan Ahjumma
Menurut sumber, Ahjussi atau Ahjumma secara literal berarti "teman dari ayah atau ibu", jadi bisa juga disebut tante/om atau orang yang lebih tua dan sudah menikah. 
Ahjussi = untuk pria yang lebih tua dan sudah menikah.
Ahjumma = untuk wanita yang lebih tua dan sudah menikah.

2. Agassi
Agassi adalah panggilan untuk wanita muda / gadis. Panggilan ini cocok jika anda melihat dia lebih muda dari anda. Atau untuk menunjukkan orang tsb tampak muda.

3. Seonsaengnim
Digunakan dalam bahasa formal untuk panggilan orang yang lebih tua dari kita (wanita ataupun pria). Panggilan ini paling umum dan cocok seperti untuk guru, manager, bos, dll.

4. Harabeoji dan Halmeoni
Panggilan untuk seorang yang sudah cukup tua: kakek (harabeoji) dan nenek (halmeoni). Saya mengingat tentang panggilan ini yang biasa diperkatakan oleh Yoon Eun Hye dalam film My Fair Lady.
5. Oppa
Panggilan untuk kakak laki-laki yang lebih tua. Saya juga mengingat panggilan ini sering diperkatakan oleh Ha Ji Won dalam film Secret Garden :-)
Berikut beberapa list panggilan lain yang serupa beserta Hangeul nya (menurut Wikipedia.org -dikutip langsung-)
  • 언니 (eonni, "older sister" if speaker is female)
  • 누나 (nuna, "older sister" if speaker is male)
  • 오빠 (oppa, "older brother" if speaker is female)
  • 형 (hyeong, "older brother" if speaker is male)
  • 아줌마 (ajumma, "middle aged woman")
  • 아주머니 (ajumeoni, also "middle aged woman" but more polite)
  • 아저씨 (ajeossi, "middle aged man")
  • 할머니 (halmeoni, "grandmother") of 할아버지 (harabeoji, "grandfather")
Oh ya, dalam bahasa Korea, sangat umum menggunakan istilah / panggilan tersebut sekalipun orang tersebut bukanlah keluarga :-)

Sebenarnya mungkin masih banyak yang lain, tetapi yang saya tulis disini hanyalah sebagian dari yang terlintas dalam memory saya selama menonton film drama korea tsb :)


Jika ada salah, mohon koreksinya :) 
Maksud hati hanya mao sharing yang saya tau kok :D

Sunday, July 17, 2011

Fenomena Android dan Perkembangan Hardware (Processor) -Just Share-

Sejauh ini perkembangan teknologi gadget (smartphone dan PC Tablet) sangat meningkat pesat.
Padahal waktu jaman saya masih kuliah, smartphone belum begitu booming. Namun semenjak Blackberry semakin terjangkau, Apple mulai menjamur dan masuknya Android ke Indonesia, membuat perkembangan smartphone dan pc tablet semakin pesat.

Semua perusahaan manufaktur elektronik berlomba-lomba membuat gadget yang dapat memenuhi demand pasar yang ada di Indonesia.
Bahkan perusahaan-perusahaan yang sebelumnya belum pernah bermain di pasar gadget, ikut nimbrung seperti Acer, Dell, Asus, dll.

Setelah kurang lebih 1-2 tahun mengikuti perkembangan gadget, pilihan jatuh ke tangan Android.
Ya, Android merupakan salah satu Operating System yang fenomenal. OS yang dimiliki oleh Google Corp ini (hasil akuisisi Android Inc) memang cukup mengesankan.
Dalam perjalanannya semenjak tahun 2008 (bisa dilihat di artikel saya sebelumnya), aplikasinya sudah lebih dari 200.000 dan hampir menyaingi Apple yang telah lama hadir.

Tidak dapat dipungkiri, perkembangan Android semata-mata dipelopori oleh kesuksesan Apple dengan Iphone nya.
Sedangkan perkembangan PC Tablet dipelopori oleh kesuksesan Ipad Apple.

Dahulu processor mobile hanya terbatas pada kemampuan kalkulasi proses, tetapi sekarang kita bisa liat banyak processor sudah built-in dengan GPU (graphic processing unit).
GPU yang pernah saya kenal adalah seperti berikut ini:

- PowerVR SGX535 (Iphone 4) dan SGX540 (Samsung Galaxy S)
- Quallcomm Adreno 200 (Galaxy Ace, Nexus One, Milestone), 205 (Xperia Arc, HTC Desire HD, dll) dan terbaru 220.
- Nvidia Tegra (Galaxy S II, Galaxy Tab II, Motorola Atrix, dll)

Sedangkan untuk vendor mobile processor dan sebagian jenis yang saya kenal adalah:

- Samsung : Exynos
- TiOMAP oleh Texas Instrument
- ARM

- Quallcomm
- Nvidia

Dan setelah saya telusuri, saya juga cukup takjub bahwa sebagian besar vendor-vendor manufaktur chip/processor ini saling bekerja sama satu sama lain.
Contohnya Apple membuat design arsitektur processor A4 (Iphone 4) dan A5 (Iphone 5) yang diberikan kepada Samsung untuk diproduksi.
Samsung juga membuat processor dengan code name : Exynos yang merupakan arsitektur ARM (ato saya salah mungkin .hehe..)
Quallcomm yang bekerja sama dengan HTC dan hampir sebagian besar gadget HTC menggunakan processor dari Quallcomm.
TiOMAP juga memasok sebagian besar processornya ke Nokia, Sony Ericsson, Samsung, Motorola, dll.
ARM yang mengeluarkan tipe-tipe processor ARMv7, ARMv8 dst. Dan terbaru saat tulisan ini dibuat ARMv9.

Yang saya masih bingung disini adalah pada ARM, apakah ARM sebuah company yang juga memproduksi processor independent atau dia hanya perusahaan yang berfokus pada mengembangkan arsitektur mikroprocessor solution.
Karena setiap perusahaan yang telah saya sebutkan diatas sebagian besar memproduksi processor dengan arsitektur ARM.


Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Sunday, July 10, 2011

Periksa Warna Kuku Untuk Pengobatan Dini

Sebuah studi menyebutkan warna kuku bisa menjadi akternatif untuk mengetahui penyakit apa yang sedang Anda derita sebelum memutuskan untuk berkunjung ke dokter.

Seperti dikutip dari Aolheath, setiap orang memiliki tipe kuku berbeda, mulai dari tekstur, warna hingga kekuatannya. Dan setiap jenis kuku memiliki arti tersendiri, terutama dalam kaitannya dengan jenis penyakit.

FAAD dari American Academy of Dermatology (AAD), Andrea Cambio, MD mengatakan, kuku adalah jendela ke dalam tubuh seseorang. Melalui kuku dapat terlihat kemungkinan penyakit apa saja yang sedang berproses dalam tubuh.

Nah, intip kondisi kesehatan melalui bentuk dan warna kuku Anda.

Kuku kuning

Salah satu penyebab paling umum kuku berwarna kuning adalah infeksi jamur. Semakin memburuknya infeksi bisa membuat kuku tidak tumbuh sehat, menebal, dan rapuh. Kuku kuning juga menunjukan kondisi lebih serius seperti penyakit tiroid parah, paru-paru, diabetes, atau psoriasis.

Kuku bengkak dan terlipat

Jika kulit di sekitar kuku terlihat merah dan bengkak, ini dikenal sebagai peradangan yang menunjukan adanya penyakit lupus dan gangguan jaringan ikat.

Garis hitam

Periksakan segera jika ada garis hitam di kuku Anda. Ini terkait gejala melanoma atau yang dikenal dengan kanker kulit dari jenis yang paling berbahaya.

Menggigit kuku

Menggigit kuku mungkin buat Anda hanyalah kebiasaan. Padahal ini sangat mungkin menandakan kecemasan yang berlebihan dan membutuhkan pengobatan karena menderita gangguan obsesif-kompulsif. Jadi, jika Anda tidak bisa berhenti, ada baiknya berdiskusi dengan dokter Anda.

Kuku kebiruan

Kuku berwarna kebiruan menandakan tubuh tidak mendapatkan oksigen cukup. Ini mengindikasikan adanya infeksi di paru-paru seperti pneumonia. Jika hanya sedikit kebiruan di ujung bawah kuku bisa juga menandakan diabetes.

Kuku pucat

Kuku berwarna pucat atau cenderung berwarna putih kadang-kadang terkait penuaan. Tetatpi ada empat penyakit serius yang mungkin saja ditandai dengan kuku berwarna pucat ini, misalnya, anemia, gagal jantung, pengidap penyakit hati atau juga gizi yang buruk.

Kuku putih

Jika kuku berwarna putih dengan ujung atas berwarna gelap mengindikasikan adanya masalah pada hati seperti hepatitis.

Kuku kasar

Jika permukaan kuku berkerut dan berbunyi jika diadu ini merupakan tanda awal dari psoriasis atau inflamasi arthritis. Perubahan warna kuku dapat terlihat merah kecokelatan.

Kuku retak

Kuku terlihat kering, rapuh dan sering retak telah lama dikaitkan dengan penyakit tiroid. Jika membelah dan berwarna kuning ada kemungkinan ini karena infeksi jamur.

Sumber: Inilah.com

Sunday, July 3, 2011

Varian Linux Distribution Berdasarkan Package-nya

Terlalu banyaknya varian linux sekarang ini membuat kita jadi semakin bingung.
Inisiatif dari tulisan saya saat ini hanyalah sekedar rasa ingin tau dan mengdokumentasi tentang apa saja varian linux yang masih exists sampai saat ini.

Pembagian dan list varian linux distro ini berdasarkan atas perbedaan package.
Package adalah distribusi software, aplikasi dan data. Package biasanya diatur lewat sebuah Package Management System / PMS (semacam "install manager") yang jika di Ubuntu digunakan software Synaptic (karena yang saya tau hanya di Ubuntu) untuk memudahkan proses pengambilan package yang terkait pada repository.
Oke cukup, karena saya tidak akan membahas apa itu package, PMS, repository ataupun synaptic itu sendiri :p

Mengingat distro yang saya gunakan saat ini adalah Ubuntu, maka saya mengambil contoh Ubuntu. Saya sering mendengar Ubuntu adalah varian dari Debian (menggunakan basis Debian (turunan Debian) sebagai package distribution), dengan ekstensi filenya adalah .deb.

Berikut jenis-jenis varian Linux berdasarkan distribution packagenya:

Yang saya list turunan distronya hanyalah yang saya anggap well-known

1. Debian Based
   Distro yang menggunakannya : Ubuntu, Knoppix, Maemo (development tools untuk handheld seperti Nokia N900 dan tablet)

2. Gentoo Based
Distronya : Chromium OS dan Google Chrome OS
Menggunakan Portage sebagai PMS nya.

3. Pacman Based
Saya sendiri baru dengar tentang based distro yang satu ini, ketika saya cari tau, maka distro varian yang saya temukan adalah: Arch Linux, Knopp Myth, DeLi Linux, Frugalware Linux

4. RPM based
Salah satu yang paling dominan selain Debian.
Distronya : Red Hat, SUSE, Mandriva
Red Hat sendiri terpecah menjadi 2: community dan commercial support division.
Untuk yang komersial adalah Red Hat Enterprise, sedangkan yang community support adalah Fedora.

5. Slackware based
Diketahui bahwa varian ini lebih dikhususkan untuk advanced user atau orang yang ingin mendalami kerja atau lingkungan linux lebih dalam. Karena hampir sebagian besar software dan automisasi dipangkas untuk memudahkan kostumisasi dan konfigurasi.
Distronya : KateOS, SalixOS, Wolvix.

Dari 5 distro utama diatas, Red Hat, Knoppix, Ubuntu, Mandriva dan Fedora juga memiliki turunannya masing-masing. Mungkin dikarenakan Linux Distro mereka adalah yang paling luas digunakan (terkenal).


Sumber: Wikipedia

Kalo ada salah mohon dikoreksi ya :)

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

    Monday, May 30, 2011

    Common Keyword OOP (Static, Final, Abstract)

    Di java dan C# (karena cuman didalam bahasa itu yang saya tau), terdapat keyword:

    final menunjukkan bahwa class/method/variable yang dideclare dengan keyword final tidak dapat di override ataupun diubah valuenya (khusus untuk variable). Keyword final tidak dapat digabungkan dengan keyword abstract, karena sifatnya bertentangan (compile-error).

    Karakteristik final:
    - Biasanya digunakan untuk deklarasi konstan digabungkan dengan static keyword. Contoh: public static final MOVE = 1;
    - Pengubahan value terhadap variable final; override dan overloading method; pewarisan/inheritance final class akan terjadi compile-error.

    abstract menunjukkan bahwa class/method (agak lupa abstract variable ada di C# apa tidak) bersifat abstrak yang memaksa subclass / child nya untuk mengimplementasi method/class tersebut, jika tidak maka akan terjadi compile-error.

    Karakteristik abstract:
    - Harus di-implemen / di override oleh subclass / child nya, jika tidak akan compile error.
    - Untuk abstract class, memiliki karakteristik yang serupa dengan interface tapi tidak sama.
    - Tidak ada abstract variable dalam Java. (CMIIW)
    - abstract class dapat memiliki konkrit method (tidak abstract), ini merupakan salah satu pembeda dengan interface.

    Dahulu saya paling kesulitan memahami static keyword, namun beruntung sekarang saya sudah cukup paham tentang static, sebelum itu anda harus paham istilah dibawah ini:

    instance = representasi/contoh/bentuk dari blueprint yang ada. Contohnya seperti Budi adalah representasi dari Manusia.
    instantiate = istilah dari pembuatan untuk 1 instance.

    static menunjukkan bahwa class/method/variable yang didefinisikan sebagai static hanya memiliki 1 instance untuk semua. Contohnya adalah dalam pembuatan object X terhadap class HURUF (1 atau lebih object), hanya akan ada 1 instance static method/variable yang dibuat/digenerate untuk 1 object tersebut. Method/variable static tsb adalah milik class HURUF, bukan milik object X, sehingga semua object akan mengakses 1 instance static yang sama milik class HURUF.
    static sangat sering digunakan

    Karakteristik static:
    static keyword sering digabungkan dengan final untuk pembuatan konstan.
    - Class dapat bersifat static, namun setiap member class harus bersifat static (mengikuti aturan dan fungsi dari static keyword), tidak mungkin bukan class yang hanya ada 1 instance dalam JVM, tetapi member class nya bisa lebih dari 1 instance?
    - static metod tidak dapat mengakses non-static method/variable.
    - static method dapat mengakses static method/variable.
    - Untuk mengakses non-static method/variable, harus melakukan instantiate terlebih dahulu.

    Prinsip diatas sesuai dengan fungsi dari static keyword. Bukankah sangat aneh bahwa 1 instance yang konkrit (static) memiliki instance yang tidak konkrit / belum jelas? untuk mengaksesnya maka harus dilakukan instantiated terlebih dahulu.
     
    Semoga informasi ini berguna untuk anda.

    Jika ada salah, mohon koreksinya :)
    Maksud hati hanya mao sharing yang saya tau kok :D

    SQL Case Statement / If Else Statement

    Belakangan ini baru dapet tes SQL sederhana tapi sayangnya saya sama sekali tidak mudeng / blank dan tidak mahir dalam SQL. Hal dikarenakan terlalu jarang menggunakan SQL dalam bidang pekerjaan. Hanya query-query sangat sederhana saja, alhasil query sederhana seperti IF-ELSE statement standard dalam SQL saja saya lupa :(

    Berikut catatan pribadi saya yang diambil dari sumber-sumber di internet:

    Saya ingin mengambil result/show column yang hasilnya tergantung pada isi table yang bersangkutan.
    Misal:
      - Ingin menampilkan kolom "TipeHarga" dengan nilai yang diperoleh dari "Harga" yang terdapat pada table.
    - Jika "Harga" > 1000 maka isi kolom "TipeHarga" = Mahal , jika tidak, maka "TipeHarga" = Murah.


    Lewat SQL, hal ini bisa diperoleh dengan kata kunci case , when-then-else.

    CASE [expression]
        WHEN [value | Boolean expression] THEN [return value]
        [ELSE [return value]]
    END


    Contoh:

    SELECT CASE WHEN Harga >= 1000
                THEN 'Mahal'
                ELSE 'Murah'          END as TipeHarga
      From X

    Maka yang tampil adalah kolom "TipeHarga" untuk masing-masing "Harga" < 1000 maka isinya adalah 'Murah', sebaliknya > 1000 isinya 'Mahal'

    Dapat juga seperti ini:
    SELECT CASE Harga
                    WHEN 1 Then '1 Rupiah'
                    WHEN 1000 Then '1000 Rupiah'
                    WHEN 5000 Then '5000 Rupiah'
                    ELSE 'Tidak Diketahui'
    END  as 'Status' 
    From X

    Contoh query lengkapnya :
    select P.Name
         , P.Type
         , PS.SalePrice as Price
         , case when PS.SalePrice > 200
                then 'Expensive'
                else 'Value' end AS PriceType
      from Product P
    inner
      join ProductSale PS
        on P.ProductID = PS.ProductID
     where P.Category = @Category
       and P.Vendor = @Vendor
    order by P.Name desc


    Maaf kalo ada salah, cuman mao sharing yang saya tau :p
    Saran dan Kritik sangat diharapkan :)