You are currently browsing the category archive for the ‘Belajar’ category.

Ceritanya, ada sebuah keluarga yang baru kedatangan anggota keluarga baru. Karena bingung memilihkan nama untuk anggota baru tersebut, maka diputuskanlah untuk memberi nama dengan mengambil huruf kedua dari nama depan kakak-kakaknya.

Ditampunglah nama depan kakak-kakak dalam sebuah array bertipe String yang diberi nama “names“. Kakaknya ada 7 orang.
String[] names = new String[7];

Kemudian, dibuat lagi array, tetapi bertipe char, yang diberi nama “secondChars“.
char[] secondChars = new char[7];

Setelah semua nama depan kakak-kakak ditampung, maka diambillah karakter kedua dari setiap nama depan tersebut untuk kemudian ditampung sementara di secondChars.
for(int i = 0; i < names.length; i++) {
secondChars[i] = names[i].charAt(1);
}

Method charAt(int x) ini mengambil karakter ke-x. Tetapi penghitungan x dimulai dari 0, sehingga untuk mengambil karakter kedua maka nilai x = 1. Jadi dipanggillah charAt(1).

Dengan demikian, secondChars telah menampung semua karakter kedua dari setiap nama depan kakak-kakak. Selanjutnya dibuatlah nama baru dari hasil perolehan secondChars.
String newName = new String(secondChars);
Pembuatan objek dari String menggunakan konstruktor String(char[] value). Konstruktor ini akan menghasilkan String yang berisi array bertipe char. Jadi, secondChars yang merupakan array of char dibentuk menjadi String.

Sedikit cuplikan dari hasil chatting dengan teman.

—————————————-

…..

ariefdolants: iya, ane lebih suka Troubleshooting dari pada Coding…
M. Nizar Kharis: oh gitu
M. Nizar Kharis: ya pas lah di support
ariefdolants: iya sih…asal gji sama kaya Develop
ariefdolants: gmn?
M. Nizar Kharis: tunjukin kemampuan anda
ariefdolants: FIki dah dateng nih….
M. Nizar Kharis: kembangkan
ariefdolants: mo tunjukin apa…
M. Nizar Kharis: jadikan perusahaan tergantung sama anda
ariefdolants: ilmu gw masih dikit…
M. Nizar Kharis: bukan anda yang tergantung sama perusahaan
ariefdolants: Good Philosophy…
M. Nizar Kharis: lha katanya seneng belajar
M. Nizar Kharis: eh iya yah bagus juga filosofinya
M. Nizar Kharis: refleks tuh
ariefdolants: boong banget lo…
M. Nizar Kharis: baru nemu pas tadi nulis buat kamu
M. Nizar Kharis: sumpeh
M. Nizar Kharis: baru kepikiran tadi
ariefdolants: samber gledek ya?
M. Nizar Kharis: ah simpen ah kata2ku sendiri
M. Nizar Kharis: terima kasih udah mampu bikin aku ngeluarin kata2 bagus

……

——————————————————

Good quote hari ini: Tunjukin kemampuan anda, kembangkan. Jadikan perusahaan tergantung sama anda, bukan anda yang tergantung sama perusahaan.

Dapet artikel ini dari milis. Semoga bermanfaat.

—————————————

KUALITAS PENDIDIKAN TERBAIK DI DUNIA

—————————————

Maaf, untuk postingan yang ini telah saya edit dari postingan yang sebelumnya. Ternyata ada permasalahan mengenai penulis sebenarnya dari artikel dengan judul di atas. Untuk membaca isi dari artikel tersebut, lebih baik langsung menuju ke link berikut:

http://groups.yahoo.com/group/sd-islam/message/11109

http://groups.yahoo.com/group/1001buku/message/19445

Di milis sd-islam tulisan tersebut dikirim pada 9 April 2007 oleh Satria Dharma dengan tanggal penulisan artikel tertera “Balikpapan, 5 Oktober 2005″. Sedangkan, di milis 1001buku tulisan tersebut dikirim pada 6 Mei 2007, dan tertera tulisan “Oleh : Andri Aji Saputro“.

Kemungkinan munculnya permasalahan mengenai penulis artikel muncul karena artikel tersebut telah melewati beberapa forward ke milis-milis jadi (mungkin) timbul kesalahan yang (mungkin) tidak disengaja. Yah, artikel tersebut memang bagus sih. Salut buat penulisnya.

Lagi-lagi ada yang nanyain, “kapan lulus?”. Kali ini Mba alumni Fasilkom 90-an. Aku jawab seperti biasa, “Insya Allah (semoga masih bisa) lulus semester ini, Mba.” Yang dikurung itu ucapan dalam hati.

Waduh, makin merasa berdosa aja nih aku. Padahal tinggal 11 sks lagi. Tapi 9 sks di antaranya bebannya melebihi 135 sks yang lain (karena syarat minimal 144 sks). Yah, mungkin karena aku anggap sebagai beban kali ya, jadi rasanya berat banget.

Laporan KP baru 2 halaman (cover + lembar pengesahan, hahaha). TA, bagaimana nasib dikau di tanganku? Hiks.

La haula walaa quwwata illaa billaah. Inna Ma’al ‘usri yusro.

Tulisan bagus nih. Menganalogikan reputation system pada peer-to-peer dengan reputation pada kehidupan sehari-hari manusia lewat pembicaraan dari mulut ke mulut.

http://www.markcarey.com/web-dawn/archives/p2p-reputation-systems.html

PeerSim merupakan library yang ditulis dengan bahasa Java yang difungsikan untuk mensimulasikan jaringan peer-to-peer (P2P). Jaringan P2P perlu disimulasikan karena jaringan P2P bisa menjadi jaringan yang sangat besar skalanya, jumlah node yang tergabung di dalamnya dapat tumbuh secara dinamis karena bisa kapan saja gabung dan meninggalkan jaringan P2P. Untuk menguji coba sebuah protokol pada lingkungan jaringan yang seperti itu tentu saja merupakan pekerjaan yang tidak mudah.

Simulator PeerSim berbasis komponen sehingga mudah dan cepat untuk membuat prototype dari sebuah protokol, yaitu dengan mengkombinasikan bermacam building blocks yang merupakan objek-objek Java.

PeerSim 1.0 mendukung dua jenis model simulasi: cycle-based dan event-based (lebih tradisional). Model cycle-based merupakan model yang disederhanakan yang memungkinkan untuk mendapatkan performance dan scalability yang tinggi, tetapi harus dibayar dengan hilangnya kondisi nyata (loss of realism). Beberapa protokol bisa mentoleransi loss ini tanpa masalah. Asumsi penyederhanaan yang digunakan pada model cycle-based adalah kurangnya simulasi pada transport layer dan kurangnya concurrency.

PeerSim menganjurkan modular programming berbasis objek (building block). Semua objek yang dibuat selama simulasi berlangsung merupakan instance dari kelas-kelas yang
meng-implement satu atau lebih interface. Interface-interface utama dalam PeerSim adalah:
- Node
Jaringan P2P disusun atas node-node. Interface Node menyediakan akses ke protokol dan ke fixed ID dari node.
- CDProtocol
Protokol khusus yang didesain untuk berjalan dalam model cycle-driven. Protokol
semacam ini mendefinisikan operasi yang dilakukan pada tiap cycle.
- Linkable
Interface ini menyediakan servis kepada protokol lain untuk mengakses sekumpulan
node-node yang bertetangga (a set of neighbor nodes). Biasanya di-implement oleh
protokol.
- Control
Kelas-kelas yang meng-implement interface ini dapat dijadwalkan untuk dieksekusi pada poin-poin tertentu selama simulasi berjalan. Kelas-kelas ini biasanya mengamati atau
memodifikasi simulasi.

Ide umum dari simulasi PeerSim:
1. Pilih ukuran jaringan (banyaknya node)
2. Pilih satu atau lebih protokol yang ingin diuji
3. Pilih satu atau lebih objek Control untuk memonitor properti yang dikehendaki dan
untuk memodifikasi beberapa parameter selama simulasi berjalan. Parameter tersebut
bisa berupa ukuran jaringan, internal state dari protokol, dsb
4. Jalankan simulasi dengan memanggil kelas Simulator beserta file konfigurasinya. File konfigurasi berisi informasi2 di atas.

Life-cycle dari simulasi PeerSim dengan model cycle-based:
1. Baca file konfigurasi yang diberikan sebagai parameter saat Simulator dipanggil.
2. Simulator men-set-up jaringan dan menginisialisasi node-node dan protokol. Inisialisasi perlu dilakukan untuk men-set-up initial state dari protokol. Fase inisialisasi dilakukan oleh objek Control yang dijadwalkan untuk berjalan hanya pada permulaan eksperimen. Pada file konfigurasi, inisialisasi ini dapat dengan mudah dikenali dengan prefiks init.
3. Setelah inisialisasi, cycle-driven engine memanggil semua komponen (protokol dan
control) sekali dalam tiap cycle, sampai sejumlah cycle yang dikehendaki, atau hingga
sebuah komponen memutuskan untuk mengakhiri simulasi. Setiap objek dalam PeerSim
(protokol dan control) memiliki objek Scheduler yang mendefinisikan kapan mereka akan
dieksekusi. Secara default, semua objek dieksekusi pada setiap cycle. Tetapi masih bisa dikonfigurasi agar protokol dan control berjalan hanya pada cycle tertentu, dan bisa juga untuk mengatur urutan jalannya komponen pada setiap cycle, seperti pada skenario berikut:

|C1 C2 P C3|C1 C2 P C3|C1 C2 P C3|…     |C4         |
|                   |                    |                    |        |FINAL |
init              0                   1                    2     last                  cycle
C = Control; P = Protocol
4. Ketika Control telah mengumpulkan data, data tersebut diformat dan dikirimkan ke standard output dan bisa di-redirect ke file untuk di-collect lebih lanjut lagi.

Referensi:
Gian Paolo Jesi. PeerSim HOWTO: Build a new protocol for the PeerSim 1.0 simulator. Desember 2005

Apa arti keyword this dan super dalam Java?

this” keyword has 2 meanings:
1. to denote a reference to the implicit parameter
contoh:


class Employee {

private String name; // instance field

private double salary; // instance field

public Employee(String name, double salary) {

this.name = name;

this.salary = salary;

}

}

Keyword “this” di atas menunjukkan implicit parameter, yaitu objek yang sedang diibuat. “this.name” dan “this.salary” menunjuk ke instance field, sedangkan variabel di sebelah kanan tanda “=” menunjuk ke parameter constructor.

2. to call another constructor of the same class
contoh:


class Employee {

private String name;

private double salary;

public Employee(String n, double s) {

name = n;

salary = s;

}

public Employee(double s) {

this("Unnamed Employee", s);

}

}

Keyword “this” di sini memanggil constructor Employee(String, double).

super” keyword has 2 meanings:
1. to invoke a superclass method
contoh:


class Employee {

private double salary;

...

...

public double getSalary() {

return salary;

}

...

...

}

class Manager extends Employee {

private double bonus;

...

...

public double getSalary() {

double baseSalary = super.getSalary();

return baseSalary + bonus;

}

...

...

}

Keyword “super” di sini digunakan untuk memanggil method “getSalary()” yang ada di superclass “Employee“. Jika keyword “super” dihilangkan, maka akan terjadi pemanggilan berulang-ulang tak-hingga terhadap method yang sama (getSalary()), yang bisa menyebabkan program menjadi crash.

2. to invoke a superclass constructor
contoh:


import java.util.*;

class Employee {

private String name;

private double salary;

private Date hireDay;

public Employee(String n, double s,int year, int month, int day) {

name = n;

salary = s;

GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);

hireDay = calendar.getTime();

}

...

...

}

class Manager extends Employee {

private double bonus;

...

...

public Manager(String n, double s,int year, int month, int day) {

super(n, s, year, month, day);

bonus = 0;

}

...

...

}

Keyword “super” di atas memanggil constructor superclass “Employee” dengan parameter n, s, year, month, dan day. Karena constructor “Manager” tidak bisa mengakses private fields dari class “Employee“, maka harus menginisialisasinya lewat constructor. Constructor tersebut dipanggil dengan sintaks “super“. Pemanggilan menggunakan “super” harus menjadi statement pertama dalam constructor subclass.

Dalam pemanggilan constructor, “this” dipakai untuk mengirimkan construction parameter ke constructor lainnya dalam class yang sama, sedangkan “super” mengirimkannya ke constructor superclass.

Referensi: Horstmann, Cay S., Gary Cornell, 2000. Core Java 2: Volume I-Fundamentals. Prentice Hall PTR

Ikuti

Get every new post delivered to your Inbox.