Pemrograman adalah proses menulis, menguji, dan memelihara kode komputer untuk menciptakan program komputer. Pemrograman melibatkan penggunaan bahasa pemrograman untuk menentukan serangkaian instruksi yang akan dieksekusi oleh komputer untuk mencapai tujuan tertentu. Proses ini melibatkan pemecahan masalah, logika, dan kreativitas untuk merancang solusi yang efisien dan efektif.
Bahasa pemrograman adalah alat yang digunakan untuk menulis kode komputer. Bahasa pemrograman memiliki sintaks dan aturan tertentu yang harus diikuti untuk membuat kode yang valid. Ada berbagai jenis bahasa pemrograman, mulai dari bahasa pemrograman tingkat rendah seperti bahasa rakitan, hingga bahasa pemrograman tingkat tinggi seperti Python, Java, C++, dan lainnya.
Pemrograman dapat digunakan untuk berbagai tujuan, termasuk pengembangan perangkat lunak, pengembangan situs web, analisis data, kecerdasan buatan, pengembangan permainan, dan banyak lagi. Pemrograman memungkinkan manusia untuk berkomunikasi dengan komputer dan menginstruksikannya untuk melakukan tugas-tugas tertentu.
Proses pemrograman melibatkan beberapa langkah, termasuk perencanaan, penulisan kode, pengujian, debugging, dan pemeliharaan. Pemrograman juga melibatkan penggunaan algoritma dan struktur data untuk merancang solusi yang efisien dan efektif.
Dengan kemajuan teknologi, pemrograman menjadi semakin penting dalam berbagai bidang, dan menjadi keterampilan yang sangat berharga. Kemampuan untuk memprogram komputer memungkinkan seseorang untuk menciptakan solusi inovatif, mengotomatiskan tugas-tugas, dan memanfaatkan kekuatan komputasi untuk memecahkan masalah kompleks.
Algoritma adalah sekumpulan langkah rinci yang ditujukan untuk komputer dalam menyelsaikan suatu masalah. Algotima dibuat pada tahapan peracangan program. Algoritma memiliki peranan penting untuk menghubungkan antara keluaran yang dikehendaki dan masukan-masukan yang tersedia.
Algoritma berasal dari nama seorang ilmuwan Arab Abu Ja'far Muhammad ibnu Musa al Khuwarizmi seorang penulis kitab Al Jabar Wal Muqabala. Al Khuwarizmi dibaca orang barat menjadi algorism. Perubahan kata algorism menjadi algorithm disebabkan dikelirukannya kata algorism dengan arithmetic, sehingga akhiran-sm berubah menjadi-thm, dalam bahasa Indonesia, kata algorithm menjadi algoritma.
Sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu struktur runtunan (sequence), struktur pemilihan (selection) dan struktur pengulangan (repetition). Runtunan terdiri satu atau lebih instruksi yang dikerjakan secara berurutan dengan urutannya dalam algoritma. Pemilihan yaitu instruksi yang dikerjakan berdasarkan kondisi tertentu atau syarat tertentu dimana suatu kondisi atau syarat tersebut dapat bernilai benar atau salah. Intruksi akan dilaksanakan manakala kondisi atau syarat bernilai benar, dan suatu instruksi tidak akan dikerjakan apabila konsidi tidak terpenuhi. Pengulangan merupakan pengulangan sejumlah aksi yang sama sebanyak jumlah yang ditentukan atau kondisi yang diinginkan.
Karakteristik algoritma menurut Donal E. Knuth (dalam Munir), yaitu:
1. Finiteness (Keterbatasan) Algoritma harus berakhir setelah melakukan sejumlah langkah proses.
2. Definiteness (Kepastian) Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda.