Minggu, 12 Desember 2010

Sintaks

Definisi Sintaks

Pendefisian Sintaks suatu bahasa dilakukan dengan menggunakan suatu notasi tata bahasa bebas konteks (context-free grammar) atau untuk memudahkan disebut tata bahasa saja.

Suatu tata bahasa secara alamiah menerangkan struktur hirarki dari banyak bentuk bahasa pemrograman. Misalkan perintah if-else dari bahasa C mempunyai bentuk:

if (ekspresi) perintah else perintah

Ket :
Dalam hal ini suatu perintah adalah gabungan dari :
- kata kunci if
- kurung buka
- ekspresi
- kurung tutup
- perintah
- kata kunci else
- perintah lainnya
(Dalam bahasa C tidak ada kata kunci then).

Bila digunakan nama variabel expr untuk menyatakan suatu ekspresi dan variabel stmt untuk menyatakan suatu perintah, maka struktur aturan ini dapat dinyatakan sebagai berikut :

stmtif (expr) stmt else stmt

Ket:
→ (tanda panah dibaca sebagai) "Dapat berbentuk suatu".


Aturan diatas disebut juga suatu produksi (production).

Dalam suatu produksi seperti ini unsur leksikal seperti kata kunci if dan tanda kurung "(",")" disebut suatu token

Variabel seperti expr dan stmt disebut dengan non-terminal.


Secara lengkap suatu tata bahasa bebas konteks dapat mempunyai 4 komponen berikut:

1. Himpunan dari token yang dikenal dengan simbol token.

2. Himpunan dari unsur non-terminal

3. Himpunan dari produksi, di mana masing-masing produksi terdiri dari unsur non-terminal (bagian kiri tanda panah dari suatu produksi). Bagian kanan produksi berupa → (tanda panah) dan barisan dari token dan/atau non-terminal (sebelah kanan tanda panah).

4. Salah satu unsur non-terminal yang telah ditentukan sebagai awal tata bahasa disebut sebagai simbol awal.

Aturan umum yang digunakan dalam menentukan suatu tata bahasa adalah dengan menuliskan produksi yang ada dengan dimulai dari produksi yang mengandung simbol awal.

Terminal dapat berupa angka-angka, tanda-tanda seperti <=, dan rangkaian karakter yang ditulis huruf tebal seperti while dan lain-lainnya juga nama lain yang tidak dicetak miring.

Non-teminal dapat berupa nama yang dicetak miring.

Untuk memudahkan penulisan, maka produksi yang mempunyai simbol non-teminal disebelah kiri yang sama bagian kanannya dapat dikelompokkan dengan menggunakan tanda "|" yang memisahkan pilihan bagian kanan yang ada. pengelompokkan seperti ini dapat dibaca sebagai "atau"


Contoh 1:
9-5+2, 3-1, 7 merupakan barisan dari angka-angka yang dipisahkan oleh tanda '+' atau '-'.

Tata bahasa berikut memberkan sintaks dari ekspresi-ekspresi di atas. Produksi yang ada adalah:

listlist + digit
listlist - digit
listdigit
digit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Bagian kanan dari produksi untuk unsur non-terminal list
listlist + digit
listlist - digit
listdigit
di bagian kiri dapat dikelompokkan menjadi 1 produksi yang setara, yaitu:
listlist + digit | list - digit | digit

- Penulisan Produksi menjadi:
listlist + digit | list - digit | digit
digit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

- Token yang menjadi terminal digunakan adalah simbol +,-,0,1,2,3,4,5,6,7,8,9

- Sedangkan unsur non-terminal adalah nama-nama yang digaris miring seperti list dan digit

- Simbol Awal adalah produksi non-terminal list


Suatu unsur non-terminal dapat merupakan suatu produksi bila unsur non-terminal tersebut timbul dibagian kiri dari produksi

Barisan token adalah barisan dari nol atau lebih token. Unsur yang mengandung nol token ditulis sebagai ε, dan disebut dengan nama barisan kosong.


Suatu bahasa diperoleh dari :
- barisan-barisan yang dimulai dari simbol awal
- bagian kanan yang masih berupa non-terminal (bukan token/terminal) dari produksi dapat diganti dengan mencari acuan pada bagian kiri dari produksi yang ada dengan non-terminal yang sama.
- mengganti unsur non-terminal pada bagian kiri produksi dengan bagian kanan dari produksi non-terminal tersebut.
- Barisan token pada bagian kanan produksi yang menjadi pengganti unsur non terminal acuan pada bagian kiri produksi merupakan akhir dalam pembentukan bahasa.


Contoh 2:
Bahasa yang didefinisikan oleh tata bahasa pada contoh 1 terdiri dari barisan angka-angka yang dipisahkan oleh tanda '-' atau '+'.

Kesepuluh produksi dari unsur nonterminal digit (digit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9) dapat digunakan sebagai penganti token-token yang berhubungan dengan angka yaitu 0,1,2,3,4,5,6,7,8,9 dari produksi listdigit, maka dapat dikatakan bahwa 1 angka yang berdiri sendiri adalah suatu list juga, yaitu :
Pada produksi listdigit
0 merupakan bahasa yang dibentuk list
1 merupakan bahasa yang dibentuk list
2 merupakan bahasa yang dibentuk list
3 merupakan bahasa yang dibentuk list
4 merupakan bahasa yang dibentuk list
5 merupakan bahasa yang dibentuk list
6 merupakan bahasa yang dibentuk list
7 merupakan bahasa yang dibentuk list
8 merupakan bahasa yang dibentuk list
9 merupakan bahasa yang dibentuk list

Pada produksi lainnya
listlist + digit
listlist - digit
menyatakan bahwa list yang diikuti oleh tanda '+' atau '-' dan diikuti oleh list akan membentuk suatu list baru.

Ternyata semua produksi yang digunakan pada contoh 1 adalah produksi-produksi yang diperlukan untuk dapat mendefinisikan bahasa yang diinginkan untuk ekspresi 9-5+2, 3-1, 7

9-5+2 merupakan salah satu anggota dari bahasa yang dibentuk list, dimana list adalah simbol awal. Hal ini dapat ditunjukkan sebagai berikut:

a. 9 merupakan list dari produksi "listdigit" dimana digit membentuk 9 pada "digit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9" atau secara terpisah menjadi
digit → 0
digit → 1
digit → 2
digit → 3
digit → 4
digit → 5
digit → 6
digit → 7
digit → 8
digit → 9.
b. 9-5 merupakan list dari produksi "listlist - digit" dimana 9 sudah berupa list dan digit membentuk 5 pada "digit → 5".
c. 9-5+2 merupakan list dari produksi "listlist + digit" = (9-5) + 2. Dimana 9-5 sudah berupa list dan digit membentuk 2 pada "digit → 2".

Hal ini dapat dilihat pada gambar 1 berikut ini
Gambar 1 Pohon urai dari ekspresi 9-5+2 menurut tata bahasa contoh 1

Pada gambar ini setiap nodal (titik pertemuan antar garis) pada pohon urai diberi label salah satu simbol tata bahasa.

Nodal dalam (internal node / nodal di atas nodal yang lain) dan anak-anaknya (nodal yang terletak di bawah nodal dalam) berhubungan dengan suatu produksi.

Nodal dalam berhubungan dengan bagian kiri dari produksi, sedangkan anak-anaknya berhubungan dengan bagian kanan dari produksi yang sama.

Pohon demikian disebut pohon urai dari ekspresi yang diberikan.


Contoh 3
Pada bahasa Pascal dapat dijumpai dalam cakupan blok begin-end. Salah satu perbedaan yang sangat mencolok yang terdapat pada contoh adalah adanya list dari perintah-perintah yang mungkin kosong diantara token-token begin dan end. Untuk itu dikembangkan suatu tata bahasa yang mengandung produksi berikut:

blockbegin opt_stmts end
opt_stmtsstmt_list | ε
stmt_liststmt_list εstmt | stmt

Pada produksi opt_stmts, kemungkinan ke-2 bagian kanan pada "opt_stmtsstmt_list | ε" adalah perintah yang boleh memilih "ε", yang mengartikan rangkaian kosong dari simbol-simbol. Jadi suatu blok dapat hanya terdiri dari 2 token yaitu begin dan end

Pada produksi stmt_list sangat mirip dengan produksi list pada contoh 1, dimana tanda "|" menggantikan operator "+" dan "-" (listlist + digit | list - digit | digit). Unsur non-terminal stmt menggantikan unsur non-terminal digit.

Single One Pass

Suatu kompilator dapat dibuat hanya dengan melakukan 1 kali pembacaan program sumber.

Tetapi kompilator yang demikian biasanya tidak dapat melakukan optimasi kode dengan baik.

Namun demikian kebanyakan kompilator untuk bahasa yang terstruktur melakukan beberapa kali pembacaan untuk :
- dapat melakukan deteksi kesalahan
- menemukan kembali kesalahan yang telah diperoleh
- melakukan proses debugging

Rancangan kompilator ini dimaksudkan untuk menerjemahkan suatu ekspresi matematika yang ditulis dalam notasi infix menjadi notasi yang ditulis dalam notasi postfix.

Penekanan yang diberikan hanya pada bagian depan dari proses kompilasi yang dilakukan yaitu:
- Analisis Leksikal
- Penguraian (parser)
- Pembentukan Kode Antara

Suatu penerjemahan berdasarkan sintaks merupakan kombinasi dari proses Analisis Leksikal dan Pembentuk Kode Antara

- operator

- label

- simbol tanda -> tanda kurung, koma, titik koma.

Suatu Praposesor menghasilkan suatu input bagi suatu kompilator. Hal ini mungkin dilakukan oleh suatu kompilator antara lain:

- Pemroses Makro
Makro yang merupakan kependekan dari suatu bagian program yang lebih panjang memungkinkan penulis program untuk memperpendek program yang ditulisnya.
Dalam hal ini perlu dilakukan dua hal

a. Mendefinisikan makro yang digunakan.
Parameter yang didefinisikan pada makro disebut dengan parameter formal

b. Melakukan pemanggilan makro yang mungkin juga mengandung beberapa parameter.
Sedangkan parameter yang digunakan untuk memanggil makro disebut dengan paramater aktual

- Pengikutsertaan berkas (File Inclusion)
Suatu Praprosesor memungkinkan diikutsertakannya beberapa berkas program yang telah ditulis sebelumnya ke dalam program yang sedang ditulis.
Biasanya berkas program yang ditulis sebelumnya merupakan segmen program yang sekali digunakan, banyak manfaatnya dan sering terjadi sudah merupakan bagian dari sistem bahasa yang digunakan
Misalnya pada bahasa C, isi dari berkas global.h dapat diikutsertakan dalam program yang sedang ditulis dengan menggunakan perintah #include global.h

- Praposesor Rasional
Praprosesor ini memberikan kemampuan baru dari suatu bahasa dengan fasilitas pengendalian aliran (flow-of-control) atau struktur data yang lebih baik.
Misalnya dengan menambahkan kemampuan perintah while, if-then-else pada bahasa yang pada mulanya tidak mempunyai fasilitas tersebut.
Hal ini biasanya dilakukan dengan menggunakan makro yang sudah ada dalam bahasa tersebut.

- Perluasan Bahasa
Praprosesor ini memungkinkan suatu bahasa untuk berinteraksi dengan sistem atau bahasa lainnya.
Misalnya pada bahasa C yang ditambahkan kemampuannya untk dapat mengakses data dalam suatu database.
Untuk itu praprosesor memungkinkan menggunakan tanda ## yang menyatakan bahwa bagian ini bukan merupakan bagian dari bahasa C, tetapi berhubungan dengan sistem suatu paket database lain yang sudah baku.
Dengan demikian bagian ini akan diterjemahkan kedalam pemanggilan procedure untukmelakukan akses database.

Lexeme

Lexeme adalah string yang merupakan masukan dari analisis Leksikal.

Token

Token merupakan unit atau elemen dasar bahasa komputer (seperti 'kata' di bahasa manusia), dimana unit tersebut tidak terbagi lagi.

Token merupakan bagian hasil dari pemecahan sumber program yaitu penerjemahan lexeme pada saat melakukan scanner.


Token mereprentasikan nama :

- identifier -> nama variabel, fungsi, tipe atau nama yang didefinisikan pemakai.

- keyword

- literal string

Praposesor

Adalah suatu program khusus menanggulangi terjadinya beberapa modul yang terpisah saat melakukan penulisan bahasa sumber menjadi beberapa file ke dalam suatu program baru.

Code Generation

Code Generator/Pembentukan Kode

Dimana dalam tahap ini dibentuk antara dari bahasa sumber yang berupa suatu pohon sintaks diterjemahkan ke dalam suatu bahasa assembler atau bahasa mesin

Bentuk antara yang diperoleh biasanya merupakan suatu perintah 3 alamat atau suatu kuadrupel (3-address code atau quadruples), sedangkan bahasa mesin yang dihasilkan adalah suatu bahasa assembler yang merupakan suatu perintah 1 alamat, 1 akumulator.

Analisis Sintaktik

Analisis Sintaktik/Analisis Hirarki/Parsing

Dalam tahap ini karakter atau token yang diperoleh pada analisis leksikal disusun dan dikelompokkan dalam suatu hirarki tertentu yang secara keseluruhan mempunyai arti tertentu.

Disinilah struktur program yang lebih besar diidentifikasi (statement, deklarasi, ekspresi, dan lainnya) menggunakan token leksikal yang dihasilkan Analisis Leksikal.

Analisis Sintaktik selalu bekerja bergantian dengan Analisis Semantik.
- Pertama, Analisis Sintaktik mengidentifikasikan urutan Token Leksikal seperti ekspresi, statement, subprogram, dan lainnya.
- Analisis Semantik kemudian dipanggil untuk proses unit ini.

Analisis Sintaktik berfungsi menghasilkan pohon sintaks program sumber yang didefinisi grammar.

Simbol terminal pohon sintaks adalah token-token yang dihasilkan scanner.

Analisis Semantik

Disini dilakukan pengecekan pada struktur akhir yang telah diperoleh dan diperiksa kesesuainnya dengan komponen program yang ada.

Merupakan pusat dari tahapan translasi, struktur sintaktik yang dikenali oleh Analisis Sintaktik diproses, dan struktur objek eksekusi sudah mulai dibentuk. Analisis Semantik kemudian menjadi jembatan antara analisis dan sintesis dari translasi.

Analisis Semantik menghasilkan suatu kode objek yang dapat dieksekusi dalam translasi sederhana, tetapi biasanya bentuk dari kode objek yang dapat dieksekusi ini merupakan bentuk internal dari final program eksekusi, yang kemudian dimanipulasi oleh tahap optimisasi dari translator sebelum akhirnya kode eksekusi benar-benar dihasilkan.

Analisis Leksikal

Analisis Leksikal/Analisis Linier/Pembacaan Sekilas (Scanner)

Dalam kaitan ini aliran karakter yang membentuk program sumber dibaca dari kiri ke kanan dan dikelompokkan dalam apa yang disebut token yaitu barisan dari karakter yang dalam suatu kesatuan mempunyai suatu arti tersendiri.

Analisis ini melakukan penerjemahan masukan menjadi bentuk yang lebih berguna untuk tahap-tahap kompilasi berikutnya.

Analisis Leksikal merupakan antarmuka antara kode program sumber dan analisis sintaktik (parser). Scanner melakukan pemeriksaan karakter per karakter pada teks masukan, memecah sumber program menjadi bagian-bagian disebut Token.

Analisis Leksikal mengerjakan pengelompokkan urutan-urutan karakter ke dalam komponen pokok: identifier, delimeter, simbol-simbol operator, angka, keyword, noise word, blank, komentar, dan seterusnya menghasilkan suatu Token Leksikal yang akan digunakan pada Analisis Sintaktik.

Model dasar untuk membentuk suatu Analisis Leksikal adalah Finite-State Automata.

2 aspek penting pembuatan Analisis Leksikal adalah:
- Menentukan token-token bahasa.
- Mengenali token-token bahasa dari program sumber.

Token-token dihasilkan dengan cara memisahkan program sumber tersebut dilewatkan ke parser

Analisis Leksikal harus mengirim token ke parser. Untuk mengirim token, scanner harus mengisolasi barisan karakter pada teks sumber yang merupakan 1 token valid. Scanner juga menyingkirkan informasi seperti komentar, blank, batas-batas baris dan lain-lain yang tidak penting (tidak mempunyai arti) bagi parsing dan Code Generator.

Scanner juga harus dapat mengidentifikasi token secara lengkap dan membedakan keyword dan identifier. Untuk itu scanner memerlukan tabel simbol. Scanner memasukkan identifier ke tabel simbol, memasukkan konstanta literal dan numerik ke tabel simbol sendiri setelah konversi menjadi bentuk internal.

Analisis Leksikal merupakan komponen kompilasi independen yang berkomunikasi dengan parser lewat antarmuka yang terdefinisi bagus dan sederhana sehingga pemeliharaan analisis leksikal menjadi lebih mudah dimana perubahan-perubahan terhadap analisis leksikal tidak berdampak pada pengubahan kompilator secara keseluruhan.

Agar dapat memperoleh fitur ini, maka antarmuka harus tidak berubah. Kebanyakan kode yang menyusun analisis leksikal adalah sama untuk seluruh kompilator, tidak peduli bahasa.

Pada analisis leksikal yang dituntun tabel (table-driven lexical analyzer), maka satu-satunya yang berubah adalah tabel itu sendiri.

Kadang diperlukan interaksi analisis leksikal dan analisis sintaktik yang lebih kompleks. Sehingga analisis leksikal harus dapat menganggap string sebagai token bertipe, bukan identifier.

Untuk itu perlu komunikasi tingkat lebih tinggi yang biasanya dilakukan suatu struktur data dipakai bersama seperti tabel simbol.

Analisis Sintaktik dapat memasukkan string ke tabel simbol, mengidentifikasi sebagai Type atau typedef, sehingga analisis leksikal dapat memeriksa tabel simbol untuk menentukan apakah lexeme adalah tipe token atau identifier.


Tugas-tugas Analisis leksikal

1. Konversi Program Sumber Menjadi Barisan Token
Mengubah program sumber yang dipandang sebagai barisan byte/karakter menjadi token

2. Menangani Kerumitan Sistem Masukkan/Keluaran
Karena analisis leksikal biasanya berhubungan langsung dengan kode sumber yang diwadahi file, maka analisis leksikal juga bertindak sebagai benteng untuk komponen-komponen lain di kompilator dalam mengatasi keanehan-keanehan sistem masukkan/keluaran sistem operasi dan sistem komputer.

Optimasi perlu dilakukan agar analisis leksikal membaca karakter degan sekaligus membaca sejumlah besar bagian file.

Perangkat masukkan/keluaran benar-benar diisolasi agar tidak terlihat oleh parser dan komponen-komponen kompilator yang lain.


Tugas-tugas tambahan Analisis Leksikal

1. Penghilangan komentar dan whitespace (tab,spasi,karakter lainnya)
Tindakan housekeeping dilakukan scanner sehingga mengisolasikan dari parser dan komponen-komponen kompilator lain.

Peran ini menyederhanakan perancangan parser (dan grammar bahasa pemrograman).

Scanner juga mencatat nomor baris saat itu sehingga penanganan kesalahan yang cerdas dapat mengirim pesan kesalahan dengan lebih akurat.

2. Konversi literal/konstanta numerik menjadi tipe data tertentu
Analisis leksikal dapat mengirim token, dan nilainya. Nilai ini biasa disebut atribut.

Namun demikian, bila analisis leksikal ditambahin dengan tugas-tugas tambahan yang terlalu banyak juga akan menjadi tidak baik. Karena itu membatasi analisis leksikal hanya untuk melakukan tugas pengenalan pola token (ditambah membuang komentar) adalah mempermudah pemeliharaan.


Tahap Pelaksanaan Analisis Leksikal
- Pada single one pass
Terjadi interaksi antara scanner dan parser. Sacnner dipanggil saat parser memerlukan token berikutnya. Pendekatan ini lebih baik karena bentuk internal program sumber yang lengkap tidak perlu dibangun dan disimpan di memori sebelum parsing dimulai.

- Pada separate pass
Scanner memproses secara terpisah, dilakukan sebelum parsing. Hasil scanner disimpan dalam file. Dari file tersebut, parsing melakukan kegiatannya.

Scanner mengirim nilai-nilai integer yang mempresentasikan bentuk internal token, bukan nilai-nilai string.

Keunggulan cara ini adalah ukurannya kecil dan tetap. Parser sangat lebih efisien bekerja dengan nilai integer yang mempresentasikan simbol daripada string nyata dengan panjang variabel.


Implementasi Analisis Leksikal

1. Pengenalan Token
- Scanner harus dapat mengenali token
- Terlebih dahulu dideskripsikan token-token yang harus dikenali

2. Pendeskripsian Token
- Menggunakan reguler grammar. Menspesifikasikan aturan-aturan pembangkit token-token dengan kelemahan reguler grammar menspesifikasikan token berbentuk pembangkit, sedang scanner perlu bentuk pengenalan.

- Menggunakan ekspresi grammar. Menspesifikasikan token-token dengan ekspresi reguler.

- Model matematis yang dapat memodelkan pengenalan adalah finite-state acceptor (FSA) atau finite automata.

3. Implementasi Analisis Leksikal sebagai Finite Automata
Pada pemodelan analisis leksikal sebagai pengenal yang menerapkan finite automata, analisis leksikal tidak cuma hanya melakukan mengatakan YA atau TIDAK. Dengan demikian selain pengenal, maka analisis leksikal juga melakukan aksi-aksi tambahan yang diasosiasikan dengan string yangsedang diolah.

Analisis leksikal dapat dibangun dengan menumpangkan pada konsep pengenal yang berupa finite automata dengan cara menspesifikasikan rutin-rutin (aksi-aksi) tertentu terhadap string yang sedang dikenali.

4. Penanganan Kesalahan di Analisis Leksikal
Hanya sedikit kesalahan yang diidentifikasi di analisis leksikal secara mandiri karena analisis leksikal benar-benar merupakan pandangan sangat lokal terhadap program sumber.

Bila ditemui situasi dimana analisis leksikal tidak mampu melanjutkan proses karena tidak ada pola token yang cocok, maka terdapat beragam alternatif pemulihan. yaitu:

- "Panic mode" dengan menghapus karakter-karakter berikutnya sampai analisis leksikal menemukan token yang terdefinisi bagus

- Menyisipkan karakter yang hilang

- Mengganti karakter yang salah dengan karakter yang benar

- Mentransposisikan 2 karakter yang bersebelahan.

Salah satu cara untuk menemukan kesalahan-kesalahan di program adalah menghitung jumlah transformasi kesalahan minimum yang diperlukan untuk mentransformasikan program yang salah menjadi program yag secara sintaks benar.


Input Buffering

Perancangan analisis leksikal seharusnya dapat membuat buffering masukkan yang membantu mempercepat proses pembacaan dari file serta mempunyai fleksibelitas yang tinggi agar analisis leksikal tidak bergantung platform sehingga mempunyai portabilitas yang tinggi.

Teknik Kompilasi

Merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran.

Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling).

Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat dibuat,
- Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya yang sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk program DBASE, SPSS dan lain sebagainya.
- Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain sebagainya atau Bahasa Mesin (Machine Language) yang digunakan oleh suatu prosessor mikro atau sumber komputer besar maupun komputer super.

Sejarah perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada saat mulai ditemukannya komputer pada awal 1950-an.

Sejak waktu tersebut teknik dan cara pembentukan suatu kompilator telah berkembang dengan sangat pesat dan pembentukkan suatu kompilator dapat dilakukan makin mudah.

Demikian pula program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat.

Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang dilakukan oleh 18 orang.

Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.


Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian sintesis.

- Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari program sumber.
Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap nodal pada tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik) tersebut memberikan argumen yang diperlukan
Secara umum proses dalam tahap analis terdiri dari 3 bagian utama, yaitu
a. Proses analisis leksikal
b. Proses analisis sintaktik
c. Proses analisis semantik

- Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan representasi antara yang dihasilkan pada tahap analisis.
Untuk tahap sintetis terdiri dari 2 bagian utama, yaitu
a. Proses yang menghasilkan kode (code generator)
b. Proses optimasi kode (code optimizer)

Sebelum Bahasa sasaran dapat dihasilkan, dalam melakukan ini tiap bagian utama akan berhubungan dan berkomunikasi dengan suatu berkas tabel yang disebut tabel simbol (symbol table) yaitu suatu tabel yang berisi semua simbol yang digunakan dalam bahasa sumber.

Selain kompilator masih diperlukan beberapa program lainnya sebelum dapat dibentuk bahasa sasaran yang dapat dijalankan. Seperti suatu bahasa sumber dapat dituliskan dalam beberapa modul yang terpisah dan disimpan dalam beberapa file yang terpisah.

Untuk menanggulangi hal ini, maka suatu program khusus yang disebut dengan suatu praprosesor digunakan untuk mengumpulkan modul-modul yang saling lepas ini ke dalam suatu program baru. Praposesor dapat pula melengkapi singkatan-singkatan atau ungkapan-ungkapan maupun kependekan-kependekan yang digunakan dalam bahasa sumber seperti pendefinisian makro dan lain sebagainya.

Seberapa amankah password Anda?

Langkah pertama dalam menjaga privasi online Anda adalah membuat sebuah password yang aman - misalnya bahwa sebuah program komputer atau seseorang yang gigih tidak akan dengan mudah dapat menebaknya dalam waktu yang singkat. Untuk membantu Anda memilih sebuah password yang aman, kami telah membuat sebuah fitur yang mengijinkan Anda secara visual tingkat keamanan password Anda segera setelah Anda membuatnya.


Tips untuk membuat sebuah password yang aman:

    * Sertakan tanda baca dan/atau angka.
    * Gunakan campuran huruf kecil dan besar.
    * Sertakan substitusi yang mirip, seperti angka nol untuk huruf 'O' atau '$' untuk huruf 'S'.
    * Buat sebuah singkatan yang unik.
    * Gunakan pergantian fonetik, seperti 'Luv 2 Laf' untuk 'Love to Laugh'.

Hal-hal untuk dihindari:

    * Jangan pilih password yang tercantum sebagai contoh pada bagaimana cara memilih password yang baik.
    * Jangan gunakan sebuah password yang mengandung informasi personal (nama, tanggal lahir, dsb.)
    * Jangan menggunakan kata atau singkatan yang dapat ditemukan dalam kamus.
    * Jangan gunakan pola keyboard (asdf) atau angka urut (1234).
    * Jangan menggunakan password yang semuanya angka, semuanya huruf besar atau semuanya huruf kecil
    * Jangan gunakan karakter berulang (aa11).

Tips untuk menjaga password Anda:

    * Jangan pernah memberitahukan password Anda ke siapapun (hal ini termasuk kepada orang lain, teman serumah, burung kakaktua, dsb.)
    * Jangan pernah menuliskan password Anda.
    * Jangan kirim password Anda melalui email.
    * Secara periodik uji password Anda saat ini dan ubahlah ke password yang baru.


Minggu, 05 Desember 2010

Animasi

Flash adalah suatu software yang digunakan untuk membuat sebuah animasi. Dengan flash kita dapat membuat tampilan website atau komputer kita menjadi hidup. Tidak mudah untuk mempelajari flash, selain diperlukan imajinasi juga diperlukan pemahaman mengenai SCRIPT. Bisa saja kita membuat sebuah animasi tanpa menggunakan script tapi file yang dihasilkan menjadi besar, hal itu mempengaruhi loading atau pemuatan data di workstation atau client.

Selain flash kita juga bisa membuat sebuah animasi dengan Compuserver file, biasanya file ini berakhiran GIF, Untuk pengguna windows, microsoft menggunakan mesin animasi tersendri yang disebut Active-X. Selain itu ada juga bahasa pemrogaman yang khusus untuk membuat sebuah animasi misalnya JAVA APPLET. bahkan jika anda mahir dalam sebuah pemrogaman seperti C, Pascal, Visual basic dan masih banyak lainnya anda juga dapat membuat sebuah animasi.

Sabtu, 27 November 2010

MANIPULASI LANGSUNG DAN LINGKUNGAN MAYA INTERAKSI MANUSIA DAN KOMPUTER

I.Manipulasi Langsung
Manipulasi langsung adalah ”Penyajian langsung aktifitas kepada pengguna (user) sehingga aktifitas akan dikerjakan oleh komputer ketika pengguna memberikan instruksi langsung yang ada pada layar komputer “

-Penerapan :
a.Kontrol Proses
Kontrol proses di dalam berbagai industri, misalnya pada pembangkitan dan penyaluran listrik dan industri makanan berskala besar biasanya memanfaatkan tampilan visual yang berupa panel-panel kontrol yang dihubungkan ke suatu sistem pengontrol berbasis komputer. Dalam perkembangannya, panel-panel kontrol yang semula menempel pada dinding tembok, sehingga memerlukan ruangan yang cukup besar, kemudian diubah menjadi semacam tampilan yang dapat digambarkan pada layar komputer, sehingga operator akan lebih nyaman .

b.Editor Teks
Konsep WYSIWYG (what you see is what you get) merupakan fenomena pengolah kata modern yang banyak sekali memberikan kemudahan pada pengguna. Pengguna akan mendapatkan hasil cetakan seperti apa yang muncul pada layar tampilan. Sehingga, ketika pengguna melakukan manipulasi atas suatu teks pada layar, maka sebenarnya ia juga melakukan manipulasi atas hasil cetakan yang ia harapkan.

c.Simulator
Simulator merupakan sistem miniatur yan mencoba menirukan kerja suatu sistem yang berskala sangat besar atau sangat kecil jika dilihat dari kacamata orang awam. Contohnya misalnya pada simulator penerbangan. Di dalam simulator penerbangan, seorang calon pilot seolah-olah sedang berada di dalam sebuah pesawat yang menjadi tanggung jawab secara penuh. Kesalahan yang sangat kecilpun akan sangat dirasakan oleh calon pilot yang ada didalam sebuah simulator itu. Meski dengan tampilan yang tidak selengkap papan kontrol papan pada pesawat, seseorang dapat mempelajari hal-hal yang sangat mendasar agar ia dapat menerbangkan suatu pesawat terbang.

d.Kontrol Lalu lintas penerbangan
Sistem radar berpegang pada adanya kemampuan untuk mengenal pola bentuk-bentuk tertentu seperti yang dapat dikerjakan oleh manusia. Dalam hal ini, dunia tiga dimensi tempat sebuah pesawat sedang menjelajahi dunia ini akan diterjemahkan ke dalam layar dua dimensi yang ada di hadapan seorang operator. Lewat tampilan dua dimensi, yang merefleksikan dunia tiga dimensi itulah seorang operator dapat mengontrol lalu lintas penerbangan.


e.Perancangan Bentuk/model (computer aided design)
Saat sekarang kita dapat melihat berbagai program aplikasi untuk perancangan suatu sistem. Contoh yang paling populer barangkali adalah sebuah program yang bernama dengan Auto CAD. Dengan program ini kita dapat merancang suatu model pesawat terbang, baik dengan tampilan yang disebut dengan wireframe model maupun berupa tampilan seperti sebuah pesawat yang sesungguhnya dengan memanfaatkan fasilitas rendering yang dimilikinya. Program ini juga sering dimanfaatkan untuk melakukan pemetaan berbasis komputer (computer-based mapping).

-Keuntungan dari manipulasi langsung :
•Kompatibilitas kendali dan tampilan.
•Lebih sedikit sintaks, karena itu tingkat kesalahan berkurang.
•Lebih banyak pencegahan kesalahan.
•Lebih cepat dipelajari dan lebih mudah diingat.
•Mendorong penjelajahan.

-Kekurangan dari manipulasi langsung :
•Memakan lebih banyak sumber daya sistem.
•Beberapa aksi menyusahkan.
•Teknik makro sering lemah.
•Sulit dicatat dan ditelusuri.
•Sulit digunakan oleh pemakai yang pengelihatannya terganggu.

-Contoh-contoh dari manipulasi langsung :
•Command-line vs display editor vs word processors
•Spreadsheet
•Spatial data management
•Video games
•Computer-aided design (CAD)
•Office automation

Command-line vs Display Editor vs Word Processors
•Pada 1980-an, mengedit teks dilakukan dengan bahasa perintah berorientasi baris.
•Dengan display editor kinerja meningkat dan waktu belajar berkurang.
•Awal 1990-an, word processor yang bersifat WYSIWYG diperkenalkan.
•Beberapa kelebihan WYSIWYG word processor:
*Menampilkan sehalaman penuh teks
*Menampilkan dokumen dalam bentuk sebagaimana akan terlihat pada bentuk cetakan.
*Menampilkan aksi kursor yang terlihat.
*Mengendalikan kursor dengan cara yang jelas secara fisik dan alami intuitif.
*Menggunakan ikon berlabel.
*Menampilkan hasil aksi segera.
*Memberikan respons dan tampilan yang cepat.
*Memungkinkan aksi dibatalkan.

Teknologi yang Diturunkan dari Pengolah Kata
*Integrasi grafik, spreadsheet, animasi, foto, dll. dalam badan dokumen (Windows: OLE).
*Desktop publishing software, mis.: Adobe PageMaker, Corel Ventura.
*Slide-presentation software, mis.: Microsoft PowerPoint.
*Hypermedia environments, mis.: WWW, HyperCard.
*Fasilitas makro yang diperbaiki, misalnya pada Microsoft Office.
*Spelling checkers dan thesaurus, misalnya pada Microsoft Office.
*Grammar checkers, misalnya pada Microsoft Office.
*Document assemblers, misalnya Microsoft Office wizards.

Spreadsheet
*Lembar kerja yang menampilkan data yang dapat dimanipulasi dalam bentuk kolom dan baris.
*Mendukung formula, makro, grafik.
*Contoh: VISICALC, Microsoft Excel, Lotus 1-2-3, Lotus Improv.

Spatial Data Management
*Representasi spasial dalam bentuk peta.
*Digunakan dalam sistem informasi geografis (GIS).
*Contoh: ArcView GIS dari ESRI, Inc.

-Penjelasan tentang Manipulasi Langsung
Masalah-masalah dengan manipulasi langsung:
•Representasi visual atau visual dapat terlalu menyebar.
•Pemakai harus mempelajari arti komponen-komponen representasi visual.
•Representasi visual dapat menyesatkan.
•Mengetik perintah di keyboard bisa lebih cepat.

Sifat-sifat sistem manipulasi langsung yang menguntungkan:
•Pemula dapat belajar dengan cepat.
•Ahli dapat bekerja dengan cepat.
•Pemakai intermittent dapat mempertahankan konsep operasional.
•Pesan kesalahan jarang dibutuhkan.
•Pemakai langsung melihat jika aksi malah memperjauh tujuan mereka.
•Lebih sedikit ketegangan.
•Pemakai lebih percaya diri dan menguasai sistem.

Pemikiran Visual dan Ikon
*Konsep bahasa visual dan pemikiran visual diajukan oleh Rudolf Arnheim (1972).
*Arah baru pemikiran visual: WIMP (Windows, Icons, Mouse, Pull-down Menu).
*Ikon adalah gambar atau simbol yang mewakili suatu konsep.
*Pedoman perancangan ikon:
*Representasikan objek atau aksi dengan cara yang dikenal.
*Batasi jumlah ikon yang tampil.
*Buat agar ikon jelas terlihat dari latar belakangnya.
*Pertimbangkan ikon tiga dimensi: menarik tapi bisa mengalihkan perhatian.
*Pastikan ikon yang terpilih jelas ketika dikelilingi yang tidak terpilih.
*Pastikan ikon dapat dibedakan dari yang lain.
*Pastikan keselarasan setiap ikon sebagai anggota kelompok ikon.
*Rancang animasi pergerakan ikon.
*Tambahkan informasi rinci.
*Pikirkan penggunaan kombinasi ikon untuk menciptakan objek atau aksi baru.

Manipulasi Langsung Remote
*Piranti dapat dioperasikan dari jarak jauh jika antarmuka pemakai yang memadai dapat dibangun.
*Contoh: telemedicine, yaitu perawatan medis melalui saluran komunikasi.
*Arsitektur lingkungan manipulasi angsung remote mempunyai beberapa faktor komplikasi:
-Penundaan waktu.
-Penundaan transmisi.
-Penundaan operasi.
-Umpan balik yang tidak lengkap.
-Umpan balik dari berbagai sumber.
-Interferensi yang tidak diantisipasi.


II. Lingkungan Maya
•Virtual reality (kenyataan maya) adalah lingkungan buatan yang diciptakan dengan hardware dan software dan dipresentasikan kepada pemakai dengan cara sedemikian sehingga lingkungan tersebut tampil dan terasa seperti lingkungan asli.
•Augmented reality: dunia nyata dengan lapisan tambahan informasi.
•Situational awareness: informasi tentang dunia nyata di sekitar pemakai dengan mendeteksi pergerakan dan lokasi.
•Lingkungan maya yang berhasil tergantung dari integrasi berbagai teknologi:
*Visual display (biasanya ditempatkan di kepala sebagai head mounted display).
*Head-position sensing.
*Hand-position sensing.
*Force feedback.
*Sound input and output.
*Sensasi lainnya (getaran, suhu, bau).
*Cooperative and competitive VR.

Minggu, 31 Oktober 2010

SEJARAH, PERKEMBANGAN DAN KRITIK TENTANG TEKNOLOGI MAJU

SEBELUM ABAD KEDUAPULUH

Banyak yang menyatakan bahwa penemu pertama dari alat hitung adalah seorang filsuf Perancis bernama Blaise Pascal (1623 – 1662). Usahanya mengembangkan alat hitung adalah untuk membantu ayahnya untuk melakukan perhitungan angka-angka. Pada usia 19 tahun dia telah merancang mesinnya pada tahun 1945 dan mendapatkan paten.

Akan tetapi penemu pertama sebenarnya adalah Wilhelm Schickard dari Tubingen (1592 - 1636). Dia pernah mengirimkan rancangan mesin hitung kepada Keppler, astronom yang terkenal tahun 1623.

Sekitar 30 tahun setelah penemuan Pascal, Gottfried Leibnitz (1646 – 1716), seorang ahli matematika merancang alat yang dinamakan roda Leibnitz yang merupakan bagian penting dari alat hitung mekanis sekitar tahun 1694. Alat tersebut dapat melakukan operasi perkalian, pembagian, penambahan dan pengurangan.

Selama lebih dari satu abad perbaikan terhadap alat hitung terus menerus dilakukan, tapi baru pada pertengahan abad 19 muncul mesin hitung yang cukup berhasil. Beberapa nama yang terkenal seperti Charles Babbage (1792 - 1971) dan Augusta Ada (1816 – 1852)

KENDALI KOMPUTASI
Kendali terhadap proses komputasi merupakan masalah yang muncul pada waktu Babbage merancang mesin analitisnya yaitu :
1. Bagaimana kita menyajikan angka dan melakukan operasi matematika terhadap angka tersebut
2. Bagaimana melakukan serentetan operasi aritmetika tanpa campur tangan manusia yang hanya akan memperlambat kecepatan pengolahan.

Pada tahun 1725, Basile Bouchon menerapkan cara pengendalian dengan pita berlubang (perforated tape) pada proses pembuatan hiasan kain sutra. Kontribusi yang penting dalam bidang pengendalian proses diberikan oleh Joseph Marie Jaquard (1752 – 1834). Beliau merancang sistem kendali dengan menggunakan kartu-kartu berlubang (punched cards). Kartu tersebut berhasil mengendalikan bekerjanya alat tenun sehingga mengikuti pola kerja seperti yang diinginkan.

Tahun 1836 Babbage menerapkan gagasan Jaquard kedalam mesinnya sehingga proses penghitungan tidak lagi dilakukan dengan campur tangan manusia yang akhirnya berkembang menjadi prinsip pemrograman mesin masa kini.

Pada akhir abad ke-19, kantor sensus di Amerika Serikat mengembangkan sejenis mesin untuk menghitung hasil sensus karena jika dilakukan secara manual butuh waktu kira-kira 10 tahun untuk mengetahui hasilnya.

Mesin hitung sederhana digunakan tahun 1870 rancangan John Shaw Billings, kepala kantor sensus 1880 dan Herman Hollerith (1860 – 1929). Kurang jelas siapa perancang mesin sensus ini. Mungkin Billings yang mengusulkan menggunakan kartu berlubang dan Hollerith pembuat mesinnya.

Setelah Hollerith meninggalkan kantor sensus, ia membentuk perusahaan sendiri dengan nama Tabulating Machine Company. Thomas J. Watson Sr. menjadi pimpinan perusahaan tersebut pada tahun 1914. Sepuluh tahun kemudian beliau mengubah nama perusahaan menjadi International Business Machine.

Pada tahun 1911, James Powers juga membentuk perusahaan sendiri dengan nama Powers Tabulating Machine. Perusahaan ini akhirnya bergabung dengan Remington Rand tahun 1927. Persaingan antara Powers dan Hollerith berlangsung cukup lama sampai kedua perusahaan itu membuat komputer elektronik.

KELAHIRAN KOMPUTER MODERN
Seorang Spanyol, Leonardo Tores Y Quevedo (1852 – 1936) pada tahun 1914 menulis makalah tentang alat yang dapat diprogram. Setelah memasuki tahun 1930, catatan tentang perkembangan rancangan komputer menjadi kabur. Banyak pihak menyatakan menemukan rancangan baru tetapi mereka tidak dapat menunjukkan bukti yang nyata.

Sebelum komputer digital pertama lahir, ada beberapa jenis komputer analog yang pernah beroperasi seperti penganalisis differensial (Differential Analyzer) yang dibangun oleh Massachusetts Institute od Technology buatan Vannevar Bush tahun 1931. Tugasnya adalah memecahkan persamaan differensial pada beberapa cabang ilmu matematika. Tahun 1935, Moore School of Electrical dari University of Pennsylvania membuat pula mesin serupa.

KOMPUTER ELEKTRO MEKANIS
Mesin elektromekanis yang terkenal adalah hasil karya Konrad Zuse dari Jerman tahun 1934. Pada tahun 1938, ia membuat mesin yang dinamakan Z1 tetapi kurang dapat diandalkan. Akhirnya dengan bantuan Helmut-Schreyer dia berhasil membuat mesin elketromekanis Z3 yaitu suatu mesin floating point binary machine yang mampu menyimpan 64 kata (word) sekitar tahun 1941.

Zuse juga menyumbangkan perangkat lunak berupa bahasa pemrograman yang dinamakan Plankalkul tetapi bahasa ini tidak berkembang karena peperangan pada masa itu dan kurang dikenal oleh masyarakat ilmiah internasional.

Di Amerika Serikat, komputer digital dikembangkan oleh Laboratorium Telepon Bell di New Jersey dan IBM. Bell di bawah pimpinan George Stibitz memulai kegiatannya tahun 1937 dan model pertama dinamakan Komputer Angka Kompleks (Complex Number Computer) tahun 1940. Komputer ini disebut juga sebagai Model-I, disusul dengan Model-II dan Model-III, Komputer Balistik (Ballistic Computer) dan akhirnya Model-V tahun 1946.

Howard Aiken (1900 – 1957), CD. Lake, FE. Hamilton dan BM Durfee membuat Harvard Mark I yang disebut sebagai Automatic Sequence Controlled Calculator tahun 1944. IBM kemudian mengembangkan beberapa mesin lain, yang menonjol adalah SSEC (Selective Sequence Electronic Calculator) tahun 1948 di bawah pimpinan Wallace Eckert.

KONSEP PROGRAM TERSIMPAN
Langkah besar selanjutnya adalah penemuan konsep program tersimpan di memori. Sebelumnya hanya data yang akan diolah dapat disimpan di memori. Instruksi atau program harus dimasukkan kembali setiap kali data akan diolah. Mesin semacam ini disebut Mesin telanjang (Bare Machine).

John Von Neuman pada tanggal 30 Juni 1945 menulis makalah mengenai konsep program tersimpan dan dianggap sebagai gagasan yang mendasar tentang perangkat lunak. Dalam makalah tersebut terdapat satu program untuk komputer digital yang pertama kali dibuat manusia yaitu sebuah program untuk mengurutkan data (sorting program).
More School akhirnya berhasil menyelesaikan EDVAC (Electronic Discrete Variable Automatic Computer) tahun 1951 dan diserahkan kepada Laboratorium Penelitian Ballistic (Ballictic Reseach Laboratory).

Mauchly dan Eckert membentuk perusahaan Electronic Control Company tahun 1946 dan membuat UNIVAC (Universal Automatic Computer) dan BINAC untuk perusahaan pesawat terbang Northrop tahun 1949.

PERKEMBANGAN DI INGGRIS
Tahun 1946, Von Neuman dan Goldstine pindah ke Institute of Advanced Studies dan merancang komputer baru bernama IAS. Di Inggris dikembangkan komputer Mark I oleh team ahli Manchester University di bawah pimpinan FC. William dan T. Kilburn. Komputer tersebut merupakan komputer perintis yang menerapkan gagasan program tersimpan.

Perkembangan lain adalah pembuatan komputer EDSAC (Electronic Delay Storage Automatic Calculator) di Universitas Cambridge oleh Maurice Wilkes. Perkembangan lain yang penting adalah pembuatan komputer COLLOSUS oleh Prof. Newman dan Flowers tetapi kurang diketahui karena merupakan proyek rahasia Inggris pada masa perang dunia kedua.

Komputer tiba dilingkungan kita dengan amat cepat, seolah-olah suatu ledakan yang dahsyat. IBM sebuah perusahaan raksasa pembuat komputer seolah tidak dapat dipisahkan dari dunia komputer.

Organisasi yang rapi, staf penjualan yang penuh dedikasi dan terdidik dengan baik, pelayanan purna jual yang baik merupakan faktor yang mendukung perusahaan tersebut.

Perusahaan nomor dua tahun 1988 adalah DIGITAL Equipment Corporation (DEC) yaitu raja komputer mini seri PDP dan VAX. Selain itu tercatat pula WANG, XEROX, INTEL, HEWLET PACKARD, DATA GENERAL dan sebagainya.

MUNCULNYA CHIP ELEKTRONIK
Komputer generasi awal seperti ENIAC dibuat dari ribuan tabung elektronik dan menghabiskan tenaga ratusan kilowatt. Tahun 1945, Laboratorium Bell dengan team ahlinya William Shockley, John Bardeen dan Walter H. Brattain menemukan point contact transistor.

Keuntungan dari semi konduktor (bahan transistor) adalah konsumsi energi yang cukup rendah, hanya sedikit menghasilkan panas dan ukurannya kecil. Tetapi kelemahannya adalah hanya beroperasi pada frekuensi rendah, kurang stabil dan masih sulit dibuat.

Transistor pertama dibuat dari germanium yang kemudian berkembang menjadi junction transistor. Setelah silikon ditemukan, perkembangan transistor berlangsung amat cepat. Keuntungan transistor adalah bentuknya yang kecil sehingga memenuhi syarat untuk ditempatkan di peluru kendali dan senjata sejenisnya sehingga motivasi pertama dari perkembangan transistor adalah untuk kepentingan pertahanan bukan komputer.

Langkah selanjutnya adalah diletakkannya lebih dari satu komponen aktif pada satu struktur yang dikenal dengan rangkaian terintegrasi. Kepadatan rangkaian meningkat secara drastis.

Keuntungan dari semi konduktor adalah :
1. Murah dan cenderung semakin murah dari waktu ke waktu
2. Efisiensi tinggi dan konsumsi energi rendah
3. Tidak meemrlukan perawatan
4. Hemat ruang dan hemat daya untuk pendinginan

KRITIK TENTANG TEKNOLOGI MAJU
Teknologi maju yang dipergunakan secara luas dalam masyarakat cenderung untuk menimbulkan beda pendapat. Pendapat berikut mungkin dapat menggambarkan pendapat yang berlawanan tentang komputer :

“Komputer, hanyalah alat semata. Penemu dan perancangnya telah menentukan apa yang dapat kita lakukan dengan komputer. Memang komputer jauh lebih canggih dan lebih berpotensi dari alat lain, tapi jangan lupa bahwa ia hanyalah alat belaka. Komputer bukanlah alat belaka. Komputer dapat melaksanakan kegiatan yang sebelumnya hanya dapat dilaksanakan oleh manusia. Lagi pula, karena kemampuannya yang besar dan kecepatannya yang tinggi, komputer mampu untuk menghasilkan sesuatu yang diluar dugaan, terutama bila diaplikasikan pada bidang baru. Mereka sudah mulai membahayakan kebebasan manusia dan lapangan kerja. Walau alat-alat yang diciptakan terlebih dahulu juga menimbulkan masalah sejenis, akan tetapi komputer akan menimbulkan dampak yang jauh lebih besar di masyarakat.”

Komputer hanyalah suatu hasil dari perkembangan teknologi yang terus akan berlangsung bersama dengan peradaban umat manusia. Banyak pakar dari beberapa dasawarsa mengemukakan berbagai pendapat tentang kemajuan teknologi. Sebagian dari mereka memandang bahwa ketakutan utama dari digunakannya teknologi dari masyarakat adalah bahwa teknologi akan menurunkan harkat manusia seperti dalam perakitan model ban berjalan, manusia hanyalah satu komponen dalam sistem, yag derap pacuannya dikendalikan oleh mesin.

Pekerja dalam sistem itu tidak dapat berbuat lain kecuali mengerjakan apa yang diinstruksikan. Apakah dalam hal ini teknologi itu netral, dalam arti bahwa baik tidaknya tergantung dari manusia yang memanfaatkannya.

Berikut ini pendapat beberapa ahli dalam berbagai disiplin ilmu pengetahuan tentang dampak dari perkembangan teknologi bagi masyarakat :

1. LEWIS MUMFORD
Beliau adalah pengamat masalah sosial dan pakar dalam masalah lingkungan hidup. Dia banyak menulis buku sejak tahun 1922 yang mengulas banyak hal tentang masalah sosial dan teknologi.

Isu yang dibahas dalam karya tulisnya mencakup kekuasaan, sentralisasi, mekanisasi, dan kendali. Mumford tidak terlalu terganggu dengan Isu digantikannya tenaga manusia, baik dalam bentuk keteranpilan maupun keahlian dalam suatu proses produksi. Mungkin yang patut disayangkan adalah digantikannya kemampuan berpikir manusia oleh komputer karena adanya proses pendelegasian wewenang dalam pengambilan keputusan.

Inisiatif manusia akan surut perannya dalam kehidupan masyarakat. Sistem atau organisasi menjadi serba tahu dan serba kuasa. Manusia sebagai anggota masyarakat, baik pakar ilmu pengetahuan, insinyur ataupun pemakai harus tunduk pada aturan main yang ada, walaupun harus mengorbankan cara hidup yang secara tradisional dianggap layak.

Komputer dan peranya dalam otomasi hanyalah satu langkah dalam perjalanan umat manusia dengan pilihan yang semakin terbatas. Bukan kehendak siapapun bahwa teknologi seolah-olah memperbudak manusia oleh karena keputusan dalam menerapkan teknologi, dilakukan secara sadar.

Dengan kemauan dan kemampuan kita, dapat saja diciptakan masyarakat dimana spontanivitas, kreativitas dan kebebasan memilih dapat dihargai. Akan tetapi bila setiap keputusan atau setidaknya keputusan yang penting diserahkan kepada komputer, dampaknya akan cukup merugikan bagi masyarakat.

Dalam hal ini ketergantungan masyarakat pada komputer menjadi besar, padahal komputer tersebut diprogram sesuai dengan keinginan para pemimpin dan pengelola.

2. SIEGFRIED GIDEON
Karya yang terkenal adalah Mechanization Takes Command, terbit tahun 1948. Beliau amat prihatin dengan timbulnya kenyataan bahwa mesin mulai menggantikan manusia dalam proses produksi.

Dia menilai bahwa manusia masih memiliki potensi yang besar untuk ikut aktif dalam proses karena kemampuan manusia untuk beradaptasi dengan lingkungan. Contoh yag diketengahkan adalah dilema pabrik roti. Mekanisasi pembuatan roti ternyata menghilangkan sentuhan manusiawi yang justru amat menentukan kualitas roti.

Dalam pembuatan tepung gandum cenderung menghasilkan tepung yang halus dan putih. Bila perlu selama proses berlangsung ditambahkan zat pemutih, bahan pengawet makanan, vitamin atau zat yang bermanfaat lainnya yang bersifat kimiawi.

Dalam pembuatan tepung tradisional tidak dilakukan penambahan apapun. Dengan ketelitian, keahlian dan pengalaman manusia, kehilangan zat-zat tersebut dapat dihindari dan tepung yang dihasilkan tetap bermutu tinggi walaupun warnanya tidak selalu putih.

Mekanisasi produksi roti tidak hanya mengurangi sentuhan manusiawi tapi juga lapangan kerja. Kualitas roti yang dihasilkan juga tidak selezat roti yang diolah secara tradisional.

3. HERBERT MERCUSE
Beliau adalah seorang pakar filsafat (philosopher) dan teori politik. Ia banyak mengulas tentang Sigmund Freud dan Karl Marx. Mercuse banyak menyoroti hubungan antara kekuatan politik dan kualitas kehidupan manusia. Dia menganalisis pertumbuhan teknologi khususnya dalam sistem kapitalis dan dampaknya terhadap kehidupan umat manusia.

Mercuse percaya bahwa ada hubungan yang kokoh antara kekuatan politik dan teknologi yang didukung secara kuat oleh pemerintah. Kekuatan politik ini menjangkau seluruh segi kehidupan masyarakat dan membuka jalan untuk memasyarakatkan teknologi dengan alasan produktivitas.

Mercuse percaya bahwa otomatisasi akan membawa masyarakat kepada alam sosialis, karena kegagalan dari mesin-mesin produksi para kapitalis. Bila para pekerja telah menguasai jalannya produksi, mereka akan mengubah tempat kerja mereka menjadi lebih manusiawi dan membebaskan diri dari pekerjaan yang membosankan dan berbahaya.

Tujuan manusia bukan lagi untuk mengeruk keuntungan yang besar tetapi untuk meningkatkan harkat dirinya sendiri. Mercuse percaya bahwa kebebasan yangsebenarnya akan muncul karena adanya otomasi.


4. NORBERT WIENER
Dikenal sebagai bapak dari cybernetics, ahli matematika ini menaruh banyak perhatian tentang dampak sosial dari otomasi. Cybernetics dan otomasi sangat erat hubungannya.

Cybernetics adalah kendali dan komunikasi pada binatang dan mesin. Titik sentral dari cybernetics adalah umpan balik (feedback). Dalam sistem ini tindakan dikendalikan dengan cara melakukan pemantauan terus menerus antara keadaan saat ini (current state) dan keadaan yang diinginkan (desired state).

Prinsip ini berlaku juga pada otomasi industri. Wiener beranggapan bahwa peralatan berfungsi sama dengan buruh. Manusia harus bersaing dengan mesin dan menerima nasib yang sama dalam ukuran ekonomi. Artinya biaya yang dikeluarkan untuk buruh tidak akan lebih besar dari biaya operasi mesin, untuk jumlah produksi yang sama. Beliau melihat kemungkinan membengkaknya pengangguran pada saat penggunaan mesin meluas.

Pada bukunya yang kedua, Wiener merasa kekhawatirannya tentang perubahan teknologi telah mulai dimengerti oleh dunia usaha. Telah tercapai kesepakatan umum bahwa pada mulanya, teknologi baru akan mengurangi lapangan kerja akan tetapi kemudian akan menciptakan lapangan kerja baru.

Di lain pihak, Wiener khawatir dengan keperkasaan komputer yaitu semakin jauhnya beda kecepatan antara manusia dengan komputer. Perbedaan ini dapat menimbulkan masalah. Manusia harus mampu untuk mengendalikan komputer, bukan sebaliknya. Komputer harus dapat didayagunakan untuk membantu masyarakat.

Kekhawatiran umat manusia pada teknologi sudah berjalan sejak abad kedelapan belas. Pada saat lahirnya teknologi baru, selalu timbul perasaan tersaingi, terdesak dan perasaan ketidakpastian dalam masyarakat. Keadaan ini secara perlahan akan beruba, baik karena terjadi pergeseran struktur masyarakat sebagai akibat dari teknologi baru, ataupun karena masyarakat mulai dapat memanfaatkan teknologi tersebut.

Teknologi pada umumnya akan menjadi pelayan masyarakat. Hal yang sama tentunya berlaku pula bagi komputer, suatu teknologi baru yang saat ini sedang berkembang.

Pengertian komputer

Pengenalan Komputer

Istilah komputer (computer) diambil dari bahasa latin COMPUTARE yang berarti menghitung (to compute atau to reckon).


Komputer adalah peralatan yang bekerja di bawah kontrol program yang tersimpan, yang secara otomatis menerima, menyimpan dan memproses data untuk menghasilkan informasi yang merupakan hasil dari pemrosesan itu.


SISTEM KOMPUTER

Sistem adalah jaringan dari elemen-elemen yang berhubungan membentuk satu kesatuan untuk melaksanakan suatu tujuan dari sistem tersebut.

Tujuan dari sistem komputer adalah mengolah data untuk menghasilkan informasi.


Elemen-elemen dari sistem komputer :

1. Hardware (perangkat keras)

Adalah peralatan di sistem komputer yang secara fisik terlihat dan dapat dijamah misalnya monitor, keyboard, mouse

2. Software (perangkat lunak)

Adalah program yang berisi perintah-perintah untuk melakukan pengolahan data misalnya Microsoft Windows, Microsoft Office, Internet Explorer

3. Brainware

Adalah manusia yang terlibat di dalam mengoperasikan serta mengatur sistem komputer


Alat pengolah data dapat digolongkan ke dalam 4 golongan besar, yaitu :

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


ALAT HITUNG TRADISIONAL dan KALKULATOR MEKANIK

Abacus, yang 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 biji-bijian geser yang diatur pada sebuah rak. Para pedagang di masa itu menggunakan abacus untuk menghitung transaksi perdagangan. Seiring dengan munculnya pensil dan kertas, terutama di Eropa, abacus kehilangan popularitasnya.


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 terbatas untuk melakukan penjumlahan.


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. Barulah pada tahun 1820, kalkulator mekanik mulai populer. Charles Xavier Thomas de Colmar menemukan mesin yang dapat melakukan empat fungsi aritmatik dasar yaitu penjumlahan, pengurangan, perkalian, dan pembagian.


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 berulang kali tanpa kesalahan; sedang matematika membutuhkan repetisi sederhana dari suatu langkah-langkah tertentu.


Usaha Babbage yang pertama untuk menjawab masalah ini muncul pada tahun 1822 ketika ia mengusulkan suatu mesin untuk melakukan perhitungan persamaan differensial. Mesin tersebut dinamakan Mesin Diferensial. 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 tiba-tiba 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 mengomunikasikan spesifikasi Anlytical Engine kepada publik.


Selain itu, pemahaman Augusta yang baik tentang mesin ini memungkinkannya membuat instruksi untuk dimasukkan ke dalam 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 memperkirakan bahwa dibutuhkan waktu sepuluh tahun untuk menyelesaikan perhitungan sensus.


Hollerith menggunakan kartu perforasi untuk memasukkan data sensus yang kemudian diolah oleh alat tersebut secara mekanik. Sebuah kartu dapat menyimpan hingga 80 variabel. Dengan menggunakan alat tersebut, hasil sensus dapat diselesaikan dalam waktu enam minggu.


Selain memiliki keuntungan dalam bidang kecepatan, kartu tersebut berfungsi sebagai media penyimpan data. Tingkat kesalahan perhitungan juga dapat ditekan secara drastis. Ia mendirikan Tabulating Machine Company pada tahun 1896 yang kemudian menjadi International Business Machine (1924) setelah mengalami beberapa kali merger. Perusahaan lain seperti Remington Rand and Burroghs juga memproduksi alat pembaca kartu perforasi untuk usaha bisnis. Kartu perforasi digunakan oleh kalangan bisnis dan pemerintahan untuk pemrosesan data hingga tahun 1960.


Pada masa berikutnya, beberapa insinyur membuat penemuan baru lainnya. Vannevar Bush (1890-1974) membuat sebuah kalkulator untuk menyelesaikan persamaan diferensial di tahun 1931. Mesin tersebut dapat menyelesaikan persamaan diferensial 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 matematika 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.


SEJARAH KOMPUTER


KOMPUTER GENERASI PERTAMA

Pada tahun 1941, Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer, Z3, untuk mendesain pesawat terbang dan peluru kendali. Pihak sekutu juga membuat kemajuan lain dalam pengembangan kekuatan komputer.


Tahun 1943, pihak Inggris menyelesaikan komputer pemecah kode rahasia yang dinamakan Colossus untuk memecahkan kode rahasia yang digunakan Jerman. Dampak pembuatan Colossus tidak terlalu mempengaruhi perkembangan industri komputer dikarenakan dua alasan. Pertama, colossus bukan merupakan komputer serbaguna (general-purpose computer), ia hanya didesain untuk memecahkan kode rahasia. Kedua, keberadaan mesin ini dijaga kerahasiaannya hingga satu dekade setelah perang berakhir.


Howard H. Aiken (1900-1973), seorang insinyur Harvard yang bekerja dengan IBM, berhasil memproduksi kalkulator elektronik untuk US Navy. Kalkulator tersebut berukuran panjang setengah lapangan bola kaki dan memiliki rentang kabel sepanjang 500 mil. The Harvd-IBM Automatic Sequence Controlled Calculator, atau Mark I, merupakan komputer relai elektronik. Ia menggunakan sinyal elektromagnetik untuk menggerakkan komponen mekanik. Mesin tersebut beropreasi dengan lambat (ia membutuhkan 3-5 detik untuk setiap perhitungan) dan tidak fleksibel (urutan kalkulasi tidak dapat diubah). Kalkulator tersebut dapat melakukan perhitungan aritmatik dasar dan persamaan yang lebih kompleks.


Perkembangan komputer lain pada masa kini adalah Electronic Numerical Integrator and Computer (ENIAC), yang dibuat oleh kerjasama antara pemerintah Amerika Serikat dan University of Pennsylvania. Terdiri dari 18.000 tabung vakum, 70.000 resistor, dan 5 juta titik solder, komputer tersebut merupakan mesin yang sangat besar yang mengkonsumsi daya sebesar 160kW. Komputer ini dirancang oleh John Presper Eckert (1919-1995) dn John W. Mauchly (1907-1980), ENIAC merupakan komputer serbaguna (general purpose computer) yang bekerja 1000 kali lebih cepat dibandingkan Mark I.


Pada pertengahan 1940-an, John von Neumann (1903-1957) bergabung dengan tim University of Pennsylvania dalam usha membangun konsep desin komputer yang hingga 40 tahun mendatang masih dipakai dalam teknik komputer. Von Neumann mendesain Electronic Discrete Variable Automatic Computer(EDVAC) pada tahun 1945 dengan sebuh memori untuk menampung baik program ataupun data. Teknik ini memungkinkan komputer untuk berhenti pada suatu saat dan kemudian melanjutkan pekerjaannya kembali. Kunci utama arsitektur von Neumann adalah unit pemrosesan sentral (CPU), yang memungkinkan seluruh fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal. Tahun 1951, UNIVAC I (Universal Automatic Computer I) yang dibuat oleh Remington Rand, menjadi komputer komersial pertama yang memanfaatkan model arsitektur von Neumann tersebut.


Baik Badan Sensus Amerika Serikat dan General Electric memiliki UNIVAC. Salah satu hasil mengesankan yang dicapai oleh UNIVAC dalah keberhasilannya dalam memprediksi kemenangan Dwilight D. Eisenhower dalam pemilihan presiden tahun 1952. Komputer Generasi pertama di karakteristik dengan fakta bahwa instruksi operasi dibuat secara spesifik untuk suatu tugas tertentu. Setiap komputer memiliki program kode-biner yang berbeda yang disebut "bahasa mesin" (machine language). Hal ini menyebabkan komputer sulit untuk diprogram dan membatasi kecepatannya. Ciri lain komputer generasi pertama adalah penggunaan tube vakum (yang membuat komputer pada masa tersebut berukuran sangat besar) dan silinder magnetik untuk penyimpanan data.


KOMPUTER GENERASI KEDUA

Pada tahun 1948, penemuan transistor sangat mempengaruhi perkembangan komputer. Transistor menggantikan tube 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 sejumlah besar data, sebuah kemampuan yang sangat dibutuhkan oleh peneliti atom. 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-singkatan 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.


Salah satu contoh penting komputer pada masa ini adalah IBM 1401 yang diterima secara 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 dapat mencetak 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.


KOMPUTER GENERASI KETIGA

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 tereintegrasi (IC : integrated circuit) di tahun 1958. IC mengombinasikan 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 mengoordinasi memori komputer.


KOMPUTER GENERASI KEEMPAT

Setelah IC, tujuan pengembangan menjadi lebih jelas: mengecilkan ukuran sirkuit dan komponen-komponen 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 berukuran setengah keping uang logam mendorong turunnya harga dan ukuran komputer.


Hal tersebut juga meningkatkan daya kerja, efisiensi dan kehandalan 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.


Pada pertengahan tahun 1970-an, perakit komputer menawarkan produk komputer mereka ke masyarakat umum. Komputer-komputer 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. 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.


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.


KOMPUTER GENERASI KELIMA

Mendefinisikan komputer generasi kelima menjadi cukup sulit karena tahap ini masih sangat muda. Contoh imajinatif komputer generasi kelima adalah komputer fiksi HAL9000 dari novel karya Arthur C. Clarke berjudul 2001:Space Odyssey. HAL menampilkan seluruh fungsi yang diinginkan dari sebuah komputer generasi kelima. Dengan kecerdasan buatan (artificial intelligence), HAL dapat cukup memiliki nalar untuk melakukan percapakan dengan manusia, menggunakan masukan visual, dan belajar dari pengalamannya sendiri.


Walaupun mungkin realisasi HAL9000 masih jauh dari kenyataan, banyak fungsi-fungsi yang dimilikinya sudah terwujud. Beberapa komputer dapat menerima instruksi secara lisan dan mampu meniru nalar manusia. Kemampuan untuk menterjemahkan bahasa asing juga menjadi mungkin.

Banyak kemajuan di bidang desain komputer dan teknologi semakin 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. Jepang adalah negara yang terkenal dalam sosialisasi jargon dan proyek komputer generasi kelima. Lembaga ICOT (Institute for new Computer Technology) juga dibentuk untuk merealisasikannya. Banyak kabar yang menyatakan bahwa proyek ini telah gagal, namun beberapa informasi lain bahwa keberhasilan proyek komputer generasi kelima ini akan membawa perubahan baru paradigma komputerisasi di dunia.



PENGGOLONGAN KOMPUTER

Berdasarkan data yang diolah :

1. Analog Computer

Komputer analog digunakan untuk data yang sifatnya kontinyu dan bukan data yang berbentuk angka, tetapi dalam bentuk fisik seperti arus listrik, temperatur, kecepatan, tekanan dan sebagainya.

Output dari komputer analog umumnya adalah untuk pengaturan atau pengontrolan suatu mesin. Komputer analog banyak digunakan pada pabrik kimia, pembangkit listrik, rumah sakit dan sebagainya.

Kelebihannya adalah kemampuannya untuk menerima data dalam besaran fisik dan langsung mengukur data tersebut tanpa harus dikonversikan terlebih dahulu sehingga prosesnya menjadi lebih cepat.

Kelemahannya adalah terletak pada faktor ketepatannya.


2. Digital Komputer

Data pada komputer ini diterima dalam bentuk angka dan huruf. Komputer ini biasanya digunakan pada aplikasi bisnis dan aplikasi teknik.

Kelebihan :

a. Proses data lebih tepat dan dapat menyimpan data

b. Dapat melakukan operasi logika

c. Data yang dimasukkan dapat dikoreksi atau dihapus

d. Output berupa angka, huruf, grafik maupun gambar

3. Hybrid Computer

Adalah suatu komputer yang mampu menyelesaikan permasalahan lebih cepat dari komputer digital dan lebih tepat dari komputer analog. Komputer ini merupakan kombinasi dari komputer analog dan komputer digital.


Berdasarkan Penggunaannya :

1. Special-Purpose Computer

Komputer ini dirancang untuk menyelesaikan suatu masalah yang khusus, yang biasanya hanya berupa satu masalah saja. Program komputer sudah tertentu dan sudah tersimpan di dalamnya. Contoh : komputer yang digunakan untuk menimbang berat dari suatu paket, merubah beratnya ke bentuk digital dan menentukan biaya pengirimannya.

2. General-Purpose Computer

Komputer ini dirancang untuk menyelesaikan bermacam-macam masalah dapat mempergunakan program yang bermacam-macam pula. Contoh : Personal Computer


Berdasarkan ukurannya :

1. Micro Computer

Disebut juga dengan Personal Computer. Komputer mikro umumnya adalah single user (pemakainya tunggal).

2. Mini Computer

Komputer mini dapat bersifat multi user (pemakainya banyak), yaitu sebuah komputer yang dapat mempunyai beberapa terminal dan dapat digunakan bersama-sama oleh banyak pemakai. Tiap-tiap terminal dapat diletakkan di tempat terpisah yang dihubungkan dengan pusat komputernya.

3. Small Computer

Disebut juga dengan nama small-scale mainframe computer. Kebanyakan menggunakan sistem multiprogramming, multiprocessing dan virtual storage serta bersifat multi user dengan jumlah terminal sampai ratusan buah.

4. Medium Computer

Disebut juga dengan nama medium-scale mainframe computer. Komputer ini dapat mempunyai sejumlah besar dan bermacam-macam alat input atau output. Biasanya komputer medium digunakan untuk komunikasi data. Terminalnya dapat menggunakan micro computer atau mini computer untuk penerapan konsep distributed data processing yaitu terminal selain dapat berhubungan dengan komputer pusat, tetapi dapat juga berdiri sendiri.

5. Large Computer

Disebut juga mainframe computer atau large scale mainframe computer karena karena bentuk fisiknya besar seperti lemari. Komputer ini digunakan pada perusahaan yang besar. Karena kecepatan dan besarnya memori komputer ini, memungkinkan melakukan time-sharing, yaitu ratusan pemakai dapat menggunakan komputer ini serentak dari terminal masing-masing pada saat bersamaan.

6. Super Computer

Penggunaan super computer memungkinkan penerapan sistem time sharing yang lebih efektif. Ribuan terminal dapat dihubungkan dengan super komputer dan ribuan pemakai dapat menggunakannya secara bersamaan. Contoh : Cray-1 computer yang dibuat oleh Cray Research