Wednesday, February 16, 2011

APA ITU ILMU KOMPUTER


Sejarah
Disiplin Ilmu Komputer sudah muncul sejak era tahun 1940, seiring dengan berpadunya teori algoritma dan logika matematika, serta ditemukannya komputer elektronik dengan kemampuan penyimpanan program. Adalah Alan Turing dan Kurt Godel, yang pada tahun 1930-an berhasil memadukan algoritma, logika, dan penghitungan matematika serta merealisasikannya dalam sebuah alat atau rule system. Prinsip algoritma yang digunakan adalah dari Ada Lovelace, yang dikembangkan 60 tahun sebelumnya.
Penemu algoritma sendiri yang tercatat dalam sejarah awal adalah dari seorang yang bernama Abu Abdullah Muhammad Ibn Musa al Khwarizmi. Al Khwarizmi adalah seorang ahli matematika dari Uzbekistan yang hidup di masa tahun 770-840 masehi. Di literatur barat ia lebih terkenal dengan sebutan Algorizm. Kata algoritma sendiri berasal dari sebutannya ini. Sedangkan komputer analog diciptakan oleh Vannevar Bush pada tahun 1920, dan disusul dengan komputer elektronik yang dikembangkan oleh Howard Aiken dan Konrad Zuse tahun 1930.
Kemudian John Von Neumann mendemonstrasikan salah satu karya fenomenalnya pada tahun 1945, yaitu sebuah arsitektur komputer yang disebut "von Neumann machine", dimana program disimpan di memori. Arsitektur komputer inilah yang kemudian digunakan oleh komputer modern sampai sekarang.
Tahun 1960 adalah babak baru dimulainya formalisasi Ilmu Komputer. Jurusan Ilmu Komputer pada universitas-universitas mulai marak dibangun. Disiplin ilmu baru ini kemudian terkenal sebutan Ilmu Komputer (Computer Science), Teknik Komputer (Computer Engineering), Komputing (Computing), atau Informatika (Informatics).
Definisi
Seiring dengan perkembangan Ilmu Komputer, dewasa ini banyak sekali peneliti yang mencoba membuat kajian dan melakukan pendefinisian terhadap Ilmu Komputer. Bagaimanapun juga, dasar Ilmu Komputer adalah matematika dan engineering (teknik). Matematika menyumbangkan metode analisa, dan engineering menyumbangkan metode desain pada bidang ini.
CSAB [3] (Computing Sciences Accreditation Board, http://www.csab.org) membuat definisi menarik tentang Ilmu Komputer:
Ilmu Komputer adalah ilmu pengetahuan yang berhubungan dengan komputer dan komputasi. Di dalamnya terdapat teoritika, eksperimen, dan pendesainan komponen, serta termasuk didalamnya hal-hal yang berhubungan dengan:
  1. Teori-teori untuk memahami komputer device, program, dan sistem
  2. Eksperimen untuk pengembangan dan pengetesan konsep
  3. Metodologi desain, algoritma, dan tool untuk merealisasikannya
  4. Metode analisa untuk melakukan pembuktian bahwa realisasi sudah sesuai dengan requirement yang diminta
Beberapa definisi lain yang lebih abstrak adalah:
Ilmu Komputer adalah ilmu yang mempelajari tentang representasi pengatahuan (knowledge representation) dan implementasinya.
ataupun definisi
Ilmu Komputer adalah ilmu yang mempelajari tentang abstraksi dan bagaimana mengendalikan kekompleksan.
Denning mendefinisikan Ilmu Komputer dalam makalahnya yang cukup terkenal tentang disiplin ilmu komputer [1]. Makalah ini adalah laporan akhir dari proyek dan task force tentang the Core of Computer Science yang dibentuk oleh dua society ilmiah terbesar bidang komputer, yaitu ACM [4] (http://acm.org) dan IEEE Computer Society [5] (http://computer.org).
Ilmu Komputer adalah studi sistematik tentang proses algoritmik yang mengjelaskan dan mentrasformasikan informasi: baik itu berhubungan dengan teori-teori, analisa, desain, efisiensi, implementasi, ataupun aplikasi-aplikasi yang ada padanya. Pertanyaan mendasar berhubungan dengan Ilmu Komputer adalah, "Apa yang bisa diotomatisasikan secara efisien".
Kita bisa simpulkan dari persamaan pemakaian terminologi dan hakekat makna dalam definisi yang digunakan para peneliti diatas, bahwa:
Ilmu Komputer adalah ilmu pengetahuan yang berisi tentang teori, metodologi, desain dan implementasi, berhubungan dengan komputasi, komputer, dan algoritmanya dalam perspektif perangkat lunak (software) maupun perangkat keras (hardware).
Persepsi Yang Salah Tentang Ilmu Komputer
Beberapa persepsi yang salah kaprah tentang Ilmu Komputer bisa kita rangkumkan seperti dibawah:
  • Ilmu Komputer adalah ilmu yang mempelajari tentang komputer. Ilmu Komputer bukanlah ilmu yang hanya mempelajari tentang komputer, seperti juga ilmu astronomi yang bukan ilmu tentang teleskop, atau ilmu biologi adalah juga bukan ilmu yang hanya mempelajari tentang mikroskop. Komputer, teleskop dan mikroskop adalah alat dari ilmu, dan bukan ilmu itu sendiri.
  • Ilmu Komputer adalah ilmu yang mempelajari tentang bagaimana menulis program komputer.
  • Ilmu Komputer adalah ilmu yang mempelajari tentang pengunaan aplikasi-aplikasi komputer.


KLASIFIKASI ILMU KOMPUTER
Dasar Klasifikasi
Ilmu komputer adalah disiplin ilmu yang melingkupi cabang ilmu yang cukup luas, dari masalah teori-teori dasar sampai teknologi aplikasi. Pengklasifikasian Ilmu Komputer biasanya merefer ke Matriks Dennings, yaitu salah satu matriks penggolongan Ilmu Komputer yang diciptakan oleh Peter J. Dennings [1][2].
Klasifikasi ini mengalami beberapa perbaikan, dimana versi terakhir adalah versi tahun 1999 [2][3]. Dalam versi terakhir ini ilmu komputer terbagi dalam 12 subbidang (versi sebelumnya adalah 9 subbidang). 12 subbidang Ilmu Komputer ini adalah:
Algoritma dan Struktur Data
(Algorithms and Data Structures)
Bahasa Pemrograman
(Programming Languages)
Arsitektur
(Architecture)
Sistem Operasi dan Jaringan
(Operating Systems and Networks)
Software Engineering
Database dan Sistim Retrieval Informasi
(Database and Information Retrieval Systems)
Artificial Intelligence dan Robotik
(Artificial Intelligence and Robotics)
Grafik
(Graphics)
Human Computer Interaction
Ilmu Komputasi
(Computational Sciences)
Organizational Informatics
BioInformatik
(BioInformatics)
Dennings memberi catatan khusus untuk bidang BioInformatik sebagai bidang baru yang merupakan gabungan antara Ilmu Komputer dan Biologi, dan saat ini mengalami perkembangan yang cukup signifikan.
Kemudian seiring dengan peningkatan ilmu dan teknologi, ada kemungkinan matriks ini akan mengalami perbaikan lagi di kelak kemudian hari. Baris dalam matriks Denning ini menggambarkan bidang-bidang dalam ilmu komputer. Sedangkan kolom pada matriks menggambarkan paradigma bidang-bidang tersebut, yang direfleksikan dalam tiga hal: Teori (Theory), Abstraksi (Abstraction), dan Desain (Design).
  • Teori: adalah berlandaskan pada pendekatan matematika, dimana untuk mendapatkan suatu teori yang valid, harus melalui proses-proses sbb:
    1. pendefinisian (definition)
    2. pembuatan teorema (theorema)
    3. pembuktian (proof)
    4. penginterpretasian hasil (interpret result)
  • Abstraksi: atau pemodelan (modeling), adalah berlandaskan pada metode eksperimen ilmiah, dimana dalam melakukan invesitigasi terhadap suatu fenomena, harus melalui proses-proses sbb:
    1. membentuk hipotesa (form a hypothesis)
    2. membuat suatu model dan melakukan prediksi (construct a model and make a predition)
    3. mendesain eksperimen dan mengumpulkan data (design an experiment and collect data)
    4. menganalisa hasil (analyze hasil)
  • Desain: adalah berlandaskan pada pendekatann engineering (teknik), dimana pada saat mendesain sebuah sistem atau device untuk memecahkan masalah, harus melalui proses-proses sbb:
    1. menyatakan requirement (state requirements),
    2. menyatakan spesifikasi (state specifications)
    3. melakukan desain dan implementasi sistem (design and implement the system)
    4. melakukan pengetesan terhadap sistem (test the system)
Dari penjelasan diatas, bisa kita pahami bahwa yang bergerak dalam masalah penelitian ilmu komputer akan banyak berhubungan dengan dua kolom pertama matriks (Teori dan Abstraksi). Sedangkan yang bergerak dalam masalah yang lebih teknis dengan memakai pendekatan engineering, akan lebih banyak berkecimpung dalam ruang lingkup dua kolom terakhir matriks (Abstraksi dan Desain).
Klasifikasi Ilmu Komputer
Rangkumkan lengkap klasifikasi ilmu komputer berdasarkan Matriks Denning versi 1999 adalah seperti dibawah. Penulis sengaja melakukan perbaikan, penerjemahan, dan penyingkatan, untuk lebih mempermudah pemahaman terhadap klasifikasi ilmu komputer ini.



Teori
Abstraksi
Desain

Algoritma dan Struktur Data
Teori Komputabilitas
Algoritma Paralel dan Terdistribusi
Program Aplikasi

Teori Komputasi Kompleks

Komputasi Paralel
Algoritma Efisien dan Optimal

Teori Graf

Kriptografi

Algoritma dan Teori Probabilistik

Bahasa Pemrograman
Bahasa Formal dan Automata
BNF
Bahasa Pemrograman

Turing Machines

Metode Parsing, Compiling, Interpretation

Formal Semantics
Translator, Kompiler, Interpreter

Arsitektur
Aljabar Boolean
Arsitektur Nueman
Produk Hardware (PC, Superkomputer, Mesin Von Neumann)

Teori Coding
Hardware Reliability

Teori Switching
Finite State Machine
Sistem CAD dan Simulasi Logika

Teori Finite State Machine
Model Sirkuit, Data Path, Struktur Kontrol

Sistem Operasi dan Jaringan
Teori Concurrency
Manajemen Memori, Job Scheduling
Produk OS (UNIX, Windows, Mach, dsb)

Teori Scheduling
Model Komputer Terdistribusi
File dan File Sistem

Teori Manajemen Memori
Networking (Protokol, Naming, dsb)
Pustaka untuk Utilities (Editor, Formatter, Linker, dsb)

Software Engineering
Teori Reliability
Metode Spesifikasi
Bahasa Spesifikasi

Program Verification and Proof
Metode Otomatisasi Pengembangan Program
Metodologi Pengembangan Software

Temporal Logic
Tool Pengembangan Software
Tool untuk Pengembangan Software

Database dan Sistim Retrieval Informasi
Relational Aljabar dan Kalkulus
Data Model
Teknik Pendesainan Database (Relational, Hierarchical, Network, dsb)

Teori Dependency

Teori Concurrency
Skima Database
Teknik Pendesainan Database Sistem (Ingres, Dbase, Oracle, dsb)

Performance Analysis

Sorting dan Searching
Representasi File untu Retrieval
Hypertext System

Statistical Inference

Artificial Intelligence dan Robotik
Teori Logika
Knowledge Representation
Logic Programming (Prolog)

Semantik dan Sintatik Model untuk Natural Language
Metode Pencarian Heuristic
Neural Network

Conceptual Dependency
Model Reasoning dan Learning
Sistem Pakar

Kinematics and Dynamics of Robot Motion
Model Memori Manusia, Autonomous Learning
Teknik Pendesaian Software untuk Logic Programming

Grafik
Teori Grafik dan Warna
Algoritma Komputer Grafik
Pustaka untuk Grafik

Geometri Dimensi Dua atau Lebih
Model untuk Virtual Reality
Grafik Standar

Teori Chaos
Metode Komputer Grafik
Image Enhacement System

Human Computer Interaction
Risk Analysis
Pattern Recognition
Flight Simulation

Cognitive Psychology
Sistem CAD
Usability Engineering



Teori
Abstraksi
Desain

Ilmu Komputasi
Number Theory
Discrete Approximations, Fast Fourier Transform and Poisson Solvers
Pustaka dan Paket untuk Tool Penelitian (Chem, Macsyma, Mathematica, Maple, Reduce, dsb)

Binary Representation
Backward  Error Propagation

Teori Quantum
Finite Element Models,

Organizational Informatics
Organizational Science
Model dan Simlasi berhubungan dengan organizational informatics
Management Information Systems

Decision Support Systems

Decision Sciences

Organizational Dynamics

Bioinformatik
Teori Komputasi
Model Komputasi DNA Kimia
Organic Memory Devices

Ilmu Biologi
Protipe Retina dari Silikon
Proyek Database Genom Manusia

Medicine
Model Database Genom Manusia
Analisa Komputer Terhadap Struktur Enzim untuk Kesehatan

ACM Computing Classification System (CCS)
Association for Computing Machinary (ACM) sebagai asosiasi ilmiah bidang komputer tertua di dunia juga menyusun sistem klasifikasi untuk bidang komputasi (computing), yang terkenal dengan sebutan ACM Computing Classification System (CSS). ACM Computing Classification System terbagi menjadi tiga level, dimana sistem penyusunannya mirip dengan Dewey Decimal Classification System (DCC) yang saat ini digunakan sebagai standar penyusunan katalog buku di perpustakaan-perpustakaan. Sistem Klasifikasi ini terbagi menjadi tiga besar, berdasarkan tahun dikeluarkannya. Klasifikasi selengkapnya adalah seperti dibawah.
  1. Sistem Klasifikasi 1998
  2. Sistem Klasifikasi 1991
  3. Sistem Klasifikasi 1964

SEJARAH KOMPUTER
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 mennghubungkan 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
Tulisan ini akan memberikan gambaran tentang sejarah komputer dari masa ke masa, terutama alat pengolah data pada golongan 2, 3, dan 4. Klasifikasi komputer berdasarkan Generasi juga akan dibahas secara lengkap pada tulisan ini.

APA ITU KOMPUTER

Definisi
Komputer berasal dari bahasa latin computare yang mengandung arti menghitung. Karena luasnya bidang garapan ilmu komputer, para pakar dan peneliti sedikit berbeda dalam mendefinisikan termininologi komputer.
  • Menurut Hamacher [1], komputer adalah mesin penghitung elektronik yang cepat dan dapat menerima informasi input digital, kemudian memprosesnya sesuai dengan program yang tersimpan di memorinya, dan menghasilkan output berupa informasi.
  • Menurut Blissmer [2], komputer adalah suatu alat elektonik yang mampu melakukan beberapa tugas sebagai berikut:
    - menerima input
    - memproses input tadi sesuai dengan programnya
    - menyimpan perintah-perintah dan hasil dari pengolahan
    - menyediakan output dalam bentuk informasi
  • Sedangan Fuori [3] berpendapat bahwa komputer adalah suatu pemroses data yang dapat melakukan perhitungan besar secara cepat, termasuk perhitungan aritmetika dan operasi logika, tanpa campur tangan dari manusia.
Untuk mewujudkan konsepsi komputer sebagai pengolah data untuk menghasilkan suatu informasi, maka diperlukan sistem komputer (computer system) yang elemennya terdiri dari hardware, software dan brainware. Ketiga elemen sistem komputer tersebut harus saling berhubungan dan membentuk kesatuan. Hardware tidak akan berfungsi apabila tanpa software, demikian juga sebaliknya. Dan keduanya tiada bermanfaat apabila tidak ada manusia (brainware) yang mengoperasikan dan mengendalikannya.
  1. Hardware atau Perangkat Keras: peralatan yang secara fisik terlihat dan bisa djamah.
  2. Software atau Perangkat Lunak: program yang berisi instruksi/perintah untuk melakukan pengolahan data.
  3. Brainware: manusia yang mengoperasikan dan mengendalikan sistem komputer.
Penggolongan Komputer
Literatur terbaru tentang komputer melakukan penggolongan komputer berdasarkan tigal hal: data yang diolah, penggunaan, kapasitas/ukurannya, dan generasinya.
Berdasarkan Data Yang Diolah
  1. Komputer Analog
  2. Komputer Digital
  3. Komputer Hybrid
Berdasarkan Penggunannya
  1. Komputer Untuk Tujuan Khusus (Special Purpose Computer)
  2. Komputer Untuk Tujuan Umum (General Purpose Computer)
Berdasarkan Kapasitas dan Ukurannya
  1. Komputer Mikro (Micro Computer)
  2. Komputer Mini (Mini Computer)
  3. Komputer Kecil (Small Computer)
  4. Komputer Menengah (Medium Computer)
  5. Komputer Besar (Large Computer)
  6. Komputer Super (Super Computer)
Berdasarkan Generasinya
  1. Komputer Generasi Pertama (1946-1959)
  2. Komputer Generasi Kedua (1959-1964)
  3. Komputer Generasi Ketiga (1964-1970)
  4. Komputer Generasi Keempat (1979-sekarang)
  5. Komputer Generasi Kelima