- PROGRAM  : Merupakan himpunan atau kumpulan instruksi tertulis yang dibuat oleh  programer atau suatu bagian executable dari suatu software.
- PEMROGRAMAN  : Suatu kumpulan urutan perintah ke komputer untuk mengerjakan   sesuatu, dimana instruksi tersebut menggunakan bahasa yang dimengerti oleh komputer atau dikenal dengan bahasa pemrograman.

-DATA  : Bahan mentah yang akan diolah menjadi informasi sehingga  dapat dipergunakan 
         oleh user atau pemakai.
Tipe data yang biasa digunakan adalah :
1. Tipe Data Dasar : merupakan tipe data primitif yang tidak terstruktur yang didefinisikan
                        oleh bahasa pemrograman.
    Tipe data dasar dibagi menjadi lima bagian yaitu :
    a. Tipe Data Numerik : disetiap bahasa pemrograman dapat dipastikan ada tipe data 
        numerik yaitu menyimpan data berupa angka.
        - Integer   : merupakan bilangan bulat positif dan negatif
        - Subrange  : merupakan sebuah subtype dari tipe data integer dan     terdiri dari urutan nilai-nilai integer dalam range yang     tebatas.
        - Floating-point Real   : biasa disingkat dan disebut tipe data riil.
        - Fixed-point Real  : Bilangan fixwd-pont direpresentasikan dengan urutan digit     yang mempunyai panjang tetap dengan titik desimal     diposisikan ditempat yang diberikan antara dua digit.
        - Lain-lain  : Tipe data lainnya adalah bilangan kompleks dan bilangan
    rational.
    b. Enumerasi  : adalah suatu urutan list dari nilai-nilai yang berbeda.
    c. Boolean  : tipe data untuk merepresentasikan True atau False.
    d. Character  : tipe data untuk menyimpan rangkaian karakter.
    e. Internationalization : disebut I18N
2. Tipe Data Terstruktur : merupakan tipe data campuran dari berbagai tipe data dasar,
            contohnya array, record, string, list dan file.
3. Tipe Data didefinisikan oleh Pemakai : tipe data ini biasanya disebut Enumerasi.
4. Tipe Data Penunjuk : contoh tipe data penunjuk adalah pointer.

-Prinsip-prinsip Desain Bahasa Pemrograman
a. Clarity, Simplicity dan Unity
    Bahasa pemrograman harus dapat menolong programer untuk membuat suatu desain
    program jauh sebelum programmer melakukan coding.
    Kemudahan, kesederhanaan dan kesatuan merupakan suatu kombinasi yang membantu
    programmer mengembangkan suatu algoritma sehingga algoritma yang dihasilkan
    mempunyai kompleksitas yang rendah.
b. Orthogonality
    Orthogonality menunjuk kepada suatu atribut yang dapat dikombinasikan dengan beragam
    fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat
    digunakan.
c. Kewajaran untuk Aplikasi
    Bahasa pemrograman membutuhkan syntax yang tepat/cocok yang digunaka pada
    struktur program untuk merefleksikan struktur logika yang melandasi suatu algoritma.
d. Mendukung Abstraksi

    Abstraksi merupakan suatu hal yang substansial bagi programmer untuk membuat
    suatu solusi dari masalah yang dihadapi. Kemudian abstraksi tersebut dapat dengan
    mudah diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa
    pemrograman.
e. Kemudahan untuk Verifikasi Program
    Verifikasi program merupakan hal penting bagi sebuah program karena dengan
    verifikasi yang mudah maka suatu program akan dengan mudah dibangun dan 
    dikembangkan.
f. Lingkungan Pemrograman
   Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan
   lengkap akan memudahkan programmer  untuk mengimplementasikan abstraksi
   yang sudah disusunnya.
g.Portabilitas Program
    Salah satu kriteria penting untuk proyek pemrograman adalah kemudahan program
    yang sudah jadi untuk dipindah-pindahkan dari komputer yang digunakan untuk
    membuat dan mengembangkan ke komputer lain yang akan menggunakannya.
h. Biaya Penggunaan
    Biaya merupakan elemen penting dalam mengevaluasi suatu bahasa         pemrograman.
    Ada beberapa biaya yang dapat diukur yaitu :
    1. Biaya Eksekusi Program
    2. Biaya Translasi/kompilasi Program
    3. Biaya Penciptaan, Testing dan Penggunaan Program
    4. Biaya Pemeliharaan Program

Keberhasilan suatu program tidak terlepas dari persiapan-persiapan yang dilakukan,langkah-langkah yang harus dilakukan dalam membuat program, yaitu sebagai berikut:
1. Menganalisa dan memahami permasalahan yang ada, kemudian mengembangkan suatu urutan proses logika untuk mendefinisikan masalah tersebut kedalam algoritma.
2. Merancang pemecahan masalah dengan menentukan data apa yang diperlukan sebagai input dan apa saja yang akan dihasilkan sebagai output dari program yang dibuat.
3. Program algoritma yang sudah dibuat diterjemahkan kedalam bentuk statement-statement yang sesuai dengan bahasa pemprograman yang akan dipergunakan.
4. Melakukan pengujian terhadap program dan mengoreksi apakah program tersebut sudah benar dan bebas dari unsur kesalahan, atau masih harus diperbaiki agar mendapat hasil keluaran yang sesuai dengan kebutuhannya.
5. Melakukan pendokumentasian program sebagai cadangan (back up), proses ini dianggap penting dilakukan sebagai upaya pemeliharaan dan pengembangan program.
Konsep IPO dikembangkan mejadi :
Originating --> input - -> proses - -> Output --> Distribution --> Storage

Originating 
Berhubungan dengan pengumpulan data yang biasanya merupakan pencatatan data kedokumen dasar. Setelah dikumpulkan dilakukan proses input.

Input
Tahapan ini merupakan proses pemasukan data kedalam proses komputer melalui peralatan input.

Proses
Tahap ini merupakan proses pengolahan data dari data yang sudah diinput berupa proses menghitung membandingkan, mengurutkan, mengklasifikasikan, mengendalikan dan mencari di storage.

Output
Tahap ini merupakan proses untuk menghasilkan keluaran dari proses pengolahan data ke peralatan output berupa informasi (monitor, speaker, dsb)

Distribution
Tahap ini merupakan proses penyebaran informasi kepada pihak-pihak yang berhak dan membutuhkan informasi.

Storage
Tahap ini merupakan perekaman hasil pengolahan data storage yang nantinya dapat dipergunakan untuk input proses selanjutnya