Pengertian Dan Macam Macam Program Pada Komputer


            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 ??
Description: d:\my documents\!books\norton im\chapter 13\adobe.tif
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
Software adalah alasan orang membeli komputer. Instruksi Sebuah program execute di tingkat hardware, terutama pada CPU. Program, misalnya, dapat memberitahu CPU untuk mengambil bagian tertentu dari informasi dari memori. Jika program memberitahu CPU untuk memutar file suara, maka program akan menjalankan interrupt. Interrupt adalah sinyal ke CPU untuk mengeksekusi langkah-langkah pra diprogram sebagai respon kepada interrupt. Dalam hal ini perangkat keras akan mengirim file suara ke perangkat output audio.
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 .
Untuk mempelajari lebih banyak tentang spesifik bahasa pemrogaman.
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:
  1. Mengeksekusi kode sumber secara langsung, atau
  2. Menerjemahkannya ke dalam serangkaian p-code kemudian mengeksekusinya, atau
  3. 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 se
l, 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.
Description: D:\My Documents\!books\norton im\chapter 13\flowchart.tif
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:
  • 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.
  • 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.

Postingan terkait:

Belum ada tanggapan untuk "Pengertian Dan Macam Macam Program Pada Komputer"