Ilmu komputer (Ilkom), atau dalam bahasa Inggrisnya disebut Computer Science (CS), 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 analisa abstrak algoritma sampai subyek yang lebih konkret seperti bahasa pemrograman, perangkat lunak, termasuk 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 demikian, 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 terkadang 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 diantaranya belum bisa dipakai secara praktikal (seperti komputer neural, komputer DNA, dan komputer kuantum) serta beberapa diantaranya masih cukup teoritis (seperti komputer random and komputer oracle).
Ilmu Komputer mempelajari apa yang bisa dilakukan oleh beberapa program, dan apa yang tidak (komputabilitas dan intelegensia buatan), bagaimana program itu harus mengevaluasi suatu hasil (algoritma), 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 20, ilmu komputer telah menjadi suatu disiplin ilmu baru dan telah mengembangkan metode dan istilah sendiri.
Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Hal ini ialah apa yang disebut dengan teori komputasi, suatu sub-bidang dari ilmu komputer dan matematika, kebanyakan komputasi telah dilakukan dengan menggunakan komputer.
Komputer adalah alat yang dipakai untuk mengolah informasi menurut prosedur yang telah dirumuskan. Kata computer semula dipergunakan untuk menggambarkan orang yang perkerjaannya melakukan perhitungan aritmatika, dengan atau tanpa alat bantu, tetapi arti kata ini kemudian dipindahkan kepada mesin itu sendiri. Asal mulanya, pengolahan informasi hampir eksklusif berhubungan dengan masalah aritmatika, tetapi komputer modern dipakai untuk banyak tugas yang tidak berhubungan dengan matematika.
“komputer” adalah “yang memproses informasi” atau “sistem pengolah informasi.”
Komputer adalah mesin yang dapat melaksanakan seperangkat perintah dasar (instruction set).
Komputer hanya dapat diberi perintah yang terdiri dari perintah-perintah dasar. (misalnya mengurutkan suatu daftar sesuai abjad) harus diterjemahkan menjadi serangkaian perintah-perintah dasar yang dapat dimengerti komputer (perintah-perintah yang termasuk dalam instruction set komputer tersebut) yang pada akhirnya dapat mennyelesaikan tugas yang diinginkan, meskipun dijalankan dengan beberapa operasi dasar, bukan satu operasi rumit.
Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Bahasa pemrograman, atau bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu set aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Bahasa pemrograman adalah bahasa yang dapat diterjemahkan menjadi kumpulan perintah-perintah dasar tersebut. Penerjemahan dilakukan oleh program komputer yang disebut kompilator. Sintaks dari bahasa pemrograman lebih mudah dipahami oleh manusia daripada sintaks perintah dasar. Namun tentu saja komputer hanya dapat melaksanakan perintah dasar itu. Maka di sinilah peran penting kompilator sebagai perantara antara bahasa pemrograman dengan perintah dasar.
Kegiatan membuat program komputer dengan menggunakan bahasa pemrograman disebut pemrograman komputer.
Perangkat lunak adalah program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras. Perangkat lunak dapat juga dikatakan sebagai ‘penterjemah’ perintah-perintah yang dijalankan pengguna komputer untuk diteruskan atau diproses oleh perangkat keras.
Perangkat lunak ini dibagi menjadi 3 tingkatan:
tingkatan program aplikasi (application program misalnya Microsoft Office) tingkatan sistem operasi (operating system misalnya Microsoft Windows)
tingkatan bahasa pemrograman (yang dibagi lagi atas bahasa pemrograman tingkat tinggi seperti Pascal dan bahasa pemrograman tingkat rendah yaitu bahasa rakitan).
Perangkat keras komputer (hardware) adalah semua bagian fisik komputer, dan dibedakan dengan data yang berada di dalamnya atau yang beroperasi di dalamnya, dan dibedakan dengan perangkat lunak (software) yang menyediakan instruksi untuk perangkat keras dalam menyelesaikan tugasnya.
Batasan antara perangkat keras dan perangkat lunak akan terasa ganjil kalau kita berbicara mengenai firmware, karena firmware ini adalah perangkat lunak yang “dibuat” ke dalam perangkat keras. Firmware ini merupakan wilayah dari bidang ilmu komputer dan teknik komputer, yang jarang dikenal oleh pengguna umum.
PC dalam bentuk desktop atau menara kotak yang terdiri dari bagian berikut:
Papan sistem/papan induk yang merupakan tempat CPU, memori dan bagian lainnya, dan memiliki slot untuk kartu tambahan.
RAM – tempat penyimpanan data jangka pendek, sehingga komputer tidak perlu selalu mengakses hard disk untuk mencari data. Jumlah RAM yang lebih besar akan membantu kecepatan PC
Buses:
Bus PCI
Bus ISA
USB
AGP
ROM (Read Only Memory) di mana firmware diletakkan
CPU (Central Processing Unit) sebagai otak dan bagian utama komputer
Power supply – sebuah kotak yang merupakan tempat transformer, kontrol voltase dan kipas
Pengontrol penyimpanan, dari jenis IDE, SCSI atau lainnya, yang mengontrol hard disk, Floppy disk, CD-ROM dan drive lainnya; kontroler ini terletak di papan induk (atas-papan) atau di kartu tambahan
Pengontrol penampilan video yang memproduksi output untuk komputer display
Pengontrol komputer bus (paralel, serial, USB, Firewire) untuk menyambung komputer dengan alat tambahan luar lainnya seperti printer atau scanner
Beberapa jenis penyimpanan komputer:
CD – tipe paling umum media yang dapat dilepas, murah tapi mudah rusak.
CD-ROM
CD-RW
CD-R
DVD
DVD-ROM
DVD-RW
DVD-R
Floppy disk
Penyimpanan dalam – menyimpan data dalam komputer untuk penggunaan jangka panjang.
Hard disk – untuk penyimpanan data jangka panjang
Disk array controller
Kartu suara – menerjemahkan signal dari papan sistem ke bahasa yang dapat dimengerti oleh speaker, dan memiliki terminal untuk mencolok kabel suara speaker.
Jaringan komputer – untuk menghubungkan komputer ke internet dan/atau komputer lainnya.
Modem – untuk koneksi tekan-tombol.
Kartu network – untuk internet DSL/kabel, dan/atau menghubungkan ke komputer lain.
Alat lainnya.
Sebagai tambahan, perangkat keras dapat memasukan komponen luar lainnya. Di bawah ini merupakan komponen standar atau yang umum digunakan.
Input
Keyboard
Alat penunjuk
Mouse
Trackball
Joystick
Gamepad
Scanner gambar
Webcam
Tablet Grafis
Output
Printer
Speaker
Monitor
Jaringan/Networking
Modem
kartu network
Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau ‘pekerjaan’ sesuai dengan keinginan si pemrogram. Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.
Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga menjadi sebuah program komputer. Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.
Apakah memprogram perangkat lunak lebih merupakan seni, ilmu, atau teknik telah lama diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi waktu berjalan (running time), atau memori.
Bahasa pemrograman yang berbeda mendukung gaya-gaya pemrograman yang berbeda (paradigma pemrograman. Pilihan bahasa pemrograman dipengaruhi oleh banyak alasan, seperti kecocokan dengan kriteria program yang akan dibuat.
Teknik sistem komputer adalah suatu disiplin khusus yang mengkombinasikan teknik elektro dan ilmu komputer. Seorang teknisi komputer adalah teknisi elektro arus lemah yang lebih berfokus pada sistem sirkuit digital, sistem komunikasi data pada frekuensi radio, dan elektronika sebagai bagian dari komputer secara menyeluruh. Dari kacamata ilmu komputer, seorang teknisi komputer adalah seorang arsitek perangkat lunak yang memiliki fokus pada interaksi antara perangkat lunak dan program serta komponen perangkat keras pendukungnya.
Satu komentar
punya makalah tentang sql