Showing posts with label Belajar. Show all posts
Showing posts with label Belajar. Show all posts

Sequential dan Binary Search


Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari depan ke belakang atau dari awal sampai akhir.
Kelebihan dari proses pencarian secara sequential ini jika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat. Tetapi dibalik kelebihannya ini, teknik ini juga memiliki kekurangan.


  1. Jika data yang dicari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu yang lama dalam proses pencariannya.
  2. Beban komputer akan semakin bertambah jika jumlah data dalam array sangat banyak.
Berikut contoh programnya :

import javax.swing.JOptionPane;

public class SeqSearch {
public static void main (String[] args) {
// diberikan array data yang tidak terurut
int [] data = {1, 5, 9, 3, 6, 2, 11, 19, 7, 10, 89};

// mengambil input berupa kunci yang akan dicari
String keyStr = JOptionPane.showInputDialog("Data yang dicari:");

// mengkonversi kunci yang bertipe String ke int agar sesuai dengan
// tipe data pada array
int keyInt = Integer.parseInt(keyStr);

// penanda apakah data ditemukan atau tidak
// nilai awal adalah false atau tidak ketemu
boolean ketemu = false;

int i = 0; // iterator atau variabel perulangan
int idx = -1; // variabel untuk menampung index

// lakukan perulangan ketika tidak ketemu dan iterator kurang dari
// panjang array
while(!ketemu && i < data.length) {
// mengeset index pada posisi perulangan
idx = i;
if(keyInt == data[i]) {
// jika kunci sama dengan data pada index di posisi perulangan
// maka ketemu bernilai true
ketemu = true;
}
// increment i = i + 1
i++;
}

/* ===========================================
* Pernyataan
* x = ekspresi ? nilai1 : nilai2
* sama artinya dengan pernyataan
* if(ekspresi) {
* x = nilai1;
* } else {
* x = nilai2;
* }
* ===========================================
*/
String pesan = ketemu ? "Data ketemu pada index: " + idx : "Data tidak ketemu";

// menampilkan hasi pencarian
JOptionPane.showMessageDialog(null, pesan);
}
}

Program lainnya :


// metoda pencarian menggunakan sequential search
class sequential_search{
public static void main(String[]args) throws Exception {
int a[] = new int[4];
int x,i,posisi;
boolean ada;
a[0] = 2;
a[1] = 62;
a[2] = 32;
a[3] = 42;
ada = false;
posisi = 0;
x = 32;
for (i=0; i<=3; i++){
if (a[i] == x) {
ada = true;
if (ada== true){
System.out.print(” ketemu posisi ” + (i+1));
}
else{System.out.print(” tidak ada “);}
}
}
}
}

Binary search adalah algoritma pencarian untuk data yang terurut. Pencarian dilakukan dengan cara menebak apakah data yang dicari berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan data yang ada ditengah.
Bila data yang ditengah sama dengan data yang dicari, berarti data ditemukan. Namun, bila data yang ditengah lebih besar dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan berada disebelah kiri dari data tengah dan data disebelah kanan data tengah dapat diabai.
Upper bound dari bagian data kiri yang baru adalah indeks dari data tengah itu sendiri. Sebaliknya, bila data yang ditengah lebih kecil dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan besar berada disebelah kanan dari data tengah. Lower bound dari data disebelah kanan dari data tengah adalah indeks dari data tengah itu sendiri ditambah 1. Demikian seterusnya..

contoh program Binary search :

import javax.swing.JOptionPane;

public class BinarySearch {
public static void main(String args[]) {
// diberikan sebuah array data yang sudah terurut naik
int [] data = {2, 5, 8, 10, 14, 32, 35, 41, 67, 88, 90, 101, 109};

// mengambil input berupa kunci yang akan dicari
String keyStr = JOptionPane.showInputDialog("Data yang dicari:");

// menkonversi tipe String dari hasil input ke int agar sesuai dengan
// tipe data pada array
int keyInt = Integer.parseInt(keyStr);

// penanda untuk pencarian, apakah ketemu atau tidak,
// nilai awal adalah false atau tidak ketemu
boolean ketemu = false;

int idxLeft = 0; // variabel untuk index kiri
int idxRight = data.length - 1; // variabel untuk index kanan
int idxMid = -1; // variabel untuk index tengah

// lakukan perulangan ketika tidak ketemu dan
// index kiri kurang dari atau sama dengan index kanan
while(!ketemu && idxLeft <= idxRight) {
// membagi array menjadi dua bagian, array kiri dan kanan
// dengan index tengah sebagai pemisah
idxMid = (idxLeft + idxRight) / 2;
if(data[idxMid] == keyInt) {
// jika data pada index tengah sama dengan kunci yang dicari
// maka stataus ketemu adalah not false atau true
ketemu = !ketemu;
} else { // jika tidak maka
if(keyInt < data[idxMid]) {
// jika kunci lebih kecil dari data pada index tengah
// maka set index kanan menjadi index tengah - 1
// dan pencarian beralih ke array kiri
idxRight = idxMid - 1;
} else {
// jika kunci lebih besar dari data pada index tengah
// maka set index kiri menjadi index tengah - 1
// dan pencarian beralih ke array kanan
idxLeft = idxMid + 1;
}
}
}

/* ===========================================
* Pernyataan
* x = ekspresi ? nilai1 : nilai2
* sama artinya dengan pernyataan
* if(ekspresi) {
* x = nilai1;
* } else {
* x = nilai2;
* }
* ===========================================
*/
String pesan = ketemu ? "Data ditemukan pada index : " + idxMid : "Data tidak ditemukan";

// Menampilkan pesan hasil pencarian
JOptionPane.showMessageDialog(null, pesan);

// data selalu ketemu pada posisi index tengah
// apabila tidak ketemu nilai index tengah = -1;
}
}

Pengertian Overloading dan Overriding, Inhiretance dan Constructor

Pengertian Overloading dan Overriding, Inhiretance dan Constructor



Overloading Merupakan Suatu Function yang memiliki parameter , dan function tersebut dapat memiliki nama function yang sama dengan yang lainnya dengan syarat jumlah parameter mesti berbeda
atau bisa kita bilang Situasi di mana beberapa rutin dalam sebuah program dapat mempunyai nama sama tetapi berbeda jenis parameter dan/utau jenis return value.

lebih Jelasnya Overloading secara singkat :
  • Nama Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda
  • Nilai Yang Di Return Harus memiliki Tipe yang sama
 Contoh studi kasus :

public class Hitung
{   static int tambah(int x, int y)
    {   return x+y;
    }
   
    static double tambah(double x, double y)
    {   return x+y;
    }
   
    static int tambah(int x, int y, int z)
    {   return x+y+z;
    }
   
    static void tambah2(int x, int y)
    {   System.out.println("x"+x+" + y"+y+"="+(x+y));
    }
   
    public static void main(String[] a)
    {   int x,y;
        x=2;    y=x+3;
        x=tambah(2,3);
        System.out.println("1.    "+x);
        System.out.printf("2.   %.2f \n",tambah(2.3, 4.1));
        System.out.println("3.   "+tambah(5, 12, 3));
        System.out.println("4.   "+tambah(100, 0.5));
        System.out.println("5.   "+tambah(2.5, 4));
        System.out.println("6.   "+tambah(tambah(x*2, (x*2-y)), tambah((y-x),
                                                tambah(7, 3), 2)));
        System.exit(0);
    }
}


Overriding Merupakan Suatu Keadaan Dimana kelas anak dapat mengubah atau bisa kita bilang memodifikasi atau memperluas data dan method pada kelas induk
Keuntungan Overriding : dapat menambahkan sifat / atribut pada kelas induk nya
lebih Jelasnya Overloading secara singkat :
  • Mendefinisikan method dengan nama sama pada class yang berbeda.
  • Konsep dapat di manfaatkan dalam beberapa kasus inheritance, di mana menginginkan penamaan method dengan nama sama namunberbeda dalam impelementasinya.
Contoh studi kasus :

class Kendaraan {
…………..

public String getJenis() {

System.out.println(“Harga BBM turun”);
}

}

class Motor extends Kendaraan {
…………..

public String getJenis() {

System.out.println(“Harga BBM premium 4000 rupiah”);
}
               }

Inheritance  (Pewarisan) =  Mewariskan objek yang dimiliki ke pada objek yang diturunkan , bersifat menyeluruh.
Kelas yang mewariskan biasa di sebut super class / class induk
Kelas yang diwariskan biasa di sebut sub class / kelas anak
Secara lebih singkat begini :
A sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit Hitam jg .
Ini merupakan inheritance terhadap A kepada B , dan inheritance bukan hanya dapat 1x diwariskan , tetapi dapat lebih dari 1x. seperti berikut :
A sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit Hitam jg . dan B pun memiliki anak C maka C pun akan berkulit hitam

Dalam hal ini, inheritance bertujuan membentuk obyek baru yang memiliki sifat sama atau mirip dengan obyek yang sudah ada sebelumnya (pewarisan). Obyek turunan dapat digunakan membetuk obyek turunan lagi dan seterusnya. Setiap perubahan pada obyek induk, juga akan mengubah obyek turunannya. Susunan obyek induk dengan obyek turunannya disebut dengan hirarki obyek.

Keuntungan dari inheritance :
- Tidak perlu mendefinisikan Variabel Bila membutuhkan , Cukup menurunkan dari class induk
- Memudahkan dan Mempercepat pemprogramman , mengurangi Code


Contoh studi kasus :

Simpan dengan nama SmartMahasiswa.java

Public class SmartMahasiswa extends Mahasiswa{
}
Simpan dengan nama Main.java

public class Main{

public static void main(String[] args]) {
SmartMahasiswa mhs = new SmartMahasiswa();
mhs.setNim(“1400012”);
mhs.setNama(“Kudiantoro Widianto”);
mhs.printNim();
mhs.printNama();
}
}


Constructor merupakan method khusus yang digunakan untuk menginisialisasi objek, dan tiap class boleh memiliki lebih dari satu constructor.
Perbedaan method biasa dengan constructor adalah bahwa constructor harus  memiliki nama yang sama dengan nama class-nya dan tidak memiliki nilai  kembalian.

Constructor dijalankan pada saat sebuah objek diinisialisasi  (menggunakan kata new). Pada constructor juga berlaku overloading, artinya  boleh mendeklarasikan lebih dari satu constructor, asalkan memiliki parameter yang berbeda.

contoh program yang menggunakan constructor, dimana dalam program ini terdapat dua buah constructor :

class Manusia{
String nama;
String jenkel;
Manusia(){ //constructor
nama = "unknown";
jenkel = "unknown";
}
Manusia(String param1,String param2){ //constructor
nama = param1;
jenkel = param2;
}
void cetak(){
System.out.println("Nama : "+nama);
System.out.println("Jenis Kelamin : "+jenkel +"\n");
}
}

class DemoManusia{

public static void main(String args[]){
Manusia m1,m2;
m1 = new Manusia();
m2 = new Manusia("Hendro","Laki-laki");
m1.cetak();
m2.cetak();
}
}

Linked List

 

Linked list (one way list) adalah suatu struktur data yg merupakan suatu rangkaian atau daftar record berjenis sama. Kemudian dihubungkan melalui bantuan pointer. Pengalokasian daftar dapat dilakukan secara dinamis sehingga isi dari daftar dapat dimanipulasi. Untuk memahami
linked list, terlebih dahulu anda harus tahu konsep pointer dan pengalokasian memori

Coba anda bayangkan apabila anda mendeklarasikan array dari record(array of record) sebanyak 10 elemen. Setiap kali program dijalankan, maka akan memesan memory sebesar 10x ukuran record. Itu merupakan suatu pemborosan walaupun kita hanya menggunakan 5 elemen record.

Maka dari itu, biasanya para programer lebih memilih menggunakan linked list dalam pemrograman. Linked list dibedakan atas 2 jenis yaitu singly linked list dan doubly linked list.

Setiap elemen (node) dari suatu linked list terdiri atas dua bagian, yaitu :
1.   INFO   , berisi informasi tentang elemen data yang bersangkutan.
2 .  NEXT (link field/next pointer field), berisi alamat dari elemen (node) selanjutnya yang dituju.

Secara umum linked list tersusun atas sejumlah bagian-bagian data yang lebih kecil yang terhubung (biasanya melalui pointer). Linked list dapat divisualisasikan seperti kereta, bagian kepala linked list adalah mesin kereta, data yang disimpan adalah gerbong, dan pengait antar gerbong adalah pointer.

Berikut ini adalah contoh implementasi linked list untuk menambahkan dan memindahkan node pada bagian depan dan belakang list :

// Fig. 17.5: ListTest.java
// ListTest class to demonstrate List capabilities.
import com.deitel.jhtp6.ch17.List;
import com.deitel.jhtp6.ch17.EmptyListException;
public class ListTest
{
public static void main( String args[] )
{
List list = new List(); // create the List container

// insert integers in list
list.insertAtFront( -1 );
list.print();
list.insertAtFront( 0 );
list.print();
list.insertAtBack( 1 );
list.print();
list.insertAtBack( 5 );
list.print();

// remove objects from list; print after each removal
try
{
Object removedObject = list.removeFromFront();
System.out.printf( "%s removed\n", removedObject );
list.print();

removedObject = list.removeFromFront();
System.out.printf( "%s removed\n", removedObject );
list.print();

removedObject = list.removeFromBack();
System.out.printf( "%s removed\n", removedObject );
list.print();

removedObject = list.removeFromBack();
System.out.printf( "%s removed\n", removedObject );
list.print();
} // end try
catch ( EmptyListException emptyListException )
{
emptyListException.printStackTrace();
} // end catch
} // end main
} // end class ListTest

Output :

The list is: -1
The list is: 0 -1
The list is: 0 -1 1
The list is: 0 -1 1 5
0 removed
The list is: -1 1 5
-1 removed
The list is: 1 5
5 removed
The list is: 1
1 removed
Empty list

Sistem dan Struktur Bus

STRUKTUR BUS

PENGERTIAN BUS DAN SISTEM BUS

Bus merupakan lintasan komunikasi yang menghubungkan dua atau lebih perangkat komputer. Karakteristik penting sebuah bus adalah bahwa bus merupakan media transmisi yang dapat digunakan bersama. Sejumlah perangkat yang terhubung ke bus dan suatu sinyal yang ditransmisikan oleh salah satu perangkat ini dapat ditermia oleh salah satu perangkat yang terhubung ke bus. Bila dua buah perangkat melakukan transmisi dalam waktu yang bersamaan, maka sinyal-sinyalnya akan bertumpang tindih dan menjadi rusak. Dengan demikain, hanya sebuah perangkat saja yang akan berhasil melakukan transimi pada suatu saat tertentu.
Umumnya sebuah bus terdiri dari sejumlah lintasan komunikasi atau saluran. Masing-masing saluran dapat mentransmisikan sinyal yang menunjukkan biner 1 dan biner 0. Serangkaian digit biner dapat ditransmisikan melalui saluran tunggal. Dengan mengumpulkan beberapa saluran dari sebuah bus, dapat digunakan mentransmisikan digit biner secra bersamaan (paralel). Misalnya sebuah satuan data 8 bit dapat ditransmisikan melalui bus delapan saluran.
Sistem komputer terdiri dari sejumlah bus yang berlainan yang menyediakan jalan antara dua buah komponen pada bermacam-macam tingkatan hirarki sisterm komputer. Sebuah bus yang menghubungkan komponen-komponen utama komputer (CPU, memori, input/output) disebut bus sistem. Struktur interkoneksi komputer yang umum didasarkan pada penggunaan satu bus sistem atau lebih.

STRUKTUR BUS
Sebuah bus sistem terdiri dari 50 hingga 100 saluran yang terpisah. Masing-masing saluran ditandai dengan arti dan fungsi khusus. Walaupun terdapat sejumlah rancangan bus yang berlainan, fungsi saluran bus dapat diklasifikasikan menjadi tiga kelompok, yaitu saluran data, saluran alamat, dan saluran kontrol. Selain itu, terdapat pula saluran distribusi daya yang memberikan kebutuhan daya bagi modul yang terhubung.

A.     Saluran Data
Saluran data memberikan lintasan bagi perpindahan data antara dua modul sistem. Saluran ini secara kolektif disebut bus data. Umumnya bus data terdiri dari 8, 16, 32 saluran, jumlah saluran diakitakan denang lebar bus data. Karena pada suatu saat tertentu masing-masing saluran hanya dapat membawa 1 bit, maka jumlah saluran menentukan jumlah bit yang dapat dipindahkan pada suatu saat. Lebar bus data merupakan faktor penting dalam menentukan kinerja sistem secara keseluruhan. Misalnya, bila bus data lebarnya 8 bit, dan setiap instruksi panjangnya 16 bit, maka CPU harus dua kali mengakses modul memori dalam setiap siklus instruksinya.

B.      Saluran Alamat
Saluran alamat digunakan untuk menandakan sumber atau tujuan data pada bus data. Misalnya, bila CPU akan membaca sebuah word data dari memori, maka CPU akan menaruh alamat word yang dimaksud pada saluran alamat. Lebar bus alamat akan menentukan kapasitas memori maksimum sistem. Selain itu, umumnya saluran alamat juga dipakai untuk mengalamati port-port input/outoput. Biasanya, bit-bit berorde lebih tinggi dipakai untuk memilih lokasi memori atau port I/O pada modul.

C.      Saluran Kontrol
Saluran kontrol digunakan untuk mengntrol akses ke saluran alamat dan penggunaan data dan saluran alamat. Karena data dan saluran alamat dipakai bersama oleh seluruh komponen, maka harus ada alat untuk mengontrol penggunaannya. Sinyal-sinyal kontrol melakukan transmisi baik perintah maupun informasi pewaktuan diantara modul-modul sistem. Sinyal-sinyal pewaktuan menunjukkan validitas data dan informasi alamat. Sinyal-sinyal perintah mespesifikasikan operasi-operasi yang akan dibentuk. Umumnya saluran kontrol meliputi : memory write, memory read, I/O write, I/O read, transfer ACK, bus request, bus grant, interrupt request, interrupt ACK, clock, reset.

 Gambar 1 : Motherboard busses.

Pada motherboard terdapat saluran-saluran penghubung yang menghubungkan satu komponen dengan komponen lainnya. Saluran penghubung ini berupa garis-garis yang tercetak pada PCB motherboard. Melalui saluran-saluran inilah data, informasi, dan instruksi-instruksi yang diberikan pada komputer ditransfer/melintas dari komponen satu ke komponen lainnya. Data dan instruksi tersebut diangkut dalam wujud sinyal-sinyal elektronis yang mempunyai makna tertentu. Sekelompok saluran yang mempunyai fungsi yang sama disebut jalur atau bus. Saluran-saluran penghubung tadi disebut pula dengan istikah konduktor.

Pada permukaan bagian bawah prosesor Intel Pentium 4 socket 478, terdapat kaki-kaki berupa pin. Jumlah pin keseluruhan sebanyak 478 buah, itulah sebabnya disebut soket 478. Pin-pin ini bertugas sebagai lintasan yang menyalurkan data atau instruksi dari motherboard ke processor atau sebaliknya. Dengan demikian, di dalam sebuah prosesor juga ada saluran-saluran tempat lalulintas data/informasi/instruksi-instruksi yang harus diolah/diproses dan dikirim kembali ke motherboard. Pin-pin pada prosesor adalah salah satu contoh nyata yang secara fisik terlihat sebagai saluran tempat lalu lintas data/informasi/instruksi. Sekelompok saluran yang mempunyai fungsi yang sama juga disebut jalur atau bus. Hal yang sama juga ada di video card atau periferal lainnya. Bus-bus atau jalur-jalur pada prosesor secara garis besar dapat dibagi menjadi data bus (jalur data), address bus (jalur adres), dan control bus (jalur kontrol). Control bus disebut juga dengan istilah signal bus.

 sebuah komputer PC dengan prosesor umumnya Intel Pentium 4 memiliki bus prosesor (Front-Side Bus), bus AGP, bus PCI, bus USB, bus ISA (yang digunakan oleh keyboard dan mouse), dan bus-bus lainnya.


JENIS BUS
Saluran bus dapat dipisahkan menjadi dua tipe umum, yaitu dedicated dan multiplexed. Suatu saluran bus didicated secara permanen diberi sebuah fungsi atau subset fisik komponen-komponen komputer.

Sebagai contoh dedikasi fungsi adalah penggunaan alamat dedicated terpisah dan saluran data, yang merupakan suatu hal yang umum bagi bus. Namun, hal ini bukanlah hal yang penting. Misalnya, alamat dan informasi data dapat ditransmisikan melalui sejumlah salurah yang sama dengan menggunakan saluran address valid control. Pada awal pemindahan data, alamat ditempatkan pada bus dan address valid control diaktifkan. Pada saat ini, setiap modul memilki periode waktu tertentu untuk menyalin alamat dan menentukan apakah alamat tersebut merupakan modul beralamat. Kemudian alamat dihapus dari bus dan koneksi bus yang sama digunakan untuk transfer data pembacaan atau penulisan berikutnya. Metode penggunaan saluran yang sama untuk berbagai keperluan ini dikenal sebagai time multiplexing.

Keuntungan time multiplexing adalah memerlukan saluran yang lebih sedikit, yang menghemat ruang dan biaya. Kerugiannya adalah diperlukannya rangkaian yang lebih kompleks di dalam setiap modul. Terdapat juga penurunan kinerja yang cukup besar karena event-event tertentu yang menggunakan saluran secara bersama-sama tidak dapat berfungsi secara paralel.

Dedikasi fisik berkaitan dengan penggunaan multiple bus, yang masing-masing bus itu terhubung dengan hanya sebuah subset modul. Contoh yang umum adalah penggunaan bus I/O untuk menginterkoneksi seluruh modul I/O, kemudian bus ini dihubungkan dengan bus utama melalui sejenis modul adapter I/O. keuntungan yang utama dari dedikasi fisik adalah throughput yang tinggi, harena hanya terjadi kemacetan lalu lintas data yang kecil. Kerugiannya adalah meningkatnya ukuran dan biaya sistem.



JENIS TRANSFER DATA
Suatu bus mendukung bermacam-macam transfer data. Semua bus mendukung transfer baca (master ke slave) dan transfer tulis (slave ke master). Pada semua multiplexed address/data bus, pertama-tama bus digunakan untuk menspesifikasikan alamat dan kemudian untuk melakukan transfer data. Untuk operasi baca, biasanya terdapat waktu tunggu pada saat data sedang diambil dari slave untuk ditaruh pasda bus. Baik bagi operasi baca maupun tulis, mungkin juga terdapt delay bila hal itu diperlukan untuk melalui arbitrasi agar mendapatkan kontrol  bus untuk sisa operasi (yaitu, mengambil alih bus untuk melakukan request baca atau tulis, kemudian mengambil alih lagi bus untuk membentuk operasi vaca atau tulis.
Pada alamat dedicated dan bus-bus data, alamat ditaruh ada bus alamat dan tetap berada di sana selama data tersimpan pada bus data. Bagi operasi tulis, master menaruh data pada bus data begitu alamat telah staabil dan slave telah mempunyai kesempatan untuk mengetahui alamatnya. Bagi operasi baca, slave menaruh data pada bus dan begitu slave mengetahui alamtnya dan telah mengambil data.
Terdapt pula beberapa kombinasi operasi yang diizinkan oleh sebagian bus. Suatu operasi baca-modifikasi-tulis merupakan sebuah oerasi baca yang diikuti oleh operasi tulis ke alamat yang sama. Alamat hanya di-broadcast satu kali saja pada awal operasi. Baiasanya urutan operasi secara keseluruhan tidak dapat dibagi-bagi untuk menjaga setiap akses ke element data oleh master-master bus lainnya. Tujuan utama dari kemampuan ini adalah untuk melindungi sumber daya memori yang dapat dipakai bersama di dalam sistem multiprogramming.
Operasi read-after-write merupakan operasi yang tidak dapat dibagi-bagi yang berisi operasi tulis yang diikuti oleh operasi baca dari alamat yang sama. Operasi baca dibentuk untuk tujuan pemeriksaan.
Sebagian sistem bus juga mendukung trasnfer data blok. Dalam hal ini, sebuah siklus alamat diikuti oleh n siklus data. Butir data pertama ditransfer ke almat tertentu atau ditransfer dari alamat tertentu. Butir-butir data lainnya ditransfer ke alamat berikutnya atau ditransfer dari alamat sebelumnya

PRINSIP BUS TERHADAP DATA
Meminta penggunaan BUS. Apabila telah di setujui, Modul akan memindahkan data yang di inginkanke modul yang dituju.
Mengirim request ke modul yang dituju melalui saluran kontrol dan alamat yang sesuai.
Menunggu modul yang dituju mengirimkan data yang diinginkan.


CONTOH BUS 
Banyak perusahaan yang mengembangkan bus-bus antarmuka terutama untuk perangkat peripheral. Dimana setiap bus yang dikembangkan tersebut memiliki keunggulan, kelemahan, harga dan teknologi yang berbeda sehingga akan mempengaruhi jenis-jenis penggunaannya. Berikut adalah contohnya:
-          PCI (Pheriperal Component Interconnect)
-          ISA (Industry Standard Architecture)
-          USB (Universal Standard Bus)
-          SCSI (Small Computer System Interface)
-          FUTUREBUS+
-          FIREWIRE

PERKEMBANGAN KOMPUTER dari GENERASI PERTAMA SAMPAI SEKARANG


1. Generasi Pertama (1940 – 1959)
Electronic Numerical Integrator and Calculator (ENIAC) merupakan generasi pertama komputer digital elektronik yang digunakan untuk kebutuhan umum. Pgamroposal ENIAC dirancang pada tahun 1942, dan mulai dibuat pada tahun 1943 oleh Dr. John W. Mauchly dan John Presper Eckert di Moore School of Electrical Engineering (University of Pennsylvania) dan baru selesai pada tahun 1946.
ENIAC berukuran sangat besar. Ia memiliki 17.468 tabung vakum, 7.200 dioda kristal, 1.500 pemancar, 70.000 resistor, 10.0000 kapasitor dan sekitar 5 juta sambungan yang disolder dengan tangan. Beratnya 27 ton dan ukurannya 2,4 m x 0,9 m x 30 m. ENIAC mengambil luas sekitar 167 m² dan mengkonsumsi energi sebesar 160 kW.

                        Gambar 1 : komputer generasi pertama yang banyak memakan tempat

 EDVAC (Electronic Discrete Variable Automatic Computer). Penggunaan tiub tiub vakum juga telah dikurangi di dalam EDVAC, di mana proses perhitungan telah menjadi lebih cepat dibandingkan ENIAC.

EDSAC (Electronic Delay Storage Automatic Calculator). EDSAC telah memperkenalkan penggunaan raksa (merkuri) dalam tube untuk menyimpan memori.

UNIVAC I (Universal Automatic Calculator). Pada tahun 1951 Dr Mauchly dan Eckert menciptakan UNIVAC I , komputer pertama yang digunakan untuk memproses data perniagaan.

Pada pertengahan tahun 1950 UNIVAC mengalami kemajuan dalam beberapa aspek pemrograman tingkat lanjut, sehingga merupakan komputer general purpose pertama yang didesain untuk menggunakan angka dan huruf dan menggunakan pita magnetik sebagai media input dan output-nya. Inilah yang dikatakan sebagai kelahiran industri komputer yang didominasi oleh perusahaan IBM dan Sperry. Komputer UNIVAC pertama kali digunakan untuk keperluan kalkulasi sensus di AS pada tahun 1951, dan dioperasikan sampai tahun 1963.

KOMPUTER-KOMPUTER IBM
IBM memproduksi IBM 605 dan IBM 701 pada tahun 1953 yang berorientasi pada aplikasi bisnis dan merupakan komputer paling populer sampai tahun 1959. IBM 705 dikeluarkan untuk menggantikan IBM 701 yang kemudian memantapkan IBM dalam industri pengolahan data.

2. Generasi kedua ( 1959-1964 )

komputer generasi kedua mempunyai ciri-ciri sebagai berikut :
1.Sirkuitnya berupa transistor.
2.Program dapat dibuat dengan bahasa tingkat tinggi (high level language), seperti FORTRAN, COBOL, ALGOL.
3.Kapasitas memori utama sudah cukup besar.
4.Ukuran fisik komputer lebih kecil disbanding komputer generasi pertama.
5.Proses operasi sudah cepat.
6.Membutuhkan lebih sedikit daya listrik.
7.Berorientasi pada bisnis dan teknik.

Era ini juga menandakan permulaan munculnya minikomputer yang merupakan terbesar kedua dalam keluarga komputer. Harganya lebih murah dibanding dengan generasi pertama. Komputer DEC PDP-8 adalah minikomputer pertama yang dibuat tahun 1964 untuk pengolahan data komersial.
Beberapa contoh  komputer pada generasi ini adalah UNIVAC III, UNIVAC SS80, SS90, dan 1107, IBM 7070, 7080, 1400, dan 1600.

Gambar 2 : komputer generasi kedua

3. Generasi ketiga (1964-awal 80-an)

Pada generasi ketiga inilah teknologi Integrated Circuit (IC) menjadi ciri utama karena mulai digunakan pada sebuah perangkat komputer hingga generasi sekarang. IC mengkombinasikan tiga komponen elektronik dalam sebuah piringan silicon kecil yang terbuat dari pasir kuarsa. Para ilmuan kemudian berhasil memasukkan lebih banyak komponen-komponen ked lm satu chip tunggal yang disebut semikonduktor. Hasilnya komputer menjadi lebih kecil karena komponen-komponen dapat dipadatkan dalam chip. Kemajuan komputer generasi ketiga lainnya yaitu pengguanaan Operating System (OS) yang memungkinkan satu komputer melakukan berbagai program yang berbeda secara serentak dengan sebuak program utama yang memonitor dan mengkoordinasi memori komputer.
Ciri-ciri komputer generasi ketiga adalah:
-Karena menggunakan IC maka kinerja komputer menjadi lebih cepat dan tepat. Kecepatannya hampir 10.000 kali lebih cepat dari komputer generasi pertama.
-Peningkatan dari sisi software.
-Kapasitas memori lebih besar, dan dapat menyimpan ratusan ribu karakter (sebelumnya hanya puluhan ribu).
-Menggunakan media penyimpanan luar disket magnetik (external disk) yang sifat pengaksesan
datanya secara acak (random access) dengan kapasitas besar (jutaan karakter).
-Penggunaan listrik lebih hemat.
-Kemampuan melakukan multiprocessing dan multitasking.
-Telah menggunakan terminal visual display dan dapat mengeluarkan suara.
-Harganya semakin murah.
-Kemampuan melakukan komunikasi dengan komputer lain.

Contoh komputer generasi ke III adalah IBM S/360, UNIVAC 1108, UNIVAC 9000, Burroughts 5700, 6700, 7700, NCR Century, GE 600, CDC 3000, 6000, dan 7000, PDP-8, dan PDP-11 (pabrik pembuatnya adalah Digital Equipment Corporation)

Gambar 3 : Komputer IBM S360

Banyak bahasa pemrograman telah muncul seperti BASIC, Pascal dan PL/1. Kebanyakan mikrokomputer didasari dengan tafsiran bahasa secara mendalam, chip ROM untuk menggunakan bahasa BASIC.


4. Generasi ke empat (awal 80-an)

Chip masih digunakan untuk memproses dan menyimpan memori. Ia lebih canggih, dilengkapi hingga ratusan ribu komponen transistor yang disebut pengamiran skala amat besar (very large scale intergartion, VLSI). Pemprosesan dapat dilakukan dengan lebih tepat,sampai jutaan bit per detik. Bedanya bahwa IC pada generasi IV lebih kompleks dan terintegrasi. Sejak tahun 1970 ada dua perkembangan yang dianggap sebagai komputer generasi IV. Pertama, penggunaan Large Scale Integration (LSI) yang disebut juga dengan nama Bipolar Large Large Scale Integration. LSI merupakan pemadatan beribu-ribu IC yang dijadikan satu dalam sebuah keping IC yang disebut chip. Istilah chip digunakan untuk menunjukkan suatu lempengan persegi empat yang memuat rangkaian terpadu IC. LSI kemudian dikembangkan menjadi Very Large Scale Integration (VLSI) yang dapat menampung puluhan ribu hingga ratusan ribu IC. Selanjutnya dikembangkannya komputer mikro yang menggunakan mikroprosesor dan semikonduktor yang berbentuk chip untuk memori komputer internal sementara generasi sebelumnya menggunakan magnetic core storage.

Perusahaan Intel pada tahun 1971 memperkenalkan mikrokomputer 4 bit yang menggunakan chip prosesor dengan nama 4004 yang berisi 230 transistor dan berjalan pada 108 KHz (Kilo-Hertz) dan dapat mengeksekusi 60.000 operasi per detik. Dilanjutkan pada tahun 1972, Intel memperkenalkan mikrokomputer 8008 yang memproses 8 bit informasi pada satu waktu. Selanjutnya mikroprosesor 8080 dibuat pada tahun 1974, dan merupakan prosesor untuk tujuan umum pertama. Sebelumnya prosesor 4004 dan 8008 dirancang untuk kebutuhan aplikasi tertentu, dan prosesor 8080 memiliki kemampuan lebih cepat dan memilki set instruksi yang lebih kaya, serta memiliki kemampuan pengalamatan yang lebih besar. Pada generasi keempat ini tampilan monitor masih satu warna (green color)

Komputer-komputer generasi keempat diantaranya adalah IBM 370, Apple I dan Apple II, PDP-11, VisiCalc, dan Altair yang menggunakan prosesor Intel 8080, dengan sistem operasi CP/M (Control Program for Microprocessor), dengan bahasa pemrograman Microsoft Basic (Beginners Allpurpose Symbolic Instruction Code). Sebagai catatan bahwa pada komputer-komputer generasi keempat ini tidak satupun yang PC-Compatible atau Macintosh-Compatible. Sehingga pada generasi ini belum ditentukan standar sebuah komputer terutama personal computer (PC).


5. Generasi ke lima (Masa Depan)

Akhir tahun 1980, IBM memutuskan untuk membangun sebuah komputer personal (PC) secara massal, yang pada tanggal 12 Agustus 1981 menjadi sebuah standar komputer PC, dan pada akhirnya hingga saat ini PC dikenal dengan nama standar IBM-PC. Prosesor yang digunakan adalah 8088/8086 yang menjadi standar komputer saat ini, menggunakan basis proses 16 bit persatuan waktu. Dengan lahirnya komputer generasi kelima ini, IBM bekerja sama dengan Microsoft untuk mengembangkan software di dalamnya. Hingga saat ini Microsoft mendominasi kebutuhan software di dunia PC.

Gambar 4 : IBM PC jr

Pada generasi ini komputer sudah mempunyai bentuk umum yaitu terdiri dari :

1.CPU (central processing unit)
2.Monitor baik berupa LCD (liquid crystal digital)  maupun CRT (Cathode Ray Tube)
3. Keyboard
4.Mouse
secara umum seperti itulah bentuk komputer pada generasi kelima atau pada masa kini. Namun karena kebutuhan yang dimiliki manusia semakin lama semakin kompleks dan untuk itu dibutuhkan jenis komputer yang sesuai dengan kebutuhan, untuk itu kebanyakan komputer pada generasi kelima ini dikembangkan fokus kepada hardware yang terdapat pada CPU agar bisa menyesuaikan dengan program atau sofware yang dibutuhkan, namun tidak berarti bentuk dari sebuah Pesonal Komputer itu sendiri tidak berkembang banyak juga yang sudah mengeambangkan sebuah personal komputer agar mobilitasnya dapat menyesuaikan kebutuhan kita.

seperti yang dijelaskan diatas perkembangan sebuah komputer pada saat ini menyesuaikan dengan kebutuhan banyak orang tidak seperti dahulu yang hanya dapat digunakan oleh beberapa orang. secara umum perkembangan komputer masa kini dapat di lihat dari berkembangnya komponen mikroprosesornya.

Evolusi komputer :

Sejarah Perkembangan Prosessor Intel

4004 Microprocessor
Pada tahun 1971 munculah microprocessor pertama Intel , microprocessor 4004 ini digunakan pada mesin kalkulator Busicom. Dengan penemuan ini maka terbukalah jalan untuk memasukkan kecerdasan buatan pada benda mati.

8008 Microprocessor
Pada tahun 1972 munculah microprocessor 8008 yang berkekuatan 2 kali lipat dari pendahulunya yaitu 4004.

8080 Microprocessor
Menjadi otak dari sebuah komputer yang bernama Altair, pada saat itu terjual sekitar sepuluh ribu dalam 1 bulan.

8086-8088 Microprocessor
Sebuah penjualan penting dalam divisi komputer terjadi pada produk untuk komputer pribadi buatan IBM yang memakai prosesor 8088 yang berhasil mendongkrak nama intel.

286 Microprocessor
Intel 286 atau yang lebih dikenal dengan nama 80286 adalah sebuah processor yang pertama kali dapat mengenali dan menggunakan software yang digunakan untuk processor sebelumnya.

Intel386™ Microprocessor
Intel 386 adalah sebuah prosesor yang memiliki 275.000 transistor yang tertanam diprosessor tersebut yang jika dibandingkan dengan 4004 memiliki 100 kali lipat lebih banyak dibandingkan dengan 4004.

Intel486™ DX CPU Microprocessor
Processor yang pertama kali memudahkan berbagai aplikasi yang tadinya harus mengetikkan command-command menjadi hanya sebuah klik saja, dan mempunyai fungsi komplek matematika sehingga memperkecil beban kerja pada processor.

Intel® Pentium® Processor
Processor generasi baru yang mampu menangani berbagai jenis data seperti suara, bunyi, tulisan tangan, dan foto.

Intel® Pentium® Pro Processor
Processor yang dirancang untuk digunakan pada aplikasi server dan workstation, yang dibuat untuk memproses data secara cepat, processor ini mempunyai 5,5 jt transistor yang tertanam.

Intel® Pentium® II Processor
Processor Pentium II merupakan processor yang menggabungkan Intel MMX yang dirancang secara khusus untuk mengolah data video, audio, dan grafik secara efisien. Terdapat 7.5 juta transistor terintegrasi di dalamnya sehingga dengan processor ini pengguna PC dapat mengolah berbagai data dan menggunakan internet dengan lebih baik.

Intel® Pentium II Xeon® Processor
Processor yang dibuat untuk kebutuhan pada aplikasi server. Intel saat itu ingin memenuhi strateginya yang ingin memberikan sebuah processor unik untuk sebuah pasar tertentu.

Intel® Celeron® Processor
Processor Intel Celeron merupakan processor yang dikeluarkan sebagai processor yang ditujukan untuk pengguna yang tidak terlalu membutuhkan kinerja processor yang lebih cepat bagi pengguna yang ingin membangun sebuah system computer dengan budget (harga) yang tidak terlalu besar. Processor Intel Celeron ini memiliki bentuk dan formfactor yang sama dengan processor Intel jenis Pentium, tetapi hanya dengan instruksi-instruksi yang lebih sedikit, L2 cache-nya lebih kecil, kecepatan (clock speed) yang lebih lambat, dan harga yang lebih murah daripada processor Intel jenis Pentium. Dengan keluarnya processor Celeron ini maka Intel kembali memberikan sebuah processor untuk sebuah pasaran tertentu.

Intel® Pentium® III Processor
Processor Pentium III merupakan processor yang diberi tambahan 70 instruksi baru yang secara dramatis memperkaya kemampuan pencitraan tingkat tinggi, tiga dimensi, audio streaming, dan aplikasi-aplikasi video serta pengenalan suara.

Intel® Pentium® III Xeon® Processor
Intel kembali merambah pasaran server dan workstation dengan mengeluarkan seri Xeon tetapi jenis Pentium III yang mempunyai 70 perintah SIMD. Keunggulan processor ini adalah ia dapat mempercepat pengolahan informasi dari system bus ke processor , yang juga mendongkrak performa secara signifikan. Processor ini juga dirancang untuk dipadukan dengan processor lain yang sejenis.

Intel® Pentium® 4 Processor
Processor Pentium IV merupakan produk Intel yang kecepatan prosesnya mampu menembus kecepatan hingga 3.06 GHz. Pertama kali keluar processor ini berkecepatan 1.5GHz dengan formafactor pin 423, setelah itu intel merubah formfactor processor Intel Pentium 4 menjadi pin 478 yang dimulai dari processor Intel Pentium 4 berkecepatan 1.3 GHz sampai yang terbaru yang saat ini mampu menembus kecepatannya hingga 3.4 GHz.

Intel® Xeon® Processor
Processor Intel Pentium 4 Xeon merupakan processor Intel Pentium 4 yang ditujukan khusus untuk berperan sebagai computer server. Processor ini memiliki jumlah pin lebih banyak dari processor Intel Pentium 4 serta dengan memory L2 cache yang lebih besar pula.

Intel® Itanium® Processor
Itanium adalah processor pertama berbasis 64 bit yang ditujukan bagi pemakain pada server dan workstation serta pemakai tertentu. Processor ini sudah dibuat dengan struktur yang benar-benar berbeda dari sebelumnya yang didasarkan pada desain dan teknologi Intel’s Explicitly Parallel Instruction Computing ( EPIC ).

Intel® Itanium® 2 Processor
Itanium 2 adalah generasi kedua dari keluarga Itanium.

Intel® Pentium® M Processor
Chipset 855, dan Intel® PRO/WIRELESS 2100 adalah komponen dari Intel® Centrino™. Intel Centrino dibuat untuk memenuhi kebutuhan pasar akan keberadaan sebuah komputer yang mudah dibawa kemana-mana.

Intel Pentium M 735/745/755 processors
Dilengkapi dengan chipset 855 dengan fitur baru 2Mb L2 Cache 400MHz system bus dan kecocokan dengan soket processor dengan seri-seri Pentium M sebelumnya.

Intel E7520/E7320 Chipsets
7320/7520 dapat digunakan untuk dual processor dengan konfigurasi 800MHz FSB, DDR2 400 memory, and PCI Express peripheral interfaces.

Intel Pentium 4 Extreme Edition 3.73GHz
Sebuah processor yang ditujukan untuk pasar pengguna komputer yang menginginkan sesuatu yang lebih dari komputernya, processor ini menggunakan konfigurasi 3.73GHz frequency, 1.066GHz FSB, EM64T, 2MB L2 cache, dan HyperThreading.

Intel Pentium D 820/830/840
Processor berbasis 64 bit dan disebut dual core karena menggunakan 2 buah inti, dengan konfigurasi 1MB L2 cache pada tiap core, 800MHz FSB, dan bisa beroperasi pada frekuensi 2.8GHz, 3.0GHz, dan 3.2GHz. Pada processor jenis ini juga disertakan dukungan HyperThreading.

Intel Core 2 Quad Q6600
Processor untuk type desktop dan digunakan pada orang yang ingin kekuatan lebih dari komputer yang ia miliki memiliki 2 buah core dengan konfigurasi 2.4GHz dengan 8MB L2 cache (sampai dengan 4MB yang dapat diakses tiap core ), 1.06GHz Front-side bus, dan thermal design power ( TDP ).

Intel Quad-core Xeon X3210/X3220
Processor yang digunakan untuk tipe server dan memiliki 2 buah core dengan masing-masing memiliki konfigurasi 2.13 dan 2.4GHz, berturut-turut , dengan 8MB L2 cache ( dapat mencapai 4MB yang diakses untuk tiap core ), 1.06GHz Front-side bus, dan thermal design power (TDP).

Intel ® Core ™ 2 Quad
Processor untuk PC desktop dirancang untuk menangani beban kerja besar menghitung dan visualisasi dimungkinkan oleh teknologi multi-core kuat. Memberikan bandwidth yang Anda butuhkan untuk aplikasi multi-threaded, Intel Core 2 Quad prosesor yang dibangun di 45nm Intel ® Core ™ mikroarsitektur pengalaman memungkinkan, lebih cepat, lebih dingin, dan tenang desktop PC dan workstation.
Dengan empat core processing, hingga 12MB of shared L2 cache ¹, dan 1333 MHz Front Side Bus Intel Core 2 Quad prosesor desktop memberikan performa yang menakjubkan dan efisiensi daya diaktifkan oleh sirkuit hafnium berbasis 45nm Core mikroarsitektur Intel.

Intel ® Core ™ 2 duo
Processor ini memakai microprocessor dengan arsitektur x86. Arsitektur tersebut oleh Intel dinamakan dengan Intel Core Microarchitecture, di mana arsitektur tersebut menggantikan arsitektur lama dari Intel yang disebut dengan NetBurst sejak tahun 2000 yang lalu. Penggunaan Core 2 ini juga menandai era processor Intel yang baru, di mana brand Intel Pentium yang sudah digunakan sejak tahun 1993 diganti menjadi Intel Core.


Dan ini Processor mutakhir yang dikeluarkan oleh Intel ® :



Intel Core i7


Core i7 sendiri merupakan processor pertama dengan teknologi “Nehalem”. Nehalem menggunakan platform baru yang betul-betul berbeda dengan generasi sebelumnya. Salah satunya adalah mengintegrasikan chipset MCH langsung di processor, bukan motherboard. Nehalem juga mengganti fungsi FSB menjadi QPI (Quick Path Interconnect) yang lebih revolusioner.







Intel Core i5


Jika Bloomfield adalah codename untuk Core i7 maka Lynnfield adalah codename untuk Core i5. Core i5 adalah seri value dari Core i7 yang akan berjalan di socket baru Intel yaitu socket LGA-1156. Tertarik begitu mendengar kata value ? Tepat ! Core i5 akan dipasarkan dengan harga sekitar US$186.

Kelebihan Core i5 ini adalah ditanamkannya fungsi chipset Northbridge pada inti processor (dikenal dengan nama MCH pada Motherboard). Maka motherboard Core i5 yang akan menggunakan chipset Intel P55 (dikelas mainstream) ini akan terlihat lowong tanpa kehadiran chipset northbridge. Jika Core i7 menggunakan Triple Channel DDR 3, maka di Core i5 hanya menggunakan Dual Channel DDR 3. Penggunaan dayanya juga diturunkan menjadi 95 Watt. Chipset P55 ini mendukung Triple Graphic Cards (3x) dengan 1×16 PCI-E slot dan 2×8 PCI-E slot. Pada Core i5 cache tetap sama, yaitu 8 MB L3 cache.

Intel juga meluncurkan Clarksfield, yaitu Core i5 versi mobile yang ditujukan untuk notebook. Socket yang akan digunakan adalah mPGA-989 dan membutuhkan daya yang terbilang cukup kecil yaitu sebesar 45-55 Watt.






Intel Core i3

Intel Core i3 merupakan varian paling value dibandingkan dua saudaranya yang lain. Processor ini akan mengintegrasikan GPU (Graphics Processing Unit) alias Graphics On-board didalam processornya. Kemampuan grafisnya diklaim sama dengan Intel GMA pada chipset G45. Selain itu Core i3 nantinya menggunakan manufaktur hybrid, inti processor dengan 32nm, sedangkan memory controller/graphics menggunakan 45nm. Code produk Core i3 adalah “Arrandale”.

  





Berikut Tabel Detail mengenai ketiga produk ini:




 Referensi : dari berbagai sumber

Download PDF klik