Rabu, 27 Oktober 2010

Inheritance dan Polymorphism

Pada dasarnya kita sebagai manusia sudah terbiasa untuk melihat objek yang berada di sekitar kita tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkkan ciri atau sifat dari class tersebut.
Dari hirarki di atas dapat dilihat bahwa, semakin ke bawah, class akan semakin bersifat spesifik. Misalnya, sebuah Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga anjing, kucing dan monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class anjing, kucing dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.

Penurunan sifat tersebut dalam Bahasa Pemrograman Java disebut dengan Inheritance yaitu satu dalam Pilar Dasar OOP (Object Oriented Programing), yang dalam implementasinya merupakan sebuah hubungan “adalah bagian dari” atau “is a relationship” object yang diinherit (diturunkan).
Latar belakang diperlukannya suatu inheritance dalam pemrograman java adalah untuk menghindari duplikasi object baik itu field, variable maupun methode yang sebenarnya merupakan object yang bisa diturunkan dari hanya sebuah class. Jadi inheritance bukan sebuah Class yang di inherit oleh sebuah Literial, tapi lebih menunjukkan ke hubungan antar object itu sendiri.
Sedangkan suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object kita kenal sebagai polymorphism.
Antara penurununan sifat (inheritance) maupun polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah tersebut
Dalam Java, semua class termasuk class yang membangun Java API adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini. Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut.
Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Kita dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass. Subclass hanya perlu mengimplementasikannya perbedaan sendiri dan induknya.
Secara Terminologi asing pewarisan disebut juga inheritance. Secara gamblang, pewarisan berarti sebuah kelas mewarisi state dan behaviour dari kelas lain. Sebagai contoh, sebuah kelas Anjing akan mewarisi state dan behaviour dari kelas Mamalia. Begitu juga dengan kelas Monyet. Kelas Anjing dan Monyet disebut subkelas, atau kelas anak, dari kelas Mamalia, yang disebut superkelas, atau kelas induk.
Seluruh subkelas akan mewarisi (inherits) state dan behaviour dari superkelasnya. Dengan begitu, semua subkelas dari superkelas yang sama akan memiliki state dan behaviour yang sama. Namun, masing-masing subkelas bisa menambah sendiri state atau behaviournya. Misalkan, pada kelas Mamalia tidak terdapat variable BerkukuTajam, namun subkelas Monyet memiliki variabel tersebut. Contoh lain misalnya kelas Anjing tidak memiliki metode MakanMenggunakanTangan, namun Monyet memiliki metode itu.
Dalam kasus tertentu subkelas mungkin memiliki implementasi behaviour yang berbeda dengan superkelasnya. Hal seperti ini disebut override. Contohnya subkelas SepedaBalap memiliki implementasi metode ubahGigi yang berbeda dengan implementasi metode tersebut pada superkelas Sepeda.
Tingkat pewarisan tidak hanya terbatas pada dua tingkatan. Dari contoh di atas, kita bisa saja membuat subkelas dari kelas SepedaBalap, dan seterusnya. Kita bisa terus memperpanjang tingkat pewarisan ini sepanjang yang kita butuhkan. Dengan begitu, subkelas-subkelas yang dibuat akan lebih khusus dan lebih terspesialisasi.
Namun terdapat batasan pewarisan dalam Java yang disebut single inheritance. Artinya sebuah kelas hanya dapat mewarisi sifat dari satu dan hanya satu superkelas saja. Dalam beberapa bahasa pemrograman berorientasi objek lain, yang berlaku adalah multiple inheritance. Artinya sebuah kelas dapat mewarisi sifat dari beberapa superkelas sekaligus.
Dalam Java, terdapat kelas Object yang merupakan superkelas dari semua kelas dalam Java, baik yang builtin ataupun yang kita buat sendiri, lansung maupun tidak langsung. Karena itu sebuah variabel bertipe Object akan dapat menyimpan referensi ke objek apapun dalam bahasa Java. Kelas Object ini memiliki behaviour yang dibutuhkan semua objek untuk dapat dijalankan di Java Virtual Machine. Sebagai contoh, semua kelas mewarisi metode toString dari kelas Object, yang mengembalikan representasi String dari objek tersebut.
Manfaat penggunaan konsep pewarisan antara lain:
1. Kita dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas.
2. Kita dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada. Hal ini berguna jika kita ingin membuat semacam template kelas. Kelas semacam ini disebut kelas abstrak, karena behaviournya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas semacam ini, yang disebut kelas konkret, mengimplementasikan behaviour abstrak tersebut sesuai dengan kebutuhan masing-masing.
Sedikit penjelasan mengenai kelas abstrak, kelas ini bisa memiliki hanya satu atau lebih metode abstrak. Subkelas dari kelas ini bertanggung jawab untuk memberikan implementasi untuk metode-metode abstrak tersebut.
Sebagai akibat dari keberadaan metode abstrak ini, kelas abstrak tidak dapat diinstanskan (dibuatkan instansnya) atau digunakan untuk menciptakan sebuah objek dari kelas tersebut.
Class dapat didefinisikan dengan referensi pada class yang lain yang telah terdefinisi. Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state ( variabel-variabel ) dan behaviour ( methodmethod ) dari superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula memodifikasi ( override ) state dan behaviour yang diturunkan oleh superclass-nya.
Keuntungan dari inheritance adalah Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari
superclass yang telah ada. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan
class dengan behaviour dan state secara umum.
Istilah dalam inheritance yang perlu diperhatikan :
 Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
 Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.
 Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.
 Super
Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass. Methode Overriding. Pendefinisian ulang method yang sama pada subclass. Dalam inheritance, method overriding berbeda dengan method overloading. Kalau method overriding adalah
Mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter yang diperlukan dalam subclass, kalau method overloading adalah mendefinisikan method yang memiliki nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama.
Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi.
Contoh yang konkrit dalam dunia nyata yaitu mobil. Mobil yang ada dipasaran terdiri atas berbagai tipe dan berbagai merk, namun semuanya memiliki interface kemudi yang sama, seperti: stir, tongkat transmisi, pedal gas dan rem. Jika seseorang dapat mengemudikan satu jenis mobil saja dari satu merk tertentu, maka orang itu akan dapat mengemudikan hamper semua jenis mobil yang ada, karena semua mobil tersebut menggunakan interface yang sama. Harus diperhatikan disini bahwa interface yang sama tidak berarti cara kerjanya juga sama. Missal pedal gas, jika ditekan maka kecepatan mobil akan meningkat, tapi bagaiman proses peningkatan kecepatan ini dapat berbeda-beda untuk setiap jenis mobil.
Polimorfisme adalah kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda. Secara harfiah, “poli” berarti banyak sementara “morph” berarti bentuk.
Menunjuk pada contoh sebelumnya pada pewarisan, kita lihat bahwa object SuperHero dapat juga menjadi object FlyingSuperHero atau object UnderwaterSuperHero.
Polimorfisme yang berarti satu objek dengan banyak bentuk yang berbeda, adalah konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya. Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah :
1. Method yang dipanggil harus melalui variabel dari basis class atau superclass.
2. Method yang dipanggil harus juga menjadi method dari basis class.
3. Signature method harus sama baik pada superclass maupun subclass.
4. Method access attribute pada subclass tidak boleh lebih terbatas daribasis class.
Hal yang sangat tidak efisien adalah terjadinya kerangkapan atau duplikat dalam syntax program. Untuk menghindari hal yang demikian dalam Program Berorientasi Object Java, sesuai dengan sifat penurunan dari sebuah inheritance dapat menghindari duplikasi object baik itu field, variable, maupun methode yang sebenarnya bisa diturunkan dari sebuah class.
Perhatikan perbedaan 2 class berikut!
Inheritance dalam Sebuah SalesPersonEmpClass.
public class SalesPersonEmpClass
{
private string empId;
private string empName;
private decimal numOfSales;
public string EmpId
{
get {return this.empId;}
set {this.empId = value;}
}
public string EmpName
{
get {return this.empName;}
set {this.empName = value;}
}
public decimal NumOfSales
{
get {return this.numOfSales;}
set {this.numOfSales = value;}
}
public decimal CalculateMonthlySales()
{
if (this.empId == "1")
{
return (this.numOfSales * 10);
}
else if (this.empId == "2")
{
return (this.numOfSales * 20);
}
}
}

public class TopManagementEmpClass
{
private string empId;
private string empName;
private decimal amtMonthlyBonus;
public string EmpId
{
get { return this.empId; }
set { this.empId = value; }
}
public string EmpName
{
get { return this.empName; }
set { this.empName = value; }
}
public decimal AmtMonthlyBonus
{
get { return this.amtMonthlyBonus; }
set { this.amtMonthlyBonus = value; }
}
public decimal CalculateMonthlyBonus()
{
if (this.empId == "1")
{
return (this.amtMonthlyBonus * 10);
}
else if (this.empId == "2")
{
return (this.amtMonthlyBonus * 20);
}
}
}
Dari kedua class tersebut, sudah terdapat define private variable dan property-propertynya, sehingga kalau kita lihat per Class tanpa melihat Class yang lain hal ini sudah benar menurut kaidah pemrograman yang berorientasi pada object. Tapi, kalau kita lihat keseluruhan Class maka terdapat duplikasi pada kedua variable empId dan variable empName dan hal inilah yang tidak dibenarkan.
Selanjutnya dalam proses kita bisa menjadikan bagian-bagian yang lebih kecil dan spesifik :
1. Membuat EmployeeBaseClass yang akan diturunkan ke kelas SalesPersonEmpClass dan TopManagementEmpClass.
2. Membuat Class untuk SalesPersonEmpClass
3. Membuat Class untuk TopManagementEmpClass.
Berikut adalah ketiga class yang sudah disesuaikan untuk kepentingan proses inheritance dari beberapa class di atas :
public class EmployeeBaseClass
{
protected string empId;
protected string empName;
}

public class SalesEmp:EmployeeBaseClass
{
private decimal numOfSales;
public decimal NumOfSales
{
get { return this.numOfSales; }
set { this.numOfSales = value; }
}
public decimal CalculateMonthlySales()
{
if (this.empId == "1")
{
return (this.numOfSales * 10);
}
else if (this.empId == "2")
{
return (this.numOfSales * 20);
}
}
}

public class TopManagementEmp:EmployeeBaseClass
{
private decimal amtMonthlyBonus;
public decimal AmtMonthlyBonus
{
get { return this.amtMonthlyBonus; }
set { this.amtMonthlyBonus = value; }
}
public decimal CalculateMonthlyBonus()
{
if (this.empId == "1")
{
return (this.amtMonthlyBonus * 10);
}
else if (this.empId == "2")
{
return (this.amtMonthlyBonus * 20);
}
}
}
Dari proses class tersebut kita dapat melihat proses inheritance yang semudah itu, yaitu proses inheritance [SalesEmp:EmployeeBaseeClass] dan [TopManagementEmployeesBaseClass]. Hal yang munkin sulit adalah bagaimana kita memutuskan utnuk membagi bagian-bagian itu menjadi bagian yang lebih kecil dan saling berhubungan. Sehingga bisa diturunkan ke bagian yang lain tanpa terlepas dari kaedah hubungan “Bagian Dari”.

Inheritance merupakan satu dalam Pilar Dasar OOP (Object Oriented Programing), yang dalam implementasinya sebagai sebuah hubungan “adalah bagian dari” atau “is a relationship” object yang diinherit (diturunkan).
Latar belakang diperlukannya suatu inheritance dalam pemrograman java adalah untuk menghindari duplikasi object baik itu field, variable maupun methode yang sebenarnya merupakan object yang bisa diturunkan dari hanya sebuah class. Jadi inheritance bukan sebuah Class yang di inherit oleh sebuah Literial, tapi lebih menunjukkan ke hubungan antar object itu sendiri.
Sedangkan polimorfisme yang berarti satu objek dengan banyak bentuk yang berbeda, adalah konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya. Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah : Method yang dipanggil harus melalui variabel dari basis class atau superclass. Method yang dipanggil harus juga menjadi method dari basis class. Signature method harus sama baik pada superclass maupun subclass. Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.
Dalam membuat program berorientasi java perlu diperhatikan penurunan sifat agar tidak terulang atau terduplikasi dari class atau subclass yang sudah ada, sehingga kerja syntax program dapat lebih efisien dan cara pemahaman bagi operatornya juga mudah.
Program berikut ini mungkin akan tampak aneh. Mengapa kita secara sengaja melupakan tipe dari sebuah object ? Ini semua dapat terjadi bila kita melakukan upcast, dan menjadikannya kelihatan seperti kalau tune() secara langsung mengambil handle dari Wind sebagai sebuah argumen. Ini semua membuat sesuatu yang mendasar : Kalau kita melakukannya, kita harus menuliskan tune() yang baru untuk setiap Instrument didalam system kita. Anggap saja kita mengikuti alasan ini dan menambahkan instrument Stringed dan Brass :
//: Music2.java
// Overloading instead of upcasting

class Note2 {
private int value;
private Note2(int val) { value = val; }
public static final Note2
middleC = new Note2(0),
cSharp = new Note2(1),
cFlat = new Note2(2);
} // Etc.

class Instrument2 {
public void play(Note2 n) {
System.out.println(\"Instrument2.play()\");
}
}

class Wind2 extends Instrument2 {
public void play(Note2 n) {
System.out.println(\"Wind2.play()\");
}
}

class Stringed2 extends Instrument2 {
public void play(Note2 n) {
System.out.println(\"Stringed2.play()\");
}
}

class Brass2 extends Instrument2 {
public void play(Note2 n) {
System.out.println(\"Brass2.play()\");
}
}

public class Music2 {
public static void tune(Wind2 i) {
i.play(Note2.middleC);
}
public static void tune(Stringed2 i) {
i.play(Note2.middleC);
}
public static void tune(Brass2 i) {
i.play(Note2.middleC);
}
public static void main(String[] args) {
Wind2 flute = new Wind2();
Stringed2 violin = new Stringed2();
Brass2 frenchHorn = new Brass2();
tune(flute); // No upcasting
tune(violin);
tune(frenchHorn);
}
} ///:~
Kode diatas dapat dijalankan, tetapi disana ada kekurangan terbesar. Kita harus menuliskan metoda tipe yang spesifik untuk setiap class Instrument2 yang baru kita tambahkan. Ini semua berarti makin banyak kode yang akan kita tulis, tetapi juga berarti kalau kita ingin menambahkan sebuah metoda baru seperti tune() atau sebuah tipe baru dari Instrument, kita mendapatkan kalau perkerjaan kita makin banyak. Dengan menambahkan fakta bahwa kompiler tidak akan memberikan pesan-pesan kesalahan kalau kita lupa meng overload salah satu dari metoda-metoda kita dan seluruh proses pekerjaan dengan tipe menjadi tidak dapat ditangani.
Bukankah dapat menjadi lebih menyenangkan kalau kita hanya menuliskan satu metoda saja yang dapat mengambil class asal sebagai argumennya, dan bukan dari semua class-class turunannya. Itulah memang lebih memudahkan bila kita melupakan adanya class-class turunan, dan menuliskan kode yang hanya berkomunikasi dengan class asal?
Itulah apa yang disediakan oleh polymorphism. Walau bagaimanapun kebanyakan programmer (yang berasal dari latar belakang prosedural) mempunyai sedikit kesulitan untuk beradaptasi dengan polymorphism.
Kesimpulan
Dengan polymorphism pekerjaan seorang programmer dapat dimudahkan dengan menuliskan kode yang lebih sedikit. Untuk mengakses class-class turunan tidak dibutuhkan penulisan kode yang berlainan.

Minggu, 07 Maret 2010

Pengantar Teknologi Informasi (Output Devices)


Saat ini populasi monitor LCD (Liquid Colour Display) semakin meningkat pesat. Selain harganya sudah lebih murah, monitor LCD terkenal lebih hemat listrik dibanding monitor CRT (Cathode Ray Tube). Meski begitu, populasi monitor CRT di indonesia masih lebih banyak ketimbang LCD, mengapa? Meski harganya sudah turun, harga monitor LCD masih belum terjangkau. Harga monitor LCD 17 inch dengan merk cukup terkenal saat ini berkisar 1,6-2 juta rupiah, bandingkan dengan monitor CRT 17 inch real flat dengan merk terkenal seharga 1 jutaan saja. Saya sendiri juga masih menggunakan CRT 15 inch. Apa sih kelebihan LCD daripada CRT? LCD dan CRT memiliki kelebihan dan kekurangan sendiri-sendiri. Berikut penjabaran kelebihan dan kekurangan masing-masing.

LCD dan CRT


1. Warna lebih akurat dan tajam
Monitor CRT memiliki warna yang akurat atau hampir sama dengan aslinya. Karna alasan ini lah para desainer dan editor foto lebih suka menggunakan CRT dibanding LCD. Selain itu, gradasi warna pada monitor CRT masih lebih baik dibanding LCD. Kelebihan soal akurasi dan gradasi warna pada monitor CRT dapat terlihat jika digunakan untuk membuat disain yang kaya warna atau bermain game dengan resolusi tinggi.
2. Resolusi monitor fleksibel
Monitor CRT dapat menggunakan berbagai variasi resolusi tanpa mengalami penurunan kualitas gambar. Sehingga bagi para gamer pas-pasan lebih baik menggunakan CRT karena resolusi game dapat diturunkan tanpa mengorbankan kualitas tampilan.
3. Perawatan mudah, jika rusak dapat di servis
Perawatan monitor CRT masih lebih mudah dibanding LCD, LCD perawatanya harus ekstra hati-hati. Selain itu, jika monitor CRT rusak masih dapat diservis, sedangkan LCD rusak sudah pasti masuk sampah. Selain itu, monitor CRT lebih tahan jika terbentur atau tersentuh jari tangan pada displaynya.
4. Bebas dead pixel, ghosting dan viewing angle
Monitor CRT tidak terdiri dari pixel-pixel seperti LCD, sehingga jelas-jelas tidak akan mengalami dead pixel. Monitor CRT dapat dilahat dari berbagai sisi, tidak seperti LCD yang bergantung pada spesifikasi viewing angle. Monitor CRT tidak mengenal response time, sehingga relatif bebas efek ghosting.
5. Harga lebih murah
Kelebihan dari segi harga inilah yang membuat monitor CRT masih populer. Pada ukuran inch yang sama, dapat dipastikan harga CRT lebih murah dibanding LCD.
Kekurangan monitor CRT
1. Konsumsi listrik
Monitor CRT mengkonsumsi daya listrik 2x lipat dibanding LCD pada ukuran inch yang sama. Monitor CRT 15 inch mengkonsumsi daya antara 60-70 watt sedangkan LCD ukuran 15 inch hanya mengkonsumsi daya maksimal 35 watt. Semakin besar ukuan diagonak monitor, semakin besar pula konsumsi dayanya. Monitor CRT 17 inch real flat menkonsumsi daya hingga 100watt!
2. Bergantung pada refreshrate
Agar mata tidak lelah mengunakan monitor CRT, gunakan refreshrate diatas 70hz. Monitor saya sie mentok di 1024×768 @70hz, cukup membuat lelah mata jika didepan monitor lebih dari 4 jam. Monitor CRT high end mampu menawarkan refreshrate hingga 120hz bahkan lebih. Makin tinggi makin baik tentunya. Hal ini tidak berlaku bagi monitor LCD.
3. Radiasi lebih besar
Tidak dapat dipungkiri, monitor CRT memancarkan radiasi yang lebih besar dibanding monitor LCD. Radiasi ini memiliki dampak negatif bagi mata sehingga mata cepat lelah atau bahkan membuat kepala pusing bagi yang sensitif.
4. Rentan distorsi, glare dan flicker
Ini adalah masalah klasik bagi monitor CRT. Efek distorsi akan terlihat saat kita menggambar lingkaran dengan menggunakan coreldraw atau software lain. Juka refreshrate terlalu rendah, menyebabkan monitor menjadi berkedip-kedip (flicker) dan glare (over brightness).
5. Dimensi besar dan berat
Monitor CRT memiliki ukuran yang besar dan berat, sehingga tidak cocok untuk ruangan sempit, karena banyak makan tempat. Cukup melelahkn jika monitor sering dipindah-pindahkan karena cukup berat. Bayangin aja bawa monitor CRT 19 inch ke lantai 2 menggunakan tangga, cukup berat dan melelahkan bukan?

Udah tau kan kelebihan dan kekurangan monitor CRT? Saya pun sampai sekarang masih menggunakan monitor CRT, mungkin jika ada rejeki ganti ke LCD lah… hehehe.. kelebeihan dan kekurangan LCD? Berikut ulasannya….
Kelebihan monitor LCD
1. Karakter bright yang nyaman dimata serta bebas distorsi
Monitor LCD cenderung terang tapi nyaman dimata. Karakter LCD yang demikian, membuat mata tidak cepat lelah dan betah berjam-jam didepan monitor. Tidak seperti CRT yang kadang over bright. Monitor LCD relatif bebas distorsi dan flicker. Monitor LCD juga memiliki contrast yang cukup baik. Fokus gambar lebih baik dan bebas moire.
2. Tidak bergantung pada refreshrate
Tidak seperti CRT yang harus menggunakan refreshrate yang tinggi agar nyaman dimata, LCD tidak memerlukan refreshrate yang tingi untuk membuat mata nyaman. Memang jarang LCD yang menawarkan refreshrate yang setinggi CRT. Bahkan ada yang mengatakan refreshrate 60hz pada LCD kurang lebih sama 100hz pada CRT.
3. User frendly
Pada monitor CRT, kadang kita harus mengatur geometri, ukuran vertikal, horizontal dan lain sebagainya agar pas di lihat di display. Pada monitor LCD cukup set pada pilihan auto saja, pasti pas di layar.
4. Hemat listrik
Hemat listrik merupakan keunggulan monitor LCD. Pada ukuran diagonal yang sama, konsumsi monitor LCD hanya setengah dibanding konsumsi daya monitor CRT. Monitor LCD cocok dengan tren green computing untuk mengurangi penggunaan energi serta panas yang dilepaskan. Meski begitu, beberapa pengguna masih belum merasakan penghematan energi dari monitor LCD dibanding CRT, kecuali penggunaan dalam jumlah banyak.
5. Ukuran yang ringkas, ringan serta lebih keren
Tidak bisa dipungkiri bahwa ukuran monitor LCD jauh lebih ringkas dibanding CRT. Monitor LCD tidak memakan banyak tempat sehingga cocok ditempatkan di ruangan yang sempit. Monitor LCD juga lebih ringan dibanding CRT sehingga lebih mudah dipindah-pindahkan. Bentuk monitor LCD yang tipis menimbulkan kesan elegan dan techno sehingga terlihat lebih keren.
Kekurangan monitor LCD
1. Viewing angle terbatas, colour depth terbatas dan gradasi warna kurang
Tiap monitor LCD memiliki viewing angle atau sudut pandang yang berbeda-beda. Namun viewing angle-nya tidak se-fleksibel monitor CRT. Monitor CRT dapat dilihat dari berbagai sudut dan sisi, monitor LCD tidak. Colour depth monitor LCD juga terbatas, LCD hanya dapat menampilkan RGB 16,2 juta warna. Perbedaan kedalaman warna ini sangat terasa jika digunakan untuk bermain game atau menonton video beresolusi tinggi. Selain itu, gradasi warna pada monitor LCD kurang baik, meski dalam penggunaan sehari-hari tidak terasa tapi kurang cocok untuk desain grafis dan editing foto/video.
2. Tampilan gambar baik hanya di resolusi native-nya
Monitor LCD memiliki istilah native resolution atau resolusi bawaan untuk menampilkan gambar yang baik. Apabila resolusi diset diatas nativenya, gambar akan terlihat pecah. Jika diset dibawah resolusi nativenya, maka gambar yang dihasilkan cenderung blur dan tidak tajam. Hal ini tidak terjadi di monitor CRT.
3. Response time dan ghosting
Pada monitor LCD, terdapat istilah response time atau waktu respon monitor. Response time yang lambat menimbulkan efek ghosting yang dikarenakan monitor terlambat mersponse tampilan gambar, sehingga pada gambar bergerak terlihat ada bayang-bayangnya. Semakin kecil nilai response time, semakin baik dan cepat responsenya. Efek ghosting kadang masih terlihat di monitor LCD dengan response time 2 ms sekalipun. Ini terlihat saat digunakan untuk bermain game yang memiliki framrate yang tinggi.
4. Warna kurang akurat
desainer atau editor foto cenderung memilih monitor CRT dibanding LCD. Karena warna yang ditampilkan monitor LCD kadang berbeda dengan aslinya. Agar warnah lebih akurat, perlu dilakukan kalibrasi warna dengan perangkat semacam colorimeter yang harganya tidak murah. Namun, secara umum hal ini tidak terasa untuk penggunaan sehari-hari.
5. Harga lebih mahal, perlu perawatan ekstra hati-hati dan dead pixel
Sudah jelas, monitor LCD lebih mahal dibanding monitor CRT, meski sekarang harganya sudah lebih murah, namun masih belum terjangkau bagi banyak kalangan. Monitor LCD juga perlu perawatan ekstra hati-hati dalam membersihkanya, karena komponen LCD yang sensitif. Monitor LCD juga rawan juka terbentur, jadi hati-hati saat memindahkanya. Oiya ada satu lagi kekurangan LCD, awas dead pixel! Monitor LCD terdiri atas pixel-pixel nah dead pixel ini adalah pixel yang rusak atau salah menampilkan gambar, sehingga kehadiran dead pixel ini cukup mengganggu pandangan. Satu lagi, LCD mudah di maling, ckikikikiki….
Udah tau kan kelebihan dan kekurangan CRT dan LCD kan? Jadi jangan sampai salah pilih deh…
Nah....info yg di atas gw ambil dari "tuxlin.wordpress.com"

Keunggulan Printer Dot Matrix dibandingkan Inkjet / Laser, antara lain :

- printer ini masih banyak digunakan karena memang terkenal awet.
- pita printer dot-matrix jauh lebih murah dibandingkan dengan toner (tinta) untuk printer jenis inkjet dan laserjet.
- Jenis printer dot-matrix sangatlah bervariasi, ada yang berjenis color dan ada pula yang non-color.
- Untuk printer color, digunakan pita (karbon/ribon) khusus yang mempunyai 4 warna, yaitu hitam, biru, merah dan kuning.
- Dapat mencetak rangkap sekaligus.
- Dapat mencetak ukuran kertas yang lebar.
Kekurangan Printer Dot Matrix dibandingkan Inkjet / Laser, antara lain :
- pencetak yang resolusi cetaknya masih sangat rendah.
- ketika sedang mencetak, printer jenis ini suaranya cenderung keras
- kualitas untuk mencetak gambar kurang baik karena gambar yang tercetak akan terlihat seperti titik-titik yang saling berhubungan.
- Dpi dan Ppm rendah.
- Geraknya sangat lambat.
- Warna yang dihasilkan tidak bervariasi.


Keunggulan Printer Inkjet dibandingkan Dot Matrix dan Laser, antara lain :
- Tinta untuk mencetak dan kualitas untuk mencetak gambar berwarna cukup bagus.
- Menggunakan teknik semprot, maka printer jenis ini sama sekali tidak menimbulkan suara/brisik seperti halnya printer-printer sebelumnya.
- Menggunakan resolusi cetak yang tinggi (minimal 300 dpi/dot per-inchie), maka hasil cetakkan printer jenis ini biasanya lebih bagus apabila dibanding dengan jenis printer sebelumnya, pada khususnya dalam menghasilkan gambar ataupun grafik.
- Dpi dan Ppm lebih tinggi dibandingkan dot matrix.
- Kebih mudah mencetak gambar dan warna.
- Kemampuan mencetak sampai kertas yang lebar dengan kualitas yang baik.
Kekurangan Printer Inkjet dibandingkan Dot Matrix dan Laser, antara lain :
- tidak bisa mencetak secara rangkap pada saat bersamaan.
- biaya operasional lebih mahal.
- waktu mencetak menjadi lebih panjang.


Keunggulan Printer Laser dibandingkan Printer Dot Matrix dan Inkjet, antara lain :
- Daya cetaknya juga cukup banyak bisa mencapai lebih dari 10 lembar per menit.
- Kualitas hasil cetak laser printer pun sangat bagus, sehingga mirip sekali dengan aslinya.
- Hasil cetakan cepat kering.
- Pilihan huruf yang dimiliki juga sangat beragam, demikian pula style ataupun bentuk dari huruf yang bersangkutan
- Printer jenis ini memakai sistem yang hampir sama dengan sistem yang dipakai oleh mesin foto-copy, sehingga hasil cetakkannya jauh lebih rapi jika dibanding dengan printer-printer sebelumnya.
- Dpi dan Ppm sangat tinggi.
- Efisien untuk mencetak hitam putih.
- Kapasitas warna lebih banyak.
Kekurangan Printer Laser dibandingkan Printer Dot Matrix dan Inkjet, antara lain :
- Tetapi harga printer ini cukup mahal.
- Biaya operasional tinggi.
- Tidak dapat digunakan secara terus menerus.

Sabtu, 13 Februari 2010

Perusahaan Yang Sukses Berkat IT


Sebelumnya saya mohon maaf yang sebesar-besarnya karena ini pertama kali gw posting :D....Perusahaan yang maju atau sukes berkat IT, wah udah banyak kali ya....gw kurang tau dah nama-nama perusahaannya tapi yang satu ini loe pasti udah ngak asing lagi. "Google" ya....perusahaan penyedia layanan jasa search engine ini udah sangat familiar di kalangan pengguna internet, yang blm tau siapa ayo ??? gw rasa gak ada :D. Perusaaan yang bergerak di bidang IT ini memang sangat digemari oleh kalangan pecinta browsing termasuk saya sendiri. okelah ga usah banyak-banyak pembukanya nih gw kasih sedikit profil mengenai Google. Ni artikel gw adopsi dari situs lain...:P



Tentang Google

Google mempunyai misi untuk memberikan pengalaman pencarian di Internet yang terbaik dengan mewujudkan informasi dunia yang mudah diakses dan bermanfaat. Google, pembuat mesin pencarian terbesar di dunia, menawarkan kecepatan, kemudahan pencarian informasi di internet. Dengan mengakses lebih dari 1.3 milyar halaman web, Google mengantarkan hasil yang relevan dengan semua pemakai di seluruh dunia kurang dari setengah detik. Sampai hari ini, Google telah merespon lebih dari 100 juta permintaan pencarian dalam sehari.

Dua mahasiswa Ph.D. dari Stanford, Larry Page dan Sergey Brin, mendirikan Google tahun 1998. Perusahaan pribadi itu mengumumkan pada bulan Juni 1999 bahwa perusahaan itu telah memiliki sumber pendanaan sebesar $25 juta. Sumber pendanaan perusahaan meliputi Kleiner Perkins Caufield & Byers dan Sequioa Capital. Google menyajikan layanan melalui situs publik miliknya, www.google.com. Perusahaan juga menawarkan solusi pencarian web secara co-branded untuk para penyedia informasi.

Tentang Teknologi Google
Teknologi pencarian Google yang inovatif dan tata muka pemakainya yang elegan menempatkan Google pada posisi yang jauh berbeda dari mesin pencarian generasi pertama yang tersedia saat ini. Dibandingkan dengan hanya menggunakan teknologi kata kunci atau metasearch, Google memakai teknologi terbaru PageRank yang sedang dipatenkan, teknologi ini menjamin informasi-informasi yang terpenting akan ditampilkan dahulu.

PageRank menampilkan pengukuran yang objektif mengenai tingkatan halaman web dan diukur dengan cara menyelesaikan sebuah persamaan dengan 500 juta variabel dengan lebih dari 2 milyar kondisi. PageRank menggunakan struktur keterkaitan yang sangat luas seperti dalam sebuah struktur organisasi. Pada intinya, Google menginterpretasikan sebuah keterkaitan dari Halaman A ke Halaman B sebagai sebuah "suara" oleh Halaman A untuk Halaman B. Google menilai pentingnya halaman web berdasarkan perolehan suara yang diperoleh. Google juga menganalisa halaman yang memberikan suara.

Metode-metode pencarian Google yang otomatis dan kompleks tidak membolehkan adanya gangguan dari manusia. Tidak seperti mesin pencari yang lain, Google disusun agar tak seorangpun dapat membeli "tempat yang lebih tinggi" di hasil pencarian atau mengubah hasil pencarian untuk tujuan komersial. Pencarian Google adalah pencarian yang jujur dan obyektif dalam mencari website yang bermutu tinggi dengan cara yang mudah.

Tim Manajemen
Ketua dan CEO, Dr. Eric E. Schmidt
Larry Page, Pendiri & Presiden, produk
Sergey Brin, Pendiri & Presiden, teknologi
Omid Kordestani, Wakil Presiden, Business Development & Sales
Wayne Rosing, Wakil Presiden bidang Engineering
Cindy McCaffrey, Wakil Presiden, Corporate Communications
Joan Braddi, Wakil Presiden, Search Services
Tim Armstrong, Wakil Presiden, Advertising Sales
Urs Hölzle, Google Fellow
Craig Silverstein, Teknologi Direktur

Arti dari Google
Google adalah plesetan dari kata 'googol', yang dipakai oleh Milton Sirotta, keponakan dari ahli matematika Amerika Edward Kasner, untuk menyebutkan angka 1 dan mempunyai 100 angka nol dibelakangnya. Google memakai kata ini dalam menjelaskan misi perusahaan untuk mengorganisasi sedemikian banyaknya informasi yang tersedia di Internet dan didunia ini.

Nah gimana sukes kan ??? hahahah ya iya lah gimana ngak coba
okeh gw rasa cukup untuk posting pertama semoga amal ibadahnya diterima disisinya..LOohh!!!!! :P b'canda semoga dapat bermanfaat bagi pembaca.
 

Design By:
SkinCorner