Jumat, 23 Desember 2011

Instruction Set Architecture (ISA)




Set Instruksi

Set Instruksi(bahasa Inggris: Instruction Set, atau Instruction Set Architecture (ISA)) didefinisikan sebagai :
Suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).

ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode)yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine
language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain. ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal.

Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya. Ketika mendesain mikroarsitektur, para desainer menggunakan Register Transfer Language (RTL) untuk mendefinisikan operasi dari setiap instruksi yang terdapat dalam ISA. Sebuah ISA juga dapat diemulasikan dalam bentuk perangkat
lunak oleh sebuah interpreter. Karena terjadi translasi tambahan yang dibutuhkan untuk melakukan emulasi, hal ini memang menjadikannya lebih lambat jika dibandingkan dengan menjalankan program secara langsung di atas perangkat keras yang mengimplementasikan ISA tersebut. Akhir-akhir ini, banyak vendor ISA atau mikroarsitektur yang baru membuat perangkat lunak emulator yang dapat digunakan oleh para pengembang perangkat lunak sebelum implementasi dalam bentuk perangkat keras dirilis oleh vendor.

Daftar ISA di bawah ini tidak dapat dikatakan komprehensif, mengingat banyaknya arsitektur lama yang tidak digunakan lagi saat ini atau adanya ISA yang baru dibuat oleh para desainer.

ISA
yang diimplementasikan dalam bentuk perangkat keras :

* Alpha AXP (DEC Alpha)
* ARM (Acorn RISC Machine) (Advanced RISC Machine now ARM Ltd)
* IA-64 (Itanium/Itanium 2)
* MIPS
* Motorola 68k
* PA-RISC (HP Precision Architecture)
* IBM POWER
* IBM PowerPC
* SPARC
* SuperH (Hitachi)
* System/360
* Tricore (Infineon)
* Transputer (STMicroelectronics)
* VAX (Digital Equipment Corporation)
* x86 (IA-32, Pentium, Athlon) (AMD64, EM64T)

ISA
yang diimplementasikan dalam bentuk perangkat lunak lalu dibuat perangkat
kerasnya

* p-Code (UCSD p-System Version III on Western Digital Pascal Micro-Engine)
* Java virtual machine (ARM Jazelle, PicoJava)
* FORTH

ISA
yang tidak pernah diimplementasikan dalam bentuk perangkat keras

* SECD machine
* ALGOL Object Code

Teknik Pengalamatan

Untuk menyimpan data ke dalam memori komputer, tentu memori tersebut diberi identitas (yang disebut dengan alamat/address) agar ketika data tersebut diperlukan kembali, komputer bisa mendapatkannya sesuai dengan data yang pernah diletakkan di sana.

Untuk media penyimpanan yang bersifat sequential access storage device (SASD) seperti kaset (magnetic tape),alamat tersebut tidak terlalu dipusingkan karena pasti data disimpan secara berurutan (sequential/ consecutive) mulai dari depan hingga ke akhir bagian dari pita kaset. Begitu juga dengan data yang diorganisasi secara sequential, di alamat manapun data disimpan, data akan tetap diakses secara berurutan pula, mulai dari record pertama hingga ke record terakhir.
Lain halnya dengan data yang diorganisasi secara relative yang disimpan di media penyimpanan yang bersifat direct access storage device (DASD), karena data yang akan diraih kembali, dituju langsung ke alamatnya tanpa melalui records lainnya (belum tentu dimulai dari data yang paling awal disimpan), maka alamat memori memegang peranan penting. Untuk itu, di catatan ini akan diterangkan beberapa cara melakukan
penempatan data di memori agar kelak dapat diraih kembali dengan tepat, yang diberi
judul “Teknik Pengalamatan.”

Teknik pengalamatan ini hampir sudah tidak diperlukan lagi oleh pemakai komputer saat ini karena hampir seluruh software yang beredar di pasaran tidak mengharuskan si pemakai menentukan di alamat mana datanya akan disimpan (semua sudah otomatis dilakukan oleh si software). Jadi, yang kita pelajari adalah bagaimana kira-kira si software tersebut melakukan teknik pengalamatannya, sehingga data yang sudah kita berikan dapat disimpan di alamat memori tertentu dan dapat diambil kembali dengan tepat.

Ada 3 teknik dasar untuk
pengalamatan, yakni 1. Pemetaan langsung (direct mapping) yang terdiri dari dua
cara yakni Pengalamatan Mutlak (absolute addressing) dan Pengalamatan relatif
(relative addressing), 2. Pencarian Tabel (directory look-up), dan 3. Kalkulasi
(calculating).

A. TEKNIK PEMETAAN LANGSUNG

1. PENGALAMATAN MUTLAK
Pandang, kita memiliki data teman-teman sekelas kita yang akan kita masukkan ke dalam memori (misal hard disk), data tersebut berjumlah 50 orang yang masing-masing terdiri atas atribut-atribut : NIM, NAMA, dan ALAMAT_RUMAH. Jika data tersebut kita masukkan dengan organisasi file sequential, maka jika kita mencari data NIM = ‘10105787’ yang namanya ‘ALI’ dan beralamat di ‘Jl. Margonda No. 100, Depok’, maka pencarian akan dilakukan mulai dari record pertama (data pertama yang dimasukkan), dan seterusnya menuju ke record terakhir sampai ketemu data yang dicari tersebut.
Lain halnya jika data tersebut dimasukkan dengan organisasi file relative, maka data tersebut akan didapat secara langsung dari record yang dituju. Tentu, untuk langsung mendapatkan record yang dituju ada ‘sesuatu’ yang disebut dengan kunci atribut (key field). Kunci atribut itulah yang dikelola sedemikian rupa sehingga ‘kita’ bisa tahu
dimana record tersebut disimpan. Untuk teknik pengalamatan ‘alamat mutlak’ ini, kita tidak terlalu mempermasalahkan kunci atribut karena kita diminta langsung menuliskan di mana alamat record yang akan kita masukkan. Jika kita menggunakan hard disk atau magnetic drum, ada dua cara dalam menentukan alamat memorinya, yaitu (1) cylinder addressing dan (2) sector addressing. Jika kita menggunakan cylinder addressing, maka kita harus menetapkan nomor-nomor dari silinder (cylinder), permukaan (surface), dan record, sedangkan bila kita menggunakan sector addressing, maka kita harus menetapkan nomor-nomor dari sektor (sector), lintasan (track), dan permukaan (surface). Teknik ini mudah dalam pemetaan (pemberian) alamat memorinya. Sulitnya pada pengambilan (retrieve) data kembali, jika data yang kita masukkan banyak, kita bisa lupa di mana alamat record tertentu, misalkan apakah kita ingat nomor record dari data NIM = ‘10105787’ yang namanya ‘ALI’ dan beralamat di ‘Jl. Margonda No. 100,
Depok’ ?, apakah kita harus menghafal selamanya alamat-alamat tersebut ?.

Pelajari keuntungan dan kerugian lainnya.
Teknik ini dapat dijuluki dengan device dependent (tergantung pada peralatan rekamnya), artinya, kita tidak dapat begitu saja meng-copy data berkas ini ke komputer lainnya, karena mungkin saja di komputer lainnya itu menggunakan alat rekam yang berbeda spesifikasinya.
Teknik ini juga dapat dijuluki dengan address space dependent (tergantung pada alamat-alamat yang masih kosong), artinya, kita tidak dapat begitu saja meng-copy data berkas ini ke komputer lainnya, karena mungkin saja di komputer lainnya itu alamat-alamat yang dibutuhkan sudah tidak tersedia lagi.

2. PENGALAMATAN RELATIF
Teknik ini menjadikan atribut kunci sebagai alamat memorinya, jadi, data dari NIM dijadikan bertipe numeric(integer) dan dijadikan alamat dari record yang bersangkutan. Cara ini memang sangat efektif untuk menemukan kembali record yang sudah disimpan, tetapi sangat boros penggunaan memorinya. Tentu alamat memori mulai dari 1 hingga alamat ke sekian juta tidak digunakan karena nilai dari NIM tidak ada
yang kecil. Pelajari keuntungan dan kerugian lainnya.Teknik ini termasuk dalam katagori address space dependent.

3. TEKNIK PENCARIAN TABEL
Teknik ini dilakukan dengan cara, mengambil seluruh kunci atribut dan alamat memori yang ada dan dimasukkan ke dalam tabel tersendiri. Jadi tabel itu (misal disebut dengan tabel INDEX) hanya berisi kunci atribut (misalkan NIM) yang telah disorting (diurut) dan alamat memorinya. Jadi, sewaktu dilakukan pencarian data, tabel yang pertama dibaca adalah tabel INDEX itu, setelah ditemukan atribut kuncinya, maka data alamat yang ada di sana digunakan untuk meraih alamat record dari data (berkas/ file/ tabel) yang sebenarnya. Pencarian yang dilakukan di tabel INDEX akan lebih cepat dilakukan dengan teknik pencarian melalui binary search (dibagi dua-dua, ada di mata kuliah Struktur dan Organisasi Data 2 kelak) ketimbang dilakukan secara sequential. Nilai key field (kunci atribut) bersifat address space independent (tidak terpengaruh terhadap perubahan organisasi file-nya), yang berubah hanyalah alamat yang ada di INDEX-nya.

4. TEKNIK KALKULASI ALAMAT
Kalau pada teknik pencarian tabel kita harus menyediakan ruang memori untuk menyimpan tabel INDEX-nya, maka pada teknik ini tidak diperlukan hal itu. Yang dilakukan di sini adalah membuat hitungan sedemikian rupa sehingga dengan memasukkan kunci atribut record-nya, alamatnya sudah dapat diketahui. Tinggal masalahnya, bagaimana membuat hitungan dari kunci atribut itu sehingga hasilnya bisa efisien (dalam penggunaan memori) dan tidak berbenturan nilainya (menggunakan alamat yang sama). Misal, untuk data si ALI di atas yang memiliki NIM = ‘10105787’, di mana akan kita letakkan ?. Bila yang kita lakukan adalah perhitungan : INT(VAL(NIM)/1000000) maka haslinya adalah 10, dengan demikian data si ALI akan disimpan di alamat 10. Tapi, apakah alamat 10 itu tidak akan digunakan oleh data lain dengan perhitungan yang sama ?, ternyata tidak. Untuk data si BADU yang NPMnya ’10105656’ juga di alamat
tersebut, dan ternyata masih banyak juga yang ’rebutan’ untuk menempati alamat tersebut jika dilakukan dengan perhitungan seperti di atas. Perhitungan (kalkulasi) terhadap nilai kunci atribut untuk mendapatkan nilai suatu alamat disebut dengan fungsi hash. Bisa juga fungsi hash digabungkan dengan teknik pencarian seperti tabel
di atas, tetapi akan menjadi lebih lama pengerjaannya dibanding hanya dengan satu jenis saja (fungsi hash saja atau pencarian tabel saja). Fungsi hash dikatakan baik bila memiliki kalkulasi yang sederhana dan memiliki kelas ekivalen (synonim) yang
kecil, atau sederhananya, memiliki kalkulasi yang mudah tetapi memiliki benturan alamat yang sedikit. Ada beberapa cara untuk mengatasi benturan (collision) penggunaan alamat seperti di atas, antara lain : scatter diagram techniques, randomizing techniques, key to address transformation methods, direct addressing techniques, hash tables methods, dan hashing. Di sini, kita hanya membahas mengenai hashing. Beberapa fungsi hash yang umum digunakan adalah : division remainder, mid square, dan folding.

5. DIVISION REMAINDER
Idenya adalah, membagi nilai key field dengan nilai tertentu, dan sisa pembagian tersebut dijadikan alamat relatifnya. Nilai tertentu itu terserah kita, ada yang membagi dengan bilangan prima, namun ada juga yang tidak.Yang jelas, tujuannya adalah agar alamat yang akan digunakan bisa berbeda sekecil mungkin (menghemat memori) dan menghindari benturan yang bakal terjadi. Ada perhitungan faktor muat (load factor) yaitu, jika kita memiliki sejumlah record yang akan ditempatkan ke dalam memori, maka setidaknya kita harus menyediakan memori yang kapasitasnya melebihi dari jumlah record tersebut. Misalkan, kita memiliki 4000 record, maka sebaiknya kita memiliki memory space sebanyak 5000 alamat. Faktor muat dihitung dengan cara membagi jumlah record dalam file dengan jumlah maksimum record dalam file (alamat yang tersedia). Semakin besar nilai faktor muat maka semakin baik teknik ini digunakan. Faktor muat untuk contoh di atas adalah 4000/5000 = 0,8.

6. MIDSQUARE
Teknik ini dilakukan dengan cara melakukan kuadratisasi nilai key field dan diambil nilai tengahnya sebanyak jumlah digit yang diinginkan. Misalkan, nilai key-nya = 123456790, setelah dikuadratkan hasilnya = 15241578997104100 dan diambil 4 digit di tengahnya, yaitu 8997. Jadi, alamat memori untuk data tersebut di 8997.

7. HASING BY FOLDING
Teknik ini dilakukan dengan cara ’melipat’ nilai dari kunci atribut sebanyak digit yang dibutuhkan (dari kanan), kemudian dijumlahkan. Nilai terbesar dari jumlah tersebut dibuang (jika melebihi digit yang dibutuhkan). Misalkan untuk nilai key 123456790, maka empat angka di belakang setelah dilipat menjadi 0976, angka tersebut ditambahkan dengan empat angka kedua (dari kanan) yaitu 2345 dan angka 1 paling kiri :

0976
2345
1
——–+
4321

Maka, alamat dari data tersebut adalah di 4321.Berbagai teknik dalam penentuan penempatan data di memori (sekunder) komputer terus berkembang. Tentu saja karena data yang direkam biasanya selalu bersifat dinamis (bisa bertambah, berkurang, di-copy, di-sorting) dan sebagainya. Kedinamisan tersebut tentu saja bisa berpengaruh terhadap alamat-alamat yang sudah ditetapkan sebelumnya yang bersifat fixed size space atau memiliki ukuran alamat yang tetap (satu misalnya, jika kita meng-copy data tersebut yang semula di hard disk ke dalam disket, apakah alamat-alamat yang tersedia di disket sama dengan di hard disk ?, tentu tidak). Teknik hash baru yang dikembangkan antara lain dynamic hashing, extendible hashing, dan virtual hashing. Tujuannya adalah agar alamat-alamat yang sudah ada tidak berubah meskipun data baru ditambahkan dengan cara membagi-bagi memori menjadi bagian-bagian tertentu yang disebut dengan blok atau bucket, bila sebuah record akan dimasukkan ke dalam
bucket yang sudah penuh, maka bucket baru disediakan kembali. Dynamic hashing memakai struktur indeks binary tree untuk menyimpan track dari bucket dan pointer untuk menuju ke record yang diinginkan. Extendible hashing menggunakan direction untuk menyimpan track dari bucket dan pointer untuk menuju ke record yang diinginkan.
Sedangkan virtual hashing lebih luas lagi, termasuk di dalamnya dynamic hashing dan extendible hashing dan berbagai teknik indeks lainnya (yang tidak dibahas di sini).

8. PENDEKATAN MASALAH BENTURAN (COLLISION)
Hampir semua teknik akan mengalami benturan dalam penggunaan alamat memorinya. Ada beberapa teknik untuk menyelesaikannya, yaitu linear probing dan separate overflow.

9. LINEAR PROBING
Metode ini dilakukan dengan cara :
apabila hasil perhitungan key baru ternyata sama dengan hasil perhitungan key sebelumnya, maka dengan menambahkan hasil perhitungan tersebut dengan satu (per satu) (secara linear) sampai ke alamat memori yang masih kosong, ia akan menempati alamat tersebut.

Misal, hasil perhitungan adalah 300 sedangkan di alamat 300 sudah ada yang menempati, maka data baru akan menempati alamat 301, bila alamat tersebut juga sudah ada yang menempati, maka ia akan menempati alamat 302, dan seterusnya bertambah satu-satu hingga ke alamat yang masih kosong (belum ditempati). Hal semacam ini disebut dengan open addressing. Begitu juga ketika data tersebut dipanggil kembali, maka jika tidak ketemu di home address-nya (hasil perhitungan awalnya), maka akan ditambahkan dengan satu per satu hingga di alamat tertentu yang recordnya memiliki nilai key sama dengan nilai key yang dicari.

10. DOUBLE HASHING
Dari namanya dapat diketahui bahwa double hashing adalah menjalankan fungsi hash yang kedua terhadap hasil fungsi hash yang pertama jika masih terjadi collision. Penempatan data dapat dilakukan di primary area atau home address-nya (hasil perhitungan sebenarnya, nilai interval yang mungkin dapat dijangkau dengan perhitungannya), atau di separate overflow area (area yang disediakan untuk menampung data yang berbenturan/di luar area yang masuk dalam interval nilai perhitungannya). Double hashing lebih baik dari linear probing pada faktor muat tinggi (lebih dari 0,8), dan sama baik pada faktor muat 0,5. Double hashing memiliki synonim (hasil perhitungan yang sama/terjadi collision) berpencar sedangkan linear probing mengelompok pada faktor muat kurang dari 0,5.

11. SYNONIM CHAINING
Synonim chaining adalah suatu rangkaian pointer yang menghubungkan (link) antara satu alamat dengan alamat lain yang berada di separate overflow area. Hal ini dilakukan untuk mempercepat akses di area tersebut. Jadi, jika hasil perhitungan ternyata datanya bukan yang data dicari, maka akan di-link data yang berada di separate overflow area mulai dari awal alamatnya hingga ketemu data yang dicarinya.

12. BUCKET ADDRESSING
Cara lain untuk menghindari benturan adalah pembuatan blok-blok memori. Misalkan, setiap 10 record akan kita tempatkan di dalam satu blok (bucket). Jika blok tersebut sudah penuh, maka dibuka kembali blok-blok lain. Perhitungan penempatan record ke dalam blok dapat dilakukan dengan teknik yang mirip dengan teknik-teknik sebelumnya.
Begitu juga dengan pengambilan data kembali (retrieve) dilakukan dengan teknik-teknik yang sama dengan sebelumnya. Istilah prime memory (memori yang ditempati oleh record yang sesuai dengan hasil perhitungannya) dan separate overflow (memori yang menampung record yang hasil perhitungannya berbenturan sehingga tidak bisa ditempatkan di memori sebenarnya) dipakai juga di sini. Istilahnya menjadi : primary bucket dan overflow bucket.

13. FILE ORGANIZATION : INDEX SEQUENTIAL
Selain organisasi berkas sequential dan relative yang telah dibahas sebelumnya, berikut akan dibahas mengenai organisasi berkas index sequential. Contoh sederhana dari organisasi ini adalah susunan data yang ada di sebuah buku kamus. Kita bisa mengakses buku kamus tersebut secara sequential (berurutan), maupun melalui index (daftar isi)nya. Jadi, file organization index sequential adalah file yang disusun sedemikian rupa sehingga dapat diakses secara sequential maupun secara direct (langsung), atau kombinasi keduanya, direct dan sequential. Ada dua pendekatan dasar dalam menyusun organisasi berkas semacam ini, yaitu (1) blok index dan data, dan (2)
prime dan overflow data area. Untuk cara pertama, kita menyusun data dengan lebih memperhatikan ke data yang bersifat logik, bukan fisik. Jadi, data dan index diorganisasikan ke dalam blok-blok. Blok-blok index (daftar isi dalam buku kamus) diorganisasi secara sequential (consecutive) dan bertingkat-tingkat (misal setiap blok hanya berisi 4 record index yang berisi key field dan pointer). Setiap tingkat akan menuju ke blok data (misal setiap blok hanya berisi 5 record data) di tingkat selanjutnya dan seterusnya menuju ke blok data yang akan mendapatkan record yang dicari secara direct (lihat skema di buku referensi hal. 60). Bila dilakukan penyisipan data dan blok tertentu (tempat data baru itu) sudah penuh (tidak ada tempat kosong/padding lagi), maka akan dilakukan reorganisasi blok dengan membentuk blok baru.Tentu, mungkin saja perubahan ini akan berdampak pada isi blok index-nya.
Pendekatan kedua adalah dengan lebih memperhatikan aspek karakteristik dari hardware (fisik) alat penyimpanan datanya. Biasanya disimpan di hard disk yang memiliki cylinder dan track. Caranya hampir sama dengan cara di pendekatan pertama, hanya di sini lebih ditekankan pada aspek fisik. Jadi, yang bertingkat-tingkat adalah cylender-nya dan blok datanya ditulis secara consecutive di setiap track (misalkan 1
cylinder berisi 4 track, nomor 0 sampai 3). Index (pencarian data) tertinggi disebut dengan master index, dari master index berturut-turut menuju ke blok-blok index tingkat berikutnya hingga meraih record data yang berada di track-nya. Bila dilakukan penyisipan data dan track tertentu (tempat data baru itu) sudah penuh (tidak ada tempat kosong/padding lagi), maka akan dilakukan reorganisasi track dengan membentuk track baru. Tentu, track baru itu di luar prime data file-nya, yaitu di overflow data area-nya.

14. FILE ORGANIZATION : MULTI KEY
Selain organisasi berkas sequential, relative, dan index sequential yang telah dibahas sebelumnya, berikut akan dibahas mengenai organisasi berkas multi key. Inti dari organisasi berkas ini adalah, sebuah berkas (file) harus dapat diakses secara langsung (direct) dari berbagai kunci atribut (key field) yang ditentukan. Misalkan file MAHASISWA yang berisi biodata mahasiswa, harus bisa dicari record data seorang mahasiswa berdasarkan NPMnya, atau NAMAnya atau mungkin ALAMATnya. Organisasi berkas seperti ini sangat diperlukan karena berbagai user akan membutuhkan data yang sama dengan cara pandang yang berbeda. Sayangnya, jarang software database yang bisa
melakukan hal ini (menyediakan fasilitas pengorganisasian berkasnya secara multi key).

Ada banyak cara untuk mengorganisasi berkas semacam ini, misalkan dengan cara
(1) inversion, dan (2) multi-list. Cara inversion mirip dengan organisasi relative yang satu tabel index-nya berisi key field yang terurut dan sebuah pointer yang menunjuk ke alamat di mana data disimpan. Bedanya, karena di sini dibutuhkan banyak kunci, maka di tabel tersebut disimpan pula kunci-kunci atribut lainnya yang dibutuhkan. Cara kedua (multi-list) hampir sama dengan cara pertama, yaitu dibuat tabel index yang terurut key field-nya dan penunjuk ke nomor record (pertama) datanya, hanya di setiap record ditambahkan pointer (penunjuk) ke record-record berikutnya sesuai urutan key field yang ditentukannya. Tentu penunjuk itu akan berubah datanya bila akses dilakukan dengan key field lainnya.

15. SORT dan MERGE FILE
Banyak kebutuhan agar data harus diurut (sort), yang paling sederhana adalah ketika kita akan mencetak absensi mahasiswa. Jika data dicetak tanpa diurut, maka akan dibutuhkan waktu yang lebih lama bagi mahasiswa untuk mencari datanya di lembar absensinya. Padahal, sewaktu memasukkan data ke komputer dulu, kecil kemungkinan data diurut terlebih dulu secara manual karena data calon mahasiswa yang membayar uang kuliah dan menjadi mahasiswa juga tidak urut abjad. Sortir yang dilakukan di komputer jaman sekarang umumnya cukup dilakukan di dalam memori utama komputer (internal sort), sedangkan pada masa lalu, sortir dilakukan sebagian-sebagian dengan
bantuan memori sekunder (sebagai penampung sementara) sebelum akhirnya semua akan (di-merge) dan direkam ke memori sekunder itu.

Faktor-faktor yang mempengaruhi metode eksternal sort adalah : (1) jumlah record yang akan akan disortir, (2)ukuran (panjang) record, (3) jumlah storage yang digunakan, (4) kapasitas memori internal, dan (5) distribusi nilai key dalam input file.

Berbagai macam teknik sort/merge file adalah (1) natural merge, (2) balanced merge, (3) polyphase merge, dan (4) cascade merge.

16. NATURAL MERGE
M-natural merge adalah sebanyak m-input file yang akan disortir/ merge untuk menghasilkan 1 buah output file yang sudah terurut. Contoh, untuk mengurut 6000 record data tetapi memori utama komputernya hanya dapat menampung 2000 record, maka file tersebut akan dijadikan 3 input file (3-way natural merge) yang akhirnya kembali disimpan menjadi sebuah output file yang sudah terurut.

17. BALANCE MERGE
Balance merge hampir sama dengan natural merge, namun kondisi awalnya adalah banyaknya input file seimbang dengan banyaknya output file (m-way balance merge berarti m-input file dan m-output file), meskipun pada akhirnya tidak demikian.

18. POLYPHASE MERGE
Polyphase merge merupakan teknik perbaikan dari balance merge dengan cara memanfaatkan file yang nganggur (idle) ketika dilakukan merge. Pada m-polyphase merge digunakan 2m-1 input file dan 1 output file.

19. CASCADE MERGE
Cascade merge merupakan teknik merge yang selalu mengurangi 1 file input pada setiap tahapnya. Jadi, jika digunakan m-way cascade merge, maka file input yang digunakan adalah 2m-1,kemudian 2m-2,2m-3, dan seterusnya hingga bernilai 2 input file.


BEBERAPA ISTILAH DALAM SISTEM


OPERASI YANG TERKAIT DENGAN SISTEM BERKAS
Kita (programmer) tidak dapat berbuat apa-apa tanpa adanya sistem operasi di komputer. Sistem operasi membantu kita untuk mengontrol alat-alat (devices) komputer agar bekerja dengan baik. Misalkan, kita minta ”SAVE” data atau ”WRITE” data kita ke disket, maka sistem operasi akan membuka jalur transportasi (pathway) data dari hard disk ke memori utama dan dilanjutkan ke disket. Bukan itu saja, jika kita minta ”PRINT” maka sistem operasi mengaktifkan printer dan melakukan ”READ” data yang akan
dicetak dari alat penyimpanannya dan kembali ”mengangkut” data tersebut hingga akhirnya ke printer, dan sebagainya.

Beberapa istilah dalam sistem operasi antara lain :
(1) Supervisor I/O : adalah bagian dari sistem operasi yang mengontrol peralatan input/ output (I/O) computer.
(2) File manager : adalah bagian dari sistem operasi yang bertugas untuk mengatur pemberkasan di dalam alat-alat penyimpanan data di komputer.
(3) Device manager : adalah bagian dari sistem operasi yang bertugas untuk mengatur alat-alat (piranti-piranti) yang ada di dalam konfigurasi komputernya.
(4) I/O channel : adalah prosesor yang telah diprogram untuk mengakses peralatan yang dibutuhkan dan mengontrol jalur data.
(5) Selector channel : mengatur aliran data antara memori utama dengan peralatan lain seperti disk (peralatan dengan kecepatan tinggi).
(6) Multiplexer channel : mengatur aliran data antara memori utama dengan peralatan-peralatan lain seperti printer, magnetic tape, dsb. (peralatan dengan kecepatan rendah).
(7) Block multiplexer channel : mengatur aliran data ke berbagai peralatan.
(8) Dedicated device : peralatan yang hanya dapat digunakan oleh seorang pemakai dalam satu saat.
(9) Shared device : peralatan yang bisa digunakan oleh satu atau lebih pemakai dalam satu saat (waktu yang bersamaan).
(10) Spooling : dukungan peralatan virtual I/O yang biasanya digunakan di komputer multiuser. Misalkan 10 orang user akan mencetak ke sebuah printer dalam waktu bersamaan, maka spooling dapat menampung antrean mana urutan yang akan dicetak terlebih dulu dan mana yang kemudian.
(11) Buffer : adalah bagian dari CPU yang bertugas untuk menampung data sementara dari dan/ atau ke main memory.
Contoh, ketika kita ’membakar (burn)’ CD data, maka data yang ada di disk akan ditampung ke buffer terlebih dulu sebelum ditulis ke CD.
(12) Single buffering : (buffer tunggal), jika kita memiliki data sebesar 1MB yang akan dicetak dan buffer hanya dapat menampung 256KB, maka data 1MB tersebut diletakkan ke buffer sebesar 256KB dulu, baru dicetak hingga selesai 256KB itu, kemudian data diambil kembali untuk mengisi buffer itu, dan seterusnya.
(13). Anticipatory buffering : pada (12) ada waktu tunggu antara pencetakan isi buffer hingga buffer kosong dengan pengisian kembali buffer itu. Karenanya, sistem kontrol I/O dibuat sedemikian rupa sehingga sebelum buffer sampai benar-benar kosong sudah dimuat lagi dengan data yang baru.
(14) Double buffering : (buffer ganda), digunakan untuk meniadakan waktu tunggu seperti di single buffer, karena, ketika isi dari buffer 1 dicetak, buffer 2 diisi data. Ketika buffer 1 selesai dicetak, maka ia akan diisi data, sementara isi buffer 2 mulai dicetak. Demikian seterusnya.
(15) Multiple buffering : untuk mengantisipasi kemungkinan pengisian buffer kalah cepat dengan pengosongan buffer sehingga diharapkan tidak ada waktu tunggu yang kemungkinan masih ada di (14).

Tambahan istilah :
(1) completely inverted file adalah file yang memiliki index inversi untuk setiap fieldnya.
(2) partialy inverted file adalah file yang minimal satu fieldnya memiliki index inverse.
(3) primary key adalah atribut (field) yang dipilih untuk menentukan struktur storage pada organisasi file multi key, adapun key lainnya disebut dengan secondary key.
(4) head switching adalah waktu yang dibutuhkan untuk head dari hard disk ke track dan permukaan yang tepat.
(5) seek time adalah waktu yang digunakan untuk menggerakkan tangkai penghubung head dari hard disk ke posisi silinder yang tepat.
(6) parity check adalah sebuah track dalam tape yang digunakan untuk menyimpan kesalahan data.
(7) hit ratio adalah perbandingan antara banyaknya record yang akan diakses dengan banyaknya record dalam sebuah file. Semakin tinggi nilainya, semakin baik sequential digunakan.

Desain Set Komputer

Mesin Von Neumann


Sebagian besar, atau mungkin semua, komputer yang anda kenal adalah Von Neumann machines (mesin von Neumann), Dalam sebagian besar konteks, istilah computer dan Von Neumann machine adalah sinonil. (mesin von Neumann) jika komputer tersebut memenuhi kriteria berikut:

a) Ia mempunyai tiga subsistem hardware dasar:

1) sebuah CPU
2) sebuah sistem memori utama
3) sebuah sistem I/O

b) Ia merupakan komputer stored-program (program tersimpan).

Sistem memori utama menyimpan program yang mengontrol operasinya, dan komputer dapat
mengubah programnya sendiri untuk menambah atau mengurangi data lain yang ada di dalam memori.

c) Ia menjalankan instruksi secara berurutan.

CPU menjalankan,atau setidaknya akan menjalankan, satu operasi dalam sekali waktu.

d) Ia mempunyai, atau paling tidak akan mempunyai, satu path antara sistem memoriutamadan unit kontrolCPU ; hal ini biasanya dinamakan "Von Neumann Bottleneck."

Harvard architecture termasuk dalam kelompok mesin yon Neumann Harvard architecture (arsitektur Harvard) memungkinkan CPU untuk mengakses instruksi dan data secara serentak.

Komponen utama CPU adalah:

a) Control unit (CU), yang mengontrol operasi komputer.
b) Arithmetic dan logic unit (ALU), yang menjalankan operasi aritmetik, logika,
dan shift untuk menghasilkan sesuatu.
c) Register set, yang menyimpan berbagai macam nilai selama operasi komputer.
Program counter (PC) (kadang-kadang disebut sebagai instruction counter),
yang menyimpan alamat memori utarna dari suatu instruksi. PC adalah bagian
dari register set (set register).

Arsitektur Harvard

Setiap instruksi mempunyai operation code (op code), yaitu kode angka yang biasanya bisa dijumpai pada field pertama dari instruksi, yang memberitahu komputer
mengenai operasi yang akan dijalankannya. Program adalah urutan instruksi yang akan dijalankan komputer.

Urutan instruksi yang dijalankan komputer adalah instruction stream. Untuk menjaga track instruksi dalam memori, mesin von Neumann menggunakanPC. PC ini "points to" (menyimpanalamat dari) instruksiberikutnyayang akan dijalankan. terus menerus: instruction fetch dan instruction execution. Urutan ini dinamakan Untuk meningkatkan kecepatan eksekusi, arsitek biasanya menerapkan arsitektur Von Neumann dengan prosesor pipelined. Arsitek juga menggunakan beberapa unit aritmetik untuk meningkatkan kecepatan CPU, dan ia menyertakan buffer (memori berkecepatan tinggi tingkat menengah), agar kecepatan prosesor sesuai dengan kecepatan memori.

Mesin non-van Neumann

Tidak semua komputer merupakan mesin von Neumann. Flynn, pada tahun 1966, mengklasifIkasikan arsitektur komputer menurut berbagai sifatnya, yang meliputi jumlah prosesor, jumlah program yang dapat dijalankan, dan struktur memori.

KlasifIkasinyaitu mencakup kategori berikut :

a) Single instructionstream, single data stream (SISD) satu aliran instruksi, satu
aliran data. Arsitektur von Neumann termasuk dalam klasifIkasi ini. Komputer SISD mempunyai satu CPU yang menjalankan satu instruksi pada sekali waktu (oleh karenanya disebut aliran instruksi tunggal) dan menjemput atau menyimpan satu item data pada sekali waktu (oleh karenanya disebut aliran data tunggal).

b) Single instruction stream, multiple data stream (SIMD satu aliran instruksi, beberapa aliran data. Array prosesor termasuk dalam kategori ini. Mesin SIMD mempunyai sebuah CU yang beroperasi seperti mesin von Neumann (yaitu, ia menjalankan satu aliran instruksi), CU menghasilkan signal kontrol untuk semua PE, yang menjalankan operasi yang sama, biasanya pada lockstep, pada item data yang berbeda (oleh karenanya disebut aliran data banyak).

c) Multiple instruction stream, single data stream (MISD) beberapa a1iran instruksi,
satu aliran data. Secara logis, mesin dalam kelompok ini akan menjalankan berbagai program pada item data yang sama. walaupun beberapa sistem MIMD bisa digunakan dengan cara ini.

d) Multiple instruction stream, multiple data stream (MIMD) beberapa aliran instruksi, beberapa aliran data. Mesin MIMD juga disebut multiprosesor. Ia mempunyai lebih dari satu prosesor independen, dan setiap prosesor dapat menjalankan program yang berbeda (oleh karenanya disebut aliran data banyak) pada datanya sendiri (oleh karenanya disebut aliran data banyak).

Mesin SIMD dan MIMD adalah parallel processor (prosesor paralel), karena mereka beroperasi secara paralel pada lebih dari satu data sekali waktu. Arsitektur
multiprosesor dapat dibagi menjadi dua kategori, didasarkan pada susunan sistem
memorinya:

a) Global memory (GM) system architecture! arsitektur sistem memori global. Satu sistem memoriglobal digunakanbersamaoleh semua prosesor. Arsitektur komputer berunjuk kerja tinggi pada saat ini adalah dari jenis ini, dan ketiga arsitektur yang ada pada Gb. 13 ditunjukkan dengan memori global.

b) Local-memory(LM) systemarchitecture! Arsitektur sistem memori lokal. Disini, satu sistem penyimpanan digunakan untuk setiap prosesor. Multiprosesor dengan LM mungkin juga mempunyai GM dan juga disebut multiple processor.

2 ( dua ) jenis prosesor paralel (SIMD dan MIMD)

Mesin SIMD

Komputer SIMD mempunyai sifat berikut ini:

a) Mereka mendistribusikanpemrosesan ke sejumlah hardware.
b) Mereka beroperasi secara.bersama-sama pada beberapa elemen data yang berbeda.
c) Mereka menjalankan komputasi yang sarna pada semua e1emen data.

Oalammesin SIMO,PE mereka mengakses memori dengan cara yang berbeda. PE-PE dari komputer GM-SIMD secara bersama menggunakan sistem penyimpanan yang sarna, sedangkan PE-PE dari komputer LM-SIMO mempunyai sistem penyimpanan independen.

Array prosesor adalah arsitektur SIMO. Ia mempunyai satu CD dan beberapa PE. CD tersebut menghasilkan signal kontrol untuk semua PE, yang menjalankan komputasi yang tepat sarna secara serentak, namun dengan data yang berbeda. Biasanya, CD itu sendirilah yang mempakan komputer yon Neumann, yaitu merupakan komputer khusus yang lengkap yang mempunyai set register, ALD, dan unit kontrol. Komputer inf dinamakan sebagai unit kontrol (control unit), karena ia semata-mata dirancang untuk mengontrol PE dalam array prosesor, dan bukan untuk beroperasi sebagai komputer yang berdiri sendiri.

Mesin MIMD

Komputer MIMD mempunyai sifat berikut ini:

a) Mereka mendistribusikanpemrosesan ke sejumlah prosesor independen.
b) Mereka membagikansumber,termasukmemoriutama, ke prosesorkomponen.
c) Setiap prosesor beroperasi secara independen dan bersarna-sarna.

Setiap prosesor menjalankan programnya sendiri. Arsitektur MIMD yang berbeda mempunyai interconnection network yang berlainan, prosesor yang berbeda, struktur pengalamatan memori yan'g berbeda, dan struktur sinkronisasi dan kontrol yang berbeda
Kita dapat mengkategorikan komputer multiple-prosesor sebagai tightly coupled atau loosely coupled, Prosesor dalam multiprosesor yang terangkai dengan ketat (tightly coupled) biasanya menggunakan secara bersama satu sistem memori. Prosesor yang ada dalam multiprosesor yang terangkai dengan longgar (loosely coupled) mungkin juga menggunakan satu sistem memori, Jadi, komputer yang terangkai dengan ketat dan YaIJ.gterangkai dengan longgar secara berturut-turut sesuai dengan klasifIkasi GM-MIMD dan LM-MIMD.

Karena sebagian besar komputer tujuan khusus mencakupprosesor I/O tujuan khusus independen,maka secara logis kita dapat menganggapnya sebagai arsitektur GM-MIMD.

Processors with local memory Category Common Name Examples SISD (CISC) Uniprocessor ffiM PC, DEC PDP-ll, DEC VAX-II SISD (RISC) Uniprocessor MIPS R2000, SUN SPARC, ffiM SystemIR6000 GM-SIMD Processor array IILIAC IV, MPP, CM-I GM-MIMD Multiprocessor All existing tightly coupled (shared-memory)multiprocessors (DEC and ffiM) LM-MIMD Multiple processor TandemVI6,IPSCY2,


Arsitektur Lain


Dalam mesin yon Neumann, program menentukan arus kontrol. Dalam dataflow architecture (arsitektur arus data), sebaliknya, keberadaan data menentukan kapan
mesin akan menjalankan operasi. Model komputasi yang diimplementasikan prosesor
arus data, yang disebut dataflow model (model arus data), adalah pada dasamya
paralel, dan arsitek telah merancang mesin arus data untuk mengimplementasikan
model ini secara efisien. beberapa arsitektur tertentu hanya disebut special-purpose
machine (mesin tujuan khusus) karena fungsi khusus yang mereka jalankan.
Umumnya, menggunakan arsitektur konvensional yang telah dioptirnisasi untuk
aplikasi tertentu Yang termasuk dalam kelompok ini adalah
mesin artificial intelligence, mesin bahasa tingkat tinggi, mesin pemrosesan
tampilan,
prosesor penampil tiga dimensi, dan komputer yang mempunyai kontrol gabung.

International Business Machines




International Business Machines

International Business Machines Corporation (IBM) adalah sebuah perusahaan Amerika Serikat yang memproduksi dan menjual perangkat keras dan perangkat lunak komputer. IBM didirikan pada 15 Juni 1911, beroperasi sejak 1888 dan berpusat di Armonk, New York, Amerika Serikat.

Dengan lebih dari 330.000 pegawai di seluruh dunia dan pendapatan US$96 miliar (angka dari 2004), IBM adalah perusahaan teknologi informasi terbesar di dunia, dan salah satu yang terus berlanjut dari abad 19. Dia memiliki teknisi dan konsultan di lebih dari 170 negara dan laboratorium pengembangan yang berlokasi di seluruh dunia, di setiap cabang ilmu komputer dan teknologi informasi; beberapa dari mereka adalah pionir di bidang mulai dari komputer mainframe ke nanoteknologi.

Mesin-mesin dan produk IBM yang sukses adalah Mainframe dengan sistem 370 (1960an), IBM PC, AS/400 dan RS/6000 (1980an), PowerPC CPU (1990an, bekerja sama dengan Motorola - sekarang Freescale )

Dalam tahun-tahun belakangan ini, pendapatan jasa dan konsultasi lebih besar dari produksi. Samuel J. Palmisano dipilih menjadi CEO pada 29 Januari 2002 setelah memimpin Jasa Global IBM, dan menolongnya menjadi bisnis dengan "backlog" US$100 miliar di 2004.

Pada 2002 perusahaan ini menguatkan kemampuan nasihat bisnisnya dengan mengambil alih perusahaan jasa konsultan tekemuka PricewaterhouseCoopers. Perusahaan ini terus memfokuskan usahanya di konsultasi jawaban bisnis, jasa dan perangkat lunak, dan juga menekankan chip harga tinggi dan teknologi perangkat keras. Pada 2004 dia mempekerjakan sekitar 191.000 teknisi profesional. Yang termasuk 300-400 Teknisi Terkenal dan 50-60 "IBM fellow", teknisi paling senior.

IBM Research memiliki delapan laboratorium riset yang terletak di belahan utara dunia, dengan setengahnya terletak di luar Amerika Serikat. Pegawai IBM telah meraih lima penghargaan Nobel. Di Amerika, mereka juga mendapatkan empat Penghargaan Turing, lima Medali Teknologi Nasional, dan lima Medali Sains Nasional, dan juga banyak lagi di luar Amerika.

CEO IBM sekarang adalah Samuel J. Palmisano yang menggantikan Louis V. Gerstner sejak tanggal 29 Januari 2002. Louis V. Gerstner menjadi CEO IBM selama 10 tahun menggantikan John Ackers yang dipecat karena hampir membangkrutkan IBM pada tahun 1992. Sebelumnya Louis V. Gerstner bekerja untuk Nabisco.

IBM PC adalah sebutan untuk keluarga komputer pribadi buatan IBM. IBM PC diperkenalkan pada 12 Agustus 1981, dan "dipensiunkan" pada tanggal 2 April 1987. Sejak diluncurkan oleh IBM, IBM PC memiliki beberapa keluarga, yakni

* IBM 4860 PCjr
* IBM 5140 Convertible Personal Computer (laptop)
* IBM 5150 Personal Computer (PC yang asli)
* IBM 5155 Portable PC (sebenarnya merupakan PC XT yang portabel)
* IBM 5160 Personal Computer/eXtended Technology
* IBM 5162 Personal Computer/eXtended Technology Model 286 (sebenarnya merupakan PC AT)
* IBM 5170 Personal Computer/Advanced Technology

* 1 IBM 5150 Personal Computer
o 1.1 Model
o 1.2 Versi BIOS
* 2 IBM 5140 PC Convertible (laptop)
* 3 IBM 5160 Personal Computer eXTended

· IBM 5150 Personal Computer

IBM PC 5150 adalah komputer pribadi generasi pertama yang diluncurkan pada 12 Agustus 1981. Komputer pribadi tersebut diperkuat dengan menggunakan prosesor 16-bit Intel 8088 berkecepatan 4.77 MHz, power supply 63.5 Watt dan memori yang hanya 64 KB. Media penyimpanan yang digunakannya hanya floppy disk drive 5.25 inci 320 KB atau 360 KB (double-side floppy disk).

IBM PC datang dengan ROM yang dilengkapi dengan interpreter bahasa Microsoft Cassette BASIC, sehingga pengguna dapat melakukan pemrograman (jika tidak ada sistem operasi yang dimuat). ROM juga dilengkapi dengan fungsi diagnosa Power-on Self Test (POST) yang akan melakukan pengecekan terhadap perangkat keras sebelum dapat bekerja (meski proses pengecekan yang dilakukannya sangat lambat, lebih dari 10 detik).



· Model

Sebelum Maret 1983, IBM memasarkan beberapa model dengan konfigurasi yang berbeda (meskipun hanya sedikit perbedaannya), tapi setelah Maret 1983, IBM PC 5150 datang dalam dua model, yakni:

* IBM PC 5150 Model 166 (Intel 8088, 256 KB RAM, 1 buah floppy-disk drive 360 KB)
* IBM PC 5150 Model 176 (Intel 8088, 256 KB RAM, 2 buah floppy-disk drive 360 KB)

Hingga dipensiunkan tanggal 2 April 1987 (enam tahun masa jabatan), IBM PC dapat mendunia. Tetapi, secara arsitektural, tidak ada perubahan yang signifikan di dalamnya.

· Versi BIOS

IBM PC datang dengan tiga versi BIOS, yang dibedakan dari tanggalnya, yakni sebagai berikut:

* 24 April 1981, merupakan versi BIOS pertama dalam IBM PC yang hanya mendukung memori fisik hingga 544 KB. Tidak dilengkapi dengan fitur pemindaian blok memori UMA (Upper Memory Address) untuk beberapa kartu ekspansi (seperti video, adapter hard disk, dan lainnya).
* 19 Oktober 1981, merupakan versi BIOS kedua dalam IBM PC yang hanya mendukung memori fisik hingga 544 KB. Sama seperti halnya versi pertama tapi ditambahi beberapa bugfix.
* 27 Oktober 1982, merupakan versi BIOS ketiga yang dapat mendukung memori fisik hingga 640 KB (conventional memory), ditambah dengan fitur pemindaian blok memori UMA. BIOS ini merupakan BIOS yang paling umum digunakan.

Upgrade BIOS hanya dapat dilakukan dengan mengganti chip BIOS yang lama dengan chip BIOS yang baru. IBM menjual kit upgrade BIOS dengan nomor spare part 1501005.

· IBM 5140 PC Convertible (laptop)

IBM memasarkan laptop pertama yang mereka sebut sebagai IBM 5140 PC Convertible pada tanggal 2 April 1986, yang merupakan pengganti dari IBM 5155 Portable PC yang dihentikan produksinya. Sistem IBM 5140 tidaklah sesukses IBM 5150 atau laptop-laptop lainnya, mengingat laptop pesaing menawarkan media penyimpanan yang lebih baik, penggunaan prosesor yang lebih cepat, layar yang lebih baik, ukuran yang lebih kompak, dan harga yang lebih murah. Meski IBM 5140 menawarkan layar yang lebih baik dibandingkan dengan laptop-laptop pesaing, IBM 5140 tidak begitu dilirik pasar.

IBM 5140 tersedia dalam dua model, yakni:

* Model 2, yang diperkuat dengan menggunakan mikroprosesor Intel 80C88 CMOS 4.77 MHz, 64 KB ROM, 256 KB SRAM, layar LCD dengan resolusi 80x25, dua buah 3½ inci floppy-disk drive, keyboard 78-tombol, adaptor AC, dan baterai. Program yang tersedia dalam model ini adalah Application Selector, SystemApps, Tools, Exploring the IBM PC Convertible, dan Diagnostics.
* Model 22, yang merupakan IBM 5140 Model 2 yang hanya dilengkapi dengan perangkat lunak diagnosa saja (Diagnostics). Model ini dijual dengan harga yang lebih murah dibandingkan dengan Model 2.

Dua model di atas dapat ditambahi RAM hingga 512 KB dengan menggunakan kartu ekspansi memori RAM sebesar 128 KB. Selain itu, dapat diperluas dengan menggunakan modem internal 1200 bit/detik.

Meski IBM 5140 menggunakan prosesor yang lambat (4.77 MHz, sama seperti IBM 5150), penggunaan SRAM sebagai memori fisik mampu meningkatkan kinerja jika dibandingkan dengan penggunaan DRAM, mengingat SRAM tidak membutuhkan sinyal refresh seperti halnya DRAM (yang mampu menambah waktu tunggu hingga 7% dari kecepatan CPU IBM PC atau IBM PC/XT). Ini berarti IBM 5140 memiliki kinerja yang lebih tinggi hingga 7% dibandingkan dengan IBM PC atau IBM PC/XT, meskipun memiliki prosesor dengan kecepatan yang sama, 4.77 MHz. Karena SRAM memang lebih andal jika dibandingkan DRAM, penggunaannya dalam 5140 tidak membutuhkan pengecekan paritas yang bahkan menambah waktu tunggu yang lebih tinggi lagi.

Sebuah unit IBM 5140 memiliki fitur-fitur standar berikut:

* Mikroprosesor yang dibuat berdasarkan teknologi Complimentary Metal-Oxide Semiconductor (CMOS), Intel 80C88 (variasi dari Intel 8088), dengan kecepatan 4.77 MHz.
* Dua buah ROM berukuran 32 Kilobyte yang berisi hal-hal berikut (untuk menghemat daya, digunakanlah teknologi CMOS):
o Power-On Selft Test yang mampu menjalankan diagnosa terhadap perangkat komputer saat melakukan proses booting, serta BIOS.
o interpreter bahasa BASIC.
* Memori fisik menggunakan Static Random Access Memory yang berukuran 256 KB. Dapat ditambahi hingga 512 KB. (untuk menghemat daya, maka digunakanlah teknologi CMOS).
* Dua buah floppy-disk drive 3½ inci 720 KB.
* Sebuah panel LCD dengan resolusi 80 kolom x25 baris (modus teks), atau 640x200 dan 320x200 pixel (modus grafik) yang dapat dilepas.
* Sebuah LCD controller
* Display buffer dengan ukuran RAM 16 KB, ditambah 8 KB RAM untuk menyimpan font LCD
* Keyboard 78-tombol
* Adaptor AC
* Baterai

· IBM 5160 Personal Computer eXTended

IBM PC/XT adalah sebuah komputer mikro buatan IBM yang dirilis pada tanggal 8 Maret 1983. Komputer ini diperkuat dengan menggunakan hard disk berkapasitas 10 Megabyte, yang merupakan hard disk yang dianggap "spesial" pada saat itu. XT di sini merupakan singkatan dari eXTended, karena IBM PC XT memiliki fitur-fitur yang tidak dimiliki oleh IBM PC standar (5150). IBM PC XT memiliki delapan buah slot, sehingga meningkatkan kemampuan ekspansinya; kapasitas power-supply yang lebih besar; memori yang dapat dibongkar/pasang (karena semuanya berupa soket), dan dapat mendukung hingga 640 KB RAM tanpa slot ekspansi memori, selain tentunya sebuah hard disk. Karena memiliki fitur-fitur itulah, desain motherboard IBM PC/XT berbeda dengan desain motherboard IBM PC yang asli. IBM PC/XT ini menawarkan beberapa perangkat keras yang masih digunakan hingga saat ini, yakni keyboard 101 tombol (Enhanced Keyboard) yang menggantikan model keyboard IBM 83 tombol.

Sumber Wikipedia.com

PERKEMBANGAN Komputer




PERSPEKTIF HISTORIS

1.1 PERKEMBANGAN KOMPUTER

· Jaman Kuno : Metode Elementer

· Thn 2000 SM : ABACUS / SEMPOA di daratan Cina

· Thn 1617 : John Napier membuat “Napier Bones”

· Thn 1620 : William Oughtred membuat “Slide Rule”

· Thn 1642 : Blaise Pascal membuat “Pascal Arithmatic Machine”

· Thn 1671 : Gotfried Von Leibneitz membuat “Leibneitz Calculation Machine”

· Thn 1812 : Charles Babage membuat “Babage Calculation Machine”

· Thn 1890 : Herman Hollerith membuat “Punch Card Machine”

· Thn 1944 : Horward Aiken membuat MARK-I

· Thn 1946 : J. Prespr Eckert dan John W. Mauchly membuat ENIAC dan membuat UNIVAC komputer yang pertama kali di perdagangkan

· Thn 1950 : J. Prespr Eckert dan John W. Mauchly mengembangkan menjadi EDSAC

Perkembangan Komputer Berdasarkan Generasinya

1.1.1 Komputer Generasi Pertama (1946 – 1959)

· Menggunakan tabung hampa udara (Vacuum Tube) untuk sirkutnya

· Program hanya dapat dibuat dengan bahasa mesin (Machine Language)

· Menggunakan konsep stored-program dengan memori utamanya adalah magnetic core storage

· Ukuran fisik komputer besar, memerlukan ruangan yang luas

· Cepat panas, sehingga diperlukan alat pendingin. Prosesnya kurang cepat dan simpanan (memorinya) kecil

· Membutuhkan daya listrik yang besar dan berorientasi pada aplikasi bisnis

Contoh dari komputer generasi pertama, adalah :

· ENIAC (Elektronic Numerical Integrator and calculator) dimulai tahun 1942

· HARDVARD MARK II dibuat pada bulan juli tahun 1947 dan mempunyai kemampuan 12 kali lebih besar daripada HARDVARD MARK II

1.1.2 Komputer Generasi Kedua (1959 – 1964)

· Komponen yang digunakan adalah transistor untuk sirkuitnya, dikembangkan di Bell Laboratories oleh John Bordeen, William Shockley dan Wolther Brattain pada tahun 1947

· Program dapat dibuat dan Bahasa Tingkat Tinggi, misalnya : Fortran, Cobol, Algol

· Kapasitas memori utama sudah cukup besar dengan pengembangan dari magnetic core storage, dapat menyimpan puluhan ribu karakter

· Menggunakan simpanan luar magnetic tape dan magnetic disk yang berbentuk removable disk atau disk pack

· Mempunyai kemampuan proses real-time dan time-sharing

· Ukuran fisik komputer lebih kecil dibandingkan dengan komputer generasi pertama

· Proses operasi sudah cepat, dapat memproses jutaan operasi perdetik

· Membutuhkan lebih sedikit daya listrik

· Orientasinya tidak hanya pada aplikasi bisnis, tapi juga ke aplikasi teknik.

Contoh dari komputer generasi kedua, adalah : IBM model 1620, IBM model 1401, dll.

1.1.3 Komputer Generasi Ketiga (1946 – 1970)

· Komponen yang digunakan adalah IC (Integrated Circuit) yang berbentuk Hybrid Integrated Circuit dan Monolithic Integrated Circuit

· Peningkatan dari softwarenya

· Lebih cepat dan lebih tepat kec. +/-10000x dari komputer generasi pertama

· Kapasitas memori komputer lebih besar, dapat menyimpan ratusan ribu karakter

· Menggunakan penyimpanan luar yang sifatnya random access yang (dapat masuk record data secara acak) yaitu disk magnetic yang berkapasitas besar (jutaan karakter)

· Penggunaan listrik lebih hemat dibandingkan dengan komputer generasi sebelumnya

· Memungkinkan untuk melakukan multiprocessing dan multiprogramming

· Pengembangan dari alat input-output yang menggunakan visual display terminal yang bisa menampilkan gambar-gambar dan grafik, dapat menerima dan mengeluarkan suara, serta penggunaan alat pembaca tinta Magnetic yaitu MICR (Magnetic Ink Character Recognition)

· Harga semakin murah dibandingkan dengan komputer generasi sebelumnya

· Kemampuannya melakukan komunikasi data dari satu komputer dengan komputer yang lainnya, misalnya : lewat alat komunikasi telepon

Contoh dari komputer generasi ketiga, adalah : IBM S/370 dan UNIVAC 1106

1.1.4 Komputer Generasi Keempat (1970 – 1990)

· Penggunaan Large Scale Integration (LSI) disebut juga dengan nama Bipolar Large Scale Integration

· Dikembangkan komputer Mikro yang menggunakan Micro Processor dan Semi Conductor yang berbentuk Chip untuk memori komputer generasi sebelumnya masih menggunakan Magnetic Core Storage

· Biaya lebih besar dan pembuatannya sangat rumit

· Dibuat dengan rangkaian terpadu bertingkat tinggi

1.1.5 Komputer Generasi Kelima (mulai 1990-an)

· Komputer ini sedang dalam pengembangan komponen yang digunakan adalah VLSI (Very Large Scale Integration)

· Teknologi yang kemungkinan bisa menggantikan Chips

· Dapat menterjemahkan bahasa manusia dan manusia dapat bercakap-cakap langsung dengan komputer

· Penghematan energy komputer

· Dapat melakukan diagnosa penyakit yang lebih akurat

1.1.6 Komputer Generasi Keenam (Abad 21)

Generasi ini adalah generasi masa depan yang nantinya dikenal dengan Generasi Titanium.

SUMBER : D.SURYADI.H.S., “PENGANTAR ARSITEKTUR KOMPUTER”.PENERBIT : GUNADARMA.

Port I/O




Port I/O

Port I/O yang berarti gerbang konektor Input/Output pada komputer, seperti pada keyboard, mouse paralel/serial ataupun USB, menyediakan koneksi untuk piranti eksternal seperti kamera digital, printer dan scanner.

· System bus atau bus sistem

dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur-jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus.

Sebuah komputer memiliki beberapa bus, agar dapat berjalan. Banyaknya bus yang terdapat dalam sistem, tergantung dari arsitektur sistem komputer yang digunakan. Sebagai contoh, 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.

Bus disusun secara hierarkis, karena setiap bus yang memiliki kecepatan rendah akan dihubungkan dengan bus yang memiliki kecepatan tinggi. Setiap perangkat di dalam sistem juga dihubungkan ke salah satu bus yang ada. Sebagai contoh, kartu grafis AGP akan dihubungkan ke bus AGP. Beberapa perangkat lainnya (utamanya chipset atau kontrolir) akan bertindak sebagai jembatan antara bus-bus yang berbeda. Sebagai contoh, sebuah kontrolir bus SCSI dapat mengubah sebuah bus menjadi bus SCSI, baik itu bus PCI atau bus PCI Express.

Berdasar jenis busnya, bus dapat dibedakan menjadi bus yang khusus menyalurkan data tertentu, contohnya paket data saja, atau alamat saja, jenis ini disebut dedicated bus. Namun apabila bus yang dilalui informasi yang berbeda baik data, alamat, dan sinyal kontrol dengan metode multipleks data maka bus ini disebut multiplexed bus. Kekurangan multiplexed bus adalah hanya memerlukan saluran sedikit sehingga menghemat tempat tapi kecepatan transfer data menurun dan diperlukan mekanisme yang komplek untuk mengurai data yang telah dimultipleks. Sedangkan untuk dedicated bus merupakan kebalikan dari multipexed bus.

Beberapa bus utama dalam sistem komputer modern adalah sebagai berikut:

* Bus prosesor. Bus ini merupakan bus tercepat dalam sistem dan menjadi bus inti dalam chipset dan motherboard. Bus ini utamanya digunakan oleh prosesor untuk meneruskan informasi dari prosesor ke cache atau memori utama ke chipset kontrolir memori (Northbridge, MCH, atau SPP). Bus ini juga terbagi atas beberapa macam, yakni Front-Side Bus, HyperTransport bus, dan beberapa bus lainnya. Sistem komputer selain Intel x86 mungkin memiliki bus-nya sendiri-sendiri. Bus ini berjalan pada kecepatan 100 MHz, 133 MHz, 200 MHz, 266 MHz, 400 MHz, 533 MHz, 800 MHz, 1000 MHz atau 1066 MHz. Umumnya, bus ini memiliki lebar lajur 64-bit, sehingga setiap detaknya ia mampu mentransfer 8 byte.
* Bus AGP (Accelerated Graphic Port). Bus ini merupakan bus yang didesain secara spesifik untuk kartu grafis. Bus ini berjalan pada kecepatan 66 MHz (mode AGP 1x), 133 MHz (mode AGP 2x), atau 533 MHz (mode AGP 8x) pada lebar jalur 32-bit, sehingga bandwidth maksimum yang dapat diraih adalah 2133 MByte/s. Umumnya, bus ini terkoneksi ke chipset pengatur memori (Northbridge, Intel Memory Controller Hub, atau NVIDIA nForce SPP). Sebuah sistem hanya dapat menampung satu buah bus AGP. Mulai tahun 2005, saat PCI Express mulai marak digunakan, bus AGP ditinggalkan.
* Bus PCI (Peripherals Component Interconnect). Bus PCI tidak tergantung prosesor dan berfungsi sebagai bus peripheral. Bus ini memiliki kinerja tinggi untuk sistem I/O berkecepatan tinggi. Bus ini berjalan pada kecepatan 33 MHz dengan lebar lajur 32-bit. Bus ini ditemukan pada hampir semua komputer PC yang beredar, dari mulai prosesor Intel 486 karena memang banyak kartu yang menggunakan bus ini, bahkan hingga saat ini. Bus ini dikontrol oleh chipset pengatur memori (northbridge, Intel MCH) atau Southbridge (Intel ICH, atau NVIDIA nForce MCP).
* Bus PCI Express (Peripherals Component Interconnect Express)
* Bus PCI-X (Peripherals Component Interconnect Express)
* Bus ISA (Industry Standard Architecture)
* Bus EISA (Extended Industry Standard Architecute)
* Bus MCA (Micro Channel Architecture)
* Bus SCSI (Small Computer System Interface]]. Bus ini diperkenalkan oleh Macintosh pada tahun 1984. SCSI merupakan antarmuka standar untuk drive CD-ROM, peralatan audio, harddisk, dan perangkat penyimpanan eksternal berukuran besar
* Bus USB (Universal Serial Bus). Bus ini dikembangkan oleh tujuh vendor komputer, yaitu Compaq, DEC, IBM, Intel, Microsoft, NEC, dan Northern Telecom. Bus ini ditujukan bagi perangkat yang memiliki kecepatan rendah seperti keyboard, mouse, dan printer karena tidak akan efisien jika perangkat yang berkecepatan rendah dipasang pada bus berkecepatan tinggi seperti PCI. Keuntungan yang didapat dari bus USB antara lain : tidak harus memasang jumper, tidak harus membuka casing untuk memasang peralatan I/O, hanya satu jenis kabel yang digunakan, dapat mensuplai daya pada peralatan I/O, tidak diperlukan reboot.
* Bus 1394. Bus yang mempunyai nama FireWire memiliki kecepatan tinggi diatas SCSI dan PCI. Bus 1394 sangat cepat, murah, dan mudah untuk diimplementasikan. Bus ini tidak hanya populer perangkat komputer tetapi juga perangkat elektronik seperti kamera digital, VCR, dan televisi.

· System bus atau bus sistem,

dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur-jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus.

Sebuah komputer memiliki beberapa bus, agar dapat berjalan. Banyaknya bus yang terdapat dalam sistem, tergantung dari arsitektur sistem komputer yang digunakan. Sebagai contoh, 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.

Bus disusun secara hierarkis, karena setiap bus yang memiliki kecepatan rendah akan dihubungkan dengan bus yang memiliki kecepatan tinggi. Setiap perangkat di dalam sistem juga dihubungkan ke salah satu bus yang ada. Sebagai contoh, kartu grafis AGP akan dihubungkan ke bus AGP. Beberapa perangkat lainnya (utamanya chipset atau kontrolir) akan bertindak sebagai jembatan antara bus-bus yang berbeda. Sebagai contoh, sebuah kontrolir bus SCSI dapat mengubah sebuah bus menjadi bus SCSI, baik itu bus PCI atau bus PCI Express.

Berdasar jenis busnya, bus dapat dibedakan menjadi bus yang khusus menyalurkan data tertentu, contohnya paket data saja, atau alamat saja, jenis ini disebut dedicated bus. Namun apabila bus yang dilalui informasi yang berbeda baik data, alamat, dan sinyal kontrol dengan metode multipleks data maka bus ini disebut multiplexed bus. Kekurangan multiplexed bus adalah hanya memerlukan saluran sedikit sehingga menghemat tempat tapi kecepatan transfer data menurun dan diperlukan mekanisme yang komplek untuk mengurai data yang telah dimultipleks. Sedangkan untuk dedicated bus merupakan kebalikan dari multipexed bus.

Beberapa bus utama dalam sistem komputer modern adalah sebagai berikut:

* Bus prosesor. Bus ini merupakan bus tercepat dalam sistem dan menjadi bus inti dalam chipset dan motherboard. Bus ini utamanya digunakan oleh prosesor untuk meneruskan informasi dari prosesor ke cache atau memori utama ke chipset kontrolir memori (Northbridge, MCH, atau SPP). Bus ini juga terbagi atas beberapa macam, yakni Front-Side Bus, HyperTransport bus, dan beberapa bus lainnya. Sistem komputer selain Intel x86 mungkin memiliki bus-nya sendiri-sendiri. Bus ini berjalan pada kecepatan 100 MHz, 133 MHz, 200 MHz, 266 MHz, 400 MHz, 533 MHz, 800 MHz, 1000 MHz atau 1066 MHz. Umumnya, bus ini memiliki lebar lajur 64-bit, sehingga setiap detaknya ia mampu mentransfer 8 byte.
* Bus AGP (Accelerated Graphic Port). Bus ini merupakan bus yang didesain secara spesifik untuk kartu grafis. Bus ini berjalan pada kecepatan 66 MHz (mode AGP 1x), 133 MHz (mode AGP 2x), atau 533 MHz (mode AGP 8x) pada lebar jalur 32-bit, sehingga bandwidth maksimum yang dapat diraih adalah 2133 MByte/s. Umumnya, bus ini terkoneksi ke chipset pengatur memori (Northbridge, Intel Memory Controller Hub, atau NVIDIA nForce SPP). Sebuah sistem hanya dapat menampung satu buah bus AGP. Mulai tahun 2005, saat PCI Express mulai marak digunakan, bus AGP ditinggalkan.
* Bus PCI (Peripherals Component Interconnect). Bus PCI tidak tergantung prosesor dan berfungsi sebagai bus peripheral. Bus ini memiliki kinerja tinggi untuk sistem I/O berkecepatan tinggi. Bus ini berjalan pada kecepatan 33 MHz dengan lebar lajur 32-bit. Bus ini ditemukan pada hampir semua komputer PC yang beredar, dari mulai prosesor Intel 486 karena memang banyak kartu yang menggunakan bus ini, bahkan hingga saat ini. Bus ini dikontrol oleh chipset pengatur memori (northbridge, Intel MCH) atau Southbridge (Intel ICH, atau NVIDIA nForce MCP).
* Bus PCI Express (Peripherals Component Interconnect Express)
* Bus PCI-X (Peripherals Component Interconnect Express)
* Bus ISA (Industry Standard Architecture)
* Bus EISA (Extended Industry Standard Architecute)
* Bus MCA (Micro Channel Architecture)
* Bus SCSI (Small Computer System Interface]]. Bus ini diperkenalkan oleh Macintosh pada tahun 1984. SCSI merupakan antarmuka standar untuk drive CD-ROM, peralatan audio, harddisk, dan perangkat penyimpanan eksternal berukuran besar
* Bus USB (Universal Serial Bus). Bus ini dikembangkan oleh tujuh vendor komputer, yaitu Compaq, DEC, IBM, Intel, Microsoft, NEC, dan Northern Telecom. Bus ini ditujukan bagi perangkat yang memiliki kecepatan rendah seperti keyboard, mouse, dan printer karena tidak akan efisien jika perangkat yang berkecepatan rendah dipasang pada bus berkecepatan tinggi seperti PCI. Keuntungan yang didapat dari bus USB antara lain : tidak harus memasang jumper, tidak harus membuka casing untuk memasang peralatan I/O, hanya satu jenis kabel yang digunakan, dapat mensuplai daya pada peralatan I/O, tidak diperlukan reboot.
* Bus 1394. Bus yang mempunyai nama FireWire memiliki kecepatan tinggi diatas SCSI dan PCI. Bus 1394 sangat cepat, murah, dan mudah untuk diimplementasikan. Bus ini tidak hanya populer perangkat komputer tetapi juga perangkat elektronik seperti kamera digital, VCR, dan televisi.

Sumber Wikipedia.com

Central Processing Unit (CPU)



Central Processing Unit

Central Processing Unit (CPU), merujuk kepada perangkat keras komputer yang memahami dan melaksanakan perintah dan data dari perangkat lunak. Istilah lain, pemroses/prosesor (processor), sering digunakan untuk menyebut CPU. Adapun mikroprosesor adalah CPU yang diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket sirkuit terpadu-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor sirkuit terpadu-tunggal ini telah umum digunakan dan menjadi aspek penting dalam penerapan CPU.

Komponen CPU

Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut.

Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU. CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antarkomponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
- Mengatur dan mengendalikan alat-alat masukan (input) dan keluaran (output).
- Mengambil instruksi-instruksi dari memori utama.
- Mengambil data dari memori utama (jika diperlukan) untuk diproses.
- Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
- Menyimpan hasil proses ke memori utama.

Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
ALU unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.

Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).

CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.

Cara Kerja CPU

Saat data atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di MAA (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Akumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.

Fungsi CPU

CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan tombol, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (MAA), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada MAA dengan menentukan alamat data yang dikehendaki.

Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan MAA. Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmatika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah. ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam CPU yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.

Percabangan Instruksi

Pemrosesan instruksi dalam CPU dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Tahap-I berisikan pemrosesan CPU dimana Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan Tahap-II berisikan pemrosesan CPU dimana Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di MAA, setelah Instruction Fetch dilakukan. Waktu pada tahap-I ditambah dengan waktu pada tahap-II disebut waktu siklus mesin (machine cycles time).

Penghitung program dalam CPU umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam CPU, yang disebut dengan instruksi lompatan, mengizinkan CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.

Bilangan yang Dapat Ditangani

Kebanyakan CPU dapat menangani dua jenis bilangan, yaitu fixed-point dan floating-point. Bilangan fixed-point memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini memang membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, tetapi hal ini justru dapat dihitung oleh CPU secara lebih cepat. Sementara itu, bilangan floating-point merupakan bilangan yang diekspresikan dalam notasi ilmiah, di mana sebuah angka direpresentasikan sebagai angka desimal yang dikalikan dengan pangkat 10 (seperti 3,14 x 1057). Notasi ilmiah seperti ini merupakan cara yang singkat untuk mengekspresikan bilangan yang sangat besar atau bilangan yang sangat kecil, dan juga mengizinkan jangkauan nilai yang sangat jauh sebelum dan sesudah titik desimalnya. Bilangan ini umumnya digunakan dalam merepresentasikan grafik dan kerja ilmiah, tetapi proses aritmatika terhadap bilangan floating-point jauh lebih rumit dan dapat diselesaikan dalam waktu yang lebih lama oleh CPU karena mungkin dapat menggunakan beberapa siklus detak CPU. Beberapa komputer menggunakan sebuah prosesor sendiri untuk menghitung bilangan floating-point yang disebut dengan FPU (disebut juga math co-processor) yang dapat bekerja secara paralel dengan CPU untuk mempercepat penghitungan bilangan floating-point. FPU saat ini menjadi standar dalam banyak komputer karena kebanyakan aplikasi saat ini banyak beroperasi menggunakan bilangan floating-point.

Memori virtual

adalah sebuah mekanisme yang digunakan oleh aplikasi untuk menggunakan sebagian dari memori sekunder seolah-olah ia menggunakannya sebagai RAM fisik yang terinstal di dalam sebuah sistem. Mekanisme ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan swap file, page file atau swap partition.

Dalam sistem operasi berbasis Windows NT, terdapat sebuah komponen yang mengatur memori virtual, yakni Virtual Memory Manager (VMM). VMM dapat memetakan alamat-alamat virtual yang dimiliki oleh sebuah proses yang berjalan ke dalam page memori fisik di dalam komputer. Dengan cara begini, setiap proses pun dapat memperoleh memori virtual yang cukup agar dapat berjalan, dan yang terpenting adalah setiap proses tidak mengganggu memori yang sedang digunakan oleh proses lainnya. VMM menangani paging antara RAM dan page file, dengan memindahkan page dengan menggunakan sebuah cara yang disebut sebagai demand paging. Hasilnya, setiap aplikasi 32-bit pun dapat mengakses memori hingga 4 gigabyte (meskipun Windows hanya membatasi proses yang berjalan dalam modus pengguna hanya sebatas 2 GB saja).

Tembolok

adalah mekanisme penyimpanan data sekunder berkecepatan tinggi yang digunakan untuk menyimpan data / instruksi yang sering diakses. Memori cache dimaksudkan untuk memberi kecepatan memori yang mendekati memori yang paling cepat yang bisa diperoleh, dan pada waktu yang sama menyediakan kapasitas memori yang besar dengan harga yang lebih murah dari jenis-jenis memori semikonduktor.

Konsep Memori Tembolok

Cache berasal dari kata cash. Dari istilah tersebut cache adalah tempat menyembunyikan atau tempat menyimpan sementara. Sesuai definisi tersebut cache memori adalah tempat menympan data sementara. Cara ini dimaksudkan untuk meningkatkan transfer data dengan menyimpan data yang pernah diakses pada cache tersebut, sehingga apabila ada data yang ingin diakses adalah data yang sama maka maka akses akan dapat dilakukan lebih cepat.Cache memori ini adalah memori tipe SDRAM yang memiliki kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan harga yang lebih mahal dari memori utama. Cache memori ini terletak antara register dan RAM (memori utama) sehingga pemrosesan data tidak langsung mengacu pada memori utama.

Level Memori Tembolok

Tembolok memori ada tiga level yaitu L1,L2 dan L3. Tembolok memori level 1 (L1) adalah tembolok memori yang terletak dalam prosesor (cache internal). Tembolok ini memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang mulai dari 8Kb, 64Kb dan 128Kb.Tembolok level 2 (L2) memiliki kapasitas yang lebih besar yaitu berkisar antara 256Kb sampai dengan 2Mb. Namun tembolok L2 ini memiliki kecepatan yang lebih rendah dari tembolok L1. Tembolok L2 terletak terpisah dengan prosesor atau disebut dengan cache eksternal. Sedangkan tembolok level 3 hanya dimiliki oleh prosesor yang memiliki unit lebih dari satu misalnya dualcore dan quadcore. Fungsinya adalah untuk mengontrol data yang masuk dari tembolok L2 dari masing-masing inti prosesor.

Cara Kerja Memori Tembolok

Jika prosesor membutuhkan suatu data, pertama-tama ia akan mencarinya pada tembolok. Jika data ditemukan, prosesor akan langsung membacanya dengan delay yang sangat kecil. Tetapi jika data yang dicari tidak ditemukan,prosesor akan mencarinya pada RAM yang kecepatannya lebih rendah. Pada umumnya, tembolok dapat menyediakan data yang dibutuhkan oleh prosesor sehingga pengaruh kerja RAM yang lambat dapat dikurangi. Dengan cara ini maka memory bandwidth akan naik dan kerja prosesor menjadi lebih efisien. Selain itu kapasitas memori cache yang semakin besar juga akan meningkatkan kecepatan kerja komputer secara keseluruhan.

Dua jenis tembolok yang sering digunakan dalam dunia komputer adalah memory caching dan disk caching. Implementasinya dapat berupa sebuah bagian khusus dari memori utama komputer atau sebuah media penyimpanan data khusus yang berkecepatan tinggi.

Implementasi memory caching sering disebut sebagai memory cache dan tersusun dari memori komputer jenis SDRAM yang berkecepatan tinggi. Sedangkan implementasi disk caching menggunakan sebagian dari memori komputer.

Stuktur Sistem Tembolok

Memori utama terdiri dari sampai dengan 2n word beralamat, dengan masing-masing word mempunyai n-bit alamat yang unik. Untuk keperluan pemetaan, memori ini dinggap terdiri dari sejumlah blok yang mempunyai panjang K word masing-masing bloknya. Dengan demikian, ada M = 2n/K blok. Cache terdiri dari C buah baris yang masing-masing mengandung K word, dan banyaknya baris jauh lebih sedikit dibandingkan dengan banyaknya blok memori utama (C << M). Di setiap saat, beberapa subset blok memori berada pada baris dalam cache. jika sebuah word di dalam blok memori dibaca, blok itu ditransfer ke salah satu baris cache. karena terdapat lebih banyak blok bila dibanding dengan baris, maka setiap baris tidak dapat menjadi unik dan permanen untuk dipersempahkan ke blok tertentu mana yang disimpan. Tag biasanya

Elemen Rancangan Cache

Elemen-elemen penting dari rancangan memory cache adalah sebagai berikut:

Ukuran cache, disesuaikan dengan kebutuhan untuk membantu kerja memori. Semakin besar ukuran cache semakin lambat karena semakin banyak jumlah gerbang dalam pengalamatan cache.
Fungsi Pemetaan (Mapping), terdiri dari Pemetaan Langsung, Asosiatif, Asosiatif Set.Pemetaan langsung merupakan teknik yang paling sederhana, yaitu memetakkan masing-masing blok memori utama hanya ke sebuah saluran cache saja. Pemetaan asosiatif dapat mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache.Hal ini menurut artikel dari Yulisdin Mukhlis, ST., MT
Algoritma Penggantian, terdiri dari Least Recently Used (LRU), First in First Out (FIFO), Least Frequently Used (LFU), Acak. Algoritma penggantian digunakan untuk menentukan blok mana yang harus dikeluarkan dari cache untuk menyiapkan tempat bagi blok baru. Ada 2 metode algoritma penggantian yaitu Write-through dan Write-back.Write-through adalah Cache dan memori utama diupdate secara bersamaan waktunya. Sedangkan Write-back melakukan update data di memori utama hanya pada saat word memori telah dimodifikasi dari cache.
Ukuran blok, blok-blok yang berukuran Iebih besar mengurangi jumlah blok yang menempati cache. Setiap pengambilan blok menindih isi cache yang lama, maka sejumlah kecil blok akan menyebabkan data menjadi tertindih setelah blok itu diambil. Dengan meningkatnya ukuran blok, maka jarak setiap word tambahan menjadi lebih jauh dari word yang diminta,sehingga menjadi lebih kecil kemungkinannya untuk di perlukan dalam waktu dekat.(Dikutip dari artilek milik Yulisdin "Mukhlis, ST., MT")
Line size, Jumlah cache, Satu atau dua dua tingkat, kesatuan atau terpisah

Sumber wikipedia.com

Minggu, 03 April 2011

Linked List

PENGERTIAN

Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sambung menyambung, dinamis dan terbatas. Linked List sering disebut juga Senarai Berantai Linked List saling terhubung dengan bantuan variabel pointer. Dengan menggunakan linked list maka programmer dapat menimpan datanya kapanpun dibutuhkan. Linked list mirip dangan array, kecuali pada linked list data yang ingin disimpan dapat dialokasikan secara dinamis pada saat pengoperasian program (run-time).

Operasi-Operasi yang ada pada Linked List

- Insert
Istilah Insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list.

- IsEmpty
Fungsi ini menentukan apakah linked list kosong atau tidak.

- Find First
Fungsi ini mencari elemen pertama dari linked list

- Find Next
Fungsi ini mencari elemen sesudah elemen yang ditunjuk now

- Retrieve
Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu dikembalikan oleh fungsi.

- Update
Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu

- Delete Now
Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus adalah elemen pertama dari linked list (head), head akan berpindah ke elemen berikut.

- Delete Head
Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen sesudahnya.

- Clear
Fungsi ini menghapus linked list yang sudah ada. Fungsi ini wajib dilakukan bila anda ingin mengakhiri program yang menggunakan linked list. Jika anda melakukannya, data-data yang dialokasikan ke memori pada program sebelumnya akan tetap tertinggal di dalam memori.


Jenis-Jenis Linked List yaitu :

1. Singly linked list
2. Double linked list
3. Circular Linked List




Operasi-operasi untuk Singly Linked List :


- IsEmpty
Fungsi memeriksa apakah singly yang ada masih kosong.

- Push
Fungsi memasukkan elemen baru ke dalam singly. Push di sini mirip dengan insert dalam single linked list biasa.

- Pop
Fungsi ini mengeluarkan elemen teratas dari singly.

- Clear
Fungsi ini akan menghapus singly yang ada.



Operasi-operasi Queue dengan Double Linked List :


- IsEmpty
Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah head masih menunjukkan pada Null atau tidak. Jika benar berarti queue masih kosong.

- IsFull
Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah Jumlah Queue sudah sama dengan MAX_QUEUE atau belum. Jika benar maka queue sudah penuh.

- EnQueue
Fungsi EnQueue berguna untuk memasukkan sebuah elemen ke dalam queue (head dan tail mula-mula meunjukkan ke NULL).

- DeQueue
Procedure DeQueue berguna untuk mengambil sebuah elemen dari queue. Hal ini dilakukan dengan cara menghapus satu simpul yang terletak paling depan (head).



# Circular Linked List


Circular Linked List (CLL) adalah Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri. Jika Single Linked List tersebut terdiri dari beberapa node, maka pointer next pada node terakhir akan menunjuk ke node terdepannya.

Pengertian:
Node : rangkaian beberapa simpul
Single : artinya field pointer-nya hanya satu buah saja dan satu arah.
Linked List : artinya node-node tersebut saling terhubung satu sama lain.
Circular : artinya pointer next-nya akan menunjuk pada dirinya sendiri sehingga berputar.


Sumber :
[1] http://goblog.herisonsurbakti.com/2009/05/09/linked-list/
[2] http://id.wikipedia.org/wiki/Linked_list

Teknik Sorting dan Searching

SORTING


Dewasa ini kita tidak perlu lagi untuk mengurutkan kumpulan data - data dengan cara manual, karena era ini sudah banyak sekali metode atau program untuk melakukan kebutuhan sorting.

Ada 5 metode dalam teknik sorting, diantaranya adalah :

1. Comparison-Based Sorting (pengurutan berdasarkan perbandingan)
# Bubble sort, exchange sort

2. Priority Queue Sorting Method (pengurutan berdasarkan prioritas)
# Selection sort, heap sort

3. Insert and Keep Sorted Method (pengurutan berdasarkan penyisipan dan penjagaan terurut)
# Insertion sort, tree sort

4. Devide and Conquer Method(pengurutan berdasarkan pembagian dan penguasaan)
# Quick sort, merge sort

5. Diminishing Increment Sort Method (pengurutan berkurang menurun)
# Shell sort


- Bubble Sort

Teknik ini dilakukan degan pola membawa nilai terbesar menjadi nilai index terakhir array. jadi sistem ini melakukan pengecekan nilai 1 dengan 2, lalu 2 dengan 3 samapai dengan data terakhir, bila nilai index yang lebih kecil lebih besar maka akan dilakukan pertukaran. proses ini dilakuan hingga jumlah data.

- Exchange Sort

Teknik sorting ini dibuat dengan cara pola membawa nilai terbesar menjadi nilai index terakhir array. Jadi sistem ini melakukan pengecekan nilai 1 dengan 2, lalu 2 dengan 3 samapai dengan data terakhir, bila nilai index yang lebih kecil lebih besar maka akan dilakukan pertukaran. proses ini dilakuan hingga jumlah data dikurangi 1 atau sampai program tidak melakukan pertukaran. jadi waktu untuk melakukan proses sorting lebih cepat.

- Selection Sort

Teknik sorting ini dibuat dengan cara melakukan pengecek'an 1 persatu, bila kita akan mengurutkan secara ascending maka kita lakukan pengecek'an nilai tempat yang pertama (index pertama pada array)kita bandingkan dengan semua nilai yang ada kita cari nilai minimalnya. lalu simpan index/ letak nilai minimum itu di temukan, setelah pengecekan selesai tukar index awal pengecekan dengan nilai minimum yang telah di simpan tadi. Proses ini dilakukan terus menerus sampai pada pengecekan index terakhir min 1 dengan index terakhir. beda dengan streith selection sort adalah dengan teknik ini melakukan pertukaran nilai lebih sedikit, hanya jumlah data - 1 pertukaran. jadi waktu untuk melakukan proses sorting lebih cepat.

- Heap Sort

Teknik sorting ini dibuat dengan versi yang jauh lebih efisien selection sort. Ia juga bekerja dengan menentukan elemen (atau terkecil) terbesar daftar, menempatkan bahwa pada akhir (atau awal) dari daftar, kemudian melanjutkan dengan sisa daftar, tapi menyelesaikan tugas ini secara efisien dengan menggunakan struktur data yang disebut tumpukan, tipe khusus pohon biner. Setelah daftar data telah dibuat menjadi tumpukan, simpul akar dijamin menjadi unsur (atau terkecil) terbesar. Ketika dipindahkan dan ditempatkan di akhir daftar, tumpukan adalah ulang sehingga elemen terbesar yang tersisa bergerak ke akar. Menggunakan heap, menemukan elemen terbesar berikutnya membutuhkan O (log n) waktu, bukan O (n) untuk linear scan di selection sort sederhana. Hal ini memungkinkan heapsort untuk menjalankan dalam O (n log n) waktu, dan ini juga merupakan kompleksitas kasus terburuk.

- Insertion Sort

Teknik sorting ini dibuat dengan cara menyisipkan atau memasukkan 1 persatu, bila kita akan mengurutkan data, kemudian ingin menyisipkan suatu data maka data tersebut akan otomatis masuk dimana dia berada.

- Quick Sort

Teknik sorting ini dibuat dengan cara yang menggunakan partisi. Pada teknik ini, data dibagi menjadi dua bagian, yaitu data disebelah kiri partisi selalu lebih kecil dari data disebelah kanan. Namun data pada kedua partisi belum terurut, sehingga untuk mengurutkannya, proses pengurutan dilakukan pada kedua partisi secara terpisah. Selanjutnya, data di sebelah kiri dan kanan dipartisi lagi.

- Merge Sort

Teknik sorting ini dibuat dengan cara mengambil keuntungan dari kemudahan penggabungan daftar sudah disortir ke daftar diurutkan baru. Dimulai dengan membandingkan setiap dua elemen (yaitu, 1 dengan 2, kemudian 3 dengan 4 ...) dan swapping mereka jika yang pertama datang setelah kedua. Kemudian masing-masing menggabungkan daftar yang dihasilkan dari dua ke daftar empat, kemudian menggabungkan daftar tersebut empat, dan seterusnya, sampai akhirnya dua daftar digabungkan ke dalam daftar diurutkan akhir.

- Shell Sort

Teknik sorting ini dibuat dengan cara meningkatkan atas bubble sort dan insertion sort dengan menggerakkan keluar dari elemen-elemen memesan lebih dari satu posisi pada suatu waktu. Salah satu implementasi dapat digambarkan sebagai mengatur urutan data dalam array dua dimensi dan kemudian menyortir kolom dari array menggunakan insertion sort.


SEARCHING


Teknik searching merupakan suatu proses pencarian data dari sejumlah data yang ada. Pencarian data dapat dilakukan pada sejumlah data yang sudah terurut atau juga pada data yang sama sekali belum terurut. dalam pencarian data juga terdapat beberapa jenis algoritma, tujuan dari adanya banyak algoritma yang di temukan adalah karena memiliki keuntungan-keuntungan tersendiri, seperti lebih cepatnya bila mengolah data yang jumlahnya lebih dari juta data, ada yang lebih efisien dengan jumlah kurang dari jutaan. serta ada pula yang tidak perlu untuk mengurutkan data terlebih dahulu, tetapi memakan waktu lebih lama.


Ada beberapa jenis teknik searching, sebagai berikut :


1. Line Search

Line Search adalah suatu teknik searching ini dibuat dengan cara melakukan pengecek'an 1 persatu, yaitu antara data yang di cari dengan kumpulan data yang di miliki, Keuntungan metode ini adalah kita tidak perlu mengurutkan data yang ada, bila mencari data pada kumpulan data yang tidak urut hanya terdapat metode ini yang dapat di lakukan.

2. Fibonachi Search

Fibonachi Search yaitu suatu teknik ini hanya dapat digunakan hanya pada kumpulan data yang sudah di urutkan, karena teknik ini melakukan pencarian dengan mencari data melalui pola bilangan fibonachi. Bila pada binnary search pembandingnya adalah nilai pada index tengahnya jumlah data, pada fibonachi search berbeda yaitu: bilangan fibonachi, yang bilangan fibonachinya terdekat dengan jumlah data tetapi tidak lebih besar dari jumlah data yang akan di proses. Bilangan fibonachi itu di jumlahkan dengan batas paling awal data dikurangi 1. Contohnya: jumlah data yang akan di cari adalah 15, maka batas paling bawah adalah 1 dan batas paling akhir=15 dan index pembandingnya= 13(nilai awal + dijumlahkan Bilangan fibonachi - 1) karena bilangan fibonachi terdekat dengan 15 (data ke 1- data ke 15) adalah 13 (1,2,3,5,8,13,21,34.....), bila data yang di cari lebih besar dari bilangan indeks ke tengahnya maka. batas paling bawah= tetap, batas akhir nilai tengah-1, bila data yang dicari lebih kecil maka batas bawah = nilai tengah +1 dan batas akhir tetap, sedangkan nilai tengahnya memakai fungsi tadi.

3. Sequential Search

Sequential search adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu.

4. Binary Search

Binary search merupakan salah satu metode searching, binary search hanya bisa dilakukan pada data yg telah tersort ato terurut karena proses algoritmanya yg terus menerus membagi data menjadi 2 bagian hingga angka / input yg dicari ditemukan.



Sumber:
[1] http://sangadik.blogspot.com/2009/11/teknik-sortingpengurutan-data.html
[2] http://lightluna.wordpress.com/2008/10/24/prinsip-algoritma-pada-teknik-tencarian-search-engine/
[3] http://alpro.awardspace.com/tehnik.html
[4] http://mazterchez.blogspot.com/2010/04/teknik-sorting-dan-searching.html