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 (programmer). 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 (run time), atau memori.
Sejarah Pemrograman
Mekanisme Antikythera
dari Yunani kuno adalah kalkulator menggunakan persneling dari berbagai ukuran
dan konfigurasi untuk menentukan operasi, yang dilacak siklus Metonik masih
digunakan di bulan-ke-surya kalender, dan yang konsisten untuk menghitung
tanggal olimpiade. Al-Jazari dibangun Automata diprogram pada tahun 1206. Salah
satu sistem yang digunakan dalam perangkat ini adalah penggunaan pasak dan Cams
ditempatkan ke drum kayu di lokasi tertentu, yang secara berurutan akan memicu
tuas yang pada gilirannya dioperasikan instrumen perkusi. Output dari perangkat
ini adalah drumer kecil bermain berbagai ritme dan pola drum. The Jacquard
Loom, Joseph Marie Jacquard yang dikembangkan pada tahun 1801, menggunakan
serangkaian karton kartu dengan menekan lubang di dalamnya. Pola lubang pola
yang mewakili alat tenun harus mengikuti menenun kain. Alat tenun bisa
menghasilkan tenun yang sama sekali berbeda dengan menggunakan kumpulan kartu
yang berbeda. Charles Babbage mengadopsi penggunaan kartu menekan sekitar tahun
1830 untuk mengendalikan Analytical Engine. Program komputer pertama ditulis
untuk Analytical Engine oleh matematikawan Ada Lovelace untuk menghitung urutan
Bilangan Bernoulli. Sintesis perhitungan numerik, operasi dan output
telah ditentukan, bersama dengan cara untuk mengatur dan masukan instruksi
dengan cara yang relatif mudah bagi manusia untuk hamil dan menghasilkan,
menyebabkan perkembangan modern pemrograman komputer. Pengembangan pemrograman
komputer dipercepat melalui Revolusi Industri. Pada akhir 1880-an, Herman
Hollerith menemukan rekaman data pada media yang kemudian dapat dibaca oleh
mesin. Sebelum menggunakan mesin dibaca dari media, di atas, telah untuk
kontrol, bukan data. "Setelah beberapa percobaan awal dengan kertas pita,
ia menetap di kartu menekan ..." Untuk memproses kartu menekan ini,
pertama kali dikenal sebagai "kartu Hollerith" dia menciptakan
tabulator, dan mesin keypunch. Ketiga penemuannya dasar dari industri
pengolahan informasi modern. Pada tahun 1896 ia mendirikan Tabulating Machine
Company (yang kemudian menjadi inti dari IBM). Penambahan panel kontrol
(plugboard) ke 1906 Tipe I Tabulator memungkinkannya untuk melakukan pekerjaan
yang berbeda tanpa harus secara fisik dibangun kembali. Pada akhir 1940-an, ada
berbagai mesin panel kontrol diprogram, disebut catatan unit peralatan, untuk
melakukan pengolahan data tugas.
Data dan instruksi dapat disimpan pada
kartu punched eksternal, yang disimpan dalam rangka dan disusun dalam deck.
Penemuan arsitektur von Neumann memungkinkan program komputer untuk disimpan
dalam memori komputer. Program awal harus susah payah dibuat dengan menggunakan
instruksi (operasi dasar) dari mesin tertentu, sering kali dalam notasi biner.
Setiap model komputer mungkin akan menggunakan instruksi yang berbeda (bahasa
mesin) untuk melakukan tugas yang sama.
Kemudian, perakitan
bahasa tersebut dikembangkan yang memungkinkan programmer menentukan setiap instruksi
dalam format teks, singkatan memasukkan kode untuk setiap operasi, bukan
menetapkan sebuah nomor dan alamat dalam bentuk simbolik (misalnya, ADD X,
JUMLAH). Memasuki sebuah program dalam bahasa assembly biasanya lebih nyaman,
lebih cepat, dan kurang rentan terhadap kesalahan manusia daripada menggunakan
bahasa mesin, tetapi karena bahasa assembly adalah sedikit lebih dari satu
notasi yang berbeda untuk bahasa mesin, setiap dua mesin dengan instruksi yang
berbeda set juga memiliki perakitan yang berbeda bahasa. Pada tahun 1954,
FORTRAN diciptakan, melainkan tingkat pertama bahasa pemrograman tinggi untuk
memiliki implementasi fungsional, dibandingkan dengan hanya desain di atas
kertas (Sebuah bahasa tingkat tinggi adalah, dalam istilah yang sangat umum,.
bahasa pemrograman yang memungkinkan programmer untuk menulis program dalam
istilah yang lebih abstrak dari instruksi bahasa assembly, yaitu pada tingkat
abstraksi "lebih tinggi" daripada bahasa assembly.) Ini memungkinkan
programmer untuk menentukan perhitungan dengan memasukkan formula secara
langsung (misalnya Y = X * 2 + 5 * X + 9). Program teks, atau sumber, diubah
menjadi instruksi mesin menggunakan program khusus yang disebut kompilator,
yang diterjemahkan program FORTRAN ke dalam bahasa mesin. Bahkan, nama FORTRAN
adalah singkatan dari "Formula Translation". Banyak bahasa lainnya
dikembangkan, termasuk beberapa program untuk komersial, seperti COBOL. Program
itu sebagian besar masih masuk menggunakan kartu punched atau pita kertas. (Lihat
pemrograman komputer di era kartu punch). Pada akhir 1960-an, perangkat
penyimpanan data dan terminal komputer menjadi cukup murah bahwa program dapat
dibuat dengan mengetikkan langsung ke dalam komputer. Teks editor tersebut
dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh
lebih mudah dibandingkan dengan kartu berlubang. (Biasanya, kesalahan dalam
meninju kartu berarti bahwa kartu harus dibuang dan yang baru menekan untuk
menggantikannya.) Ketika waktu telah berkembang, komputer telah membuat
lompatan raksasa di bidang kekuatan prosesor. Ini telah membawa bahasa
pemrograman baru yang lebih disarikan dari hardware. Meskipun bahasa tingkat
tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan
kecepatan komputer modern telah membuat penggunaan bahasa ini jauh lebih
praktis daripada di masa lalu. Bahasa ini semakin disarikan biasanya lebih
mudah untuk belajar dan memungkinkan programmer untuk mengembangkan aplikasi
jauh lebih efisien dan dengan kode sumber kurang. Namun, bahasa tingkat tinggi
masih praktis untuk beberapa program, seperti yang di mana tingkat rendah
kontrol perangkat keras diperlukan atau di mana kecepatan pemrosesan maksimum
adalah penting.
Sepanjang paruh kedua
abad kedua puluh, pemrograman adalah karier yang menarik di sebagian besar
negara maju. Beberapa bentuk pemrograman telah lepas pantai semakin tunduk pada
outsourcing (impor perangkat lunak dan jasa dari negara lain, biasanya dengan upah
rendah), membuat keputusan karir pemrograman di negara maju lebih rumit,
sementara meningkatkan peluang ekonomi di daerah kurang berkembang. Tidak jelas
seberapa jauh kecenderungan ini akan berlanjut dan seberapa dalam dampak akan
programmer upah dan kesempatan.
EmoticonEmoticon