Jumat, 08 Januari 2010

tgs PBO

Program Class Animal

// class Animal
public class Animal {
private int weight;

public Animal(int w) { weight=w; }

public void setWeight(int w) { weight = w; }
public int getWeight() { return weight; }
public void talk() {
System.out.println("An animal can't talk");
}
}

// class Cow
public class Cow extends Animal {

public Cow() { super(100); }
public void talk() {
System.out.println("Moo!");
}
}

// class Pig
public class Pig extends Animal {
public Pig() { super(40); }
public void talk() {
System.out.println("Grunt!");
}
}

// class Sheep
public class Sheep extends Animal {
public Sheep() { super(65); }
public void talk() {
System.out.println("Baa!");
}
}

// class Bebek
public class Bebek extends Animal {
public Bebek() { super(35); }
public int jumlahTelur=3;
public void talk() {
System.out.println("Kweek!");

}
}









// class Main
public class FarmExample{
public static void main(String[] args) {
Animal[] farm = {new Cow(), new Pig(), new Sheep(), new Bebek()};
Bebek b = new Bebek();
int totalWeight = 0;

for (int i=0; i
totalWeight += farm[i].getWeight();

System.out.println("The total weight of the " + "animals is " + totalWeight);

System.out.println("The animals say:");
for (int i=0; i
farm[i].talk();

System.out.println("Jumlah Telur Bebek adalah "+b.jumlahTelur);

}
}



Output program :
The total weight of the animals is 240
The animals say:
Moo!
Grunt!
Baa!
Kweek!
Jumlah Telur Bebek adalah 3

Permasalah Pada Polymorphism

Polymorphism adalah salah satu dari tiga kemampuan yang mendasar yang dimiliki oleh OOP, setelah data abstraction dan inheritance.

Polymorphism
Melalui inheritance, kita bisa menciptakan sebuah hirarki obyek, baik simple atau kompleks sekali pun. Bayangkan hirarki kompleks seperti hirarki dunia hewan. Hirarkinya pasti berlapis-lapis, tetapi turunan sedalam apapun tetaplah seekor hewan. Polymorphism memungkinkan untuk menukar obyek dari turunan ke obyek superclass-nya. Katakan:
Animal ani = new Animal(); // variable bertipe Animal
ani = new Lion(); // sekarang bertipe Lion
Setelah baris kedua, memanggil method yang didefenisikan di Animal, akan memanggil implementasi method yang ada di Lion. Konsep OOP ini memungkinkan hasil pemanggilan method berubah/berbeda tergantung ke instance obyek mana dia direferensikan. Deklarasi di atas tidak tidak berlaku sebaliknya :
Lion lion = new Animal(); // tidak valid

Polymorphism menyediakan cara yang berbeda pada pemisahan interface dari implementasinya, untuk memasangkan ulang apa dari bagaimana. Polymorphism memberikan organisasi kode yang lebih baik dan kode menjadi lebih mudah dibaca, juga memberikan suatu kemampuan pada program untuk berkembang secara terus menerus baik pada tahap pengembangan awal ataupun pada saat ingin menambahkan kemampuan-kemampuan yang baru.

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

Senin, 04 Januari 2010

TUGAS SERCING DAN SORTING

tugas sorting n searching

SORTING :
Sorting merupakan sebuah algoritma pengurutan yang secara berulang mencari item yang belum terurut dan mencari paling sedikit satu untuk dimasukkan ke dalam lokasi akhir.
Metode ini memiliki konsep memilih data yang maksimum/minimum dari suatu kumpulan data larik L,lalu menempatkan data tersebut ke elemen paling akhir atau paling awal sesuai pengurutan yang diinginkan.
Ide utama dari selection short adalah memiliki elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-1.

*METODE PENGURUTAN :
Tehnik pengurutan dengan cara pemilihan elemen data terkecil utk kemudian dibandingkan & ditukarkan dgn elemen pd data awal Merupakan kombinasi antara sorting dan searching.
Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan tukarkan ke posisi yang tepat di dalam array.
Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil,dan akan ditempatkan di indeks kedua (data[1]), dst.

*ALGORITMA SELECTION SORT :
1.Pengecekan dimulai data ke-1 sampai dengan data ke-n
2.Tentukan bilangan dengan Index terkecil dari data bilangan tersebut
3.Tukar bilangan dengan Index terkecil tersebut dengan bilangan pertama ( I = 1 ) dari data bilangan tersebut
4.Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai didapatkan urutan yg optimal

*LISTING PROGRAM:
#include
#include
#include
void main()
{
int i, j, tmp, jum;
clrscr();
int data []= {29, 27, 10, 8, 76, 21};
jum = sizeof(data) / sizeof(int);
cout << ” data awal = ” << endl;
for(i = 0; i < jum; i++)
cout << setw(4) << data[i];
cout << endl;

for(i = 0; i < jum; i++)
for(j = i+1; j < jum; j++)
if(data[i] > data[j])
{

tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
cout << ” data urut = ” << endl;
for(i = 0; i < jum; i++)
cout << setw(4) << data[i];
cout << endl;
getch();
}

SEARCHING:
Pencarian (Searching) merupakan proses yang fundamental dalam pemrograman, guna menemukan data (nilai) tertentu di dalam sekumpulan data yang bertipe sama. Fungsi pencarian itu sendiri adalah untuk memvalidasi (mencocokkan) data.
Jenis Searching ada dua macam, diantaranya :
1. Pencarian Sekuensial
2. Pencarian Biner

Pencarian Sekuensial : Metode pencarian urut dengan membandingkan target (data yang ingin dicari) dengan data yang ada, dari awal sampai akhir

Pencarian Biner : Metode pencarian data dengan mengambil satu data sebagai acuan (pivot) yang dibandingkan dengan target, dan menghilangkan sebagian data yang lebih kecil atau lebih besar dari target.

LISTING PROGRAM:
Sebagai contoh pendeklarasian searching akan dilakukan pencarian pada elemen array, yaitu mencari indeks dengan nilai yang sudah di tentukan.
#include

int main(){
int A[10]={12, 24, 25, 10, 13, 21, 20, 15, 18, 99};
int bil;

for(int C=0;C<10;C++){


cout<<'\n';
cout<<"masukkan nilai yang akan dicari :";
cin>>bil;
for(int j=0;j<10;j++){
if(A[j]==bil){
cout<<"nilai yang akan dicari terdapat pada indeks ke-"

Rabu, 04 November 2009

Selasa, 22 September 2009
















komentar saya..:
kurang tombol help.

Selasa, 31 Maret 2009

Monitor LCD vs CRT



Mana yang lebih baik CRT atau LCD ? Saat ini banyak produsen monitor yang sudah tidak memproduksi monitor tipe CRT, kenyataan di lapangan hampir seluruh paket komputer yang dijual selalu mengincludekan LCD sebagai monitornya. Namun kita tetap mesti mengerti apa perbedaan CRT dan LCD . apa kelebihan dan kekurangannya ? Apabila anda membuka Warnet , mana lebih baik ? Apakah monitor anda cocok untuk Aplikasi anda ? Berikut perbandingannya singkatnya.



CRT Monitor
Keunggulan utama dari monitor CRT adalah color renderingnya. CRT memiliki tingkat contrast dan ketajaman warna yang jauh diatas dibanding LCD. Memang saat ini banyak peningkatan kualitas LCD yang semakin hari semakin meningkat ketajaman warna serta tingkat contrastnya namun CRT masi menang dalam hal ini. Banyak para Graphic Designer yang rela membeli monitor CRT dengan layar besar dimana harganya tentu sangat mahal, hal ini disebabkan karena Design Graphic memerlukan kualitas warna yang tinggi walaupun tidak dipungkiri bahwa CRT memiliki masa hidup dimana kualitas akan menurun seiring masa hidup tube di dalam monitor.

Keunggulan lain adalah CRT memiliki kemampuan perubahan resolusi yang lebih mudah. Ini karena teknologi MultiSync, dengan mengatur sinar electron di dalam tabung , layar bisa secara mudah diturunkan resolusinya tanpa merusak gambar.

Walaupun 2 keunggulan tsb membuat CRT cukup di minati, namun CRT memiliki kejelekan besar juga yaitu ukurannya yang relatif besar dengan berat yang jauh lebih besar dibanding LCD. Perbandingan berat dan ukuran CRT dan LCD bisa mencapai 80%. Selain itu CRT juga memiliki kelemahan dimana memakan power listrik yang besar , energi listrik di butuhkan sinar electron di dalam tube sehingga monitor menhasilkan panas yang lebih dibanding LCD.



LCD Monitor
Keunggulan utama dari LCD adalah ukuran dan beratnya. Seperti yang di jelaskan sebelumnya, ukuran dan berat LCD bisa lebih kecil atau ringan sampai 80% dibanding CRT dan ini memungkinkan anda menggunakan layar besar tanpa kesulitan.

Selain itu LCD juga lebih aman untuk mata dimana jika dibanding CRT yang menggunakan tabung cahaya dapat menyebabkan ketegangan dan kelelahan pada mata pengguna.

Dibalik keunggulannya, LCD memiliki kelemahan dimana memiliki statik resolusi , Tampilan LCD hanya bisa menampilkan jumlah pixel sesuai dengan kemampuannya tidak bisa lebih dan kurang. Video menjadi salah satu problem utama dalam LCD dimana memiliki respon yang lebih lambat dibanding CRT. Walaupun sudah banyak pengembangan teknologi LCD, terkadang beberapa produk masi mengalami masalah yang sama. Tentu saja pembeli harus berhati hati dalam memilih produk monitor LCD.





Walaupun mempunyai perbedaan dan kelebihan serta kekurangan masing masing, LCD tetap menjadi pilihan utama saat ini. Dimana listrik memiliki peranan penting dalam pemilihan produk LCD. Walaupun secara harga LCD jauh lebih mahal dibanding CRT , pemakaian jangka panjang dapat membuat CRT bisa lebih mahal karena penggunaan listrik anda tentu lebih banyak. Kasarnya, mau investasi untuk beli LCD atau mau investasi bayar listrik mahal ke PLN ?

Bikin performa komputer kamu lebih cepat tanpa software apapun dan gak ribet

Seperti judul nya di atas "Bikin performa komputer kamu lebih cepat tanpa software apapun", nah disini saya akan membagi tips dan trik kepada anda, cara ini sepele dan tidak ribet, yang penting komputer bisa ngebut gak pake lemot, gak pake aplikasi atau software apapun. begini cara nya:

Instal aplikasi/software tidak di DRIVE SYSTEM OPERASI, maksud nya begini, kalo biasanya kita kan instal WINDOWS pada DRIVE C kan, nah ituah yang dinamakan DRIVE SYSTEM OPERASI, jangan sampai kita instal software/aplikasi di drive C tersebut. Jad, kita buat FOLDER baru bernama "INSTAL" (tanpa tanda kutip) pada drive selain pada DRIVE SYSTEM OPERASI.

Nah, setiap aplikasi atau folder yang kita mau instal itu kita instal di FOLDER baru tadi yang bernama "INSTAL". memang sih untuk menginstal aplikasi ada sedikit langkah yang berubah, yaitu ketika kita mau instal ada pilihan "STANDART INSTALATION" dan "CUSTOM INSTALATION"

NAh kita pilih nya "CUSTOM INSTALATION" dan pilih instal pada folder "INSTAL" tersebut. Diajmin komputer akan lebih enteng, soalnya "beban kerja" pada DRIVE SYSTEM OPERASI tidak "sesak karena INSTALAN aplikasi dan software.

Cara yang digunakan ini tanpa software apapun. bisa di tes koq.

Selamat berkomputer ria.

Rabu, 2009 Maret 11

Informasi Mengenai Printer Dot Matrik, Inkjet, Laser Jet, Bubble Jet :

· DOT MATRIK.
Printer ini mencetak dengan cara diketuk seperti halnya mesin tik. Bahkan untuk warnanya pun masih menggunakan pita. Dengan menggunakan printer ini, cetakan dapat langsung dirangkap dengan karbon. Sebab sistem pencetakannya masih menggunakan sistem ketukan. Sebagai sumber warnanya juga masih menggunakan pita seperti layaknya mesin ketik. Berhubung menggunakan pita, maka warna yang dapat dihasilkan pun tidak bervariasi. Hanya hitam, biru, dan merah saja. Dan jarang sekali yang dapat menggunakan ketiga warna ini secara sekaligus.

inkjet

dot matrix

laserjet

Printer dot matrix sangat murah, begitu pula dengan tintanya. Namun, printer dot matrix selain berisik pada saat bekerja juga sangat lamban. Belum lagi kemampuan printer dalam mencetak warna sangat terbatas. Paling banyak hanya ada dua warna cetakan yang dapat digunakan. Meskipun saat ini teknologi printer sudah semakin canggih, namun printer dot matrix masih diproduksi. Sebab printer dot matrix dapat digunakan untuk mencetak dokumen tembusan, yang biasanya digunakan untuk membuat kwitansi, bon, dan dokumen keuangan lainnya. Selain itu, satu lagi yang menjadi kelemahan printer ini adalah geraknya yang sangat lamban dan suaranya yang agak berisik ketika sedang bekerja.
Kelebihan :
Dapat mencetak rangkap sekaligus.
Dapat mencetak ukuran kertas yang lebar.
Biaya printer dan tinta murah
Kelemahan :
Dpi dan ppm rendah
Geraknya sangat lamban
Suaranya berisik ketika bekerja
Warna yang dihasilkan tidak bervariasi.


· INKJET
Inkjet/deskjet yang tersedia di pasaran saat ini memiliki kemampuan untuk mencetak sampai ukuran kertas yang sangat besar, dan dengan kualitas yang sangat baik. Resolusi printer deskjet/inkjet saat ini dapat mencapai 5760×1440 dpi. Inkjet mencetak dengan cara memasukkan satu demi satu titik warna ke area gambar. Cara inilah yang membuat hasil yang diperoleh dari printer Inkjet sangat baik. Namun, cara ini juga memiliki kelemahan, yaitu waktu pencetakan menjadi lebih panjang.

inkjet

dot matrix

laserjet

Mutu Cetak
Pada umumnya printer inkjet warna memiliki resolusi warna maksimal, yakni 4.800 x 1.200 titik per inci
Biaya per halaman
Biaya tinta mempunyai efek paling besar pada biaya keseluruhan printer inkjet. Penjual umumnya menjual cartridge tinta sekitar US$ 20-40 per warna (cyan, magenta, yellow) dan US$ 10-35 untuk warna hitam. Makin murah sebuah cartridge, kian sedikit volume tinta. Satu cartridge bisa mencetak 300-800 halaman.
Keunggulan :
Dpi & ppm lebih tinggi dari pada dot matrik
Lebih mudah mencetak gambar dan warna
Kemampuan mencetak sampai kertas yang lebar dengan kualitas yang baik
Kelemahan :
Tidak dapat mencetak rangkap
Biaya operasional lebih mahal
Waktu mencetak menjadi lebih panjang


LASER JET
Printer laser biasanya digunakan pada perusahaan-perusahaan untuk mencetak dokumen hitam putih. Printer laser memang sangat efisien dalam mencetak hitam putih. Karena di samping sangat cepat, kapasitas warnanya lebih banyak dibandingkan dengan printer indoor lainnya. Sebenarnya printer laser juga ada yang tersedia untuk mencetak dokumen berwarna atau bergambar. Namun di samping ukuran kertasnya yang terbatas, harganya pun sangat mahal. Printer laser menggunakan serbuk sebagai sumber warnanya. Berbeda dengan inkjet/deskjet yang menggunakan tinta sebagai sumber warnanya.

inkjet

dot matrix

laserjet

Kemampuan printer laser dalam mencetak sangat cepat. Minimal dua kali lebih cepat dari printer inkjet. Harga tintanya pun masih lebih murah untuk jumlah cetakan yang sama. Hanya saja, harga printer laser lebih mahal ketimbang inkjet, apalagi untuk yang berwarna.Kerja printer laser mirip dengan mesin fotocopy, yaitu menggunakan photographic drum. Kualitas cetakan yang dihasilkan selain cepat juga cukup tajam dan hemat biaya tinta. Printer laser sangat tepat digunakan bagi mereka yang frekuensi mencetaknya sangat tinggi. Biasanya adalah perkantoran perkantoran. Namun, tidak menutup juga home user menggunakan printer laser. Hanya saja untuk printer laser berwarna yang kualitasnya sama dengan inkjet, harganya dapat dua kali lebih besar dari printer inkjet itu sendiri.

Keunggulan :
Dpi, ppm sangat tinggi
Efisien untuk mencetak hitam putih
Kapasitas warna lebih banyak dibanding printer indoor lainnya.
Kelemahan :
§ Biaya operasional tinggi
§ Tidak dapat digunakan secara terus menerus.

· BUBLE JET
Printer ini memang masih terhitung cukup mahal. Meskipun gambar dapat dikatakan menyerupai hasil cetakan film. Saat ini, ia memang belum dapat mencetak pada ukuran kertas yang besar sehingga ukurannya juga dapat dikatakan kecil. Printer ini biasanya dapat digunakan langsung dengan kamera tanpa perantara komputer. Karena selain dilengkapi dengan konektor USB, ia juga dilengkapi dengan card reader. Kini juga sudah tersedia printer photo portable yang dapat juga digunakan sebagai slide show.
Keunggulan :
Stabil, respond dan suara sangat lembut.
Dapat digunakan langsung dengan kamera tanpa perantara computer

Kekurangan :
Cartridge mahal
Hasil menggenang apabila terkena air