Pages

Wednesday, March 2, 2011

Beda Interface dan Abstract Class

Pertanyaan paling klasik dan sering dijadikan bahan pertanyaan tertulis di sekolah/kuliah/bahkan tempat kerja. Diharapkan sebelum membaca ini sudah punya knowledge tentang OOP (Object Oriented Programming) dan salah satu bahasa pemograman OOP.

It is just a theory. Practical is more important in programming.
Yap, sekedar membahas konsep dan teorinya, karena menurut saya ini penting. Tanpa teori tidak ada percobaan/praktek, begitu juga sebaliknya, tanpa praktek/percobaan nyata maka teori sama sekali tidak berguna!

Mungkin beberapa tau tentang perbedaan ini, yang jadi pertanyaan, kapan kita harus menggunakan interface?dan kapan kita harus menggunakan abstract class? Semoga pertanyaan ini telah terjawab ketika anda membaca artikel dibawah ini. Jika sudah tau, ya tidak perlu dibaca ^_^


Yang perlu diingat "Interface is not a class or an abstract class." It's totally different!"

Abstract class adalah sebuah class setengah jadi (abstrak) yang memuat/memiliki method dan atrribut.
Abstract class sebenarnya adalah sebuah class, sehingga memiliki semua sifat dari class biasa (punya konstruktor). Hanya saja sifatnya masih abstrak, karena itu biasanya method kosong/belum di implementasikan.
Namun Abstract class dapat mengimplementasikan method tersebut.
Abstract class akan selalu menjadi superclass / hirarki tertinggi dari subclass-subclass-nya.

Sedangkan interface:
- Adalah sebuah blok signature kumpulan method tanpa tubuh (konstan).
- Sebuah definisi method yang umum/general yang dapat menghubungkan class-class yang berbeda.
Dengan kata lain, interface memungkinkan kita mengimplementasikan method yang sama terhadap class yang tidak ada hubungan sama sekali (tidak dalam satu hirarki)
- Oleh karena itu interface bukanlah sebuah class, walaupun memiliki ciri yang serupa dengan abstract class.

Sebuah analogi yang bagus menurut saya adalah seperti ini:
- Abstract class adalah mobil, kapal, pesawat
class nya adalah Sedan, SUV, MPV, Sports, dll (untuk mobil)
- Interface adalah Kendaraan darat, kendaraan laut, kendaraan udara.
interface ini memiliki method-method/fungsi-fungsi umum ketiga jenis kendaraan tersebut, yang masing-masing fungsinya harus didefinisikan di class-class yang spesifik.

Kayanya kurang afdol kalo tanpa disertai contoh code nya, berikut saya ambil contoh dalam bahasa JAVA.
Contoh Interface:

public interface Relation
{
  public boolean isGreater( Object a, Object b);
  public boolean isLess( Object a, Object b);
  public boolean isEqual( Object a, Object b);
}
Contoh Interface yang di implements oleh class:

public class Line implements Relation
{
     public Line() {
     // constructor
     }
     public boolean isGreater( Object a, Object b){ // method di override dari interface
         double aLen = ((Line)a).getLength();
         double bLen = ((Line)b).getLength();
         return (aLen > bLen);
     }
     public boolean isLess( Object a, Object b){ // method di override dari interface
         double aLen = ((Line)a).getLength();
         double bLen = ((Line)b).getLength();
         return (aLen < bLen);
     }
     public boolean isEqual( Object a, Object b){ // method di override dari interface
         double aLen = ((Line)a).getLength();
         double bLen = ((Line)b).getLength();
         return (aLen == bLen);
     }
}
Contoh abstract class:
public abstract class LivingThing
{
   public void breath(){
   System.out.println("Living Thing breathing...");
}
public void eat(){
   System.out.println("Living Thing eating...");
}
/**
* abstract method walk
* Kita ingin method ini di-overridden oleh subclasses
*/
public abstract void walk();
}

Contoh abstract class yang di inherit:
public class Human extends LivingThing
{
         public void walk() {
         System.out.println("Human walks...");
        }
}
Didalam Java, C#, Object Pascal / Delphi, Smalltalk, dan PHP tidak memperbolehkan multiple inheritance (penurunan class dari superclass yang jumlahnya lebih dari 1). Semata-mata dihilangkan featurenya untuk menghindari ambigu. (Pada C++, Perl, Python, Lisp mensupport multiple inheritance). Walaupun begitu, semuanya kecuali Smalltalk memperbolehkan class untuk mengimplemen banyak interfaces (multiple interfaces).

Pesan singkat:
Gunakan interface untuk mendefinisikan method standar yang sama dalam class-class yang berbeda. Sekali kita telah membuat kumpulan definisi method standar(abstrak), kita dapat menulis method tunggal(spesifik) untuk memanipulasi semua class-class yang mengimplementasikan interface tsb.
Gunakan class abstract untuk mendefinisikan secara luas sifat-sifat dari class tertinggi pada hirarki OOP, dan gunakan subclassnya (turunannya/child class) untuk melengkapi deskripsi method dari class abstract.


Maaf kalo ada salah, hanya mau sharing aja, kalo salah dikoreksi ya ^^

Wednesday, February 23, 2011

5 Penyebab Pria dan Wanita Sering Salah Paham

Ungkapan 'Men from Mars, Women from Venus' terbukti benar. Pria dan wanita diciptakan memiliki pemikiran, sikap dan sifat saling bertolak belakang, seperti berasal dari dua planet berbeda.

Karena itu, salah paham bisa kerap terjadi saat pria dan wanita berkomunikasi (secara verbal atau non-verbal). Apa yang ditangkap dalam otak pria, bisa jadi jauh berbeda dengan maksud yang diucapkan wanita.

Menurut Psikolog Dr. Amy Johnson, ada beberapa perbedaan paling mendasar dari pria dan wanita yang sering menimbulkan kesalahpahaman. Dengan menyadari perbedaan tersebut, bisa membantu Anda lebih memahami sifat-sifat pria dan berujung pada komunikasi lebih efektif.

Ini dia lima di antaranya, seperti dikutip dari Your Tango:

1. Wanita Memberi Sinyal, Pria Meminta Langsung
Pria terbiasa mengutarakan maksudnya secara langsung, sementara wanita lebih suka memberi isyarat. Dalam sebuah hubungan, wanita seringkali mengharapkan pasangannya bisa membaca pikiran mereka dan tahu apa yang mereka mau, tanpa memberitahunya secara langsung. Agar tidak selalu terjadi salah paham, sebaiknya Anda mengatakan secara langsung apa yang Anda inginkan dari si dia. Kesal atau marah tak lantas membuatnya tahu apa yang ada di pikiran Anda. Sebaliknya, dia akan pusing dan depresi karena harus menebak-nebak kenapa wanitanya marah tiba-tiba.

2. Wanita Memerhatikan Detail, Pria Tidak
Wanita punya ingatan luar biasa pada hal-hal kecil, termasuk hari pertama kencan, hadiah-hadiah, bahkan kecupan pertama. Sifat bawaan ini membuatnya lebih sentimentil daripada pria. Sementara pria cenderung, lebih memikirkan hal-hal yang sifatnya penting dan besar. Lupa tanggal kencan pertama, bukan berarti pasangan tidak peduli terhadap hubungan asmaranya. Anda harus mengerti bahwa pria tidak bisa mengingat hal-hal secara detail dengan baik karena cara mereka memroses informasi dalam otak berbeda dengan wanita.

3. Pria Fokus Pada Satu Hal, Wanita Bisa Fokus pada Berbagai Hal
Pria dan wanita memiliki cara pandang yang berbeda. Pikiran pria mudah terbagi dan hanya bisa fokus pada satu hal. Ini berarti secara mental dan emosional mereka tidak bisa memikirkan cinta, pekerjaan atau hobi sekaligus. Sementara wanita bisa memandang segala sesuatu dalam 'gambar besar', artinya, dia mampu menggabungkan berbagai aspek kehidupan mereka dalam satu pikiran. Jika tiba-tiba si dia menonton pertandingan bola di tengah-tengah perbincangan serius, bukan berarti dia tidak memedulikan apa yang Anda ucapkan.

4. Wanita Bicara Banyak, Pria Lebih Banyak Diam
Saat marah atau didera stres, wanita cenderung meluapkan semua kekesalannya. Baik itu masalah pekerjaan, jadwal harian yang padat atau masalah keluarga. Wanita juga kadang menggunakan kata-kata atau ucapan yang mendramatisasi keadaan sebenarnya. Emosi wanita lebih mudah meledak, seperti katup ketel yang terbuka ketika air mendidih. Namun, wanita pun bisa cepat meredakan amarahnya.

Di sisi lain, saat pria mengalami stres, dia lebih memilih diam untuk beberapa waktu. Pria hanya ingin menenangkan diri dengan menonton TV, bermain komputer atau menyendiri untuk melupakan masalahnya.

Wanita secara naluriah akan bertanya kenapa kekasihnya bersikap lain dan menjauh darinya, apakah ada tindakan atau perkataannya yang salah? Jangan terburu-buru berpikir Anda akan dicampakkan saat si dia terkesan menjauh. Beri dia waktu untuk tenang, dan lebih baik menyibukkan diri daripada merong-rongnya terus dengan sejuta pertanyaan. Jika saat perasaannya sudah lebih baik, si dia pasti akan kembali dan mengajak Anda untuk menghabiskan waktu bersama.

5. Pria Bisa Emosional, Wanita Bepikir Sebaliknya
Wanita berpikir semua pria tidak punya sisi emosional. Kenyataannya, kebanyakan pria justru sangat sensitif dan punya perasaan mendalam. Namun mereka tidak selalu menunjukkannya. Wanita sebaiknya tidak berasumsi bahwa pasangannya tidak merasakan hal-hal emosional seperti sakit hati atau penolakan. Pria merasakannya lebih dari yang Anda tahu, tapi bukan berarti Anda bisa tahu perasaan yang sebenarnya. Cara terbaik untuk mengetahuinya adalah bertanya langsung.

Sumber: Detik.com /Yahoo.com (lupa hahaha, murni copas :) )

Saturday, February 19, 2011

LED, LCD and Plasma Technology Summary

Judul yang basi sebenarnya karena ini lebih tepat dibahas sekitar 1-2 tahun yang lalu. Tapi sekarang LED TV lagi hot-hot nya di Indonesia (setidaknya semenjak tahun 2010 karena sudah mulai terjangkau :p ) sedangkan LCD TV mulai memasyarakat semenjak tahun 2008 :)

CCFL = Cold Cathode Fluorescent Lamp
 


Plasma Display













LED = Light Emitting Dioda


LCD TV telah lama mengambil alih pasar CRT TV (TV Tabung/Cathode Ray Tube) di Indonesia. Tidak terlalu lama, hanya selang beberapa tahun sudah muncul teknologi inovasinya.


Orang percaya bahwa teknologi LCD (Liquid Crystal Display) lebih praktis dan jauh lebih baik daripada teknologi CRT (Cathode Ray Tube). Tidak ada panas berlebih pada TV, TV menjadi lebih ramping karena tabung vakum ditiadakan, layar menjadi lebih lebar, kontras rasio semakin ditingkatkan, sudut pandang / viewing angle juga ditingkatkan, dan warna pada LCD juga semakin mendekati warna asli dalam kehidupan nyata.

Inovasi dari LCD yang saya sebutkan sebelumnya adalah teknologi LED. LED pada dasarnya adalah sebuah LCD yang menggunakan LED sebagai alat pencahayaan (backlighting device). Perbedaan mendasar antara LED TV dan LCD biasa hanya pada backlighting device tsb. LCD biasa menggunakan CCFL.

Plasma TV juga merupakan sebuah alternatif teknologi layar datar disamping 2 hal yang saya sebutkan di atas. Plasma TV lebih dulu ada sebelum teknologi LED TV muncul. Kurang tau tepatnya kapan karena keterbatasan waktu untuk fact finding :D
Plasma TV menggunakan plasma cell yang terbungkus dalam suatu bilik/ruang untuk menghasilkan variasi warna. Kelebihan yang paling utama pada Plasma TV dibandingkan dengan LCD or LED TV adalah lebarnya viewing angle (sudut pandang), lebih dari 75 derajat, anda tetap dapat mendapatkan tampilan yang baik pada saat menonton di Plasma TV.
Kelebihan lainnya adalah contrast ratio yang lebih tinggi dibandingkan dengan LED TV sekalipun.
Kelemahan dari Plasma TV (karena layarnya adalah kumpulan dari partikel gas yang berpendar), jika anda mendiamkan (melakukan pause) atau berkutat pada satu gambar yang sama terlalu lama, sebutlah 1 jam, layar akan terasa mengimpresikan tidak ada perubahan pada warna/gambar.

Secara garis besar, kelebihan dan kekurangan antara LCD dan Plasma saling bersilangan.
TV dengan resolusi tinggi, kontras warna yang baik, response time yang cepat telah membawa kita pada dunia entertaiment yang tidak terbatas.
Kehadiran feature 3D dengan menggunakan bantuan kacamata 3D untuk menterjemahkan tekstur 2D menjadi 3D juga sudah menjadi tren.
Apalagi sekarang ada beberapa perusahaan yang telah menginovasi teknologi TV 3D tanpa menggunakan alat bantuan.
Hal ini tidak dipungkiri oleh meningkatnya jumlah penyedia layanan TV kabel yang mampu mentransmisikan gambar berkualitas tinggi, uncompressed, ke end-user, yang biasa disebut HD (High Definition).

Sampai saat ini, perkembangan teknologi layar TV terus berkembang sangat pesat.
Pilihan apakah membeli Plasma TV atau LED TV adalah kebutuhan pengguna.
Saya sendiri lebih tertarik dengan LED TV disamping kelemahan2 yang ada pada LED TV dibandingkan dengan Plasma TV.

Tuesday, February 15, 2011

Improve Battery Life by HTC Replied Email

Mengutip tulisan dari salah satu user di forum xda-developer (forum tempat ngumpulnya para developer-developer smartphone), saya menemukan sebuah hal yang menarik untuk dikutip.
Kiranya dan seingat saya tips berikut sangat efektif untuk meningkatkan life time battery mengingat batere sekarang ini sangat boros (dikarenakan hp jaman sekarang touch screen semua dan OS Android).

Berikut ini kutipannya.
Dear XXXX, HTC and Sprint are taking steps to improve observed battery life. HTC is developing a number of handset software optimizations that are expected to increase device operating times. These updates are expected to be available as part of software pushes scheduled for later this summer. As with any software development effort, we cannot provide an exact date. Additionally, Sprint is working to optimize 4G network settings to improve battery life for customers in 4G markets. I will be happy to go over various setting with you that will help extend the battery life. Traditionally WiFi, GPS, Bluetooth, and display brightness all greatly impact battery performance. With Android 2.1 another feature that can kill your battery are the Live Wallpapers. If you’re using Live Wallpaper just turn if off. Adjust the Brightness of the display (Menu | Settings | Sound & Display | Brightness). By default it is set to auto adjust but you can manually adjust it down. Consider adjusting the display timeout (Menu | Settings | Sound & Display | Screen Timeout). The default value is 1 minute but you can reduce it to as low as 15 sec but 30 seconds. By default your HTC Incredible vibrates every time you press a key. Turn it off by un-checking the box ‘Vibrate when typing’. Menu | Settings | Language & Keyboards | Touch Input | Text Input | Vibrate when typing. If Facebook, Twitter, MySpace, Email, App Updates, or many other things are constantly popping notifications, consider turning some of them off as notifications do impact battery performance; This is done in each app.

To also help with Battery Life you can do these steps exactly: 1) Turn your device ON and Charge the device for 8 hours or more 2) Unplug the device and Turn the phone OFF and charge for 1 hour 3) Unplug the device Turn ON wait 2 minutes and Turn OFF and charge for another hour Your battery life should almost double, we have tested this on our devices and other agents have seen a major difference as well.
Yang saya quote/kutip terpisah itu adalah salah satu tips menarik yang DIKELUARKAN Customer Service HTC secara RESMI di US/Europe. Kiranya tips tersebut berguna untuk anda yang mempunyai smartphone-smartphone mid-high end berbasis Android.
Aku rasa tips ini juga berguna untuk merk laen (tidak hanya HTC), saya sendiri belum mencoba mempraktekannya dikarenakan keterbatasan waktu hehe..
(Akan lebih efektif jika umur batere masih baru-baru nya) :)

Hope it works to you guys!

Wednesday, February 2, 2011

Kiat Khusus Membasmi Virus Ramnit dari Komputer

Meski terbilang baru, namun penyebaran virus Ramnit memang cepat. Bahkan karena kecanggihannya yang mampu men-download virus lain, program jahat ini tergolong salah satu trojan yang sulit diberantas.

Nah setelah mengetahui ciri-cirinya, berikut adalah langkah-langkah untuk menghapus virus Ramnit yang disampaikan Alfons Tanujaya, analis antivirus Vaksincom, kepada detikINET, Selasa (1/2/2011).

Karena menginfeksi file berekstensi exe, dll, dan html, maka pembersihan sebaiknya dilakukan pada modus DOS. Untuk mempermudah pembersihan silahkan gunakan Windows Mini PE Live CD, lalu downlad tool gratis Dr.Web CureIt!

Agar optimal, sebaiknya semua media termasuk hardsisk dan flashdisk discan terlebih dahulu. Hal ini dikarenakan Ramnit akan menaruh beberapa media penyimpanan.

Sebelum melakukan pembersihan sebaiknya blok file duplikat virus dengan menggunakan fitur 'Software Restriction Policies'. Fitur ini hanya ada pada system operasi Windows XP Pro, Vista, 7, Server 2003 dan Server 2008.

Hubungkan flashdisk atau pun hardsik eksternal ke komputer. Lalu download aplikasi gratisan Dr Web Live CD pada situs berikut ini. Setelah hal tersebut usai dilakukan, pengguna bisa melanjutkan langkah-langkah berikut.

  1. Setelah software Dr.Web LiveCD berhasil di-download, burn kedalam CD/DVD
  2. Hubungkan flashdisk dan hardsik eksternal ke komputer
  3. Booting komputer melalui CD/DVD ROM
  4. Kemudian akan muncul layar 'Welcome to Dr.Web LiveCD
  5. Pilih 'Dr.Web LiveCD (Default)' kemudian tekan tombol 'Enter' pada keyboard
  6. Tunggu beberapa saat sampai muncul interface Dr.Web LiveCD yang akan menampilkan aplikasi 'Dr.Web Scanner' secara otomatis. Dr.Web Scanner ini berfungsi untuk melakukan pemeriksaan terhadap komputer anda dari kemungkinan adanya virus
  7. Untuk scan hardisk, pada layar 'Dr.Web Scanner' pilih lokasi drive yang akan di periksa dan pastikan Anda check list opsi 'Scan subdirectories' agar Dr.Web dapat melakukan pemeriksaan terhadap direktori dan subdirektori agar pembersihan lebih optimal. Jika layar Dr.Web Scanner tidak muncul klik ganda icon 'Dr.Web Scanner' yang terdapat pada Desktop.
  8. Kemudian klik tombol [Start] untuk memulai proses pemeriksaan
  9. Tunggu beberapa saat sampai proses scan selesai dilakukan. Jika ditemukan adanya virus, Dr.Web akan menginformasikan file yang terinfeksi dan jenis virus yang menginfeksi pada kolom informasi virus yang tersedia.
  10. Klik tombol [Select All] untuk memilih semua objek/file yang akan di bersihkan atau Anda dapat menentukan file mana saja yang akan Anda bersihkan dengan check list pada opsi yang tersedia
  11. kemudian klik tombol [Cure] untuk membersihkan file yang telah terinfeksi virus
  12. Tunggu sampai proses pembersihan selesai dilakukan
  13. Scan ulang komputer untuk memastikan komputer bersih dari virus
  14. Restart komputer.
Untuk artikel ini, saya hanya copas. Karena menurut hemat saya, artikel ini sangat berguna di kemudian hari jika terjangkit virus Ramnit yang lagi populer di tahun ini :)
Sumber: detikinet.com

Saturday, January 29, 2011

One of My Favorite Quotes

"Our sun is one of a 100 billion stars in our galaxy. Our galaxy is one of billions of galaxies populating the universe. It would be the height of presumption to think that we are the only living thing in that enormous immensity"

– Wernher Von Braun

Sunday, January 2, 2011

Tipe - tipe Pendingin (Cooling System) pada PC

1. Water Cooling (WC)

Sistem kerja cooling satu ini, seperti yang dibicarakan yakni menggunakan air (air radiator/coolant). Air tentunya akan disalurkan menuju bagian hardware yg telah dipasangi waterblock sebelumnya. Biasanya Procie dan VGA. Hal yang rada menyusahkan dari tipe cooling ini adalah pemasangannya yg rada ribet dan jika terjadi korosi pada waterblcok-nya tentu akan berakibat kebocoran (bayangin kalo pake air biasa, bisa korslet PC anda), untuk itu disarankan untuk menggunakan WB yg berkualitas baik.
Untuk penggunaannya sendiri, baik overclock maupun tidak WC tergolong baik karena suhu jelas akan terjaga.

2. Air Cooling (AC)

Tipe cooling satu ini memang mengandalkan hembusan angin dari fan yg terpasang pada heatsink nya. AC terbaik tentunya memiliki kualitas bahan yg baik dan mempunyai heatpipe yg OK, beberapa tipe AC kadang pencapaian suhunya bisa menyamai WC, harganya pun relatif lebih murah dari WC menjadikannya alternatif pilihan tepat untuk daily use dan safe overclock. Pemasangannya pun tergolong mudah.

3. Ice Cooling (IC)


IC adalah tipe pendingin xtreme yang biasa di gunakan oleh para benchmarkers dan overclockers. Jenis pendingin yang digunakan mulai dari Dry Ice, Liquid Nitrogen bahkan Liquid Helium! Pencapaian suhu dari bahan-bahan tersebut mampu mencapai suhu minus atau dibawah nol bahkan untuk LHe pencapaian suhunya hingga ke -256 derajat. Namun tentunya, Anda butuh bahan yang bagus untuk pot (bong)nya karena tentunya untuk menahan suhu seperti itu, cepat dan tidaknya dia mengalirkan dingin ke hardware sangat bergantung dengan kualitas bahannya. Harga untuk pot nay sendiri jauh lebih mahal jika dibanding cooling jenis WC dan AC dan untuk bahan seperti DI, LN2 dan LHe sendiri juga relatif mahal. Penggunaannya yang begitu singkat tentu akan menghabiskan biaya jika dipake buat daily use. Tapi jika bercita-cita ingin jadi overclocker sejati atau benchers, Anda wajib punya part yg satu ini..

4. Phase Change / Thermolectric Cooling (TC)
Nah ini yang terbaru, dan saya belum pernah melihatnya secara langsung di event-event overclockers / benchmarking.
Sejauh yang saya tau, tipe ini mendinginkan dengan bantuan tegangan listrik. Informasi lebih jelasnya belum sempat saya cari tau. Hehe..


Yang pasti 3 dari 4 diatas adalah tipe pendingin yang telah dikenal dan diketahui oleh orang banyak.
Hope this information usefull to you all readers! :)