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.