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.)