Ilmu komputer

**Ilmu komputer** (), Secara umum diartikan sebagai ilmu yang mempelajari baik tentang komputasi, perangkat keras (*hardware*) maupun perangkat lunak (*software*). Ilmu komputer mencakup beragam topik yang berkaitan dengan komputer, mulai dari algoritma hingga subjek yang lebih konkret seperti bahasa pemrograman, perangkat lunak dan perangkat keras. Sebagai suatu disiplin ilmu, Ilmu Komputer lebih menekankan pada pemrograman komputer, dan rekayasa perangkat lunak (*software*), sementara teknik komputer lebih cenderung berkaitan dengan hal-hal seperti perangkat keras komputer (*hardware*). Namun, kedua istilah tersebut sering disalah artikan oleh banyak orang.

Tesis Church-Turing menyatakan bahwa semua alat komputasi yang telah umum diketahui sebenarnya sama dalam hal apa yang bisa mereka lakukan, sekalipun dengan efisiensi yang berbeda. Tesis ini kadang-kadang dianggap sebagai prinsip dasar dari ilmu komputer. Para ahli ilmu komputer biasanya menekankan komputer von Neumann atau mesin Turing (komputer yang mengerjakan tugas yang kecil dan deterministik pada suatu waktu tertentu), karena hal seperti itulah kebanyakan komputer digunakan sekarang ini. Para ahli ilmu komputer juga mempelajari jenis mesin yang lain, beberapa di antaranya belum bisa dipakai secara praktikal (seperti komputer neural, komputer DNA, dan komputer kuantum) serta beberapa di antaranya masih cukup teoretis (seperti komputer random and komputer oracle).

Ilmu komputer mempelajari apa yang bisa dilakukan oleh beberapa program, dan apa yang tidak (komputabilitas dan kecerdasan buatan), bagaimana program itu harus mengevaluasi suatu hasil (algoritme), bagaimana program harus menyimpan dan mengambil bit tertentu dari suatu informasi (struktur data), dan bagaimana program dan pengguna berkomunikasi (antarmuka pengguna dan bahasa pemrograman).

Ilmu komputer berakar dari elektronika, matematika dan linguistik. Dalam tiga dekade terakhir dari abad ke-20, ilmu komputer telah menjadi suatu disiplin ilmu baru dan telah mengembangkan metode dan istilah sendiri.

Departemen ilmu komputer pertama didirikan di Universitas Purdue pada tahun 1962. Hampir semua universitas sekarang mempunyai departemen ilmu komputer.

Penghargaan tertinggi dalam ilmu komputer adalah Turing Award, pemenang penghargaan ini adalah semua pionir di bidangnya.

Edsger Dijkstra mengatakan:
:*Ilmu komputer bukan tentang komputer sebagaimana astronomi bukan tentang teleskop*

Fisikawan Richard Feynman mengatakan:
:*Ilmu komputer umurnya tidak setua fisika; lebih muda beberapa ratus tahun. Walaupun begitu, ini tidak berarti bahwa "hidangan" ilmuwan komputer jauh lebih sedikit dibanding fisikawan. Memang lebih muda, tapi dibesarkan secara jauh lebih intensif!*

## Catatan tentang istilah 'informatika' dan 'ilmu komputer'
Dalam bahasa Indonesia, istilah **informatika** diturunkan dari bahasa Prancis *informatique*, yang dalam bahasa Jerman disebut *informatik*. Sebenarnya, kata ini identik dengan istilah *computer science* di Amerika Serikat dan *computing science* di Inggris. Namun, istilah *informatics* dalam bahasa Inggris memiliki makna yang sedikit berbeda, yaitu lebih menekankan pada aspek pengolahan informasi secara sistematis dan rasional.

## Hubungan informatika dengan bidang lain
Ilmu komputer berkaitan erat dengan beberapa bidang lain. Bidang-bidang ini tidak benar-benar terpisah, sekalipun mempunyai perbedaan penting.

### Sistem informasi
Sistem informasi adalah aplikasi komputer untuk mendukung operasi dari suatu organisasi yaitu: operasi, instalasi, dan perawatan komputer, perangkat lunak, dan data. Sistem informasi manajemen adalah kunci dari bidang yang menekankan finansial dan personal manajemen.
'Sistem informasi' dapat berupa gabungan dari beberapa elemen teknologi berbasis komputer yang saling berinteraksi dan bekerja sama berdasarkan suatu prosedur kerja (aturan kerja) yang telah ditetapkan, di mana memproses dan mengolah data menjadi suatu bentuk informasi yang dapat digunakan dalam mendukung keputusan.

### Ilmu Informasi
**[[Ilmu informasi]]** adalah ilmu yang mempelajari data dan informasi, mencakup bagaimana menginterpretasi, menganalisis, menyimpan, dan mengambil kembali. Ilmu informasi dimulai sebagai dasar dari analisis komunikasi dan basis data.

### Rekayasa perangkat lunak
Rekayasa perangkat lunak pada prinsipnya menekankan pada tahapan-tahapan pengembangan suatu perangkat lunak yakni: analisis, desain, implementasi, pengujian, dan pemeliharaan. Pada tahap yang lebih luas, rekayasa perangkat lunak mengacu pada manajemen proyek pengembangan perangkat lunak itu sendiri dengan tetap memperhatikan tahapan-tahapan pengembangan sebelumnya.

Dalam pengembangannya, perangkat lunak memiliki berbagai model, yaitu model *water fall* ('model konvensional' sebagai model terdahulu yang dikembangkan dan karena model water fall nyaris sama dengan siklus hidup pengembangan sistem), model prototype ('model yang disukai oleh user dan pengembang), model sequensial linear, model RAD 'rapid application model', model 'formal method' atau 'metode formal' disini sebelum diadakannya implementasi terlebih dahulu rancangan model yang dibuat diverifikasi terlebih dahulu sehingga tidak ada lagi kesalahan - kesalahan pada saat implementasi.

### Rekayasa komputer (rekayasa perangkat keras)
Rekayasa komputer adalah ilmu yang mempelajari analisis, desain, dan konstruksi dari perangkat keras komputer.

Ilmu yang mempelajari segala aspek pembuatan, konstruksi, dan pemeliharaan perangkat keras.

### Keamanan informasi
Keamanan informasi adalah ilmu yang mempelajari analisis dan implementasi dari keamanan sistem informasi. Adapun materi yang dipelajari dalam hal keamanan informasi yaitu kriptografi, steganografi, dan watermark.

## Ilmu utama teknik informatika

### Dasar matematika
* Aljabar boolean
* Matematika diskrit
* Kalkulus
* Teori graf
* Teori informasi
* Logika simbolik
* Peluang dan statistik

### Teori ilmu komputer
* Teori informasi algoritmik
* Kompilator
** Analisis leksikal
** Penguraian
* Kriptografi
* Semantik denotasional
* Teori komputasi (atau *ilmu komputer teoretis*)
** analisis dari algoritme dan kompleksitas dari problem
** logika dan arti dari program
** logika matematika dan bahasa formal
* Teori tipe

### Perangkat lunak
* Program komputer and pemrograman komputer
** Pemrograman paralel
** Spesifikasi program
** Verifikasi program
* Teknik pemrograman
* Perangkat komputer
* Rekayasa perangkat lunak
** Optimisasi
** Metrik perangkat lunak
** Pola desain
** Metode pengembangan perangkat lunak
* Bahasa pemrograman
* Sistem operasi

### Organisasi sistem komputer
(lihat juga elektronika)
* Arsitektur komputer
* Jaringan komputer
* Komputasi terdistribusi
* Komputasi grid
* Kinerja dari sistem
* Implementasi dari sistem komputer

### Data dan sistem informasi
* Struktur data
* Representasi penyimpan data
* Enkripsi data
* Kompresi data
* Pengkodean dan teori informasi
* Berkas
** Format berkas
* Sistem informasi
** Basis data
** Data mining
** Data warehouse (gudang data)
** Penyimpanan dan pengambilan informasi
** Antarmuka dan presentasi informasi

### Metodologi komputasi
* Manipulasi simbolik dan aljabar
* Kecerdasan buatan
* Grafik komputer
* Pengolahan citra dan visi komputer
* Pengenalan pola
** Pengenalan suara
* Simulasi dan pemodelan
* Pengolahan dokumen dan teks
* Pengolahan sinyal digital

### Aplikasi komputer
* Pengolahan data administratif
* Perangkat lunak matematika
** Analisis numerik
** Pembukti teori otomatis
** Aljabar komputer
* Ilmu dan teknik fisika
** Kimia komputasional
** Fisika Komputasional
* Ilmu hayat dan medis
** Bioinformatika
** Biologi komputasional
** Informatika medika
* Sosiologi
* Seni dan kemanusiaan
* Rekayasa berbantuan komputer
* Robotik
* Interaksi manusia dan komputer
** Sintesa suara
** Rekayasa kedapatgunaan
* Hiburan
** Permainan komputer

### Lingkungan komputasi
* Industri komputer
* Sejarah dari perhitungan
* Komputer dan pendidikan
* Komputer dan masyarakat
** Kerja kooperatif didukung komputer
* Aspek hukum dari komputer
* Manajemen dari komputasi dan sistem informasi
* Komputer personal
* Komputer dan keamanan informasi

## Sejarah
* Sejarah dari perhitungan
* Projek pemrograman awal
* Departemen ilmu komputer
* Garis waktu dari algoritme

## Ahli terkenal ilmu komputer
* John Backus Penemu FORTRAN, bahasa pemrograman tingkat tinggi pertama dan susunan Backus-Naur untuk mendeskripsikan bahasa formal sintaks.
* James Cooley dan John Tuckey Fourier Transform Cepat (Fast Fourier Transform) dan pengaruhnya pada riset keilmuan.
* Ole-Johan Dahl dan Kristen Nygaard, penemu bahasa berorientasi objek SIMULA.
* Edsger Dijkstra untuk algoritma, Goto dianggap berbahaya.
* Kenneth Iverson Penemu APL, untuk kontribusinya di perhitungan interaktif.
* William Kahan untuk standard IEEE floating-point.
* Donald Knuth untuk seni dari pemrograman komputer
* Ada Lovelace programmer terkenal pertama di dunia
* John von Neumann yang telah mengembangkan arsitektur von Neumann.
* Claude E. Shannon untuk teori informasi
* Alan Turing untuk teori komputabilitas.
* James Wilkinson Teknik "analisis kesalahan dari belakang" dan kemajuan di bidang perhitungan matriks. Wilkinson adalah juga penggerak dalam pengembangan Pilot ACE, komputer di Inggris yang pertama, pada akhir 1940-an. (lihat Wilkinson pada biografi MacTutor.)
* Konrad Zuse Pembuat binari komputer yang pertama pada 1930-an, di mana dia menrencanakan bahasa pemrograman jauh sebelum waktunya.

Lihat Daftar Ahli Ilmu Komputer untuk informasi lebih lanjut.

## Lihat pula
* Kutu (Kekutu, EN: bug)
* Bahasa pemrograman
* Perhitungan
* Sejarah dari perhitungan
* Turing Award (ACM)
* Medali IEEE John von Neumann
* Hello world
* Daftar istilah teknologi informasi
* Topik utama ilmu komputer
* Analogi perhitungan
* Internet
* Multimedia
* Akusisi data
* Tolok
* Jaringan sensor
* Format bilangan komputer

## Referensi


## Pranala luar

* Kumpulan Informasi Ilmu Komputer  
* Belajar Ilmu Komputer - tersedia puluhan ribu istilah 
* Daftar perguruan tinggi di Indonesia yang terakreditasi, berikut informasi akreditasinya (dari Direktorat Jenderal Pendidikan Tinggi):
** Perguruan tinggi dengan program studi '''Ilmu Komputer''' 
** Perguruan tinggi dengan program studi '''Teknik Informatika''' 
** Perguruan tinggi dengan program studi yang mengandung kata '''informatika''' (Teknik Informatika, Manajemen Informatika, dsb.) 
** Perguruan tinggi dengan program studi yang mengandung kata '''komputer''' (Ilmu Komputer, Teknik Komputer, dsb.)