DESAIN WEB

About Me

Minggu, 09 Desember 2012

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.

Selasa, 04 Desember 2012

MEMAHAMI BENTUK ULANG..AKHIR ULANG, ULANG..SAMPAI DAN TRANSLASI KE PROGRAM JAVA

Salah satu struktur pengulangan yang telah Anda pelajari sekilas, yaitu berupa ULANG..AKHIR-ULANG. Bentuknya seperti berikut :
            ULANG SELAMA kondisi
               Pernyataan1
              
               pernyataanN
            AKHIR-ULANG
Dalam hal ini, bagian pernyataan1 hingga pernyataanN akan dijalankan secara terus-menerus selama kondisi bernilai benar.
Bentuk seperti itu ditranslasikan ke Java menggunakan pernyataan while.
Bentuknya seperti berikut :
            while (kondisi) {
               Pernyataan_1;
              
               Pernyataan_n;
            }
Seandainya yang berada dalam tanda { } hanya terdapat satu pernyataan, pasangan tanda tersebut bisa dihilangkan. Contoh :
       while(kondisi)
            pernyataan;
Adapun bentuk
            ULANG
                  Pernyataan1
                 
                  PernyataanN
            SAMPAIkondisi
Diterjemahkan ke dalam Java melalui
            do
                  pernyataan_1;
                 
                  pernyataan_n;
            while(kondisi==false)
Pencarian (searching) merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data. Dalam kehidupan sehari-hari, seringkali kita berurusan dengan pencarian; misalnya untuk menemukan nomor telepon seseorang pada buku telepon atau mencari suatu istilah dalam kamus. Pada aplikasi komputer, pencarian kerap dilakukan; misalnya untuk mendapatkan data dari seseorang mahasiswa, mendapatkan informasi suatu kata dalam kamus digital atau nama perusahaan.

Untuk keperluan mencari data, terdapat beragam algoritma pencarian (search algorithm). Yang dimaksud dengan algoritma pencarian adalah “algoritma yang menerima sebuah argumen a dan mencoba untuk menemukan sebuah rekaman yang memiliki kunci a” (Tenenbaum dan Augenstein, 1981, hal. 425). Sebagai contoh, dikehendaki untuk mendapatkan mahasiswa dengan nomor 9834567. Hasilnya adalah rekaman yang berisi data mahasiswa tersebut; yang barangkali berisi nama, alamat, tanggal lahir, dan program studi. Dalam implementasinya, algoritma bisa jadi memberikan nilai balik berupa sebuah rekaman yang diperoleh, tetapi bisa pula hanya memberikan pointer yang menunjuk ke sebuah rekaman.
Pencarian dapat dilakukan terhadap data yang secara keseluruhan berada dalam memori komputer ataupun terhadap data yang berada dalam penyimpanan eksternal (hard disk). Pencarian yang dilakukan terhadap data yang berada dalam memori komputer dikenal dengan sebutan pencarian internal, sedangkan pencarian yang dilakukan pada media penyimpan eksternal disebut pencarian eksternal. Pencarian model pertamalah yang dibahas pada sub bab ini.

Catatan : Selain itu pencarian dapat dilakukan terhadap data yang tidak urut ataupun terhadap data yang sudah urut. Kedua model pencarian seperti itu akan dibahas.
Rekursi adalah proses pengulangan barang-barang dengan cara kesamaan diri. Sebagai contohnya, saat dua cermin berada paralel antara satu dengan yang lain, gambar yang tertangkap adalah suatu bentuk rekursi tak-terbatas. Istilah ini memiliki makna beragam bergantung kepada ragam disiplin mulai dari linguistik sampai logika. Penggunaan paling umum dari rekursi yaitu dalam matematika dan ilmu komputer, di mana ia mengacu kepada suatu metode mendefinisikan fungsi yang mana fungsi tersebut menggunakan definisinya sendiri. Secara spesifik hal ini mendefinisikan suatu instansi tak-terbatas (nilai fungsi), menggunakan ekpresi terbatas yang mana beberapa instansi bisa merujuk kepada instansi lainnya, tapi dengan suatu cara di mana tidak ada perulangan atau keterkaitan tak-terbatas dapat terjadi. Istilah ini juga digunakan secara umum untuk menjelaskan suatu proses pengulangan objek dengan cara kesamaan-diri.

Dalam matematika dan ilmu komputer, kelas dari objek atau metode memperlihatkan perilaku rekursif bila mereka dapat didefinisikan oleh dua properti berikut:
  1. Suatu kasus (atau beberapa kasus) dasar sederhana, dan
  2. Sejumlah aturan yang mengurangi kasus-kasus lainnya sampai ke kasus dasarnya.
Sebagai contoh, berikut ini adalah definisi rekursif dari leluhur seseorang:
  • Orang tua seseorang adalah leluhur seseorang (kasus dasar).
  • Orang tua dari suatu leluhur juga merupakan leluhur-nya (langkah rekursi).
Bilangan Fibonacci adalah contoh klasik dari rekursi:
  • Fib(0) adalah 0 [kasus dasar]
  • Fib(1) adalah 1 [kasus dasar]
  • Untuk semua integer n > 1: Fib(n) adalah (Fib(n-1) + Fib(n-2)) [definisi rekursif]
Banyak aksioma matematika berdasarkan aturan-aturan rekursif. Sebagai contohnya, definisi formal dari bilangan asli dalam teori himpunan berbunyi: 1 adalah bilangan asli, dan setiap bilangan asli memiliki sebuah suksesor, yang juga merupakan bilangan asli. Dengan kasus dasar ini dan aturan rekursif, seseorang dapat membuat himpunan dari semua bilangan asli.
Gambaran humornya berbunyi: "Untuk memahami rekursi, pertama anda harus memahami rekursi." Atau mungkin yang lebih akurat, dari Andrew Ploktin: "Jika anda telah mengetahui apa itu rekursi, cukup ingat jawabannya. Kalau tidak, cari orang yang berdiri paling dekat dengan Douglas Hofstadter selain anda; lalu tanya dia rekursi itu apa."
Objek matematika yang didefinisikan secara rekursif termasuk fungsi, himpunan, dan khususnya fraktal.


PENULISAN ALGORITMA UNTUK SUBRUTIN
Subrutin adalah kumpulan perintah yang ditujukan untuk menangani suatu tindakan dengan tujuan untuk memudahkan pembuatan program mengingat subrutin bisa dipanggil berkali-kali dalam suatu program. Subrutin melibatkan argument yang dipakai sebagai upaya untuk menyertakan suatu nilai dari luar.
Dalam bentuk algoritma, suatu subrutin ditulis dengan bentuk sebagai berikut :
            SUBRUTIN namaSubrutin(daftarParameter)
              Pernyataan1
              Pernyataan2
             
              PernyataanN
            AKHIR-SUBRUTIN
Dalam hal ini, bagian
            SUBRUTIN namaSubrutin(daftarParameter)
disebut dengan judul subrutin.
Sebuah subrutin dapat memberikan nilai balik ataupun tidak. Nilai balik adalah yang diberikan ke pemanggilnya. Nilai ini ditentukan melalui notasi seperti berikut :
            NILAI-BALIK nilai
Contoh :
            SUBRUTIN perolehKelilingKotak(panjang, lebar)
            Kelilingß 2 x (panjang, lebar)

               NILAI-BALIK keliling
            AKHIR-SUBRUTIN
Pada contoh di atas, perolehKelilingKotak adalah nama subrutin. Adapun panjang serta lebar disebut parameter. Parameter menyatakan bagian untuk berkomunikasi dengan pemanggil subrutin. Pada bagian pemanggil subrutin, bagian ini akan diisi dengan argument. Contoh :
     hasilß perolehKelilingKotak(10, 5)
Pada pemanggilan subrutin di atas, 10 dan 5 berkedudukan sebagai argumen.

SUBRUTIN PADA JAVA
Subrutin pada JAVA ditulis dalam bentuk metode, yang merupakan bagian dari kelas. Penggunaan metode pada JAVA membuat program menjadi sederhana. Kode tidak perlu ditulis berkali-kali jika terdapat keperluan yang sudah dicakup dalam metode tersebut. Sebagai contoh, untuk menghitung akar kuadrat suatu bilangan maka kita cukup memanggil, misalnya, seperti berikut :
            Math.sqrt(25)
            Math.sqrt(15)
Andai tidak ada metode sqrt()seperti itu, kode program akan menjadi panjang dan kompleks sekiranya terjadi operasi untuk memperoleh akar kuadrat beberapa kali.
Pada beberapa contoh yang akan dibahas, metode diimplementasikan seperti pada kelas Math.

Larik (Array) pada Java

Larik (Array) adalah sebuah  tipe data referance yang dapat menampung sejumlah komponen yang mempunyai tipe yang sama(primitif atau referensi).
Suatu larik mempunyai jumlah komponen yang banyaknya tetap. Komponen tersebut ditunjuk oleh suatu indek.
Mendefinisikan jumlah indeks harus bilangan bulat.
Deklarasi :
  1. nama-variabel = new tipe-data[jumlah indeks];
  2. tipe-data[] nama-variabel = new tipe-data[jumlah indeks];
  3. tipe-data[] nama-variabel = {komponen-1,…,komponen-n};
Contoh : int[] arr1
Kode di atas mendeklarasikan var array arr1 dengan tipe data int.
Array merupakan tipe data referensi dimana var ini sebenarnya hanya digunakan untuk menyimpan referensi dari lokasi array sebenarnya dimemori, karena itu kita harus mengalokasikan terlebih dahulu tempat dimemori sebelum dapat mengakses array ini dengan var tersebut
Pendeklarasian dari contoh di atas hanya mendeklarasikan suatu var array dengan tipe data int bernama arr1, namun tempat yang akan digunakan untuk menampung array itu sendiri belum dibuat dimemori.
Contoh :
  1. int[] arr1;
  2. arr1 = new int[10];
  3. Int[] arr2 = new int[20];
  4. int []arr3 = {3, 4, 5, 6};
Deskripsi No.1 : mendeklarasikan arr dengan var arr1 dan bertipe int.
Deskripsi No.2 : mengintansiasi sebuah array dengan var arr1 yang sebelumnya sudah dideklaraasikan, dengan kapasitas array 10
Deskripsi No.3 : mendeklarasikan sebuah array dengan var arr2, yang langsung diintansiasi dengan kapasitas array 20
Deskripsi No.4 : mendeklarasikan sebuah array dengan var arr3, dan lansung mendefinisikan komponen-komponen di dalmnya(3, 4, 5, 6)
Kita dapat memanipulasi array berdasarkan indeksnya, baik itu tambah, edit, hapus elemen, dan-lain-lain
  Tambah :
                                arr1[0] ß 10  (Algoritma)
                                arr1[0] = 10     (Java)
  Size :
                                arr1.length
int [] arr1  = new int[5];
·         Array ini mampu menampung 5 buah nilai int.
·         Tidak bisa mengakses array yang berada diluar indeksnya. Contoh : arr1[10]


Contoh Coding :

Algoritma merupakan langkah-langkah penyelesaian masalah. Langkah-langkah tersebut dapat berupa RUNTUNAN AKSI, PEMILIHAN/PERCABANGAN AKSI, dan PENGULANGAN AKSI. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Semua program yang ada di dunia ini pasti mengandung salah satu dari ketiga struktur ini. Jadi, sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu:
  1. Runtunan (sequence).
  2. Pemilihan/Percabangan (selection).
  3. Pengulangan (repetition/looping).

1. RUNTUNAN (SEQUENCE)
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Bila urutannya diubah, maka hasil akhir mungkin juga berubah.
2. PEMILIHAN/PERCABANGAN (SELECTION)
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Kondisi adalah persyaratan yang dapat bernilai benar atau salah. Dalam pemilihan dikenal beberapa struktur pemilihan, yaitu:
# If – then
Aksi hanya akan dilaksanakan apabila kondisi bernilai benar. Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak akan dilaksanakan.
Struktur Umum:
If kondisi then
Aksi
Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi (persyaratan) dipenuhi (bernilai benar), dan tidak memberikan pilihan aksi lain bila kondisi bernilai salah.
#If-then-else
Struktur pemilihan ini memberikan dua buah aksi yang akan dikerjakan tergantung pada nilai kondisinya.
Struktur umumnya:
If kondisi then
aksi 1
Else
aksi 2
Else artinya ”kalau tidak”. Bila kondisi benar, aksi 1 yang akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan.
Contoh:
If x > y then
Tulis x sebagai bilangan terbesar
Else
Tulis y sebagai bilangan terbesar
Contoh diatas adalah untuk menentukan nilai terbesar dari dua buah bilangan bulat, x dan y (andaikan x tidak sama dengan y).
#If-then-else if
Apabila pilihan aksi yang dilakukan lebih dari dua buah, maka struktur pilihannya menjadi lebih rumit, biasanya untuk pemilihan seperti ini disebut pemilihan bersarang.
Contoh: menentukan bilangan terbesar dari tiga buah bilangan: x, y, z:
If x > y then
If x > z then
Tulis x sebagai bilangan terbesar
Else
Tulis z sebagai bilangan terbesar
Else
If y > z then
Tulis y sebagai bilangan terbesar
Else
Tulis z sebagai bilangan terbesar
Kelebihan struktur pemilihan terletak pada kemampuannya yang memungkinakan pemroses mengikuti jalur aksi yang berbeda berdasarkan kondisi yang ada.
3. PENGULANGAN (REPETITION/LOOPING)
Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Dengan kata lain, pengulangan memungkinkan pengerjaan beberapa kali perintah tetapi penulisan perintah tersebut hanya satu kali.
Struktur pengulangan yang umum digunakan antara lain:
#Pernyataan for
Pernyataan pengulangan for digunakan jika kita sudah tahu berapa kali kita akan mengulang satu atau beberapa pernyataan.
Bentuk umum pernyataan for adalah sbb:
For pencacah := nilai_awal to nilai_akhir do
Aksi
Aksi akan dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari nilai_awal sampai nilai_akhir.
#Pernyataan repeat-until
Pernyataan repeat-until akan melakukan pengulangan aksi hingga kondisi (persyaratan) berhenti terpenuhi.
Bentuk umum pernyataan repeat-until adalah sbb:
Repeat
Aksi
Until kondisi
Tidak seperti pada struktur for yang jumlah pengulangannya diketahui sebelum pengulangan dilaksanakan, maka untuk struktur repeat-until digunakan jika jumlah pengulangan tidak dapat diketahui di awal. Namun yang pasti, pengulangan aksi akan terus dilakukan sampai kondisi berhenti dipenuhi.
#Pernyataan while-do
Sama seperti pada pernyataan repeat-until, pada pernyataan while-do ini digunakan untuk pengulangan yang belum diketahui pasti jumlah pengulangannya. Berakhirnya pengulangan ini ditentukan oleh suatu kondisi. Bila kondisi sudah tidak terpenuhi, maka pengulangan akan berakhir. Dengan kata lain, selama kondisi masih terpenuhi, pengulangan akan terus dilakukan.
Bentuk umum pernyataan while-do adalah sebagai berikut:
While kondisi do
Aksi
Catatan:
Pada pernyataan repeat-until dan while-do, pada dasarnya hampir sama yaitu digunakan jika jumlah pengulangan belum dapat ditentukan. Tetapi terdapat perbedaan yaitu pada pengecekan kondisi. Jika pada pernyataan while-do, kondisi dicek pada awal blok pengulangan, pada pernyataan repeat-until, kondisi dicek pada akhir blok pengulangan.
Perbedaan yang lain, bila pernyataan while-do mengulang pernyataan selama kondisi masih terpenuhi, pernyataan repeat-until mengulang pernyataan selama kondisi belum terpenuhi.
Masih bingung……tunggu penjelasan detail mengenai RUNTUNAN AKSI, PEMILIHAN/PERCABANGAN AKSI, dan PENGULANGAN AKSI pada postingan berikutnya


ALGORITMA DALAM KEHIDUPAN SEHARI-HARI
Proses semacam algoritma sebenarnya dijumpai dalam sehari-hari. Jika Anda membaca resep makanan, selain bahan-bahan digunakan, Anda juga akan melihat prosedur untuk membuat masakan. Prosedur dalam resep seperti itu sebenarnya menyatakan semacam algoritma. Dengan mengikuti langkah-langkah yang diberikan itu maka Anda akan dapat membuat masakan itu. Dalam pengertian sekarang, algoritma mempunyai kesamaan tidak hanya dengan resep makanan, tetapi juga dengan proses metode, atau prosedur. Sebagai contoh, Gambar 3.1 memperlihatkan suatu prosedur untuk memanaskan makanan ke dalam oven microwave.

            1. Taruhlah makanan dalam wadah yang aman untuk microwave.
            2. Tutuplah pintu microwave dengan rapat.
            3. Tancapkan steker ke stop kontak.
            4. Putarlah knop ke posisi 5 menit.
            5. Tunggu sampai lampu mati dan ada bunyi ‘ting’.
            6. Lepaskan steker dari stop kontak.
            7. Bukalah pintu oven microwave dan keluarkan wadah yang berisi makanan tersebut.
Gambar 3.1 Contoh suatu prosedur
Prosedur itu merupakan suatu urutan yang memandu orang untuk melakukan suatu proses.
 Namun, ada perbedaan antara algoritma dan prosedur. Prosedur biasanya bersifat global dengan mengasumsikan bahwa manusia telah mengetahui rincian langkah-langkah tertentu. Sebagai contoh, perhatikan prosedur berikut :

1. Ambil 5 buah kartu.
2. Urutkan kartu tersebut.
Pada langkah kedua, manusia bisa mengurutkan kartu tersebut dengan mudah tanpa harus diberi tahu caranya. Namun hal seperti itu tidak bisa diterapkan pada computer. Jika komputer mengenal lima buah data dan kita mengharapkan komputer untuk mengurutkannya, kita harus member tahu secara detail bagaimana cara mengurutkannya. Itulah sebabnya di dalam ilmu komputer terdapat berbagai algoritma yang ditujukan untuk mengurutkan data, seperti bubble sort, insertion sort, dan quick sort. Algoritma-algoritma ini menjamin bahwa setiap langkah akan dapat dikerjakan oleh komputer.

3.2      DASAR PENYUSUNAN ALGORITMA

Sejauh ini tidak ada standarisasi tentang bagaimana menyusun algoritma. Secara prinsip, Anda mempunyai kebebasan untuk menyusun bentuk suatu algoritma. Anda bisa menggunakan kata-kata dalam bahasa manusia,pseukode atau bahkan diagram alir untuk mewujudkan suatu algoritma.

Walaupun begitu ada beberapa hal yang perlu diperhatikan dalam menyusun suatu algoritma. Menurut Knuth (1973, hal. 4) dan juga Horowitz dkk (1999, hal. 1), ada lima cirri penting yang harus dimiliki sebuah algoritma yaitu berupa finiteness, definitiness, masukan, keluaran, dan efektivitas.

1. Finitiness. Finitiness  menyatakan bahwa suatu algoritma harus berakhir untuk semua kondisi setelah memproses sejumlah langkah.

2. Definitiness. Definitiness menyatakan bahwa setiap langkah harus dinyatakan dengan jelas (tidak rancu atau mendua-arti).

3. Masukan. Setiap algoritma bisa tidak memiliki masukan atau mempunyai satu atau beberapa masukan. Masukan merupakan suatu besaran yang diberikan di awal sebelum algoritma diproses.

4. Keluaran. Setiap algoritma memiliki keluaran, entah hanya sebuah atau banyak keluaran. Keluaran merupakan besaran yang mempunyai kaitan atau hubungan dengan masukan.

5. Efektivitas. Setiap algoritma diharapkan bersifat efektif, dalam arti semua operasi yang dilaksanakan oleh algoritma haruslah sederhana dan dapat dikerjakan dalam waktu yang terbatas. Secara prinsip, setiap instruksi dalam algoritma dapat dikerjakan oleh orang dengan hanya menggunakan kertas dan pensil.


Menurut Cormen, dkk. (1994, hal. 2), sebuah algoritma dikatakan benar, untuk berbagai ragam masukan, jika algoritma berakhir dengan keluaran yang benar. Pada keadaan seperti ini, algoritma menyelesaikan masalah komputasi yang diberikan.

Selain ketentuan-ketentuan yang telah disebutkan, patut pula ditekankan disini untuk selalu menghindari langkah yang merujuk ke langkah lain. Contoh perujukan ke langkah lain ditunjukkan pada contoh berikut, yang membahas algoritma Euclid yang dijelaskan oleh Knuth (1973, hal 2.).
Flowchart atau diagram alir merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut.

Simbol-Simbol

Gambar berikut adalah simbol flowchart yang umum digunakan.
Gambar Simbol untuk Keterangan
G-proses.JPG Proses / Langkah Menyatakan kegiatan yang akan ditampilkan dalam diagram alir.
G-keputusan.JPG Titik Keputusan Proses / Langkah dimana perlu adanya keputusan atau adanya kondisi tertentu. Di titik ini selalu ada dua keluaran untuk melanjutkan aliran kondisi yang berbeda.
G-data.JPG Masukan / Keluaran Data Digunakan untuk mewakili data masuk, atau data keluar.
G-awal.JPG Terminasi Menunjukkan awal atau akhir sebuah proses.
G-panah.JPG Garis alir Menunjukkan arah aliran proses atau algoritma.
G-kontrol.JPG Kontrol / Inspeksi Menunjukkan proses / langkah dimana ada inspeksi atau pengontrolan.



Jenis-Jenis Diagram Alir

Sterneckert (2003) menyarankan untuk membuat model diagram alir yang berbeda sesuai dengan perspektif pemakai (managers, system analysts and clerks) sehingga dikenal ada 4 jenis diagram alir secara umum:
  • Diagram Alir Dokumen, menunjukkan kontrol dari sebuah sistem aliran dokumen.
  • Diagram Alir Data, menunjukkan kontrol dari sebuah sistem aliran data.
  • Diagram Alir Sistem, menunjukkan kontrol dari sebuah sistem aliran secara fisik.
  • Diagram Alir Program, menunjukkan kontrol dari sebuah program dalam sebuah sistem.


PENGERTIAN PROGRAM DAN BAHASA PEMROGRAMAN

Yang dimaksud dengan program adalah kumpulan instruksi yang digunakan untuk mengatur computer agar melakukan suatu tindakan tertentu. Tanpa program, komputer sesungguhnya tidak dapat berbuat apa-apa. Itulah sebabnya sering dikatakan bahwa komputer mencakup tiga aspek penting, berupa perangkat keras (hardware), perangkat lunak (software), yang dalam hal ini berupa program, dan perangkat akal (brainware) atau orang yang berperan terhadap operasi komputer maupun pengembangan perangkat lunak. Dengan kata lain , program merupakan salah satu bagian penting pada komputer, yang mengatur komputer agar melakukan tindakan yang sesuai dengan yang dikehendaki oleh pembuatnya.

Catatan : Orang yang membuat program biasa disebut pemrogram (programmer). Adapun aktivitas yang berhubungan dengan pembuatan program dinamakan (programming).

Suatu program ditulis dengan mengikuti kaidah bahasa pemrograman tertentu. Bahasa pemrograman dapat dianalogikan dengan bahasa yang digunakan manusia (bahasa manusia). Sebagaimana diketahui, ada bermacam-macam bahasa manusia, seperti bahasa inggris, bahasa Indonesia, bahasa Batak, dll. Kumpulan instruksi dalam bahasa manusia yang berupa sejumlah kalimat dapat Anda analogikan dengan suatu program. Manusia dapat mengerjakan suatu instruksi berdasarkan kalimat-kalimat dan komputer bisa menjalankan suatu instruksi menurut program.



Dalam konteks pemrograman, terdapat sejumlah bahasa pemrograman seperti Pascal, C, dan BASIC. Secara garis besar, bahasa-bahasa pemrograman dapat dikelompokkan menjadi:
1. bahasa berasas-tinggi (high-level language), dan
2. bahasa berasas-rendah (low-level language).

Bahasa berasas-tinggi adalah bahasa pemrograman yang berorientasi kepada bahasa manusia. Program dibuat menggunakan bahasa pemrograman. Biasanya menggunakan kata-kata bahasa Inggris; misalnya IF untuk menyatakan “jika” dan AND untuk menyatakan “dan”. Termasuk dalam kelompok bahasa ini yaitu Java, C++, Pascal, dan BASIC.
Bahasa berasas-rendah adalah bahasa pemrograman yang berorientasi kepada mesin. Bahasa ini menggunakan kode biner (yang hanya mengenal kode 0 dan 1), atau suatu kode sederhana untuk menggantikan kode-kode tertentu dalam sistem biner. Yang tergolong dalam kelompok bahasa ini adalah bahasa mesin dan bahasa rakitan.