Selamat Datang di Blog Rynaldo-Info Bisnis

Senin, 18 April 2011

Algoritma Binary Search

Pencarian Biner (Binary Search) Pada Array Yang Sudah Terurut
Pencarian Biner (Binary Search) dilakukan untuk :
  • memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.
  • Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).
  • Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.
Algoritmanya :

Contoh Nilai-Nilai data yang sudah terurut :

Kasus 1  : cari = 12
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2=4
A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan

Kasus 2  : cari = 15
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 +  8 ) div 2=4
A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5
Loop kedua : Tengah=(BatasAtas + BatasBawah) div 2=( 5 +  8 ) div 2=6
A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah – 1 = 6 – 1 = 5
Loop ketiga : Tengah=(BatasAtas + BatasBawah) div 2=( 5 +  5 ) div 2=5
A [Tengah] = A [5] = 15, berarti  setelah loop ketiga, data ditemukan

Kasus 3  : cari = 10
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 +  8 ) div 2=4
A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah – 1 = 4 – 1 = 3
Loop kedua : Tengah=(BatasAtas + BatasBawah) div 2=( 1 +  3 ) div 2=2
A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3
Loop ketiga : Tengah=(BatasAtas + BatasBawah) div 2=( 3 +  3 ) div 2=3
A [Tengah] = A [3] = 8, berarti  setelah loop ketiga, data tidak ditemukan

Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak ( log n ) kali. Untuk contoh di atas, jumlah data 8, maka proses pembandingan maksimal sebanyak 3 kali.

By:Bartolomeus Rynaldo A.H, NPM: 10408997

Linked List

Senarai berantai (Bahasa Inggris: linked list) adalah salah satu struktur data dasar yang sangat fundamental dalam bidang ilmu komputer. Dengan menggunakan linked list maka programmer dapat menimpan datanya kapanpun dibutuhkan. Linked list mirip dangan larik (array), kecuali pada linked list data yang ingin disimpan dapat dialokasikan secara dinamis pada saat pengoperasian program (run-time).
Pada array, apabila programmer ingin menyimpan data, programmer diharuskan untuk mendefinisikan besar array terlebih dahulu, seringkali programmer mengalokasikan array yang sangat besar(misal 100). Hal ini tidak efektif karena seringkali yang dipakai tidak sebesar itu. Dan apabila programmer ingin menyimpan data lebih dari seratus data, maka hal itu tidak dapat dimungkinkan karena sifat array yang besarnya statik. Linked list adalah salah satu struktur data yang mampu menutupi kelemahan tersebut.
Secara umum linked list tersusun atas sejumlah bagian-bagian data yang lebih kecil yang terhubung (biasanya melalui pointer). Linked list dapat divisualisasikan seperti kereta, bagian kepala linked list adalah mesin kereta, data yang disimpan adalah gerbong, dan pengait antar gerbong adalah pointer.
--------       --------      --------
Mesin          Data          Data
--------       --------      --------
(kepala) --->  Pointer  ---> Pointer  --
--------       --------      -------- 
Programmer membaca data menyerupai kondektur yang ingin memeriksa karcis penumpang. Programmer menyusuri linked list melalui kepalanya, dan kemudian berlanjut ke gerbong (data) berikutnya, dan seterusnya sampai gerbong terakhir (biasanya ditandai dengan pointer menunjukkan alamat kosong (NULL)). Penyusuran data dilakukan secara satu persatu sehingga penyusuran data bekerja dengan keefektifan On. Dibandingkan array, ini merupakan kelemahan terbesar linked list. Pada array, apabilan programmer ingin mengakses data ke-n (index n), maka programmer dapat langsung mengaksesnya. Sedangkan dengan linked list programmer harus menyusuri data sebanyak n terlebih dahulu.

Jenis-Jenis Linked List

  • Singly linked list
  • Double linked list
  • Circular Linked List
By: Bartolomeus Rynaldo A.H, NPM: 10408997

Teknik Sorting dan Searching

Teknik Sorting dan Teknik Searching

Sorting memiliki kepentingan tambahan bagi perancang algoritma paralel; ia sering
digunakan untuk melakukan permutasi data umum pada komputer dengan memori
terdistribusi. Operasi pemidahan data ini dpt digunakan untuk menyelesaikan masalah pada:
• teori graf
• geometri komputasional
• image processing
dalam waktu optimal atau hampir optimal.
Algoritma yang akan dipelajari berikut merupakan internal sort – yaitu, tabel yang di-sort
cukup kecil untuk masuk seluruhnya di memori primer. Semua algoritma berikut ini juga
men-sort dengan membandingkan sepasang elemen.
ENUMERATION SORT
Asumsi:
• Tabel dengan n elemen: a0, a1, …, an-1
• Untuk 2 elemen ai dan aj, salah satu kondisi ini pasti benar: ai aj.
• Tujuan sorting: menemukan permutasi (p0, p1, …, pn-1) sedemikian sehingga ap0 = ap1 = …
= apn-1.
Enumeration sort:
• menghitung posisi akhir setiap elemen pada list yang di-sort dan membandingkannya
dengan elemen lain dan menghitung jumlah elemen yang memiliki nilai lebih kecil.
• Jika j elemen memiliki nilai lebih kecil dari ai, maka pj=i; yaitu, elemen ai adalah (j + 1)
elemen pada list yang di-sort setelah ap0, …, apj-1.
• Jika diberikan n2 prosesor, model CRCW PRAM dapat menghitung setiap pasang elemen
dan menghitung posisi list setiap elemen dalam waktu konstan. Begitu mesin telah
menghitung posisi setiap elemen, diperlukan satu langkah lagi untuk memindahkan
elemen ybs ke lokasi yang telah urut.
ENUMERATION SORT (SPECIAL CRCW PRAM):
Parameter n {number of elements}
Global a[0...(n-1)] {elements to be sorted}
position[0...(n-1)] {sorted positions}
sorted[0...(n-1)] {Contains sorted elements}
begin
spawn(Pi,j, for all 0 = i, j < n)
for a ll Pi,j, where 0 = i, j < n do
position[i] 0
if a[i] < a[j] or (a[i] = a[j] and i < j) then
position[i] 1
endif
endfor
for a ll Pi,0, where 0 = i < n do
sorted[position[i]] a[i]
endfor
end
Satu set n elemen dapat di-sort dalam waktu T(log n) dengan n2 prosesor, jika dipakai model
PRAM CRCW dengan write simultan ke lokasi memori yang sama menyebabkan jumlah
nilai di-assign. Jika waktu yang diperlukan untuk spawn prosesor tidak dihitung, algoritma
berjalan dengan waktu konstan.
BATAS BAWAH UNTUK PARALLEL SORTING
Teorema 1:
Anggap ada n elemen yang akan di-sort pada array prosesor yang disusun menjadi mesh satu
dimensi. Juga asumsikan bahwa sebelum dan sesudah sort, elemen akan didistribusikan
merata, satu elemen per prosesor. Dengan demikian, batas bawah kompleksitas waktu pada
algoritma sorting yang mana pun adalah T(n).
Bukti:
Lebar biseksi dari jaringan mesh satu dimensi adalah 1. Misalkan posisi yang ter-sort dari
semua elemen yang pada awalnya ada pada satu sisi biseksi adalah pada sisi biseksi yang
lain, dan sebaliknya. Maka seluruh n elemen harus melewati satu link untuk mencapai sisi
yang lain. Karena link hanya dapat membawa satu elemen sekali, jumlah langkah yang
diperlukan untuk menukar elemen melalui biseksi paling tidak adalah sebesar n. Dengan
demikian, batas bawah kompleksitas jaringan mesh satu dimensi dengan syarat-syarat
tersebut adalah T(n).
Teorema 2:
Anggap ada n elemen yang akan di-sort pada array prosesor yang tersusun sebagai mesh dua
dimensi. Juga anggap bahwa sebelum dan sesudah sort, elemen-elemen tsb terdistribusi
merata, satu elemen per prosesor. Maka, batas bawah kompleksitas waktu untuk algoritma
sorting yang mana pun adalah T(vn).
Bukti:
Lebar biseksi jaringan mesh dua dimensi dengan n node adalah lebih kecil atau sama dengan
vn . Misalkan posisi ter-sort dari semua elemen yang pada awalnya ada pada satu sisi
biseksi adalah di sisi lain biseksi tsb, dan sebaliknya. Maka seluruh n elemen harus melalui
salah satu dari tidak lebih vn link untuk mencapai sisi lainnya. Karena satu link hanya
dapat membawa satu elemen sekali, jumlah langkah yang diperlukan untuk menukar elemen
melintasi biseksi paling tidak adalah n/ vn . Dengan demikian, batas bawah kompleksitas
array prosesor bagaimanapun yang disusun sebagai mesh dua dimensi dan berjalan dengan
ketentuan yang telah diberikan di atas adalah T(n/ vn ) = T(vn)
Teorema 3:
Anggap ada n = 2k elemen yang akan di-sort pada array prosesor yang tersusun sebagai
jaringan shuffle-exchange. Juga anggap bahwa sebelum dan sesudah sort, elemen
terdistribusi merata, satu elemen per prosesor. Batas bawah untuk algoritma sort mana pun
adalah T(log n).
Bukti:
Misalkan posisi ter-sort elemen yang pada awalnya berada pada node 0 adalah node n-1.
Pemindahan elemen tsb dari node 0 ke node n-1 menuntut paling tidak log n operasi
pertukaran dan paling tidak log n-1 operasi shuffle. Dengan alasan ini, batas bawah pada
algoritma sorting berbassis shuffle-exchange dengan batas-batas di atas adalah T(log n).
Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan
proses tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada
aplikasi perbankan. Aplikasi tersebut mampu menampilkan daftar account yang aktif.
Hampir seluruh pengguna pada sistem akan memilih tampilan daftar berurutan
secara ascending demi kenyamanan dalam penelusuran data.
Beberapa macam algoritma sorting telah dibuat karena proses tersebut sangat
mendasar dan sering digunakan. Oleh karena itu, pemahaman atas algoritma –
algoritma yang ada sangatlah berguna.
Setelah menyelesaikan pembahasan pada bagian ini, anda diharapkan mampu :
1. Memahami dan menjelaskan algoritma dari insertion sort, selection sort,
merge sort dan quick sort.
2. Membuat implementasi pribadi menggunakan algoritma yang ada
6.2 Insertion Sort
Salah satu algoritma sorting yang paling sederhana adalah insertion sort. Ide dari
algoritma ini dapat dianalogikan seperti mengurutkan kartu. Penjelasan berikut ini
menerangkan bagaimana algoritma insertion sort bekerja dalam pengurutan kartu.
Anggaplah anda ingin mengurutkan satu set kartu dari kartu yang bernilai paling
kecil hingga yang paling besar. Seluruh kartu diletakkan pada meja, sebutlah meja
ini sebagai meja pertama, disusun dari kiri ke kanan dan atas ke bawah. Kemudian
kita mempunyai meja yang lain, meja kedua, dimana kartu yang diurutkan akan
diletakkan. Ambil kartu pertama yang terletak pada pojok kiri atas meja pertama
dan letakkan pada meja kedua. Ambil kartu kedua dari meja pertama, bandingkan
dengan kartu yang berada pada meja kedua, kemudian letakkan pada urutan yang
sesuai setelah perbandingan. Proses tersebut akan berlangsung hingga seluruh kartu
pada meja pertama telah diletakkan berurutan pada meja kedua.
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi
dua bagian, yang belum diurutkan (meja pertama) dan yang sudah diurutkan (meja
kedua). Elemen pertama diambil dari bagian array yang belum diurutkan dan
kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah
diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang
tersisa pada bagian array yang belum diurutkan.
Selection Sort
Jika anda diminta untuk membuat algoritma sorting tersendiri, anda mungkin akan
menemukan sebuah algoritma yang mirip dengan selection sort. Layaknya insertion
sort, algoritma ini sangat rapat dan mudah untuk diimplementasikan.
Mari kita kembali menelusuri bagaimana algoritma ini berfungsi terhadap satu paket
kartu. Asumsikan bahwa kartu tersebut akan diurutkan secara ascending. Pada
awalnya, kartu tersebut akan disusun secara linier pada sebuah meja dari kiri ke
kanan, dan dari atas ke bawah. Pilih nilai kartu yang paling rendah, kemudian
tukarkan posisi kartu ini dengan kartu yang terletak pada pojok kiri atas meja. Lalu
cari kartu dengan nilai paling rendah diantara sisa kartu yang tersedia. Tukarkan
kartu yang baru saja terpilih dengan kartu pada posisi kedua. Ulangi langkah –
langkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan dan
dapat digeser dengan kartu yang bernilai lebih rendah
Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling
rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai
dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.
Algoritma
void selectionSort(Object array[], int startIdx, int endIdx) {
int min;
for (int i = startIdx; i < endIdx; i++) {
min = i;
for (int j = i + 1; j 0) {
min = j;
}
}
swap(array[min], array[i]);

sumber :
www.wikipedia.com

By: Bartolomeus Rynaldo A.H, NPM: 10408997

Spanning Tree Dan Penerapannya Sehari-hari Di Bidang Teknik Elektro

Spanning Tree Protocol disingkat menjadi STP, Merupakan bagian dari standard IEEE 802.1 untuk kontrol media akses. Berfungsi sebagai protocol untuk pengaturan koneksi dengan menggunakan algoritma spanning tree.
Kelebihan STP dapat menyediakan system jalur backup & juga mencegah loop yang tidak diinginkan pada jaringan yang memiliki beberapa jalur menuju ke satu tujuan dari satu host.
Loop terjadi bila ada route/jalur alternative di antara host-host. Untuk menyiapkan jalur back up, STP membuat status jalur back up menjadi stand by atau diblock. STP hanya membolehkan satu jalur yang active (fungsi pencegahan loop) di antara dua host namun menyiapkan jalur back up bila jalur utama terputus.
Bila "cost" STP berubah atau ada jalur yang terputus, algoritma spanning tree mengubah topology spanning tree dan mengaktifkan jalur yang sebelumnya stand by.
Tanpa spanning tree pun sebenarnya memungkinkan koneksi antara dua host melewati beberapa jalur sekaligus namun dapat juga membuat looping yang tidak pernah akan selesai di dalam jaringan anda. Yang pasti akan menghabiskan kapasitas jalur yang ada hanya untuk melewatkan packet data yang sama secara berulang dan berlipat ganda.

 PENERAPAN ALGORITMA SEMUT UNTUK PERMASALAHAN SPANNING TREE PADA KASUS PEMASANGAN JARINGAN KABEL TELEPON

PT. Telekomunikasi Indonesia (PT. Telkom) merupakan perusahaan yang bergerak di bidang pelayanan masyarakat yakni menyediakan kebutuhan komunikasi. Kebutuhan komunikasi saat ini sangat penting artinya bagi masyarakat. Peningkatan pelayanan pemasangan kabel telepon sangat menentukan dalam peningkatan konsumen.
Algritma Semut merupakan salah satu algoritma sistem cerdas yang belum banyak diterapkan terutama dalam kasus minimum spanning tree. Penyelesaian kasus dengan Algritma Semutini didasarkan pada tingkah laku semut dalam memperoleh makanan dengan memilih lintasan terpendek. Ciri pengolahan data dengan Algoritma Semut ini permaasalahan yang harus mempunyai siklus tertutup yang artinya node awal semut berangakat juga merupakan node akhir semut kembali.
Pemasanagn kabel telepon yang dgunakan oleh PT. Telkom sebelumnya adalah pemasangan dengan menggunakan rute terpendek yang didasarkan secara intituisi. Pemasangan ini merupakan pemasangan yang tidak sistematis sehingga hasil yang dihasilkan tidak optimal. Hasil awal yang digunakan pada 21 titik dengan menggunakan Q.S 3.0 maupun dengan perhitungan manual menggunakan algoritma kruskal adalah 2235 meter. Namun sayangnya dalam menggunakan Algoritma Semut memperoleh penyelesaian yang lebih optimal yaitu panjang lintasannya dalah 2461 meter. Walaupun terjandi perbedaan jarak yang sangat besar, namun dari segi penghematan waktu, dengan menggunakan algoritma semut perhitungan lebih cepat.

Pertumbuhan kehidupan ekonomi masyarakat yang pesat saat ini, dimana masyarakat dihadapkan pada kecanggihan teknologi yang mendorong manusia untuk berusaha mendapatkan informasi yang lebih cepat, mudah, dan akurat. Hal ini tidak hanya berlaku bagi negara maju saja, namun bagi negara-negara yang sedang berkembang misalnya Indonesaia pun jasa telekomunikasi sangat dibutuhkan. Dengan kata lain bahwa pertumbuhan ekonomi tidak boleh tidak harus sejalan dengan pembangunan sarana komunikasinya.
Pembangunan jaringan yang dilakukan sekaarang ini mencakup dimensi yang cukup besar, baik ditinjau dari segi jumlah sarana maupun dari segi jangkauan geografis pembangunannya. Dalam rangka mencapai keberhasilan pembangunan tersebut, perlu adanya rancangan yang menyeluruh sebagai pedoman atau acuan teknik bagi perencanaan pembangunan dan operasi jaringan nasional.
Namun dalam pemenuhan sarana komunikasi tersebut banyak terhambat oleh keterbatasan jaringan kabel yang menjadi prioritas pembangaunan jaringan saat ini. Keterbatasan ini sering disebabkan oleh keadaan lingkungan dan letak geografis suatu daerah yang mengakibatkan penarikan kabel membutuhkan biaya yang tidak sedikit dan waktu yang lama. Kondisi suatu kota dengan tingkat kepadatan penduduk, bangunan, dan jalan-jalan raya serta keadaan berupa hutan, lautan, pegunungan dan sebagainya merupakan kendala utama dalam pemasangan kabel yang berkaitan dengan instansi yang terkait dan biaya pemasangan yang mahal.
Untuk itu PT. Telekomunikasi Indonesia sebagai satu-satunya perusahaan BUMN yang menyelenggarakan pembangunan sarana komunikasi di Indonesia dituntut untuk mencari solusi dari permasalahan diatas. PT. Telekomunikasi Indonesia telah mencoba membuat jaringan pemasangan dengan jarak yang minimum dari rumah kabel (RK) ke distributor pembagi (DP), sehingga dapat mengurangi biaya pemasangan jaringan tersebut. Sehingga biaya yang dibebankan kepada pelanggan tidak terlalu mahal.
Salah satu cara untuk meminimalkan biaya pemasangan adalah dengan cara pembuatan lintasan atau rute pemasangan jaringan telepon terpendek, dalam hal ini tipe yang dimaksud adalah dengan menggunakan metode Minimum Spanning tree. PT. Telekomunikasi Indonesia telah menggunakan teknik pemasangan dengan analisis lintasan terpendek dalam pemasangan jaringan kabel telepon, tetapi analisa yang telah dilakukan tidak terdsain dengan sistematis sehingga terdapat lintasan/rute pendek lainnya yang terabaikan.
Penyelesaian dengan metode Minimum Spanning tree akan menghasilkan total lintasan pemasangan kabel terpendek. Kelemahan metode ini adalah pada lama waktu perhitungan, dan keakuratan hasil karena dikerjakan secara manual dari titik satu ke titik lainnya. Untuk itu kasus Minimum Spanning tree ini akan di coba diselesaikan dengan perangkat lunak yang melibatkan algoritma semut (Ant Coloni).

By: Bartolomeus Rynaldo A.H, NPM: 10408997

Kerja Part Time Buat Anak Muda

KAMI HANYA MENCARI YANG SERIUS !

Dapat kan uang saku sebesar Rp.400,000,- per bulan
Dengan Kerja input data online
Khusus yang berjiwa bisnis
Tanpa rekrut member, tanpa jualan product
Silakan registrasi di > http://www.penasaran.net/?ref=x853v2

gaji tetap, kerja part time buat anak muda

Perkembangan Komputer Sekarang Ini Dan Penerapannya Di Bidang Elektronik

Sejarah Perkembangan Komputer, mulai dari generasi 1 (pertama) sampai generasi 5 (kelima) generasi komputer tercanggih komputer berkembang dengan pesat di luar bayangan kita yang mungkin pada zaman dahulu tidak pernah terpikirikan. CERN, Pada abad 20 ini semua sistem serba terkomputerisasi dan sangat canggih, dengan komputer berkerja menjadi lebih efektif dan efisien. Berdasarkan perkembangan teknologi komputer, maka sejarah komputer dari generasi ke generasi dapat kita begi menjadi 2 bagian yaitu :
a. Sebelum tahun 1940.
b. Setelah tahun 1940.

Sebelum tahun 1940
Sejak dahulu kala, proses pengolahan data telah dilakukan oleh manusia. Manusia juga menemukan alat-alat mekanik dan elektronik untuk membantu manusia dalam penghitungan dan pengolahan data supaya bisa mendapatkan hasil lebih cepat. Komputer yang kita temui saat ini adalah suatu evolusi panjang dari penemuanpenemuan manusia sejah dahulu kala berupa alat mekanik maupun elektronik. Saat ini komputer dan piranti pendukungnya telah masuk dalam setiap aspek kehidupan dan pekerjaan. Komputer yang ada sekarang memiliki kemampuan yang lebih dari sekedar perhitungan matematik biasa. Diantaranya adalah sistem komputer di kassa supermarket yang mampu membaca kode barang belanjaan, sentral telepon yang menangani jutaan panggilan dan komunikasi, jaringan komputer dan internet yang menghubungkan berbagai tempat di dunia. Bagaimanapun juga alat pengolah data dari sejak jaman purba sampai saat ini bisa kita golongkan ke dalam 4 golongan besar.
1. Peralatan manual: yaitu peralatan pengolahan data yang sangat sederhana, dan faktor terpenting dalam pemakaian alat adalah menggunakan tenaga tangan manusia
2. Peralatan Mekanik: yaitu peralatan yang sudah berbentuk mekanik yang digerakkan dengan tangan secara manual
3. Peralatan Mekanik Elektronik: Peralatan mekanik yang digerakkan oleh secara otomatis oleh motor elektronik
4. Peralatan Elektronik: Peralatan yang bekerjanya secara elektronik penuh Beberapa peralatan yang telah digunakan sebagai alat hitung sebelum ditemukannya komputer :
1. Abacus.
Muncul sekitar 5000 tahun yang lalu di Asia kecil dan masih digunakan di beberapa tempat hingga saat ini, dapat dianggap sebagai awal mula mesin komputasi. Alat ini memungkinkan penggunanya untuk melakukan perhitungan menggunakan bijibijian geser yang diatur pada sebuh rak. Para pedagang di masa itu menggunakan abacus untuk menghitung transaksi perdagangan. Seiring dengan munculnya pensil dan kertas, terutama di Eropa, Abacus kehilangan popularitasnya.
2. Kalkulator roda numerik
Setelah hampir 12 abad, muncul penemuan lain dalam hal mesin komputasi. Pada tahun 1642, Blaise Pascal (1623-1662), yang pada waktu itu berumur 18 tahun, menemukan apa yang ia sebut sebagai kalkulator roda numerik (numerical wheel calculator) untuk membantu ayahnya melakukan perhitungan pajak. Kotak persegi kuningan ini yang dinamakan Pascaline, menggunakan delapan roda putar bergerigi untuk menjumlahkan bilangan hingga delapan digit. Alat ini merupakan alat penghitung bilangan berbasis sepuluh. Kelemahan alat ini adalah hanya terbataas untuk melakukan penjumlahan.
3. Kalkulator roda numerik 2
Tahun 1694, seorang matematikawan dan filsuf Jerman, Gottfred Wilhem von Leibniz (1646-1716) memperbaiki Pascaline dengan membuat mesin yang dapat mengalikan. Sama seperti pendahulunya, alat mekanik ini bekerja dengan menggunakan roda-roda gerigi. Dengan mempelajari catatan dan gambar-gambar yang dibuat oleh Pascal, Leibniz dapat menyempurnakan alatnya.
4. Kalkulator Mekanik.
Charles Xavier Thomas de Colmar menemukan mesin yang dapat melakukan empat fungsi aritmatik dasar. Kalkulator mekanik Colmar, arithometer, mempresentasikan pendekatan yang lebih praktis dalam kalkulasi karena alat tersebut dapat melakukan penjumlahan, pengurangan, perkalian, dan pembagian. Dengan kemampuannya, arithometer banyak dipergunakan hingga masa Perang Dunia I. Bersama-sama dengan Pascal dan Leibniz, Colmar membantu membangun era komputasi mekanikal. Awal mula komputer yang sebenarnya dibentuk oleh seorang profesor matematika Inggris, Charles Babbage (1791-1871). Tahun 1812, Babbage memperhatikan kesesuaian alam antara mesin mekanik dan matematika:mesin mekanik sangat baik dalam mengerjakan tugas yang sama berulangkali tanpa kesalahan; sedang matematika membutuhkan repetisi sederhana dari suatu langkah-langkah tertenu. Masalah tersebut kemudain berkembang hingga menempatkan mesin mekanik sebagai alat untuk menjawab kebutuhan mekanik. Usaha Babbage yang pertama untuk menjawab masalah ini muncul pada tahun 1822 ketika ia mengusulkan suatu mesin untuk melakukan perhitungan persamaan differensil. Mesin tersebut dinamakan Mesin Differensial. Dengan menggunakan tenaga uap, mesin tersebut dapat menyimpan program dan dapat melakukan kalkulasi serta mencetak hasilnya secara otomatis.
Setelah bekerja dengan Mesin Differensial selama sepuluh tahun, Babbage tibatiba terinspirasi untuk memulai membuat komputer general-purpose yang pertama, yang disebut Analytical Engine. Asisten Babbage, Augusta Ada King (1815-1842) memiliki peran penting dalam pembuatan mesin ini. Ia membantu merevisi rencana, mencari pendanaan dari pemerintah Inggris, dan mengkomunikasikan spesifikasi Anlytical Engine kepada publik. Selain itu, pemahaman Augusta yang baik tentang mesin ini memungkinkannya membuat instruksi untuk dimasukkan ke dlam mesin dan juga membuatnya menjadi programmer wanita yang pertama. Pada tahun 1980,
Departemen Pertahanan Amerika Serikat menamakan sebuah bahasa pemrograman dengan nama ADA sebagai penghormatan kepadanya.
Pada 1889, Herman Hollerith (1860-1929) juga menerapkan prinsip kartu perforasi untuk melakukan penghitungan. Tugas pertamanya adalah menemukan cara yang lebih cepat untuk melakukan perhitungan bagi Biro Sensus Amerika Serikat. Sensus sebelumnya yang dilakukan di tahun 1880 membutuhkan waktu tujuh tahun untuk menyelesaikan perhitungan. Dengan berkembangnya populasi, Biro tersebut emperkirakan bahwa dibutuhkan waktu sepuluh tahun untuk menyelesaikan perhitungan sensus. Pada masa berikutnya, beberapa insinyur membuat p enemuan baru lainnya. Vannevar Bush (1890-1974) membuat sebuah kalkulator untuk menyelesaikan persamaan differensial di tahun 1931. Mesin tersebut dapat menyelesaikan persamaan differensial kompleks yang selama ini dianggap rumit oleh kalangan akademisi. Mesin tersebut sangat besar dan berat karena ratusan gerigi dan poros yang dibutuhkan untuk melakukan perhitungan. Pada tahun 1903, John V. Atanasoff dan Clifford Berry mencoba membuat komputer elektrik yang menerapkan aljabar Boolean pada sirkuit elektrik. Pendekatan ini didasarkan pada hasil kerja George Boole (1815-1864) berupa sistem biner aljabar, yang menyatakan bahwa setiap persamaan matematik dapat dinyatakan sebagai benar atau salah. Dengan mengaplikasikan kondisi benar-salah ke dalam sirkuit listrik dalam bentuk terhubung-terputus, Atanasoff dan Berry membuat komputer elektrik pertama di tahun 1940. Namun proyek mereka terhenti karena kehilangan sumber pendanaan.

Setelah tahun 1940
Perkembangan komputer setelah tahun 1940 dibagi lagi menjadi 5 generasi.
1. Komputer generasi pertama ( 1940-1959 ) :
Komputer generasi pertama ini menggunakan tabung vakum untuk memproses dan menyimpan data. Ia menjadi cepat panas dan mudah terbakar, oleh karena itu beribu-ribu tabung vakum diperlukan untuk menjalankan operasi keseluruhan komputer. Ia juga memerlukan banyak tenaga elektrik yang menyebabkan gangguan elektrik di kawasan sekitarnya.
Komputer generasi pertama ini 100% elektronik dan membantu para ahli dalam menyelesaikan masalah perhitungan dengan cepat dan tepat. Beberapa komputer
a. ENIAC (Electronic Numerical Integrator And Calculator ) dirancang oleh Dr John Mauchly dan Presper Eckert pada tahun 1946. KOMPUTER ENIAC
Komputer generasi ini sudah mulai menyimpan data yang dikenal sebagai konsep penyimpanan data (stored program concept) yang dikemukakan oleh John Von Neuman.
b. EDVAC Computer
Penggunaan tabung vakum juga telah dikurangi di dalam perancangan komputer EDVAC (Electronic Discrete Variable Automatic Computer) di mana proses perhitungan menjadi lebih cepat dibandingkan ENIAC.
c. EDSAC COMPUTER
EDSAC (Electonic Delay Storage Automatic Calculator) memperkenalkan penggunaan raksa (merkuri) dalam tabung untuk menyimpan data. KOMPUTER EDSAC
d. UNIVAC 1 Computer.
Pada tahun 1951 Dr Mauchly dan Eckert menciptakan UNIVAC 1 (Universal Automatic Calculator ) komputer pertama yang digunakan untuk memproses data perdagangan.
Komputer generasi kedua ( 1959 .. 1964 ) :
Pada tahun 1948, penemuan transistor sangat mempengaruhi perkembangan komputer. Transistor menggantikan tabung vakum di televisi, radio, dan komputer. Akibatnya, ukuran mesin-mesin elektrik berkurang drastis. Transistor mulai digunakan di dalam komputer mulai pada tahun 1956. Penemuan lain yang berupa pengembangan memori inti-magnetik membantu pengembangan komputer generasi kedua yang lebih kecil, lebih cepat, lebih dapat diandalkan, dan lebih hemat energi dibanding para pendahulunya. Mesin pertama yang memanfaatkan teknologi baru ini adalah superkomputer. IBM membuat superkomputer bernama Stretch, dan Sprery-Rand membuat komputer bernama LARC. Komputer-komputer ini, yang dikembangkan untuk laboratorium energi atom, dapat menangani data dalam jumlah yang besar. Mesin tersebut sangat Mahal dan cenderung terlalu kompleks untuk kebutuhan komputasi bisnis, sehingga membatasi kepopulerannya. Hanya ada dua LARC yang pernah
dipasang dan digunakan: satu di Lawrence Radiation Labs di Livermore, California, dan yang lainnya di US Navy Research and Development Center di Washington D.C.
Komputer generasi kedua Menggantikan bahasa mesin dengan bahasa assembly. Bahasa assembly adalah bahasa yang menggunakan singkatan-singakatan untuk menggantikan kode biner. Pada awal 1960-an, mulai bermunculan komputer generasi kedua yang sukses di bidang bisnis, di universitas, dan di pemerintahan. Komputer-komputer generasi kedua ini merupakan komputer yang sepenuhnya menggunakan transistor. Mereka juga memiliki komponen-komponen yang dapat diasosiasikan dengan komputer pada saat ini: printer, penyimpanan dalam disket, memory, sistem operasi, dan program.
KOMPUTER DEC PDP-8
Salah satu contoh penting komputer pada masa ini adalah IBM 1401 yang diterima secaa luas di kalangan industri. Pada tahun 1965, hampir seluruh bisnis-bisnis besar menggunakan komputer generasi kedua untuk memproses informasi keuangan. Program yang tersimpan di dalam komputer dan bahasa pemrograman yang ada di dalamnya memberikan fleksibilitas kepada komputer. Fleksibilitas ini meningkatkan kinerja dengan harga yang pantas bagi penggunaan bisnis. Dengan konsep ini, komputer dapa tmencetak faktur pembelian konsumen dan kemudian menjalankan desain produk atau menghitung daftar gaji. Beberapa bahasa pemrograman mulai bermunculan pada saat itu. Bahasa pemrograman Common Business-Oriented Language (COBOL) dan Formula Translator (FORTRAN) mulai umum digunakan. Bahasa pemrograman ini menggantikan kode mesin yang rumit dengan kata-kata, kalimat, dan formula matematika yang lebih mudah dipahami oleh manusia. Hal ini memudahkan seseorang untuk memprogram dan mengatur komputer. Berbagai macam karir baru bermunculan (programmer, analyst, dan ahli sistem komputer). Industri piranti lunak juga mulai bermunculan dan berkembang pada masa komputer generasi kedua ini.
3. Komputer generasi ketiga ( 1964 .. awal 80an ) :
Walaupun transistor dalam banyak hal mengungguli tube vakum, namun transistor menghasilkan panas yang cukup besar, yang dapat berpotensi merusak bagian-bagian internal komputer. Batu kuarsa (quartz rock) menghilangkan masalah ini. Jack Kilby, seorang insinyur di Texas Instrument, mengembangkan sirkuit terintegrasi (IC : integrated circuit) di tahun 1958. IC mengkombinasikan tiga komponen elektronik dalam sebuah piringan silikon kecil yang terbuat dari pasir kuarsa. Pada ilmuwan kemudian berhasil memasukkan lebih banyak komponen-komponen ke dalam suatu chip tunggal yang disebut semikonduktor. Hasilnya, komputer menjadi semakin kecil karena komponen-komponen dapat dipadatkan dalam chip. Kemajuan komputer generasi ketiga lainnya adalah penggunaan sistem operasi (operating system) yang memungkinkan mesin untuk menjalankan berbagai program yang berbeda secara serentak dengan sebuah program utama yang memonitor dan mengkoordinasi memori komputer.
4. Komputer generasi keempat ( awal 80an – ??? ) :
Setelah IC, tujuan pengembangan menjadi lebih jelas: mengecilkan ukuran sirkuit dan komponenkomponen elektrik. Large Scale Integration (LSI) dapat memuat ratusan komponen dalam sebuah chip. Pada tahun 1980-an, Very Large Scale Integration (VLSI) memuat ribuan komponen dalam sebuah chip tunggal. Ultra-Large Scale Integration (ULSI) meningkatkan jumlah tersebut menjadi jutaan. Kemampuan untuk memasang sedemikian banyak komponen dalam suatu keping yang berukurang setengah keping uang logam mendorong turunnya harga dan ukuran komputer. Hal tersebut juga meningkatkan daya kerja, efisiensi dan keterandalan komputer. Chip Intel 4004 yang dibuat pada tahun 1971 membawa kemajuan pada IC dengan meletakkan seluruh komponen dari sebuah komputer (central processing unit, memori, dan kendali input/output) dalam sebuah chip yang sangat kecil. Sebelumnya, IC dibuat untuk mengerjakan suatu tugas tertentu yang spesifik.Sekarang, sebuah mikroprosesor dapat diproduksi dan kemudian diprogram untuk memenuhi seluruh
kebutuhan yang diinginkan. Tidak lama kemudian, setiap perangkat rumah tangga seperti microwave oven, televisi, dn mobil dengan lectronic fuel injection dilengkapi dengan mikroprosesor.
Perkembangan yang demikian memungkinkan orang-orang biasa untuk menggunakan komputer biasa. Komputer tidak lagi menjadi dominasi perusahaanperusahaan besar atau lembaga pemerintah. Pada pertengahan tahun 1970-an, perakit komputer menawarkan produk komputer mereka ke masyarakat umum. Komputerkomputer ini, yang disebut minikomputer, dijual dengan paket piranti lunak yang mudah digunakan oleh kalangan awam. Piranti lunak yang paling populer pada saat itu adalah program word processing dan spreadsheet. Pada awal 1980-an, video game seperti Atari 2600 menarik perhatian konsumen pada komputer rumahan yang lebih canggih dan dapat diprogram.
Pada tahun 1981, IBM memperkenalkan penggunaan Personal Computer (PC) untuk penggunaan di rumah, kantor, dan sekolah. Jumlah PC yang digunakan melonjak dari 2 juta unit di tahun 1981 menjadi 5,5 juta unit di tahun 1982. Sepuluh tahun kemudian, 65 juta PC digunakan. Komputer melanjutkan evolusinya menuju ukuran yang lebih kecil, dari komputer yang berada di atas meja (desktop computer) menjadi komputer yang dapat dimasukkan ke dalam tas (laptop), atau bahkan komputer yang dapat digenggam (palmtop).
IBM PC bersaing dengan Apple Macintosh dalam memperebutkan pasar komputer. Apple Macintosh menjadi terkenal karena mempopulerkan sistem grafis pada
komputernya, sementara saingannya masih menggunakan komputer yang berbasis teks. Macintosh juga mempopulerkan penggunaan piranti mouse.
Pada masa sekarang, kita mengenal perjalanan IBM compatible dengan pemakaian CPU: IBM PC/486, Pentium, Pentium II, Pentium III, Pentium IV (Serial dari CPU buatan Intel). Juga kita kenal AMD k6, Athlon, dsb. Ini semua masuk dalam golongan komputer generasi keempat.
Seiring dengan menjamurnya penggunaan komputer di tempat kerja, cara-cara baru untuk menggali potensial terus dikembangkan. Seiring dengan bertambah kuatnya suatu komputer kecil, komputer-komputer tersebut dapat dihubungkan secara bersamaan dalam suatu jaringan untuk saling berbagi memori, piranti lunak, informasi, dan juga untuk dapat saling berkomunikasi satu dengan yang lainnya. Komputer jaringan memungkinkan komputer tunggal untuk membentuk kerjasama elektronik untuk menyelesaikan suatu proses tugas. Dengan menggunakan perkabelan langsung (disebut juga local area network, LAN), atau kabel telepon, jaringan ini dapat berkembang menjadi sangat besar.
5. Komputer generasi kelima ( masa depan ) :
Banyak kemajuan di bidang desain komputer dan teknologi semkain memungkinkan pembuatan komputer generasi kelima. Dua kemajuan rekayasa yang terutama adalah kemampuan pemrosesan paralel, yang akan menggantikan model non Neumann. Model non Neumann akan digantikan dengan sistem yang mampu mengkoordinasikan banyak CPU untuk bekerja secara serempak. Kemajuan lain adalah teknologi superkonduktor yang memungkinkan aliran elektrik tanpa ada hambatan apapun, yang nantinya dapat mempercepat kecepatan informasi.
Teknologi komputer mulai mengubah dunia, semua seba digital dalam hal ini negara yang paling gencar melakukan pembaharuan dan riset riset adalah jepang. Komputer memiliki sejarah perkembangan komputer yang panjang, komputer yang setiap hari kita pegang itu tidak serta merta langsung jadi menjadi barang kotak kecil yang multifungsi tetapi memiliki sejarah yang panjang.

By : Bartolomeus Rynaldo A.H, NPM : 10408997