Monthly Archives: October 2013

“Array, Vector, and ArrayList”


ARRAY

Array merupakan bagian dari struktur data dengan sekumpulan tipe data yang sama dan dinyatakan dengan nama yang sama juga. Array diakses melalui index dan dideklarasikan menggunakan [ ]. Deklarasi array tidak mengalokasikan memori. Array dapat digunakan setelah membuat array-nya terlebih dahulu. Index array dimulai dari 0 (arr[0]).

Contoh Deklarasi Array : 

double[] myList = new double[10];

atau

double[] myList;

myList = new double[10];

 

VECTOR

Vector adalah sebuah class yang diturunkan dari interface Collection, yaitu sebuah interface yang digunakan untuk pengolahan data yang bersifat seperti array dinamis. 

Arti dari array dinamis sendiri adalah array yang ukurannya dapat membesar secara dinamis ketika data yang dimasukkan melebihi daya tampung (overloaded). Setiap metode di dalam vector diberi keyword synchronized.

Contoh Deklarasi Vektor :

Vector<Kelas> variable = new Vector <Kelas>();

 

ARRAY LIST

ArrayList adalah sebuah class yang sama dengan Vector dan memiliki fungsi yang hampir sama dengan Vector, namun perbedaannya terletak pada metode yang dimiliki oleh ArrayList. Arraylist bersifat dinamis dan bisa digunakan jika kita membutuhkan array dengan batas maksimum yang tak terbatas dengan mengimplementasikannya menggunakan object.

Contoh Deklarasi ArrayList : 

ArrayList<Kelas> variable = new ArrayList<Kelas>();

 

Persamaan antara Array, ArrayList, dan Vector :

– ArrayList hampir mirip dengan Array biasa, tetapi ArrayList memiliki daya tampung yang bisa bertambah secara dinamis tanpa memiliki batas.

– Sedangkan Vector adalah implementasi dari Array dinamis yang hampir sama dengan ArrayList.

 

Perbedaan antara Array dan Arraylist :

– Daya tampung yang dimiliki Array hanya mampu menampung dari yang sudah di deklarasi

– Untuk ArrayList tidak mempunyai batas tampung seperti Array karena bentuknya yang dinamis sehingga daya tampungnya bisa membesar secara dinamis.

 

Perbedaan antara ArrayList dan Vector :

– Nama metode dari keduanya yang berbeda untuk melakukan tugas yang sama.

– ArrayList tidak thread safe sedangkan Vector sudah thread safe.

– Di dalam Vector semua metode diberi keyword synchronized sedangkan dalam ArrayList tidak ada seperti itu.

– Dalam ArrayList eksekusinya mengalami kemacetan, sedangkan untuk Vector eksekusi nya tidak mengalami kemacetan.

“Abstract Class & Interface”


Abstract Class : Merupakan class yang khusus dibuat untuk keperluan inheritance. Tujuan dari pembuatan abstract class adalah untuk membuat definisi umum bagi class-class yang akan menjadi turunan dari abstract class tersebut.

Abstract Class tidak bisa diinstansiasi dan Abstract method tidak mempunyai implementasi, sehingga penulisannya hanya dilakukan dengan menyertakan semikolon, bukan blok method {} seperti biasanya. Abstract method ini bisa digunakan oleh class turunannya dengan melakukan override.

Interface : Berfungsi sebagai antarmuka yang membentuk komunikasi dengan kode lain. Misalnya membentuk hubungan antara sebuah object dengan object yang lain atau hubungan antara object sebagai penyedia dengan kode penggunanya.

 Perbedaan Abstract Class & Interface 

Perbedaan
Abstract Class   Interface
Sebuah class hanya mampu menurunkan satu abstract class Sebuah class mampu menurunkan beberapa interface
Bisa berisi abstract dan non-abstract method Hanya boleh berisi abstract method
Method boleh bersifat static  Method tidak boleh bersifat static 
Method boleh bersifat final Method tidak boleh bersifat final
Hanya bisa meng-extend satu abstract class lainnya Bisa meng-extend satu interface atau lebih
Bisa mendeklarasikan constant dan instance variable. Hanya bisa mendeklarasikan constant.  Secara implisit, variabel yang dideklarasikan di interface bersifat public, static dan final. 
Modifier harus ditulis sendiri  Modifier tidak perlu ditulis karena secara implisit modifier untuk method di interface adalah public dan abstract.
Mempunyai contructor Tidak mempunyai constructor
Boleh mempunyai metode yang sudah diimplementasikan Tidak boleh mempunyai metode yang sudah diimplementasikan 
Sebuah abstract class dapat memiliki field dan constant yang telah didefinisikan Tidak ada field yang bisa didefinisikan dalam interface

Contoh Abstract Class 

 

public class Point extends Shape {

static int x, y;

public Point() {

x = 0;

y = 0;

}

public double area() {

return 0;

}

public double perimeter() {

return 0;

}

public static void print() {

System.out.println(“point: ” + x + “,” + y);

}

public static void main(String args[]) {

Point p = new Point();

p.print();

}

}

Contoh Interface 

 

public class Point implements Shape {

static int x, y;

public Point() {

x = 0;

y = 0;

}

public double area() {

return 0;

}

public double volume() {

return 0;

}

public static void print() {

System.out.println(“point: ” + x + “,” + y);

}

public static void main(String args[]) {

Point p = new Point();

p.print();

}

}

“Struktur Pemilihan / Selection”


Pada post ini, saya akan membahas 4 variasi dari struktur kontrol selection : 

1. Simple Selection (Simple IF Statement)

Simple selection terjadi jika harus memilih diantara dua alternatif yang ada, tergantung dari hasil kondisi apakah True atau false.
Keyword yang digunakan adalah : IF, THEN, ELSE, dan ENDIF.
Contoh :

IF saldo < $300 THEN

    bunga = 0.05

ELSE

    bunga = 0.1

ENDIF 

2. Simple Selection tanpa cabang

Simple selection ini terjadi jika sebuah statement hanya bisa dikerjakan bila kondisinya adalah TRUE.
Contoh:

IF Saldo > $300 THEN

    bunga = saldo * 0.1

ENDIF 

3. Combined Selection 

Combined Selection terjadi jika kondisi yang harus diperiksa lebih dari satu. Kondisi tersebut dapat dihubungkan dengan menggunakan AND atau OR. 
Contoh:

IF saldo > 300 AND kode = 1 THEN

     bunga = saldo * 0.1

ELSE

     bunga = saldo * 0.05

ENDIF

Note : Statement “bunga = saldo * 0.1”, akan bisa dikerjakan jika kedua kondisi yaitu saldo > 300 dan Kode = 1 bernilai TRUE.
Hal ini dikarenakan penghubung yang digunakan adalah AND.
Jika memakai OR, maka hanya membutukan salah satu kondisi yang bernilai TRUE dan Statement “bunga = saldo * 0,1” bisa dikerjakan.

4. Nested Selection 

Nested selection terjadi jika di dalam IF terdapat statement IF yang lain. Ada dua jenis nested selection :

– Linear Nested IF statement : Terjadi jika satu kondisi di cek untuk beberapa nilai.

Contoh:

IF record_code=‘A’ THEN

increment counter_A

ELSE

IF record_code=‘B’ THEN

increment counter_B

ELSE

IF record_code=‘C’ THEN

increment counter _C

ELSE

increment error_counter

ENDIF

ENDIF

ENDIF

– Non-Linear Nested IF statement : Terjadi jika beberapa kondisi harus diperiksa sebelum suatu statement dikerjakan.

Contoh : 

IF student_attendance=part_time THEN

IF student_gender=female THEN

IF student_age >21 THEN

add 1 to mature_fem_pt_students

ELSE

add 1 to young_fem_pt_students

ENDIF

ELSE

add 1 to male_pt_students

ENDIF

ELSE

add 1 to full_time_students

ENDIF

“Dasar-dasar Overclocking”


Overclocking adalah cara untuk membuat perangkat dari suatu komputer berjalan pada kecepatan yang lebih tinggi daripada kecepatan yang ditentukan oleh perangkat tersebut. Prinsipnya Overclock membuat kinerja menjadi lebih tinggi atau dipaksakan untuk “melebihi kemampuan aslinya”.

Proses ini dapat beresiko menyebabkan berkurangnya kestabilan sistem sampai rusaknya kinerja periferal komputer yang di-overclock tersebut. Namun hal tersebut dapat diminimalisasikan semenjak banyaknya perangkat keras yang dibuat dengan spesifikasi yang cocok untuk dilakukannya overclock.

Mainboard, Prosesor, RAM, dan VGA merupakan contoh perangkat keras yang biasanya di-overclock dan hasilnya pun antara kinerja menjadi lebih baik dan cepat atau menjadi tak stabil dan mengalami kerusakan.

Kerusakan perangkat keras karena di-overclock terutama disebabkan oleh panas yang berlebih (Overheat). Untuk menghindari hal tersebut, banyak cara yang bisa dikerjakan :

– Memperbaiki sistem aliran udara dalam casing

– Memperbaiki heatsink CPU / Chipset / VGA dengan cara lapping atau bahkan menggantinya dengan pendingin berkualitas yang saat ini banyak dijual di toko-toko komputer di Indonesia.

Sistem pendinginan pun ada banyak macamnya dari yang standar sampai yang paling ekstrim seperti : 

– HSF (Heat Sink Fan) yang standar dan umum digunakan dimana pendinginan berasal dari kipas (Fan)

– Water Cooling

– Liquid Nitrogen [-280C]

– Liquid Helium [-300C]

– Dry ice

“Modularisasi”


Modularisasi digunakan bila ada suatu permasalahan yang kompleks, sehingga langkah pertama adalah mengidentifikasikan tugas utama, setelah itu baru di bagi kedalam tugas yang lebih rinci. 

Proses Modularisasi dapat disebut juga sebagai “Top-Down Design”.

– Keuntungan dari Modularisasi (Modular Design) : 

1. Ease of understanding : Mudah untuk dipahami karena prosesnya adalah membagi modul yang kompleks menjadi modul-modul kecil yang lebih mudah dipahami secara rinci.

2. Reusable code : Kode dapat digunakan kembali.

3. Elimination of redudancy : Menghapus jumlah berlebihan yang tidak dibutuhkan.

4. Efficiency of maintenance : Pemeliharaan / Perawatan menjadi lebih efisien.

– Berikut adalah 6 langkah dari Modularisasi :

1. Definisi Masalah

– (Klasifikasikan masalah ke dalam Input, Proses, dan Output)

2. Pengelompokkan Kegiatan dalam Modul

– (Definisikan kegiatan dari modul-modul yang ada secara garis besar)

3. Hierarchy Chart

– (Membuat bagan susun untuk menjelaskan hirarki dan hubungan antara modul / kegiatannya)

4. Logika Main Program

– (Buat logika dari Main Program dengan pseudocode, utamakan apa saja yang dikerjakan oleh program terlebih dahulu)

5. Merancang Pseudocode bagi Modul

– (Buat logika untuk tiap-tiap modul dengan pseudocode-nya)

6. Desk Checking Algoritma

– (Mengecek kebenaran algoritma dengan data yang tersedia, minimal 2 data untuk desk checking)

%d bloggers like this: