Sabtu, 16 Mei 2020

Heap and tries

Heap

Heap adalah pohon complete binary tree biner yang berdasarkan memenuhi properti heap. Property heaps antara lain :

  • Min Heap
    • Setiap node lebih kecil dari masing-masing childnya
    • Root merupakan node paling kecil, sedangkan node terbesar terletak pada leaf node




  • Max Heap
    • Setiap node lebih besar dari masing-masing childnya
    • Root merupakan node paling besar, sedangkan node terkecil terletak pada leaf node




  • Min-Max Heap
    • Heap dengan Min heap pada level ganjil dan Max heap pada level genap






Heap dapat diimplementasi dengan array maupun dengan linked list. Aplikasi heap adalah sebagai berikut:

  • Priority Queue
  • Selection algorithm
  • Dijkstra's Algorithm
  • Prim Algorithm
Implementasi heap menggunakan array :

  1. Array dimulai dengan indeks ke 1
  2. Rumus umum aplikasi heap dengan array (x adalah current node):
    1. Parent(x): x/2
    2. Left-child(x): 2*x
    3. Right-Child(x): 2*x+1
    4. Min Head
  3. Find-Min
  4. Minimum node terletak pada root
  5. Insertion pada Min-heap
  6. Insert node selalu berurutan dari level paling rendah dengan urutan left ke right
  7. New node selalu menjadi leaf node
  8. Sesuikan sesuai heap properties secara rekursif






  • Deletion-Min pada Min-Heap
    • Node yang dihapus selalu root karena merupakan node paling kecil, lalu diganti dengan node yang paling terakhir di insert
    • Sesuaikan dengan heap properties secara rekursif
  • Max Heap
    • Insertion dan deletion untuk Max heap, hanya saja disesuakan dengan properties Max-Heap


  • Min-Max Heap
    1. Insert node sesuai urutan, lalu cek upheap lalu sesuaikan dengan properties level.
    2. Umumnya dilakukan penyesuaian rekursif dengan urutan sebagai berikut:
    3. Parent
    4. Grand Parent
    5. Deletion selalu dilakukan pada root, lalu sesuaikan dengan downheap sesuai properties
    6. Umumnya dilakukan penyesuaian secara rekursif dengan urutan sebahai berikut:
    7. Grand child
    8. Child ( grand child disesuaikan dengan parentnya)








Tries


  • Tries adalah tree yang dilakukan untuk menyimpan array asosiatif.
  • Properties pada tries: 
- Setiap vertex/node merepresentasikan satu huruf.
- Root merepresentasikan karakter kosong.

Aplikasi pada trees adalah fitur auto-complete yang ada pada web-browser

Senin, 04 Mei 2020

AVL Tree

AVL Tree dinamai menurut 2 penemunya yaitu G.M. Adelson Veleskii and E.M. Landis. AVLtree adalah binary search tree (BST) yang secara otomatis menyeimbangka tangan kiri dan tangan kanan. Perbedaan tinggi antara tangan kanan dan tangan kiri dari AVL tree tidak boleh lebih dari satu untuk semua node.
Operas yang terdapat dalam AVL Tree  :

I. Insertion
Insert suatu node pada AVL sama halnya pada insert node pada binary search tree, dimana node baru diposisikan sebagai leaf. Setelah memasukkan node baru, maka harus dilakukan penyeimbangan kembali pada path dari node yang baru di insert atau path terdalam. Namun biasanya, path terdalam adalah path dari node yang baru saja di insert.

Ada 4 kasus yang biasanya terjadi saat operasi insert dilakukan, yaitu :
anggap T adalah node yang harus diseimbangkan kembali

- Kasus 1 : node terdalam terletak pada subtree kiri dari anak kiri T (left-left)
- Kasus 2 : node terdalam terletak pada subtree kanan dari anak kanan T (right-right)
- Kasus 3 : node terdalam terletak pada subtree kanan dari anak kiri T (right-left)
- Kasus 4 : node terdalam terletak pada subtree kiri dari anak kanan T (left-right)

Ke-4 kasus tersebut dapat diselesaikan dengan melakukan rotasi
- Kasus 1 dan 2 dengan single rotation
- Kasus 3 dan 4 dengan double rotation

->Single rotasi (rotasi 1x) dilakukan apabila searah, left-left atau right-right
pada contoh diatas, left-left karena dari 30 ke 22 ke kiri, dan dari 22 ke 15 ke kiri juga

->Double rotasi (rotasi 2x) dilakukan apabila searah, left-right atau right-left.
Step 1 (Rotasi pertama)
kasus diatas adalah left-right






Step 2 (Rotasi kedua)
kasus diatas, left-left



II. Deletion
Operasi penghapusan node sama seperti pada Binary Search Tree, yaitu node yang dihapus digantikan oleh node terbesar pada subtree kiri atau node terkecil pada subtree kanan. Jika yang dihapus adalah leaf, maka langsung hapus saja. Namun jika node yang dihapus memiliki child maka childnya yang menggantikannya. Namun setelah operasi penghapusan dilakukan, cek kembali apakah tree sudah seimbang atau belum, jika belum maka harus diseimbangkan kembali. Cara menyeimbangkannya pun sama seperti insertion.




delete node 60


node 55 tidak seimbang, karena anak kiri 0 dan anak kanan 2, selisih 2.
diseimbangkan dengan single rotation (left-left) karena 55 ke 65 kiri dan 65 ke 70 kiri
akan tetapi, node 50 menjadi tidak seimbang, di subtree kiri 4 dan subtree kanan 2


diseimbangkan dengan double rotation (left-right) karena dari 50 ke 25 kiri dan 25 ke 40 kanan

AVL yang sudah balance

Selasa, 07 April 2020

Summary

Linked List merupakan sebuah data struktur namun disimpan di memori yang acak. Elemen dari linked list dihubungkan menggunakan pointer.
Keuntungan :
1) Linked list menggunakan ukarn yang dinamis.
2) Linked list mudah untuk dihapus maupun ditambahkan.
3) Penggunaan memor inke list dapat disesaikan secara dinamis.
Kekurangan : 
1)Linked List menggunakan memory lebih besar.
2)Proses mengakses lebih panjang karena tidak bisa langsung mengakses data dengan indeks, hars diakes dari linked list yang paling besar.

Untuk menggunakan linked list diperlukan memory allocation.

Linked List memunyai dua tipe, yaitu:
- Single link list
Single linked list terdiri dari:
1) current data
2) Pointer ke next node.
Dalam bahasa C, node dapat diiplementasikan menggunakan structure. contoh :
Double link list
Double Linked List mempunyai pointer tambahan,yaitu, prev yang bersatu dengan pointer next dan data yang ada di dalam single linked list.Doubly Linked List Complete Implementation | Algorithms
Dalam linked list, kita mengenal  2 istilah yaitu, push dan pop. push merupakan fungsi untuk memasukan data kedalam linked list. sedangkan pop adalah fungsi untuk menghapus data dalam suatu linked list.
Untuk membuat suatu linked list, kita membutuhkan 3 pointer yaitu :
1. Head : awal dari suatu linked list,
2. Current : data yang sedang/akan kita olah,
3. Tail : akhir dar suatu linked list.

Push 
Push merupakan suatu fungsi untuk menambahkan pumya sata pada linked list yang kita punya. Push dapat dilakukan dari depan (push head), belakang(push tail), atau tengah(push mid). Saat kita menstruct data, kita harus membuat pointer di dalam struct, yaitu 1 pointer untuk single linked list, dan 2 pointer untuk double linked list.

Pop
Pop merupakan fungsi untuk menghapus data dalam suatu linked list. Push dapat dilakukan dari depan (push head), belakang(push tail), atau tengah(push mid). setelah kita melakukan menghapus, kita harus free untuk menghapus malloc yang telah kita lakukan, karena jika kita tidak free data akan terus mengambil tempat tanpa bisa di akses.

contoh coding:

Hashing

Ide utama dari hashing adalah mengubah suatu string menjadi suatu bilangan dengan suatu fungsi.Hash Table adalah sebuah struktur data yang terdiri atas sebuah tabel dan fungsi yang bertujuan untuk memetakan nilai key yang unik untuk setiap record (baris) menjadi angka (hash) lokasi record tersebut dalam sebuah tabel.



Hash Function

Ada banyak cara untuk hash sebuah string menjadi sebuah key. berikut cara penting untuk membuat sebuah hash function:

Mid Square
Kuadratkan string/identifier, lalu kita mengambil angka tengah dari kuadrat identifier sebagai hash key.
Function : h(k) = s


k = key, s = hash key yang didapatkan dari mengambil tengah dari k^2

Division
 String/identifier dibagi dengan menggunakan modulus.
Function : h(z) = z mod M

z = key, M = angka yang digunakan untuk membagi key (biasanya menggunakan angka prima)

Folding
Langkah :
  • bagi key value menjadi beberapa bagian
  • jumlahkan bagian individal(usually last carry is ignored)

Digit Extraction
Beberapa bagian digit dari angka dijadikan sebagai hash address.
Contoh :
x=14568. Jika kita Mengambil angka ke 1,3, dan 5, kita akan mendapatkan hashcode : 158.

Rotating hash
Gunakan hash mehod apa saja, lalu kita balik(angka perama menjad angka terakhir, dst.


Hashing table didalam block chain digunakan untuk  cryptocurrencies, yaitu sebuah teknologi membuat mata uang digital. Teknologi ini menggunakan kriptografi untuk keamanan yang membuatnya tidak dapat dipalsukan. transaksi dengan panjang bervariasi dijalankan melalui algoritma hashing yang diberikan, dan menghaslkan output dengan panjang yang tetap terlepas dari panjang transaksi input. Output adalah sebuah hash.


Tree dan binary tree

Tree adalah non linear data sructure yang mempunyai tingkatan dari data objek. seperti struktur organisasi, dll. data diubungkan dengan pointer.


Tree concept :

Root : Node di paling atas
Edge: Garis yang menghubungkan parent dengan child
Leaf: node yang tidak mempunyai anak
Siblings: node yang mempnyai parent yang sama
Degree: total subtree dari sebuah node
Height/depth: maksimum degree dari sebuah tree
jika ada garis yang menghubungkan p kepada q, p disebut ancestor dari q dan q adalah descendant dari p.

Binary Tree adalah Tree yang hanya memiliki maksimal 2 anak.
Binary search tree merupakan binary tree yang sudah tersortir. Kebanyakan Binary Search Tree menggunakan konsep untuk angka lebih kecil berada di sebelah kiri dan angka lebih besar berada di sebelah kanan.
Binary Search Tree mempuyai beberapa operasi dasar yaitu :
>Find : Fungsi untuk mencari angka di dalam sebuah Binary Search Tree. Dilakukan dengan fungsi rekrusif dari root sampai meneukan angka yang kita inginkan. Konsepnya adalah dimulai dari root, jika root merupakan angka yang kita cari, return root. Jika angka yang kita cari lebih kecildaripada root, rekrusive fungsi ke subtree sebelah kiri. Jika angka yang kita cari lebih besar dari root, rekrusive fungsi ke subtree sebelah kanan.
> Insert : Fungsi untuk menambahkan suatu node dari sebuah Binary Search Tree. Dilakukan dengan fungsi rekursif dari root dan key yang akan dimasukkan. Konsepnya adalah dimulai dari root jika key lebih kecil dari root maka, akan berpindah ke subtree sebelah kiri root dan jika lebih besar dari subtree sebelah kiri root maka, akan berpindah ke subtree sebelah kanan dari subtree sebelah kanan root dan jika lebih kecil dari subtree sebelah kiri root maka, akan berpindah ke subtree sebelah kiri dari subtree sebelah kiri root. Jika berpindah ke elemen yang masih kosong maka akan dipush kedalam tree.

> Remove : Fungsi untuk menghapus suatu node dari sebuah Binary Search Tree. Dilakukan dengan mencari data yang akan dihapus dalam tree. Jika sudah dihapus maka, yang akan menggantikan data yang dihapus adalah:
1. Jika data yang dihapus adalah parent dengan single children maka, yang akan menggantikannya adalah childrennya.
2. Jika data yang dihapus adalah leaf maka, langsung dihapus saja.
3. Jika data yang dihapus adalah parent dengan 2 children maka, yang akan menggantikannya adalah subtree sebelah kanan nya yang paling kiri atau subtree sebelah kiri yang paling kanan tergantung dengan pembuat treenya.

Tipe Binary tree:
Perfect Binary Tree : Binary tree yang semua level mempunyai depth yang sama.


Complete Binary Tree : binary tree yang kedalamannya sebesar n atau n-1 untuk beberapa n. Jadi tidak seperti PBT yang harus sama semuanya, melainkan boleh sama ataupun tidak (namun pada simpul kedua dari terakhir saja). Dan dalam penempatan simpulnya diutamakan yang sebelah kiri yang terpenuhi.


Skewed Binary Tree : binary tree yang tinggi antara anak sebelah kiri dan kanannya hanya berselisih maksimal satu. PBT dan CBT juga merupakan binary tree yang seimbang.

Balanced Binary tree : bianry tree yang tinggi antara anak sebelah kiri dan kanannya hanya berselisih maksimal satu. PBT dan CBT juga merupakan binary tree yang seimbang.







Binary tree dapat diterapkan menggunaakan array maupun linked list
Array :
Index on array represents node number
Index 0 is Root node
Index Left Child is 2p + 1, where p is parent index
Index Right Child is 2p + 2
Index Parent is (p-1)/2





Linked List :


Expression Tree Concept




Menggunakan konsep matematika dalam penggunaan nya. Antara lain dalam penggunaan prefix, postfix dan infix.

Prefix : *+ab/-cde
Postfix : ab+cd-e/*
Infix : (a+b)*((c-d)/e)

Threaded binary tree adalah binary tree yang memiliki cara menunjuk pointer NULL yang berbeda dengan binary tree.


Binary tree tanpa threading:

Binary tree dengan menggunakan threading:

Terlihat perbedaan pointer NULL yang ada.


Ada 2 tipe threading:
1. Yang menggunakan threading 1 arah yang berarti masing masing pointer hanya menunjuk satu arah
2. Yang menggunakan threading 2 arah yang berarti masing masing pointer bisa menunjuk arah

Rabu, 18 Maret 2020

Binary SearchTree

Binary Tree adalah Tree yang hanya memiliki maksimal 2 anak.
Binary search tree merupakan binary tree yang sudah tersortir. Kebanyakan Binary Search Tree menggunakan konsep untuk angka lebih kecil berada di sebelah kiri dan angka lebih besar berada di sebelah kanan.
Binary Search Tree mempuyai beberapa operasi dasar yaitu :
>Find : Fungsi untuk mencari angka di dalam sebuah Binary Search Tree. Dilakukan dengan fungsi rekrusif dari root sampai meneukan angka yang kita inginkan. Konsepnya adalah dimulai dari root, jika root merupakan angka yang kita cari, return root. Jika angka yang kita cari lebih kecildaripada root, rekrusive fungsi ke subtree sebelah kiri. Jika angka yang kita cari lebih besar dari root, rekrusive fungsi ke subtree sebelah kanan.
> Insert : Fungsi untuk menambahkan suatu node dari sebuah Binary Search Tree. Dilakukan dengan fungsi rekursif dari root dan key yang akan dimasukkan. Konsepnya adalah dimulai dari root jika key lebih kecil dari root maka, akan berpindah ke subtree sebelah kiri root dan jika lebih besar dari subtree sebelah kiri root maka, akan berpindah ke subtree sebelah kanan dari subtree sebelah kanan root dan jika lebih kecil dari subtree sebelah kiri root maka, akan berpindah ke subtree sebelah kiri dari subtree sebelah kiri root. Jika berpindah ke elemen yang masih kosong maka akan dipush kedalam tree.

> Remove : Fungsi untuk menghapus suatu node dari sebuah Binary Search Tree. Dilakukan dengan mencari data yang akan dihapus dalam tree. Jika sudah dihapus maka, yang akan menggantikan data yang dihapus adalah:
1. Jika data yang dihapus adalah parent dengan single children maka, yang akan menggantikannya adalah childrennya.
2. Jika data yang dihapus adalah leaf maka, langsung dihapus saja.
3. Jika data yang dihapus adalah parent dengan 2 children maka, yang akan menggantikannya adalah subtree sebelah kanan nya yang paling kiri atau subtree sebelah kiri yang paling kanan tergantung dengan pembuat treenya.


Selasa, 10 Maret 2020

Hash Table & Tree


Hashing

Ide utama dari hashing adalah mengubah suatu string menjadi suatu bilangan dengan suatu fungsi.Hash Table adalah sebuah struktur data yang terdiri atas sebuah tabel dan fungsi yang bertujuan untuk memetakan nilai key yang unik untuk setiap record (baris) menjadi angka (hash) lokasi record tersebut dalam sebuah tabel.



Hash Function

Ada banyak cara untuk hash sebuah string menjadi sebuah key. berikut cara penting untuk membuat sebuah hash function:

Mid Square
Kuadratkan string/identifier, lalu kita mengambil angka tengah dari kuadrat identifier sebagai hash key.
Function : h(k) = s


k = key, s = hash key yang didapatkan dari mengambil tengah dari k^2

Division
 String/identifier dibagi dengan menggunakan modulus.
Function : h(z) = z mod M

z = key, M = angka yang digunakan untuk membagi key (biasanya menggunakan angka prima)

Folding
Langkah :
  • bagi key value menjadi beberapa bagian
  • jumlahkan bagian individal(usually last carry is ignored)

Digit Extraction
Beberapa bagian digit dari angka dijadikan sebagai hash address.
Contoh :
x=14568. Jika kita Mengambil angka ke 1,3, dan 5, kita akan mendapatkan hashcode : 158.

Rotating hash
Gunakan hash mehod apa saja, lalu kita balik(angka perama menjad angka terakhir, dst.


Hashing table didalam block chain digunakan untuk  cryptocurrencies, yaitu sebuah teknologi membuat mata uang digital. Teknologi ini menggunakan kriptografi untuk keamanan yang membuatnya tidak dapat dipalsukan. transaksi dengan panjang bervariasi dijalankan melalui algoritma hashing yang diberikan, dan menghaslkan output dengan panjang yang tetap terlepas dari panjang transaksi input. Output adalah sebuah hash.


Tree dan binary tree

Tree adalah non linear data sructure yang mempunyai tingkatan dari data objek. seperti struktur organisasi, dll. data diubungkan dengan pointer.


Tree concept :

Root : Node di paling atas
Edge: Garis yang menghubungkan parent dengan child
Leaf: node yang tidak mempunyai anak
Siblings: node yang mempnyai parent yang sama
Degree: total subtree dari sebuah node
Height/depth: maksimum degree dari sebuah tree
jika ada garis yang menghubungkan p kepada q, p disebut ancestor dari q dan q adalah descendant dari p.

Binary tree adalah sebuah tree yang setiap node mepunyai 2 anak. Anaknya dibedakan menjadi left chld dan right child.






Tipe Binary tree:
Perfect Binary Tree : Binary tree yang semua level mempunyai depth yang sama.


Complete Binary Tree : binary tree yang kedalamannya sebesar n atau n-1 untuk beberapa n. Jadi tidak seperti PBT yang harus sama semuanya, melainkan boleh sama ataupun tidak (namun pada simpul kedua dari terakhir saja). Dan dalam penempatan simpulnya diutamakan yang sebelah kiri yang terpenuhi.


Skewed Binary Tree : binary tree yang tinggi antara anak sebelah kiri dan kanannya hanya berselisih maksimal satu. PBT dan CBT juga merupakan binary tree yang seimbang.

Balanced Binary tree : bianry tree yang tinggi antara anak sebelah kiri dan kanannya hanya berselisih maksimal satu. PBT dan CBT juga merupakan binary tree yang seimbang.







Binary tree dapat diterapkan menggunaakan array maupun linked list
Array :
Index on array represents node number
Index 0 is Root node
Index Left Child is 2p + 1, where p is parent index
Index Right Child is 2p + 2
Index Parent is (p-1)/2





Linked List :


Expression Tree Concept




Menggunakan konsep matematika dalam penggunaan nya. Antara lain dalam penggunaan prefix, postfix dan infix.

Prefix : *+ab/-cde
Postfix : ab+cd-e/*
Infix : (a+b)*((c-d)/e)



Threaded binary tree adalah binary tree yang memiliki cara menunjuk pointer NULL yang berbeda dengan binary tree.


Binary tree tanpa threading:
Binary tree dengan menggunakan threading:

Terlihat perbedaan pointer NULL yang ada.


Ada 2 tipe threading:
1. Yang menggunakan threading 1 arah yang berarti masing masing pointer hanya menunjuk satu arah
2. Yang menggunakan threading 2 arah yang berarti masing masing pointer bisa menunjuk arah







Selasa, 03 Maret 2020

Push dan Pop

Dalam linked list, kita mengenal  2 istilah yaitu, push dan pop. push merupakan fungsi untuk memasukan data kedalam linked list. sedangkan pop adalah fungsi untuk menghapus data dalam suatu linked list.
Untuk membuat suatu linked list, kita membutuhkan 3 pointer yaitu :
1. Head : awal dari suatu linked list,
2. Current : data yang sedang/akan kita olah,
3. Tail : akhir dar suatu linked list.

Push 
Push merupakan suatu fungsi untuk menambahkan pumya sata pada linked list yang kita punya. Push dapat dilakukan dari depan (push head), belakang(push tail), atau tengah(push mid). Saat kita menstruct data, kita harus membuat pointer di dalam struct, yaitu 1 pointer untuk single linked list, dan 2 pointer untuk double linked list.

Pop
Pop merupakan fungsi untuk menghapus data dalam suatu linked list. Push dapat dilakukan dari depan (push head), belakang(push tail), atau tengah(push mid). setelah kita melakukan menghapus, kita harus free untuk menghapus malloc yang telah kita lakukan, karena jika kita tidak free data akan terus mengambil tempat tanpa bisa di akses.

contoh coding:

Kamis, 17 Maret 2016

Perkembangan komputer Masa kini dengan Masa Depan

PERKEMBANGAN KOMPUTER MASA KINI

 Perkembangan komputer saat ini sangat cepat. Kita bisa baca sejarah komputer dan melihat perkambangannya. Perkembangan komputer itu tentu saja mendorong munculnya berbagai macam aplikasi yang membawa manfaat bagi kita.

Saat ini Kita pasti melihat ke arah Komputer yang sedang digunakan untuk browsing. Dan memang, untuk saat ini penggunaan komputer yang sangat populer adalah untuk akses Internet. Kita pasti Telah mengenal browsing, chatting, e-mail dan googling.

Pasti, karena itu adalah kegiatan di internet yang paling populer. Beberapa aplikasi lain yang berguna adalah transfer file yang disebut dengan FTP, File sharing yang biasanya buat ngebajak MP3 artis kesayangan kita, dan remote operation (berguna untuk menjalankan komputer dari jarak jauh). Semua itu bisa dilakukan melalui internet dan komputer kita tercinta ini.

Pekerjaan kantoran juga saat ini rasanya sudah sangat sulit untuk terlepas dari benda yang satu ini. Mulai dari mengetik surat, membuat tabel perhitungan, membuat database dan melakukan presentasi. Semua menggunakan komputer. Khusus untuk penggunaan kantoran seperti ini, software yang umum digunakan adalah keluarga Microsoft Office kayak MS-Word, MS-Excel, MS-Power Point dan MS-Access. Namun jangan salah, selain dari aplikasi kantoran berbayar dari Microsoft itu, saat ini sudah muncul aplikasi kantoran yang berbasis open source yang sama sekali tidak di bawah MS Office kemampuannya. Beberapa diantaranya adalah Star Office dan Open Office. Bahkan kita bisa melakukan konversi dari file document langsung ke format PDF yang merupakan format distribusi dokumen standar saat ini dengan mudah tanpa perlu bantuan tambahan aplikasi apapun, cukup gunakan Open Office saja.

Selain penggunaan yang umum tadi, komputer juga saat ini digunakan untuk berbagai aplikasi khusus yang dibangun untuk keperluan analisa data perusahaan, penelitian, produksi dan masih banyak kegunaan lain yang mungkin sangat sulit bagi kita untuk menyebutkan satu persatu. Kemungkinan pengembangannya bisa dikatakan hampir tak terbatas. Suatu hari nanti, kulkas kamu di rumah bisa otomatis pesan sendiri persediaan makanan yang sudah habis .

Aplikasi komputer lain yang sangat populer dan tidak boleh ketinggalan disebut adalah GAME! Ya, perkembangan industri game saat ini sangat fantastis, dan merupakan salah satu sumber keuangan di dunia komputer yang sagat besar. Bisnis game ini merupakan bisnis raksasa, coba lihat aja di sekitar kita, berapa banyak anak-anak yang tidak mengenal game? Hampir tidak ada . Jumlah pengguna game yang sebanyak itu tentu saja merupakan pasar yang sangat potensial bagi para pengembang game saat ini.

Bagaimana kita mencapai kekayaan komputer sekaarang ini? Pada waktu sebelumnya, tidak terdapat keneka ragaman jenis; semua komputer dianggap sama (yang akan dibahas kemudian pada bab ini). Pada suatu waktu, 8 perusahan berbeda pada Amerika manufactured computers. Univac yang telah memimpin terlebih dahulu dalam perkomputeran akan tetapi kemudian dikalahkan IBM. (kemudian Univac menjadi bagian dari Sperry, yang bergabung dengan penjual komputer yang lain yaitu Burroughs, untuk mendirikan perusahaan UNISYS).

IBM menjadi penjual dominan di Amerika dan di luar negeri, industri komputer terkadang digambarkan severti “IBM dan tujun kurcaci” pada tahun 1950an dan awal tahun 1960an, tidak ada perusahan seperti Apple, Digital Equipment corporation (DEC), dan Compaq. RCA dan General Electric membuat komputer yang sama, akhirnya mengambil pencoretan besar mereka meninggalkan bisnis minikomputer dan penjual utama menggulung dari perubahan dramatis.

KOMPUTER WIZARD
Tidak setiap aplikasi membutuhkan kekuatan prosesing dari komputer personal; sebagai tambahan, alat komputer kecil seperti Wizard menjadi semakin kuat setiap harinya. Brooklyn Union Gas memiliki sekitar 100 Wizard yang digunakan untuk tugas yang berbeda-beda.

Dalam satu aplikasi pelayanan kostumer mewakili penggunaan Wizard untuk membimbing kostumer melalui beberapa peraturan yang dimimta ketika mereka mengatur suatu laporan. Seorang analisis menulis ulang suatu aplikasi yang digunakan pada PC dalam BASIC yang dapat menjalankan Wizard.

Di Merck & Co. Beberapa eksekutif menggunakan Wizard sebagai penyelenggara personal, untuk laporan pengeluaran,dan rencana rapat. Perusahaan bekerja pada suaru aplikasi yang akan menolong menejer-menejer farmasi Amerika Latin dalam menjalankan teritori penjualan mereka. Sekarang, Wizard adalah IBM PC asli yang kuat yang muncul di tahun 1981, dalam perbandingan biaya/tampilan dari “komoditi” keping (chip) prosesor melawan sistem berdasarkan hak milik rancangan sirkuit.

Tren apa dalam tekhnologi yang telah menciptakan industri komputer saat ini? Mengapa begitu banyak jenis komputer yang berbeda, dan untuk apa setiap jenis komputer dirancang?
Perkembangan dari mainframe

Figur 8-1 menampilkan suatu ikhtisari dari lingkungan komputer yang beredar. Pada Komputer pertama yang dikembangkan adalah mainframe yang lebih besar, mesin yang bertujuan umum. Di awal industri komputer, hanya satu yang dapat menjalankan kelompok pada komputer mainframe. Banyak organisasi yang telah mengembangkan banyak aplikasi pada komputer mainframe; pada saat ini jenis mesin seperti itu digunakan untuk mendukung beberapa teminal dan interakting komputer personal dengan database besar yang menapung milyaran karaketer data. Komputer mainframe oleh banyak pengguna digunakan dengan luas untuk proses transaksi dan memelihara akses data penting. (kami lebih membahas masa depan mainframe dalm bab 13). Berdasarkan sejarah, IBM telah mendominasi pasar mainframe, akan tetapi permintan untuk mainframe biasa telah menurun, mengarah kepada masalah besar untuk perusahaan.

Kekuasaan superkomputer

Komputer mainframe tidaklah cukup cepat untuk beberapa aplikasi. Komputer mainframe dikembangkan secara original untuk keperluan bisnis; komputer mainframe memiliki kelebihan untuk meningkatkan pengolahan data bisnis yang melibatkan manipulasi karakter dan aritmetika desimal. Para ilmuan dan insinyur mamiliki masalah hitungan intensif yang harus dipecahkan, sering melibatkan angka dengan banyak digit yang signifikan. Perusahaan seperti Cray menawarkan komputer super untuk beberapa pekerjaan seperti peramalan, data analisis geologikal, Dan bebrapa jenis dari pembelajaran simulasi. Superkomputer termasuk pada komputer tercepat saat ini, dengan ukuran kecepatan dalam 100 megaflop (megaflop adalah pelaksanaan dari satu juta intruksi gerak-poin per detik) lebih cepat dari gigaflop (satu miliyar intruksi gerak-poin per detik). Beberapa perusahaan mencoba untuk mencapai mesin teraflop mesin yang mampu untuk malksanakan satu triliun intruksi per detik!

PERKEMBANGAN KOMPUTER MASA DEPAN

Tentunya seiring dengan perkembangan zaman, dan kemajuan ilmu pengetahuan dan teknologi yang begitu cepat, bukanlah mustahil bagi manusia untuk menikmati berbagai layanan yang semakin canggih, begitu juga dengan komputer, NEC Design Ltd sebuah lembaga di jepang menawarkan sebuah konsep baru yang mungkin akan mengejutkan anda, saya sangat yakin bahwa beberapa konsep berikut berpotensi untuk merubah wajah dari PC (Personal Computer) di masa mendatang. anda ingin tahu lebih lengkap tentang konsep komputer masa depanini?? Temukan jawaban dari penasaran kita mengenai Kecanggihan Konsep Komputer Masa Depan

Komputer Open Source Terkecil

Telah dikembangkan komputer dengan bentuk skala kecil yang diberi nama Linuxstamp, dari namanya tentu saja mendukung open-source dan hanya menggunakan 6 Intergrated Circuit (IC). Komputer kecil ini telah di demonstrasikan minggu ini dalam acara ?Linux Garage? dari LinuxWorld yang mengusung tema Linux dan Lego ? Berbasis Robot.

Linuxstamp di desain oleh Paul Thomas, yang juga mengungkapkan bahwa Linuxstamp dikembangkan dengan menggunakan Atmel AT91RM9200 yang berbasis ARM9 dengan kemampuan 180Mhz. Selain itu komputer ini menggunakan board dengan dukungan 32MB SDRAM, dan juga perangkat penyimpan sebesar 8MB dari SPI Dataflash serta mempunyai sebuah SD card slot.

Komputasi Awan

Microsoft tampaknya akan berbaik hati memberikan sesuatu yg gratis bagi para pecinta setianya. Sebuah Operating system yang dikabarkan bernama Windows Azure yang berbasis teknologi awan akan dirilis secara cuma-cuma.

Teknologi komputasi awan yang ditawarkan oleh Microsoft ini dipandang sebagai teknologi masa depan. Dengan berkembangnya berbagai aplikasi untuk website dan internet maka kebutuhan akan teknologi komputasi awan ini menjadi sangat penting. Dan dipercaya akan segera menjadi sebuah teknologi yang penting dan bahkan akan mengalahkan komputer-komputer yang sudah ada.

Dengan keterangan yang ada pada website wikipedia.org komputasi awan dapat dijelaskan sebagai sebuah teknologi untuk pengembangan aplikasi berbasis internet. dengan teknologi ini seseorang dapat mengakses sebuah layanan berbasis website dengan cepat dan tanpa perlu pengetahuan khusus. Dengan kemampuan untuk menyediakan berbagai aplikasi online dengan didukung server backend yang kuat menjadi andalan teknologi komputasi awan ini.

Untuk contoh sekarangnya kita dapat melihat berbagai layanan milik Google yang tersedia secara online dan gratis dengan kapasitas penyimpanan data yang begitu besar dan tersimpan rapi diserver miliknya sehingga pengguna tidak memerlukan lagi yang namanya harddisk ataupun flashdisk untuk menyimpan data miliknya.

Google Docs merupakan aplikasi yang laris untuk saat ini bagi anda membuat menyunting dan bahkan membagi-bagikan (sharing) dokumen milik anda .

Komputer Cerdas untuk Masa Depan

Membuat sistem komputer yang cerdas dan mampu meniru perilaku manusia atau makhluk hidup lainnya bukan lagi sebuah impian yang mustahil lagi saat ini. Sistem komputer mampu memberikan solusi layaknya seorang pakar dapat diwujudkan melalui sistem pakar.,Sistem komputer pun mampu memberikan keputusan berbasiskan kasus seperti yang dilakukan manusia dengan menerapkan penalaran bebasis kasus (case based reasoning). Sistem komputer mampu mengenali pola seperti halnya manusia dengan menggunakan jaringan syaraf tiruan (neural network). Algoritme sebuah program pun bisa menemukan solusi terbaik dengan menggunakan teori genetika. Melalui cara bekerja sistem kekebalan tubuh pada manusian (artificial immune system) kita dapat membuat sistem komputer yang mampu mendeteksi spam (http://terri.zone12.com/doc/academic/crossroads/).
Membuat sistem komputer menjadi “cerdas” seperti itu bisa dipelajari melalui ilmu komputer yang dikenal dengan kecerdasan komputasional (computational intelligence). Kecerdasan komputasional adalah bagian dari kecerdasan buatan (Artificial Intelligence)
Apakah Kecerdasan Buatan itu?
Kecerdasan adalah kemampuan, kreativitas, intuisi dan emosi. Melalui kecerdasan yang dimiliki, manusia mampu memahami, melakukan penalaran dengan baik dan melakukan penarikan kesimpulan berdasarkan pengalaman dan pembelajaran.
Menurut IEEE Neural Networks Council pada tahun 1996, kecerdasan buatan adalah studi yang mempelajari bagaimana membuat komputer dapat melakukan sesuatu seperti yang dilakukan oleh manusia. Oleh karena itu Istilah kecerdasan buatan sering dilekatkan dengan kemampuan komputer untuk memiliki kecerdasan seperti manusia. Pada pertengah tahun 1900-an, Alan Turing melakukan penelitian untuk membuat komputer menjadi “cerdas”. Alan Turing yakin bahwa komputer dapat meniru bagaimana otak manusia bekerja. Lebih dari 50 tahun lamanya keyakinan Alan Turing masih berupa angan-angan saja. Ketika ilmu psikologi sudah mampu memodelkan sistem biologi neural manusia pun, membuat komputer menjadi cerdas pun masih belum bisa dijelaskan. Aakhirnya pada tahun 1950, Alan Turing membuat komputer cerdas yang diberi nama Turing Test. Mesin ini diujicobakan dengan memberikan pertanyaan yang sama ke komputer melalui papan ketik (keyboard) dan ke manusia.
Bagaimana caranya membuat sistem komputer menjadi cerdas?
Kecerdasan Komputasional
Kecerdasan komputasional adalah bidang yang mempelajari mekanisme adaptif dari kecerdasan berperilaku dalam lingkungan yang selalu berubah dan kompleks. Mekanisme adaptif tersebut merupakan bagian dari kecerdasan buatan yang mempelajari juga bagaimana bisa beradaptasi dengan situasi yang baru, bagaimana melakukan generalisasi dan menemukan pengetahuan.
Oleh karena itu beberapa studi yang dikaji dalam kecerdasan komputasional antara lain Jaringan Syaraf Tiruan (Artifial Neural Network – NN), Algoritme Genetika atau yang dikenal juga dengan komputasi evolusi (evolutionary computation – EC), Algoritme semut (ant algorithm), kecerdasan berkerumun (swarm intelligence – SI), sistem kekebalan tubuh buatan (artificial immune system – AIS) dan sistem fuzzy (fuzzy system – FS).

Sumber : yogykrisna.blogspot.co.id