Pemrograman
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.
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 [9] [10] (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.
Kata lain
Pemrograman adalah mengubah suatu masalah yang dapat dimengerti oleh
komputer dan dapat dipecahkan oleh komputer.
Persyaratan kualitas
Apapun pendekatan pengembangan perangkat lunak mungkin, program akhir
harus memenuhi beberapa sifat mendasar. Properti berikut adalah di antara yang
paling relevan:
- Efisiensi / kinerja: jumlah sumber daya sistem program yang
mengkonsumsi waktu proses, ruang memori, perangkat bawahseperti disk,
bandwidth jaringan dan bahkan sampai batas tertentu interaksi dari
pemakai): semakin sedikit, semakin baik. Ini juga termasuk pembuangan
benar beberapa sumber, seperti membersihkan file-file sementara dan tidak
adanya kebocoran
memori.
- Reliabilitas: seberapa sering hasil dari sebuah program sudah
benar. Hal ini tergantung pada kebenaran konseptual algoritma, dan
pemrograman minimisasi kesalahan, seperti kesalahan dalam manajemen sumber
daya (misalnya, buffer overflows dan ras kondisi) dan kesalahan logika
(seperti pembagian dengan nol).
- Kekokohan: seberapa baik program masalah mengantisipasi bukan
karena kesalahan programmer. Ini termasuk situasi seperti salah, tidak
pantas atau merusak data, tidak tersedianya sumber daya yang dibutuhkan
seperti memori, sistem operasi layanan dan koneksi jaringan, dan kesalahan
pengguna.
- Kegunaan: yang ergonomi sebuah program: kemudahan dengan mana
seseorang dapat menggunakan program untuk tujuan, atau dalam beberapa
kasus bahkan tujuan tak terduga. Isu-isu tersebut dapat membuat atau
menghancurkan kesuksesan bahkan tanpa masalah lain. Hal ini melibatkan
berbagai tekstual, grafis dan kadang-kadang elemen-elemen perangkat keras
yang meningkatkan kejelasan, intuitif, kekompakan dan kelengkapan program
antarmuka pengguna.
- Portabilitas: kisaran perangkat keras komputer dan platform sistem
operasi yang kode sumber dari program dapat dikompilasi / ditafsirkan dan
lari. Hal ini tergantung pada perbedaan-perbedaan dalam fasilitas
pemrograman yang disediakan oleh platform yang berbeda, termasuk hardware
dan sistem operasi sumber daya, perilaku yang diharapkan dari hardware dan
sistem operasi, dan ketersediaan platform compiler tertentu (dan
kadang-kadang perpustakaan) untuk bahasa dari source code.
- Kemampu-rawatan: kemudahan dengan sebuah program yang dapat
dimodifikasi oleh pengembang sekarang atau pada masa mendatang dalam
rangka untuk membuat perbaikan atau penyesuaian, memperbaiki bug dan
lubang keamanan, atau disesuaikan dengan lingkungan baru. Praktek yang
baik selama pengembangan awal membuat perbedaan dalam hal ini. Kualitas
ini mungkin tidak secara langsung jelas bagi pengguna akhir tetapi dapat
secara signifikan memengaruhi nasib sebuah program jangka panjang.
==Kompleksitas algoritma==
Bidang akademik dan praktik teknik pemrograman komputer yang baik
terutama berkaitan dengan menemukan dan menerapkan algoritma yang paling
efisien untuk suatu masalah kelas. Untuk tujuan ini, algoritma diklasifikasikan
menjadi perintah dengan menggunakan apa yang disebut notasi Big O, O (n), yang
mengungkapkan penggunaan sumber daya, seperti waktu eksekusi atau pemakaian
memori, dalam hal ukuran sebuah input. Ahli programmer yang akrab dengan
berbagai mapan algoritma dan kompleksitas masing-masing dan menggunakan
pengetahuan ini untuk memilih algoritma yang paling cocok dengan keadaan.
Metodologi
Langkah pertama dalam sebagian besar proyek-proyek pengembangan
perangkat lunak formal adalah analisis persyaratan, diikuti dengan pengujian
untuk menentukan model nilai, pelaksanaan, dan kegagalan penghapusan (debug).
Terdapat banyak pendekatan yang berbeda untuk masing-masing tugas. Salah satu
pendekatan yang populer untuk analisis kebutuhan adalah Kasus Gunakan analisis.
Teknik model populer meliputi Object-Oriented Analysis and Design (OOAD)
dan Model-Driven Architecture (MDA). The Unified Modeling Language (UML) adalah
sebuah notasi yang digunakan untuk kedua OOAD dan MDA.
Teknik yang sama digunakan untuk desain database adalah
Entity-Relationship Modeling (ER Modeling).
Pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau
prosedural), fungsional bahasa, dan logika bahasa.
Mengukur pemakaian bahasa
Sangat sulit untuk menentukan apa yang paling populer bahasa pemrograman
modern. Beberapa bahasa yang sangat populer untuk jenis aplikasi tertentu
(misalnya, COBOL masih kuat di pusat data perusahaan, sering pada mainframe
besar, FORTRAN dalam aplikasi teknik, bahasa scripting dalam pengembangan web,
dan C dalam aplikasi embedded), sementara beberapa bahasa teratur digunakan
untuk menulis berbagai macam aplikasi.
Metode untuk mengukur popularitas bahasa pemrograman meliputi:
menghitung jumlah iklan lowongan pekerjaan yang menyebutkan bahasa [10], jumlah
buku-buku pengajaran bahasa yang dijual (overestimates ini pentingnya bahasa
baru), dan perkiraan jumlah baris yang ada kode yang ditulis dalam bahasa
(meremehkan ini jumlah pengguna bahasa bisnis seperti COBOL).
Debugging
Debugging adalah tugas yang sangat penting dalam proses pengembangan
perangkat lunak, karena program yang salah dapat memiliki konsekuensi yang
signifikan bagi penggunanya. Beberapa bahasa yang lebih rentan terhadap
beberapa jenis kesalahan karena mereka tidak memerlukan spesifikasi kompiler
untuk melakukan pengecekan sebanyak bahasa lainnya. Penggunaan alat analisis
statis dapat membantu mendeteksi beberapa kemungkinan masalah.
Debug sering dilakukan dengan IDE seperti Visual Studio, NetBeans, dan
Eclipse. Standalone debugger seperti gdb juga digunakan, dan ini kurang sering
menyediakan lingkungan visual, biasanya menggunakan baris perintah.
Bahasa pemrograman
Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda
(disebut paradigma pemrograman). Pilihan bahasa yang digunakan adalah tunduk
pada banyak pertimbangan, seperti kebijakan perusahaan, kesesuaian untuk tugas,
ketersediaan pihak ketiga paket, atau keinginan individunya. Idealnya, bahasa
pemrograman yang paling cocok untuk tugas yang dihadapi akan dipilih. Trade-off
dari ideal ini melibatkan cukup menemukan programmer yang tahu bahasa untuk
membangun sebuah tim, ketersediaan compiler untuk bahasa, dan efisiensi dengan
program-program yang ditulis dalam bahasa tertentu mengeksekusi.
Beberapa bahasa pemrograman adalah:
Allen Downey, dalam bukunya How To Think Like A Computer Scientist, menulis:
Rincian terlihat berbeda dalam berbagai
bahasa, tetapi beberapa petunjuk dasar muncul di hampir setiap bahasa:
* Input: Get data dari keyboard, file,
atau beberapa perangkat lain.
* Output: Display data pada layar atau
mengirim data ke file atau perangkat lain.
* Berhitung: Lakukan operasi aritmatika
dasar seperti penjumlahan dan perkalian.
* Bersyarat eksekusi: Periksa kondisi
tertentu dan melaksanakan urutan sesuai pernyataan.
* Pengulangan: Lakukan beberapa tindakan
berulang-ulang, biasanya dengan beberapa variasi.
Banyak bahasa komputer menyediakan mekanisme untuk memanggil fungsi yang
disediakan oleh perpustakaan. Menyediakan fungsi-fungsi di perpustakaan
mengikuti konvensi runtime yang sesuai (misalnya, metode lewat argumen), maka
fungsi-fungsi ini dapat ditulis dalam bahasa lainnya.
makasih gan artikelnya mampir jga iya di blog aku
BalasHapustugas-komputerku.blogspot.com