Sama seperti seorang engineer yang ingin membangun rumah , ia butuh perencaan terlebih dahulu , seperti mengecek kondisi tanah , memilih material apa yang akan digunakan, serta seperti apa desain bangunan yang akan dibangung. Setelah direncanakan maka perlu dibangun fondasi terlebih dahulu. Sebuah rumah tidak dapat berdiri dengan baik tanpa adanya fondasi.
Bisa dimisalkan bahwa program adalah rumah , dan algoritma adalah fondasi fondasi nya atau material-material yang menyusun rumah tersebut. Bukan hanya dalam membangun rumah saja, namun hal ini berlaku umum bagi berbagai jeni pekerjaan. Sebuah product tidak akan berhasil tanpa ada desain produk sebelum produksinya.
Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.
sumber : https://www.quora.com/What-is-the-difference-between-algorithms-and-programming