Program komputer: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Wagino Bot (bicara | kontrib)
k minor cosmetic change
Wagino Bot (bicara | kontrib)
k minor cosmetic change
Baris 1:
'''Program komputer''' atau sering kali disingkat sebagai '''program''' adalah serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik pada [[komputer]].<ref name="pis-ch4-p132">{{cite book
|last = Stair
|first = Ralph M., et al.
|title = Principles of Information Systems, Sixth Edition
|publisher = Thomson Learning, Inc.
|year = 2003
|pages = 132
|isbn = 0-619-06489-7
}}</ref> 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]].<ref name="osc-ch3-p58">{{cite book
|last = Silberschatz
|first = Abraham
|title = Operating System Concepts, Fourth Edition
|publisher = Addison-Wesley
|year = 1994
|pages = 58
|isbn = 0-201-50480-4
}}</ref> 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 [[kompiler|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.
 
Baris 47:
 
Program yang ditulis dalam bahasa pemrograman imperatif biasanya memiliki algoritma yang ditulis dalam serangkaian klausal pendeklarasian, ekspresi aritmatis, dan sejumlah perintah.<ref name="cpl-ch4-75">{{cite book
|last = Wilson
|first = Leslie B.
|title = Comparative Programming Languages, Second Edition
|publisher = Addison-Wesley
|year = 1993
|pages = 75
|isbn = 0-201-56885-3
}}</ref> Pendeklarasian meliputi pendeklarasian variabel serta tipe data atas variabel tersebut, contoh: <code> var x: integer; </code> Penggunaan ekpresi operasi aritmatis yang menghasilkan nilai, contoh: <code> 2 + 2 </code> menghasilkan nilai <code>4</code>. Dan perintah yang melingkupi pendelegasian nilai atas hasil dari operasi aritmatis tersebut ke dalam sebuah variabel, contoh: <code> x := 2 + 2; if x = 4 then lakukan_sesuatu(); </code> Salah satu bentuk kritik atas implementasi imperatif ini adalah efek samping yang timbul atas pendelegasian perintah terhadap variabel yang berada di luar cakupan dari fungsi tersebut atau lebih dikenal sebagai ''non-local variable''.<ref name="cpl-ch9-213">{{cite book
|last = Wilson
|first = Leslie B.
|title = Comparative Programming Languages, Second Edition
|publisher = Addison-Wesley
|year = 1993
|pages = 213
|isbn = 0-201-56885-3
}}</ref>
 
Program yang ditulis dengan bahasa deklaratif meliputi sejumlah properti yang harus dipenuhi untuk mendapatkan suatu bentuk hasil tertentu. Properti tersebut tidak mencerminkan suatu gambaran atas proses kerja suatu program namun merupakan suatu bentuk deklarasi relasional matematis atas sejumlah objek melaui properti-propertinya. Dua bagian utama atas pemrograman deklaratif adalah [[Pemrograman Fungsional|bahasa pemrograman fungsional]] dan [[pemrograman logikal|bahasa pemrograman logikal]]. Prinsip dasar dibalik bahasa pemrograman fungsional ([[Haskell]]) adalah mencegah timbulnya efek samping seperti yang terdapat pada model pemrograman imperatif sehingga membuatnya lebih mudah untuk digunakan membuat program yang melakukan sejumlah operasi matematis.<ref name = "cpl-ch9-213"/> Sementara itu, prinsip dari sebuah bahasa pemrograman logikal ([[Prolog]]) adalah mendefinisikan permasalahan yang hendak diselesaikan, tujuan yang hendak dicapai, dan membiarkan sistem melakukan analisis atas detail solusi terhadap permasalahan tersebut.<ref name="cpl-ch10-244">{{cite book
|last = Wilson
|first = Leslie B.
|title = Comparative Programming Languages, Second Edition
|publisher = Addison-Wesley
|year = 1993
|pages = 244
|isbn = 0-201-56885-3
}}</ref> Tujuan utama atas sebuah program didefinisikan dengan cara membuat sejumlah tujuan-tujuan yang lebih kecil, kemudian pada tiap-tiap tujuan tersebut secara lebih lanjut didefinisikan tujuan-tujuan lain yang lebih kecil lagi, dan begitu seterusnya. Jika suatu arahan tujuan yang didefinisikan gagal digunakan untuk menemukan solusi atas suatu permasalahan, maka arahan tujuan anakan yang lebih kecil akan di telusuri ulang, dan arahan lainnya akan diujicobakan.
 
Baris 91:
== Eksekusi dan penyimpanan ==
Sebuah program komputer biasanya akan disimpan terlebih dahulu dalam memori utama ([[RAM]]) komputer sebelum dijalankan yang biasanya dilakukan oleh [[sistem operasi]]. Prosesor kemudian akan mengeksekusi program tersebut, instruksi demi instruksi sampai program tersebut diterminasi. Sebuah program yang tengah dieksekusi oleh prosesor dinamakan sebagai [[proses (komputasi)|proses]].<ref name="osc-ch4-97">{{cite book
|last = Silberschatz
|first = Abraham
|title = Operating System Concepts, Fourth Edition
|publisher = Addison-Wesley
|year = 1994
|pages = 97
|isbn = 0-201-50480-4
}}</ref> Terminasi ataupun penghentian eksekusi sebuah program biasanya terjadi baik karena permintaan dari pengguna, interupsi pengguna, kesalahan atas program itu sendiri, ataupun kesalahan atas perangkat keras yang digunakan.
 
Baris 103:
[[Berkas:USB flash drive.JPG|thumb|230px|left|[[microcontroller]] di sebelah kanan dari [[USB flash drive]] di atas dikontrol melalui sebuah program terpancang.]]
Beberapa program komputer tertentu dipancangkan langsung pada perangkat kerasnya sebagai program yang dipanggil untuk kebutuhan identifikasi serta inisialisasi atas berbagai aspek untuk memastikan perangkat keras tersebut berfungsi.<ref name="osc-ch2-p30">{{cite book
|last = Silberschatz
|first = Abraham
|title = Operating System Concepts, Fourth Edition
|publisher = Addison-Wesley
|year = 1994
|pages = 30
|isbn = 0-201-50480-4
}}</ref> Saat proses inisialisasi tersebut, program terpancang tersebut akan dipanggil oleh sistem operasi, program terpancang tersebut kemudian akan menjembatani penggunaan perangkat keras tersebut sehingga sistem operasi dapat menggunakannya dengan baik.<ref name="sco-ch1-p11">{{cite book
|last = Tanenbaum
|first = Andrew S.
|title = Structured Computer Organization, Third Edition
|publisher = Prentice Hall
|year = 1990
|pages = 11
|isbn = 0-13-854662-2
}}</ref>
 
Baris 123:
[[Berkas:Dg-nova3.jpg|thumb|230px|right|pengalih untuk input manual pada sebuah komputer Data General Nova 3]]
Program komputer awalnya diinput secara manual ke [[prosesor]] utama dengan memanfaatkan sejumlah pengalih sebagai representasi atas instruksi yang atas status konfigurasi on/off. Setelah menetapkan konfigurasi tersebut, tombol eksekusi akan ditekan. Proses ini kemudian dilakukan secara iteratif. Program komputer dalam sejarahnya pernah juga ditulis melalui ''paper tape' atau ''punched cards''. Setelah dimasukkan dan alamat awal eksekusi telah dimasukkan, tombol eksekusi akan ditekan.<ref name="osc-ch1-p6">{{cite book
|last = Silberschatz
|first = Abraham
|title = Operating System Concepts, Fourth Edition
|publisher = Addison-Wesley
|year = 1994
|pages = 6
|isbn = 0-201-50480-4
}}</ref>
 
Baris 137:
== Eksekusi simultan ==
Umumnya [[sistem operasi]] yang ada saat ini sudah mendukung pemanfaatan [[multitasking]] yang memungkinkan beberapa program komputer dijalankan pada saat yang bersamaan di sebuah komputer. Untuk dapat menjalankan beberapa program tersebut pada saat yang bersamaan, sistem operasi memanfaatkan mekanisme penjadualan proses yang merupakan suatu mekanisme yang akan mengatur pengalihan prosesor dalam melakukan pemrosesan sehingga beberapa program komputer tersebut dapat berinteraksi dengan pengguna saat dijalankan.<ref name="osc-ch4-100">{{cite book
|last = Silberschatz
|first = Abraham
|title = Operating System Concepts, Fourth Edition
|publisher = Addison-Wesley
|year = 1994
|pages = 100
|isbn = 0-201-50480-4
}}</ref> Di sisi perangkat keras yang digunakan, prosesor modern saat ini umumnya telah mendukung beberapa core prosesor yang dipancangkan sebagai sebuah prosesor yang memungkinkannya menjalankan beberapa program sekaligus.<ref name="mcore">{{cite book
|last = Akhter
|first = Shameem
|title = Multi-Core Programming
|publisher = Richard Bowles (Intel Press)
|year = 2006
|pages = 11–13
|isbn = 0-9764832-4-6
}}</ref>
 
Baris 165:
{{refbegin}}
* {{cite book
|last = Knuth
|first = Donald E.
|title = The Art of Computer Programming, Volume 1, 3rd Edition
|year = 1997
|publisher = Addison-Wesley
|location = Boston
|isbn = 0-201-89683-4
}}
* {{cite book