Lompat ke isi

Pemrograman: Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
Ikhlasul Amal (bicara | kontrib)
k Perbaikan bahasa di pengantar.
Rafiqatul Ulya (bicara | kontrib)
kTidak ada ringkasan suntingan
 
(82 revisi perantara oleh 50 pengguna tidak ditampilkan)
Baris 1: Baris 1:
{{periksaterjemahan|date=2012}}
{{periksaterjemahan|date=2012}}
'''Pemrograman''' adalah proses menulis, menguji dan memperbaiki (''debug''), dan memelihara kode yang membangun suatu 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. Untuk melakukan pemrograman, diperlukan keterampilan dalam [[algoritma]], [[logika]], [[bahasa pemrograman]], dan pada banyak kasus, pengetahuan-pengetahuan lain seperti [[matematika]].
[[File:Programowanie ELWAT.jpg|thumb|Pemrograman]]'''Pemrograman''' atau '''penataolahan'''<ref>{{Cite web|title=Hasil Pencarian - KBBI Daring|url=https://kbbi.kemdikbud.go.id/entri/Tata%20olah|website=kbbi.kemdikbud.go.id|access-date=07-12-2022}}</ref> adalah proses menulis, menguji dan memperbaiki (''[[Pengawakutuan|debug]]''), dan memelihara kode yang membangun suatu program [[komputer]].<ref>[http://www.artikata.com/arti-374430-pemrograman.php]</ref> 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 [[Pengembangan perangkat lunak|pemrogram]]. Untuk melakukan pemrograman, diperlukan keterampilan dalam [[algoritme]], [[logika]], [[bahasa pemrograman]], dan pada banyak kasus, pengetahuan-pengetahuan lain seperti [[matematika]].


Pemrograman adalah suatu seni dalam menggunakan satu atau lebih [[algoritma]] yang saling berhubungan dengan menggunakan suatu [[bahasa pemrograman]] tertentu sehingga menjadi suatu program komputer. [[Bahasa pemrograman]] yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut [[paradigma pemrograman]].
Pemrograman adalah suatu seni dalam menggunakan satu atau lebih [[algoritme]] yang saling berhubungan dengan menggunakan suatu [[bahasa pemrograman]] tertentu sehingga menjadi suatu 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 ketiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi saat dijalankan (''run time'') atau memori yang digunakan.
Apakah memprogram perangkat lunak lebih merupakan [[seni]], [[ilmu]], atau [[teknik]] telah lama menjadi bahan perdebatan. Pemrogram yang baik biasanya menggabungkan ketiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi saat dijalankan (''run time'') atau memori yang digunakan.

== Pemrograman Kompetitif ==
== Pemrograman kompetitif ==
Pemrograman adalah bahan yang digunakan di berbagai kompetisi komputer di Indonesia maupun dunia. Di tingkat [[SMA]], contohnya, pemrograman dipertandingkan dalam [[Olimpiade Sains Nasional]] setiap tahun. Ketigapuluh peraih [[medali]] di [[Olimpiade Sains Nasional]] ini kemudian menjadi [[Tim Olimpiade Komputer Indonesia]], dan menempuh [[Pelatihan Nasional]] yang menyeleksi empat orang wakil untuk mengikuti Olimpiade Sains Internasional bidang Informatika (''International Olympiad in Informatics'') yang diadakan setiap tahun.
Pemrograman adalah bahan yang digunakan di berbagai kompetisi komputer di Indonesia maupun dunia. Di tingkat [[SMA]], contohnya, pemrograman dipertandingkan dalam [[Olimpiade Sains Nasional]] setiap tahun. Ketigapuluh peraih [[medali]] di [[Olimpiade Sains Nasional]] ini kemudian menjadi [[Tim Olimpiade Komputer Indonesia]], dan menempuh [[Pelatihan Nasional]] yang menyeleksi empat orang wakil untuk mengikuti Olimpiade Sains Internasional bidang Informatika (''International Olympiad in Informatics'') yang diadakan setiap tahun.


==Sejarah pemrograman==
== Sejarah pemrograman ==
Mekanisme Antikythera dari Yunani kuno adalah kalkulator menggunakan persneling dari berbagai ukuran dan konfigurasi untuk menentukan operasi, [3] yang dilacak siklus Metonik masih digunakan di bulan-ke-surya kalender, dan yang konsisten untuk menghitung tanggal olimpiade [4]. 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. [5] [6] 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. [7] 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.
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. Keluaran 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 keluaran 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 ..." [8] 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.
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 kendali, 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 kendali (''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 kendali diprogram, disebut catatan unit peralatan, untuk melakukan pengolahan data tugas.


Data dan instruksi dapat disimpan pada ''external punched card'', 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 pemrogram 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.
Data dan instruksi dapat disimpan pada kartu punched eksternal, yang disimpan dalam rangka dan disusun dalam deck.
Pada tahun 1954, FORTRAN diciptakan, melainkan tingkat pertama bahasa pemrograman tinggi untuk memiliki implementasi fungsional, dibandingkan dengan hanya rancangan di atas kertas (Sebuah bahasa tingkat tinggi adalah, dalam istilah yang sangat umum,. bahasa pemrograman yang memungkinkan pemrogram untuk menulis program dalam istilah yang lebih abstrak dari instruksi bahasa ''assembly'', yaitu pada tingkat abstraksi "lebih tinggi" daripada bahasa ''assembly''.) Ini memungkinkan pemrogram 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 ''punched card'' atau pita kertas. (Lihat pemrograman komputer pada era ''punch card''). Pada akhir 1960-an, perangkat penyimpanan data dan terminal komputer menjadi cukup murah bahwa program dapat dibuat dengan mengetikkan langsung ke dalam komputer. Penyunting teks 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.)
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.
Ketika waktu telah berkembang, komputer telah membuat lompatan raksasa di bidang kekuatan prosesor. Ini telah membawa bahasa pemrograman baru yang lebih disarikan dari perangkat keras. Meskipun bahasa tingkat tinggi biasanya dikenakan biaya ''overhead'' yang lebih besar, peningkatan kecepatan komputer modern telah membuat penggunaan bahasa ini jauh lebih praktis daripada pada masa lalu. Bahasa ini semakin disarikan biasanya lebih mudah untuk belajar dan memungkinkan pemrogram untuk mengembangkan aplikasi jauh lebih efisien dan dengan sedikit kode sumber. Namun, bahasa tingkat tinggi masih praktis untuk beberapa program, seperti di mana tingkat rendah kendali perangkat keras diperlukan atau di mana kecepatan pemrosesan maksimum itu penting.
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 pada 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.
Sepanjang separuh kedua abad ke-20, pemrograman adalah karier yang menarik di sebagian besar negara maju. Beberapa bentuk pemrograman telah semakin tunduk pada ''outsourcing'' atau urun daya (impor perangkat lunak dan jasa dari negara lain, biasanya dengan upah rendah), membuat keputusan karier 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 pemrogram upah dan kesempatan.
===Kata lain===
Pemrograman adalah mengubah suatu masalah yang dapat dimengerti oleh komputer dan dapat dipecahkan oleh komputer.


==Persyaratan kualitas==
== Persyaratan kualitas ==


Apapun pendekatan pengembangan perangkat lunak mungkin, program akhir harus memenuhi beberapa sifat mendasar. Properti berikut adalah di antara yang paling relevan:
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|kebocoran memori]].
* Efisiensi / Kinerja: Jumlah sumber daya sistem program yang mengkonsumsi waktu proses, ruang memori, perangkat bawah seperti [[cakram padat|cakram]], [[:en:network bandwidth|lebar pita jejaringan]] dan bahkan sampai batas tertentu interaksi dari pemakai): semakin sedikit, semakin baik. Ini juga termasuk pembuangan benar beberapa sumber, seperti membersihkan berkas-berkas sementara dan tidak adanya [[Kebocoran Memori|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).
* Keterandalan: Seberapa sering hasil dari sebuah program sudah benar. Hal ini tergantung pada kebenaran konseptual algoritme, dan pemrograman meminimisasi kesalahan, seperti kesalahan dalam manajemen sumber daya (misalnya, ''buffer overflows'' dan ras kondisi) dan kesalahan logika (seperti pembagian dengan nol).
* Kekokohan: seberapa baik program mengatasi masalah yang 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.
* Kekokohan: Seberapa baik program mengatasi masalah yang bukan karena kesalahan pemrogram. 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.
* 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.
* 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.
* 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. Praktik 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== [sunting]
== Kompleksitas algoritme ==
Bidang akademik dan praktik teknik pemrograman komputer yang baik terutama berkaitan dengan menemukan dan menerapkan algoritme yang paling efisien untuk suatu masalah kelas. Untuk tujuan ini, algoritme 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 pemrogram yang akrab dengan berbagai mapan algoritme dan kompleksitas masing-masing dan menggunakan pengetahuan ini untuk memilih algoritme yang paling cocok dengan keadaan.

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==


== 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.
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 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).
Teknik yang sama digunakan untuk rancangan pangkalan data adalah ''Entity-Relationship Modeling'' (ER Modeling).


Pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau prosedural), fungsional bahasa, dan logika bahasa.
Pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau prosedural), fungsional bahasa, dan logika bahasa.
==Mengukur pemakaian 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.

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 di aplikasi terbenam), 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).
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.


== ''Debugging'' ==
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.
''Debugging'' (pengawakutuan) 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 kompilator untuk melakukan pemeriksaan sebanyak bahasa lainnya. Penggunaan alat analisis statis dapat membantu mendeteksi beberapa kemungkinan masalah.
==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.
''Debug'' (awakutu) sering dilakukan dengan IDE seperti Visual Studio, NetBeans, dan Eclipse. ''Standalone debugger'' seperti gdb juga digunakan, dan ini kurang sering menyediakan lingkungan bervisual, 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'' atau untung rugi dari ideal ini melibatkan cukup menemukan pemrogram yang tahu bahasa untuk membangun sebuah tim, ketersediaan kompilator untuk bahasa, dan efisiensi dengan program-program yang ditulis dalam bahasa tertentu mengeksekusi.


Beberapa bahasa pemrograman adalah:
Beberapa bahasa pemrograman adalah:
Baris 75: Baris 76:
Rincian terlihat berbeda dalam berbagai bahasa, tetapi beberapa petunjuk dasar muncul di hampir setiap bahasa:
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.
* Masukan: Ambil data dari papan ketik, berkas, atau beberapa perangkat lain.
* Output: Display data pada layar atau mengirim data ke file atau perangkat lain.
* Keluaran: Tampilkan data pada layar atau mengirim data ke berkas atau perangkat lain.
* Berhitung: Lakukan operasi aritmatika dasar seperti penjumlahan dan perkalian.
* Berhitung: Lakukan operasi aritmetika dasar seperti penjumlahan dan perkalian.
* Bersyarat eksekusi: Periksa kondisi tertentu dan melaksanakan urutan sesuai pernyataan.
* Bersyarat eksekusi: Periksa kondisi tertentu dan melaksanakan urutan sesuai pernyataan.
* Pengulangan: Lakukan beberapa tindakan berulang-ulang, biasanya dengan beberapa variasi.
* Pengulangan: Lakukan beberapa tindakan berulang-ulang, biasanya dengan beberapa variasi.
Baris 83: Baris 84:
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.
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.


==Pemrogram / Programmer==
== Pemrogram ==
{{Main|Pemrogram}}
Artikel utama: Programmer
Lihat juga: Software pengembang dan Software engineer


Lihat juga: [[Pengembang perangkat lunak]] dan [[Rekayasa perangkat lunak|Perekayasa perangkat lunak]]
Pemrogram komputer adalah orang-orang yang menulis perangkat lunak komputer. Pekerjaan mereka meliputi:


Pemrogram komputer atau penata olah adalah orang-orang yang menulis perangkat lunak komputer. Pekerjaan mereka meliputi:
* Coding
* Kompilasi
* Dokumentasi
* Integrasi
* Pemeliharaan
* Persyaratan analisis
* Software arsitektur
* Software pengujian
* Spesifikasi
* Debugging


* Pengodean (''Coding'')
==Lihat pula==
* Kompilasi (''Compilation'')
* Dokumentasi (''Documentation'')
* Integrasi (''Integration'')
* Pemeliharaan (''Maintenance'')
* Analisis persyaratan (''Requirements analysis'')
* Arsitektur perangkat lunak (''Software architecture'')
* Pengujian perangkat lunak (''Software testing'')
* Spesifikasi (''Specification'')
* Pengawakutuan (''Debugging'')
* Pemurwarupaan (''Prototyping'')

== Lihat pula ==
Wikipedia Buku Wikipedia: Buku memiliki buku pada: Pemrograman
Wikipedia Buku Wikipedia: Buku memiliki buku pada: Pemrograman
Cari Wikiquote Wikiquote memiliki koleksi kutipan yang berkaitan dengan: Pemrograman
Cari Wikiquote Wikiquote memiliki koleksi kutipan yang berkaitan dengan: Pemrograman
Baris 107: Baris 110:
* Accu (organisasi)
* Accu (organisasi)
* Association for Computing Machinery
* Association for Computing Machinery
* Computer pemrograman di era kartu pons
* Computer pemrograman pada era kartu pons
* Hello world program
* Hello world program
* Daftar topik dasar pemrograman komputer
* Daftar topik dasar pemrograman komputer
Baris 116: Baris 119:


== Referensi ==
== Referensi ==
{{reflist}}

<!--
1. ^ Paul Graham (2003). Hacker dan Pelukis. http://www.paulgraham.com/hp.html. Diperoleh 2006/08/22.
1. ^ Paul Graham (2003). Hacker dan Pelukis. http://www.paulgraham.com/hp.html. Diperoleh 2006/08/22.
2. ^ Kenneth E. Iverson, originator dari bahasa pemrograman APL, percaya bahwa hipotesis Sapir-Whorf diterapkan pada bahasa komputer (tanpa benar-benar menyebutkan nama hipotesis). Penghargaan Turing ceramah-Nya, "Notasi sebagai alat berpikir", ini ditujukan untuk tema ini, menyatakan bahwa lebih kuat dibantu notasi berpikir tentang algoritma komputer. Iverson KE, "Notasi sebagai alat berpikir", Communications of the ACM, 23: 444-465 (Agustus 1980).
2. ^ Kenneth E. Iverson, originator dari bahasa pemrograman APL, percaya bahwa hipotesis Sapir-Whorf diterapkan pada bahasa komputer (tanpa benar-benar menyebutkan nama hipotesis). Penghargaan Turing ceramah-Nya, "Notasi sebagai alat berpikir", ini ditujukan untuk tema ini, menyatakan bahwa lebih kuat dibantu notasi berpikir tentang algoritme komputer. Iverson KE, "Notasi sebagai alat berpikir", Communications of the ACM, 23: 444-465 (Agustus 1980).
3. ^ New World Encyclopedia Online Edition New World Encyclopedia
3. ^ New World Encyclopedia Online Edition New World Encyclopedia
4. ^ Al-Jazari - the Mechanical Genius, MuslimHeritage.com
4. ^ Al-Jazari - the Mechanical Genius, MuslimHeritage.com
Baris 124: Baris 128:
6. ^ Fowler, Charles B. (Oktober 1967), "Museum of Music: A History of Mechanical Instrumen", Musik Pendidik Journal 54 (2): 45-49, DOI: 10.2307/3391092
6. ^ Fowler, Charles B. (Oktober 1967), "Museum of Music: A History of Mechanical Instrumen", Musik Pendidik Journal 54 (2): 45-49, DOI: 10.2307/3391092
7. ^ Columbia University Computing Sejarah - Herman Hollerith
7. ^ Columbia University Computing Sejarah - Herman Hollerith
-->
8. ^ Survei iklan Ayub menyebutkan bahasa tertentu>
{{Rekayasa perangkat lunak}}


[[Kategori:Pemrograman komputer| ]]
[[Kategori:Pemrograman komputer| ]]
[[Kategori:Pengembangan perangkat lunak]]

Revisi terkini sejak 4 November 2024 04.27

Pemrograman

Pemrograman atau penataolahan[1] adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun suatu program komputer.[2] 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. Untuk melakukan pemrograman, diperlukan keterampilan dalam algoritme, logika, bahasa pemrograman, dan pada banyak kasus, pengetahuan-pengetahuan lain seperti matematika.

Pemrograman adalah suatu seni dalam menggunakan satu atau lebih algoritme yang saling berhubungan dengan menggunakan suatu bahasa pemrograman tertentu sehingga menjadi suatu 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 menjadi bahan perdebatan. Pemrogram yang baik biasanya menggabungkan ketiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi saat dijalankan (run time) atau memori yang digunakan.

Pemrograman kompetitif

[sunting | sunting sumber]

Pemrograman adalah bahan yang digunakan di berbagai kompetisi komputer di Indonesia maupun dunia. Di tingkat SMA, contohnya, pemrograman dipertandingkan dalam Olimpiade Sains Nasional setiap tahun. Ketigapuluh peraih medali di Olimpiade Sains Nasional ini kemudian menjadi Tim Olimpiade Komputer Indonesia, dan menempuh Pelatihan Nasional yang menyeleksi empat orang wakil untuk mengikuti Olimpiade Sains Internasional bidang Informatika (International Olympiad in Informatics) yang diadakan setiap tahun.

Sejarah pemrograman

[sunting | sunting sumber]

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. Keluaran 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 keluaran 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 kendali, 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 kendali (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 kendali diprogram, disebut catatan unit peralatan, untuk melakukan pengolahan data tugas.

Data dan instruksi dapat disimpan pada external punched card, 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 pemrogram 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 rancangan di atas kertas (Sebuah bahasa tingkat tinggi adalah, dalam istilah yang sangat umum,. bahasa pemrograman yang memungkinkan pemrogram untuk menulis program dalam istilah yang lebih abstrak dari instruksi bahasa assembly, yaitu pada tingkat abstraksi "lebih tinggi" daripada bahasa assembly.) Ini memungkinkan pemrogram 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 punched card atau pita kertas. (Lihat pemrograman komputer pada era punch card). Pada akhir 1960-an, perangkat penyimpanan data dan terminal komputer menjadi cukup murah bahwa program dapat dibuat dengan mengetikkan langsung ke dalam komputer. Penyunting teks 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 perangkat keras. Meskipun bahasa tingkat tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan kecepatan komputer modern telah membuat penggunaan bahasa ini jauh lebih praktis daripada pada masa lalu. Bahasa ini semakin disarikan biasanya lebih mudah untuk belajar dan memungkinkan pemrogram untuk mengembangkan aplikasi jauh lebih efisien dan dengan sedikit kode sumber. Namun, bahasa tingkat tinggi masih praktis untuk beberapa program, seperti di mana tingkat rendah kendali perangkat keras diperlukan atau di mana kecepatan pemrosesan maksimum itu penting.

Sepanjang separuh kedua abad ke-20, pemrograman adalah karier yang menarik di sebagian besar negara maju. Beberapa bentuk pemrograman telah semakin tunduk pada outsourcing atau urun daya (impor perangkat lunak dan jasa dari negara lain, biasanya dengan upah rendah), membuat keputusan karier 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 pemrogram upah dan kesempatan.

Persyaratan kualitas

[sunting | sunting sumber]

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 bawah seperti cakram, lebar pita jejaringan dan bahkan sampai batas tertentu interaksi dari pemakai): semakin sedikit, semakin baik. Ini juga termasuk pembuangan benar beberapa sumber, seperti membersihkan berkas-berkas sementara dan tidak adanya kebocoran memori.
  • Keterandalan: Seberapa sering hasil dari sebuah program sudah benar. Hal ini tergantung pada kebenaran konseptual algoritme, dan pemrograman meminimisasi kesalahan, seperti kesalahan dalam manajemen sumber daya (misalnya, buffer overflows dan ras kondisi) dan kesalahan logika (seperti pembagian dengan nol).
  • Kekokohan: Seberapa baik program mengatasi masalah yang bukan karena kesalahan pemrogram. 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. Praktik 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 algoritme

[sunting | sunting sumber]

Bidang akademik dan praktik teknik pemrograman komputer yang baik terutama berkaitan dengan menemukan dan menerapkan algoritme yang paling efisien untuk suatu masalah kelas. Untuk tujuan ini, algoritme 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 pemrogram yang akrab dengan berbagai mapan algoritme dan kompleksitas masing-masing dan menggunakan pengetahuan ini untuk memilih algoritme yang paling cocok dengan keadaan.

Metodologi

[sunting | sunting sumber]

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 rancangan pangkalan data adalah Entity-Relationship Modeling (ER Modeling).

Pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau prosedural), fungsional bahasa, dan logika bahasa.

Mengukur pemakaian bahasa

[sunting | sunting sumber]

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 di aplikasi terbenam), 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

[sunting | sunting sumber]

Debugging (pengawakutuan) 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 kompilator untuk melakukan pemeriksaan sebanyak bahasa lainnya. Penggunaan alat analisis statis dapat membantu mendeteksi beberapa kemungkinan masalah.

Debug (awakutu) sering dilakukan dengan IDE seperti Visual Studio, NetBeans, dan Eclipse. Standalone debugger seperti gdb juga digunakan, dan ini kurang sering menyediakan lingkungan bervisual, biasanya menggunakan baris perintah.

Bahasa pemrograman

[sunting | sunting sumber]

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 atau untung rugi dari ideal ini melibatkan cukup menemukan pemrogram yang tahu bahasa untuk membangun sebuah tim, ketersediaan kompilator 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:
       * Masukan: Ambil data dari papan ketik, berkas, atau beberapa perangkat lain.
       * Keluaran: Tampilkan data pada layar atau mengirim data ke berkas atau perangkat lain.
       * Berhitung: Lakukan operasi aritmetika 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.

Pemrogram

[sunting | sunting sumber]

Lihat juga: Pengembang perangkat lunak dan Perekayasa perangkat lunak

Pemrogram komputer atau penata olah adalah orang-orang yang menulis perangkat lunak komputer. Pekerjaan mereka meliputi:

   * Pengodean (Coding)
   * Kompilasi (Compilation)
   * Dokumentasi (Documentation)
   * Integrasi (Integration)
   * Pemeliharaan (Maintenance)
   * Analisis persyaratan (Requirements analysis)
   * Arsitektur perangkat lunak (Software architecture)
   * Pengujian perangkat lunak (Software testing)
   * Spesifikasi (Specification)
   * Pengawakutuan (Debugging)
   * Pemurwarupaan (Prototyping)

Lihat pula

[sunting | sunting sumber]

Wikipedia Buku Wikipedia: Buku memiliki buku pada: Pemrograman Cari Wikiquote Wikiquote memiliki koleksi kutipan yang berkaitan dengan: Pemrograman Artikel utama: Daftar topik dasar pemrograman komputer

   * Accu (organisasi)
   * Association for Computing Machinery
   * Computer pemrograman pada era kartu pons
   * Hello world program
   * Daftar topik dasar pemrograman komputer
   * Daftar topik pemrograman komputer
   * Pemrograman paradigma
   * Software engineering
   * The Art of Computer Programming

Referensi

[sunting | sunting sumber]
  1. ^ "Hasil Pencarian - KBBI Daring". kbbi.kemdikbud.go.id. Diakses tanggal 07-12-2022. 
  2. ^ [1]