Perangkat keras computer tidak dapat
berbuat apa-apa tanpa adanya perangkat lunak. Teknologi yang canggih dari
perangkat keras akan berfungsi bila intruksi-intruksi tertentu telah diberikan
kepadanya. Intruksi-intruksi tersebut disebut juga software (perangkat lunak).
Instruksi-instruksi perangkat lunak ditulis oleh manusia untuk mengaktifkan
fungsi dari perangkat keras computer. Karena perangkat
lunak adalah bagian integral dari setiap sistem komputer, penting untuk memahami
software apa dan dari mana datangnya.
Apa itu program computer ??
Program komputer atau sering kali
disingkat sebagai program adalah serangkaian instruksi yang ditulis
untuk melakukan suatu fungsi spesifik pada komputer. Komputer pada
dasarnya membutuhkan keberadaan program agar bisa menjalankan fungsinya sebagai
komputer, biasanya hal ini dilakukan dengan cara mengeksekusi serangkaian
instruksi program tersebut pada prosesor. Sebuah program
biasanya memiliki suatu bentuk model pengeksekusian tertentu agar dapat secara
langsung dieksekusi oleh komputer. Program yang sama dalam format kode yang
dapat dibaca oleh manusia disebut sebagai kode sumber, bentuk program yang memungkinkan programmer menganalisis
serta melakukan penelaahan algoritma yang digunakan pada program tersebut. Kode
sumber tersebut pada akhirnya dikompilasi oleh utilitas
bahasa pemrograman tertentu sehingga membentuk sebuah program. bentuk
alternatif lain model pengeksekusian sebuah program adalah dengan menggunakan
bantuan interpreter, kode sumber tersebut langsung dijalankan oleh utilitas interpreter suatu
bahasa pemrograman yang digunakan.
Beberapa program komputer dapat dijalankan pada sebuah
komputer pada saat bersamaan, kemampuan komputer untuk menjalankan beberapa
program pada saat bersamaan disebut sebagai multitasking. Program komputer dapat dikategorikan menurut fungsinya; perangkat
lunak sistem atau perangkat
lunak aplikasi.
Sebuah
program biasanya terdiri dari modul utama dan submodul. Modul ini
menyimpan berbagai file ; program besar dapat berisi ribuan file individual, masing-masing
melayani tujuan tertentu. Beberapa file berisi instruksi untuk komputer, sementara
file lain berisi data. Untuk PCs berbasis windows, ada
beberapa ekstensi umum untuk file program adalah sebagai
berikut:
·
Executable Files . Executable (.exe , .com) adalah
sebuah file program yang langsung mengirim perintah ke processor. Bahkan, ketika kamu menjalankan program , kamu juga
dapat menjalankan executable files. Processor langsung mengeksekusi perintah
pada file, lalu diberikan naman Executable
Files . pada umumnya executable files (tidak selalu) memiliki ekstensi nama
file .exe ,.
·
Dynamic Link Library Files. Dynamic link library files (.dll)
adalah file parsial daripada exe file. File .dll tidak dapat menjalankan
program sendiri ; akan tetapi perintahnya akan diakses oleh program yang sedang
berjalan. Karena .dll file dapat berisi bagian dari executable file, ini
menyediakan pemrograman yang efektif mengubah program besar menjadi kecil, mengganti
komponen. Fitur ini membuat seluruh program lebih mudah untuk
meng-upgrade. Selain itu, .dll file juga dapat digunakan bersama oleh beberapa
program pada satu waktu.
·
Initialization Files. Initialization (.ini) files berisi
konfigurasi dari informasi, seperti misalnya ukuran dan titik awal windows,
warna latar belakang , nama pengguna dan masih banyak lagi. Initialization
files membantu program memulai atau berisikan informasi program yang dapat
diguanakan pada saat berjalan. Meskipun initialization file masih digunakan,
banyak program baru yang menyimpan dan variable program dalam Windows registry
database khusus yang menyimpan informasi dari pengguna computer, install program dan perangkat keras tertentu.
·
Help Files.
Help ( .hlp, com.) file berisi informasi dalam format indeks dan
cross-linked. Mencakup help file, pemrograman memberika kepada
pengguna berupa informasi bantuan online.
·
Batch Files. Batch (.bat) file mengotomatisasi tugas-tugas umum atau berulang. Sebuah file batch
adalah sebuah
program sederhana yang terdiri dari sebuah file teks yang berisi perintah operasi yang diformat satu atau lebih sistem. Jika Anda mengetik nama file batch di perintah prompt, sistem operasi
Anda akan mengeksekusi perintah dalam file.
Dalam
kesalahan, file program akan disimpan dalam folder yang diberikan nama aplikasi atau singkatan dari itu. Namun, beberapa
program
file mungkin ditempatkan dalam folder
lain. Sebagai
contoh, file dll, pada Windows XP biasanya disimpan di c: \ windows \ system32 folder. Untuk melihat
daftar dari
sebagian besar file yang dibutuhkan untuk menjalankan
sebuah aplikasi, Anda dapat membuka folder yang aplikasi. Gambar di bawah ini menunjukkan direktori perangkat lunak khas,
dalam hal ini, untuk program hipotetis disebut CoolToys versi 1.3.
Hardware / Software Interaction
Seorang individu yang sangat terlatih disebut programmer komputer ini membuat daftar instruksi. Daftar ini sering disebut Code , dan proses penulisan daftar biasanya disebut coding.
Code
Kode merujuk pada pernyataan yang ditulis dalam bahasa pemrograman, seperti
dalam kode mesin atau lebih
tinggi-tingkat
kode. komputer berpikir dan berbicara dalam sistem bilangan biner. Tentu saja, biner terlalu samar bagi manusia untuk menangani dalam waktu yang lama. Inilah sebabnya mengapa ada bahasa komputer-pemrograman
.
Compiler dan Interpreter
Ø Kompilator
Kompilator (Inggris: compiler)
adalah sebuah program komputer yang berguna untuk menerjemahkan program
komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang
ditulis dalam bahasa pemrograman lain.
Terlepas dari pengertiannya yang demikian relatif luas,
istilah kompilator biasa digunakan untuk program komputer yang
menerjemahkan program yang ditulis dalam bahasa
pemrograman tingkat tinggi (semacam bahasa
Pascal, C++, BASIC, FORTRAN, Visual Basic, Visual
C#, Java, xBase, atau COBOL) menjadi bahasa
mesin, biasanya dengan bahasa Assembly sebagai
perantara.
Walaupun
penulisan program dengan bahasa simbolik lebih mudah dibandingkan dengan
menulis program dengan bahasa mesin, tetapi masih tetap sulit, dikarenakan
hal-hal sebagai berikut ini:
a) Penulisan program
harus mengetahui susunan serta fungsi dari masing-masing register di processor.
b) Harus mengetahui
dengan persis cara alokasi memori computer yang dipergunakan.
c) Harus mengetahui
fungsi-fungsi yang disediakan oleh OS dan lain-lain sebagainya.
Arsitektur kompilator modern biasanya bukan lagi
merupakan program tunggal namun merupakan rangkaian komunikasi antar program
dengan tugas spesifik masing-masing. Program-program tersebut beserta tugasnya
secara umum terdiri dari:
- Kompilator itu sendiri, yang menerima kode sumber dan menghasilkan bahasa tingkat rendah (assembly)
- Assembler, yang menerima keluaran kompilator dan menghasilkan berkas objek dalam bahasa mesin
- Linker, yang menerima berkas objek keluaran assembler untuk kemudian digabungkan dengan pustaka-pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi (executable)
Kompilator yang menggunakan
arsitektur ini misalnya GCC, Clang dan FreeBASIC.
Beberapa kompilator tidak menggunakan arsitektur
di atas secara gamblang, dikarenakan komunikasi antar program jauh lebih lambat
dibandingkan jika komunikasi dilakukan secara internal di dalam satu program.
Sehingga kompilator-kompilator tersebut mengintegrasikan assembler
dan linker di dalam kompilator. Namun demikian, biasanya
arsitektur yang digunakan pun tidak kaku dan mengizinkan penggunaan assembler
maupun linker eksternal (berguna jika assembler dan linker
internal bermasalah atau memiliki galat). Kompilator yang menggunakan
arsitektur ini salah satunya adalah Free Pascal.
Profesor Niklaus Wirth dalam bukunya Compiler
Construction menyatakan bahwa penggunaan assembler
sebagai bahasa perantara seringkali tidak memberikan keuntungan yang
signifikan, sehingga beliau menyarankan agar kompilator langsung menghasilkan
bahasa mesin. Kompilator dengan arsitektur seperti ini dapat berjalan dengan
sangat cepat, seperti yang ditunjukkan pada kompilator orisinil Pascal, Modula-2 dan Oberon yang dibuat oleh
sang profesor.
Kompilator melakukan proses
kompilasi dengan cara menganalisis kode sumber secara keseluruhan, sehingga
waktu yang dibutuhkan untuk melakukan kompilasi lebih lama, namun hasilnya
lebih cepat dalam proses eksekusi daripada program yang dibuat dengan
menggunakan teknik interpretasi dengan interpreter.
Ø Penerjemah
(komputasi)
Dalam ilmu komputer, penerjemah atau lebih dikenal dengan interpreter merupakan
perangkat lunak yang berfungsi melakukan eksekusi sejumlah instruksi yang
ditulis dalam suatu bahasa pemrograman, sebuah penerjemah dapat berarti:
- Mengeksekusi kode sumber secara langsung, atau
- Menerjemahkannya ke dalam serangkaian p-code kemudian mengeksekusinya, atau
- Mengeksekusi kode yang telah dikompilasi sebelumnya oleh kompiler yang merupakan bagian dari sistem penerjemahan.
Perl, Python, Ruby, dan MATLAB adalah beberapa
contoh perangkat lunak penerjemah bertipe 2, sementara Java termasuk dalam
kategori tipe 3, namun dalam beberapa kasus Java dapat digolongkan pula ke
dalam kategori tipe 2.
Meskipun penerjemahan dan kompilasi merupakan dua jenis mekanisme implementasi pada sebuah bahasa pemrograman,
keduanya tidak berarti memiliki perbedaan secara signifikan. Hal ini disebabkan
cara kerja sebuah penerjemah dalam banyak hal adalah sama seperti halnya yang
dilakukan oleh kompiler. Penggunaan istilah "bahasa pemrograman
terjemahan" dan "bahasa pemrograman kompilatif" umumnya
digunakan sebatas untuk membedakan implementasi dari bahasa tersebut
menggunakan model penerjemahan atau kompilatif.
Ø P-Code
p-code atau sering pula disebut sebagai portable-code, atau precompiled-code, atau bytecode merupakan istilah yang digunakan untuk merepresentasikan sejumlah instruksi yang ditujukan untuk meningkatkan efisiensi serta unjuk kerja saat dieksekusi oleh perangkat lunak penerjemah (bahasa Inggris: interpreter) atau untuk mempermudah penerjemahan lebih lanjut menjadi kode mesin. Disebabkan instruksi-instruksi tersebut diproses oleh perangkat lunak, dan bukan oleh prosesor secara langsung, kompleksitas p-code bisa jadi lebih tinggi dari kode mesin, namun umumnya tidak lebih kompleks dari instruksi mesin secara umum. Di sisi lain, bytecode yang seringkali banyak digunakan dalam istilah pemrograman bahasa Java merupakan p-code dengan instruksi-instruksi yang diwakili oleh satu kode bita. Berbeda halnya dengan kode sumber yang umumnya digunakan oleh manusia dalam pemrograman komputer, p-code umumnya lebih bersifat kompak, dan direpresentasikan dalam bentuk serangkaian kode biner yang tampak seolah-olah seperti halnya kode mesin.
Perencanaan Program Komputer
Program dapat sangat sulit untuk menulis. Tanpa rencana, programmer biasanya akan menulis sebuah program yang buruk atau gagal seluruhnya pada tugas. Jika direncanakan, programmer akan memiliki gagasan tentang apa yang
perlu dilakukan untuk selesai dan tahu di mana untuk memulai. Ada dua perencanaan bahwa programmer sering menggunakan adalah input-output-processing (IPO) grafik dan pseudocode.
Bagan IPO membantu programmer menentukan apa yang dibutuhkan untuk
menulis timah-program. Ini terdiri
dari tiga kolom. Pada kolom pertama, daftar data programmer tentang apa yang diperlukan untuk menyelesaikan tugas. Dalam kolom terakhir, programmer daftar output yang diinginkan. Kolom tengah adalah bagian yang sulit. Berikut programmer berisi langkah-langkah yang diperlukan untuk mendapatkan output yang diinginkan. Biasanya langkah-langkah yang ditulis dalam pseudocode.
Pseudocode adalah pernyataan bahasa alam yang terlihat seperti kode pemrograman. Idenya adalah untuk menulis dalam english apa yang harus terjadi dalam kode. Cukup sering programmer tidak yakin bagaimana menulis setiap langkah program. Setidaknya dalam menggambarkan kode, programmer memiliki cara mulai dan dapat mulai berpikir tentang bagaimana
untuk menerapkan kode.
Algoritma ini hanya sampel setiap persegi di dia satu persegi kotak di jeruk nipis dan membandingkan hasil dari puncak tertinggi saat ini. Proses ini lambat, tapi selalu menemukan titik tertinggi.
Algoritma, memiliki banyak kegunaan lain. Sebuah program spreadsheet, misalnya, mungkin berisi algoritma untuk menampilkan jumlah dari sel yang disorot oleh pengguna. Seperti algoritma akan memungkinkan pengguna untuk menyorot sel, membaca angka-angka dalam sel-sel, total angka, dan menampilkan mereka di layar. Lain algoritma dalam program spreadsheet mungkin mencari kata terpanjang dalam kolom dan kemudian menyesuaikan lebar kolom agar sesuai teks.
Algoritma, memiliki banyak kegunaan lain. Sebuah program spreadsheet, misalnya, mungkin berisi algoritma untuk menampilkan jumlah dari sel yang disorot oleh pengguna. Seperti algoritma akan memungkinkan pengguna untuk menyorot sel, membaca angka-angka dalam sel-sel, total angka, dan menampilkan mereka di layar. Lain algoritma dalam program spreadsheet mungkin mencari kata terpanjang dalam kolom dan kemudian menyesuaikan lebar kolom agar sesuai teks.
Heuristic
Kadang-kadang, tidak ada algoritma untuk memecahkan masalah, atau algoritma yang begitu kompleks atau memakan waktu yang tidak dapat dikodekan atau lari. Dalam kasus ini,
programmer mengandalkan heuristik untuk membantu memecahkan masalah atau melakukan tugas. Heuristik seperti algoritma,
mereka adalah satu set langkah-langkah untuk menemukan solusi untuk masalah. Tapi tidak seperti algoritma, heuristik tidak datang dengan jaminan menemukan solusi. Heuristik menawarkan kesempatan baik untuk menemukan solusi, meskipun tidak selalu yang terbaik.
Heuristik ini
mengasumsikan bahwa, untuk mencapai puncak titik tertinggi saat ini harus mengarah ke puncak. Untuk menemukan langkah berikutnya 10 puncak, sampel program beberapa tempat segera di sekitar titik tertinggi saat ini dan membandingkan mereka. Setelah program telah menemukan titik tertinggi baru, mengulangi proses sampling sekitar titik tinggi saat ini dan mencari titik tertinggi baru. Dengan cara ini, heuristik yang naik ke puncak. Seperti yang dapat Anda detik, heuristik selalu naik dan hanya
sampai. Ada
kemungkinan bahwa, berdasarkan poin-poin srarting asli, heuristik dapat mendaki lebih pendek. Sementara heuristik memberikan solusi,namun tidak dapat menyediakan solusi yang terbaik setiap waktu.
Heuristik lebih kecil
kemungkinannya untuk muncul dalam aplikasi biasa (seperti spread
sheet atau word
processor) karena aplikasi ini jarang memerlukan tugas yang harus dilakukan untuk yang tidak ada solusi yang pasti busur. Heuristik sangat umum dalam program yang lebih canggih yang melacak sejumlah besar data dalam cara yang kompleks. Sebagai
contoh, perangkat
lunak yang membantu peramal memprediksi cuaca tidak mungkin setiap
proses bagian dari
program data yang tersedia dapat memproses semua data,
tetap saja tidak bisa berharap untuk
secara akurat memprediksi beberapa hal-serumit cuaca. Dengan
menggunakan heuristik, bagaimanapun program dapat menyisihkan cuaca yang berhubungan dengan data untuk
menemukan informasi yang berguna dan kemudian
membuat menebak cukup akurat pada cuaca berdasarkan data.
Beberapa program menggunakan kedua heuristik dan algoritma. Perangkat lunak antivirus menggunakan algoritma untuk menemukan virus terkenal seperti MS Blaster dan CodRed. Virus baru yang tertangkap menggunakan heuristik yang mencari virus seperti pola. Ini termasuk file yang mencoba untuk menulis ke bagian dari hard drive atau membuka Outlook. Virus nastier adalah mereka yang tahu bagaimana heuristik bekerja dan menghindari mereka.
Pemrograman
Berorientasi Objek
Konsep pemrograman berorientasi obyek, seperti objek dan kelas, bisa tampak abstrak pada awalnya, tetapi banyak programmer mengklaim bahwa orientasi objek adalah cara alami berpikir tentang dunia. Karena OOP memberikan mereka sebuah cara intuitif untuk model dunia, mereka mengatakan, program menjadi lebih sederhana, pemrograman menjadi lebih cepat, dan beban pemeliharaan program berkurang.
objek
Lihatlah di sekitar Anda Anda dikelilingi oleh objek. Sekarang, daftar objek di sekitar Anda mungkin termasuk buku, komputer, lampu, dinding, tanaman, gambar, dan
Pikirkan sejenak tentang apa yang Anda anggap ketika Anda melihat sebuah mobil di jalan. Kesan pertama Anda mungkin dari mobil secara keseluruhan. Anda tidak berfokus pada baja, krom, dan elemen plastik yang membentuk mobil. Seluruh unit, atau obyek, adalah apa yang register dalam pikiran Anda.
Konsep dasar dari Pemrograman
Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:Lihatlah di sekitar Anda Anda dikelilingi oleh objek. Sekarang, daftar objek di sekitar Anda mungkin termasuk buku, komputer, lampu, dinding, tanaman, gambar, dan
Pikirkan sejenak tentang apa yang Anda anggap ketika Anda melihat sebuah mobil di jalan. Kesan pertama Anda mungkin dari mobil secara keseluruhan. Anda tidak berfokus pada baja, krom, dan elemen plastik yang membentuk mobil. Seluruh unit, atau obyek, adalah apa yang register dalam pikiran Anda.
- Kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
- Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
- Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
- Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
- Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
- Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Belum ada tanggapan untuk "Pengertian Dan Macam Macam Program Pada Komputer"
Post a Comment