Bab 1 GAMBARAN UMUM KOMPUTER DAN PEMPROGRAMAN
09.34.00
Komputer Elektronik
•
Komputer
pertama dibuat pada akhir tahun 1930 oleh Dr. John Atanasoff dan Clifford Berry
di Iowa State University. Komputer ini digunakan untuk membantu mahasiswa pasca
sarjana dalam menghitung fisika nuklir.
•
Komputer
“general-purpose” pertama diberi nama ENIAC selesai dibangun pada tahun 1946 di
University of Pennsylvania dengan pendanaan dari U.S. Army. Komputer ini
memiliki berat 30 ton, berukuran 30 x 50 kaki, dan digunakan untuk menghitung prediksi
cuaca dan energi atom. Komponen elektronik utama yang digunakan adalah vacuum
tubes.
•
Dengan
kemajuan teknologi dewasa ini, satu prosesor komputer bisa dipaket dalam satu
komponen elektronik yang disebut chip, yang berukuran seperti perangko. Chip ini
bisa diinstall di jam, kalkulator, kamera, dan juga komputer.
•
Elemen
sistem komputer dikelompokkan menjadi dua:
•
Hardware:
peralatan yang digunakan untuk melakukan komputasi, termasuk Central Processing
Unit (CPU), monitor, keyboard, printer, dan lain-lain.
•
Software:
program (kumpulan instruksi) untuk menyelesaikan permasalahan dengan
menggunakan komputer.
Dulu,
penyusunan program (programming) dilakukan dengan menyusun instruksi berupa
deretan bilangan biner (0 dan 1).
Sekarang,
programming dilakukan dengan cara lebih mudah dengan menggunakan bahasa
pemrograman tingkat tinggi, seperti Pascal, C, Basic, dan lain-lain.
Memori
•
Memori
terdiri atas banyak sel. Masing-masing sel memiliki alamat dan isi.
–
Alamat:
mengidentifikasi lokasi setiap sel di dalam memori.
–
Isi:
merepresentasikan data yang tersimpan dalam sel memori.
Setiap sel
memori terdiri atas kumpulan bit (bernilai 0 atau 1). Satu sel memori bisa
menyimpan 8, 16 atau 32 bit, tergantung pada tipe komputer.Penyimpanan data ke
dalam memori dilakukan dengan menset nilai 0 atau 1 ke dalam sel-sel memori,
sehingga merusak isi dari sel memori sebelumnya.Pengambilan data dari memori
dilakukan dengan menyalin pola 0 atau 1
dari sel memori, tanpa merusak isi dari sel memori sebelumnya.Memori utama
menyimpan baik program maupun data. Ada dua tipe memori utama:
–
Random
Access Memori (RAM).
•
Menyimpan
program dan data secara sementara, yaitu pada saat program dan data tersebut
sedang dieksekusi oleh komputer.
•
Semua
yang tersimpan di dalam RAM akan hilang pada saat komputer dimatikan.
–
Read-Only
Memory (ROM).
•
Menyimpan
program dan data secara permanen.
•
Komputer
hanya dapat membaca isi ROM, tetapi tidak dapat menuliskan isi baru ke dalam
ROM.
•
Isi
ROM tidak akan hilang pada saat komputer dimatikan.
•
ROM
biasanya diisi oleh pabrik komputer dengan instruksi start-up dan instruksi
kritis yang lain.
Memori
sekunder memiliki kemampuan penyimpanan data secara semi permanen. Contoh:
floppy disk, hard disk, flash disk, CD.
Central Processing Unit (CPU)
•
Peralatan
Input/Output digunakan oleh user untuk berkomunikasi dengan komputer, sehingga
user dapat memasukkan data yang diperlukan untuk komputasi melalui peralatan
input dan user dapat melihat hasil komputasi melalui peralatan output.
•
Dalam
program aplikasi pengolah kata seperti Ms. Word, user bisa mengetikkan laporan
melalui keyboard dan user bisa melihat hasil ketikannya di monitor.
•
Contoh
peralatan input: keyboard, mouse, scanner.
•
Contoh
peralatan output: printer, monitor.
Jaringan Komputer
•
Seringkali
beberapa komputer dihubungkan dalam suatu jaringan komputer, sehingga user-user
komputer bisa mengakses secara bersama hard disk, printer, maupun resource yang
lain.
•
Komputer
yang mengontrol akses terhadap resource yang digunakan secara bersama disebut
server.
•
Jika
komputer-komputer yang terhubung hanya mencakup area lokal, misalnya dalam satu
gedung, maka jaringan tersebut disebut jaringan komputer lokal (local area
network/LAN).
•
Komputer-komputer
yang terhubung bisa juga mencakup area di seluruh dunia, misalnya jutaan komputer
di seluruh dunia dapat mengakses secara bersama sistem mail elektronik.
Jaringan mendunia seperti ini disebut internet.
•
Komputer
di rumah pun bisa terhubung ke internet melalui modem dan saluran telepon.
Modem (modulator/demodulator) adalah alat yang dapat mengkonversi data komputer
biner ke dalam tone audio, yang selanjutnya bisa ditransmisikan ke komputer
lain melalui saluran telepon. Di komputer penerima, data dikonversi oleh modem
ke dalam bentuk data biner supaya bisa diproses lebih lanjut.
GAMBARAN UMUM BAHASA PEMPROGAMAN
•
Bahasa
pemrograman yang digunakan untuk menulis program komputer dapat dikelompokkan
menjadi dua, yaitu:
–
Bahasa mesin
–
Bahasa tingkat tinggi
•
Bahasa
pemrograman yang dimengerti oleh komputer adalah bahasa mesin. Setiap instruksi
bahasa mesin terdiri dari rangkaian bilangan biner 0 dan 1. Sebagai contoh,
untuk merepresentasikan rumus berikut:
Total_harga_barang
= harga barang + pajak
Program bahasa mesin yang harus
ditulis adalah:
0010
0000 0000 0100
0100
0000 0000 0101
0011
0000 0000 0110
Pada contoh instruksi di atas, baik
jenis operasi yang dilakukan maupun alamat dari data-data yang digunakan, semua
dinyatakan dalam bilangan biner.Bahasa seperti ini, meskipun sangat mudah
dipahami oleh komputer, tetapi sangat sulit dipahami oleh manusia.
•
Dalam
bahasa tingkat tinggi, instruksi-instruksi yang digunakan mirip dengan bahasa
yang digunakan manusia sehari-hari. Contoh instruksi dalam bahasa tingkat
tinggi:
Total_harga_barang =
harga barang + pajak;
Instruksi tersebut berarti “Menambah
nilai harga_barang dengan pajak, serta menyimpan hasilnya di dalam
total_harga_barang”.
Pada contoh di atas, jenis operasi
yang dilakukan ditulis dengan simbol ‘+’, dan alamat dari data yang digunakan
dinyatakan dengan nama deskriptif (harga_barang, pajak, total_harga_barang).
•
Suatu
bahasa tingkat tinggi memiliki standard bahasa yang mendeskripsikan aturan
(syntax) dari bahasa tersebut. Setiap instruksi yang ditulis menggunakan bahasa
tingkat tinggi harus mematuhi syntax yang telah ditetapkan.
Bahasa Tingkat Tinggi
|
Tujuan Awal
|
C
|
Untuk
menulis software sistem
|
C++
|
Perluasan
dari C yang juga mendukung pemrograman berorientasi obyek
|
Ada
|
Bahasa
yang digunakan di Departemen Pertahanan Amerika untuk mengembangkan sistem
terdistribusi real time
|
Lisp
|
Untuk menulis
aplikasi kecerdasan buatan
|
Pascal
|
Untuk
melatih pelajar menulis program secara hati-hati dan terstruktur
|
Fortran
|
Untuk
menulis aplikasi teknik dan sains
|
Basic
|
Bahasa
sederhana untuk dipelajari di sekolah-sekolah
|
Cobol
|
Untuk
menulis aplikasi pengolahan data bisnis
|
Kebanyakan
bahasa pemrograman digunakan untuk menulis software aplikasi, yaitu software
yang melakukan tugas-tugas user. Sebagai contoh: aplikasi perhitungan gaji,
aplikasi pemesanan tiket pesawat, dll.
Bahasa C dan C++, selain digunakan
untuk menulis software aplikasi, juga bisa digunakan untuk menulis software
sistem, yaitu software yang melakukan tugas-tugas yang diperlukan agar operasi
dari sistem komputer bisa berjalan dengan baik.Karena komputer hanya bisa
mengerti bahasa mesin, maka program yang ditulis dalam bahasa tingkat tinggi
(source program/program sumber)harus ditranslasi ke dalam bahasa mesin (object
program/program objek) sebelum dieksekusi.
Dalam
Borland C++, semua program yang dibutuhkan untuk menyusun file executable
dengan menggunakan BTT sudah tersedia dalam suatu lingkungan pengembangan
program yang terpadu (integrated development environment).
METODE
PENGEMBANGAN SOFTWARE
•
Pemrograman adalah suatu aktifitas
pemecahan masalah.
•
Metode pemecahan masalah dibahas pada
berbagai bidang, misalnya:
–
Di bidang bisnis digunakan pendekatan
sistem
–
Di bidang teknik dan sains digunakan
metode teknik dan saintifik
–
Di bidang pemrograman digunakan
metode pengembangan software
•
Langkah-langkah dalam metode
pengembangan software:
–
Menspesifikan
kebutuhan masalah
–
Menganalisis
masalah
–
Merancang/mendesign
algoritma untuk menyelesaikan masalah
–
Mengimplementasikan
algoritma
–
Mentest dan
memverifikasi program
–
Memelihara
dan meng-update program
1. SPESIFIKASI MASALAH
•
Kita harus dapat menspesifikasikan
masalah dengan jelas dan tidak umbiguous dan memiliki pemahaman yang jelas
mengenai apa yang diperlukan untuk menyelesaikan masalah tersebut.
•
Kita harus dapat mengeliminasi
aspek-aspek yang tidak penting dari masalah.
•
Dalam langkah ini, kita mungkin
membutuhkan informasi dari orang-orang yang terlibat dalam masalah tersebut.
2. ANALISIS
Kita
harus dapat menspesifikasikan masalah dengan jelas dan tidak umbiguous dan
memiliki pemahaman yang jelas mengenai apa yang diperlukan untuk menyelesaikan
masalah tersebut.Kita harus dapat mengeliminasi aspek-aspek yang tidak penting
dari masalah.Dalam langkah ini, kita mungkin membutuhkan informasi dari
orang-orang yang terlibat dalam masalah tersebut.
•
Contoh:
Problem: Hitung dan tampilkan total
harga apel jika jumlah kg apel yang dibeli dan harga perkg apel diketahui.
Analisis:
Hitung dan tampilkan total harga apel
jika jumlah kg apel yang dibeli dan harga perkg apel diketahui.
Input:
Jumlah apel yang dibeli (dalam
kg) -> kg_beli
Harga per kg apel (dalam
rupiah) -> harga_kg
Output:
Total harga apel (dalam
rupiah) -> total
Rumus :
total = harga_kg x kg_beli
•
Proses pemodelan suatu masalah dengan
cara mengekstrak variabel-variabel penting dan hubungan di antara
variabel-variabel disebut abstraksi.
3. DESIGN
Dalam tahap
design, kita menyusun algoritme (daftar langkah yang diperlukan untuk
menyelesaikan masalah) dan memverifikasi apakah algoritme yang kita susun dapat
menyelesaikan masalah sesuai dengan yang kita inginkan.
Jangan
berusaha secara langsung untuk menyelesaikan masalah secara detail pada saat
merancang algoritme. Gunakan pendekatan top down design (disebut juga divide
and conquer), yaitu pendekatan yang dimulai dengan mendaftar langkah-langkah
utama atau submasalah yang diperlukan untuk menyelesaikan masalah utama,
selanjutnya diikuti dengan menyusun penyelesaian untuk setiap submasalah.
•
Hampir setiap algoritme komputer
terdiri dari submasalah berikut:
–
Memasukkan data
–
Melakukan perhitungan
–
Menampilkan hasil
•
Proses penyusunan langkah-langkah
penyelesaian untuk setiap submasalah yang berhasil diidentifikasi disebut
penghalusan algoritme (algorithm refinement).
•
Untuk memverifikasi algoritme
dilakukan desk checking, yaitu pemeriksaan setiap langkah dalam algoritme
dengan cara mensimulasikan hasil eksekusi algoritme dengan perhitungan manual.
4. IMPLEMENTASI
Pada tahap ini dilakukan penulisan program,
yaitu mengkonversi algoritme yang disusun pada tahap sebelumnya ke dalam bahasa
pemrograman yang dipilih.
5.
TESTING
Setelah program sudah bisa dieksekusi,
dilakukan pengetesan program dengan berbagai macam data, sehingga bisa
diverifikasi bahwa program sudah bekerja sesuai dengan kebutuhan pada berbagai
situasi yang mungkin dihadapi oleh program.
6.
PEMELIHARAAN (MAINTENANCE)
Pemeliharaan
dan peng-update-an program mencakup modifikasi program untuk menghilangkan
error yang sebelumnya tidak terdeteksi dan untuk menjaga agar program tetap
up-to-date (sesuai) dengan kebijakan pemerintah ataupun dengan perubahan
kebijakan oganisasi.
Beberapa
organisasi melakukan pemeliharaan program setiap 5 tahun sekali atau lebih, dan
seringkali pemeliharaan program dilakukan oleh orang yang sebelumnya tidak
terlibat dalam pengembangan program tersebut. Oleh karena itu, sangat penting
untuk melakukan dokumentasi terhadap setiap tahap pengembangan software,
sehingga proses pemeliharaan program bisa dilakukan dengan baik.
Contoh Kasus Konversi Mil ke
Kilometer
•
Problem
:
Dalam
kerja praktek anda diminta untuk mempelajari beberapa peta.Peta-peta tersebut
ada yang menggunakan satuan mil dan ada yang menggunakan satuan kilometer.Oleh
pembimbing kerja praktek, anda diminta untuk mengkonversi semua jarak dalam mil
ke dalam kilometer.
•
Analisis
:
“….
Oleh pembimbing kerja praktek, anda diminta untuk mengkonversi semua jarak
dalam mil ke dalam kilometer.”
Input
:
Jarak
dalam mil -> mil
Output
:
Jarak
dalam kilometer -> km
Rumus
:
1
mil = 1.609 km
•
Design
:
Algoritme
awal :
- Masukkan jarak dalam mil
- Konversi jarak dari mil ke kilometer
- Tampilkan hasil dalam kilometer
Penghalusan
algoritme :
- Masukkan jarak dalam mil
- Konversi jarak dari mil ke kilometer
2.1.
Jarak dalam kilometer adalah 1.609 kali jarak dalam mil.
3. Tampilkan
hasil dalam kilometer
Contoh
desk check terhadap algoritma :
Pada
langkah 1, dimasukkan jarak 10 mil, langkah 2.1 akan mengkonversinya menjadi
1.609 x 10 menjadi 16.09 kilometer. Hasil ini akan ditampilkan di langkah 3.
•
Implementasi
:
/* Konversi jarak dari mil ke kilometer */
#include <stdio.h> /* definisi printf, scanf */
#include KM_PER_MIL 1.609 /*konstanta
konversi */
int main(void) {
double mil,
/*input: jarak dalam mil*/
km; /*output:
jarak dalam km*/
/* memasukkan jarak dalam mil */
printf(“Masukkan jarak dalam mil : “);
scanf(“%lf”, &mil);
/* konversi jarak ke kilometer */
km = KM_PER_MIL * mil;
/* tampilkan jarak dalam kilometer */
printf(“Hasil konversi adalah %lf
kilometer.\n”, km);
return(0);
}
Contoh hasil runing program :
Masukkan jarak dalam mil : 10.00
Hasil konversi adalah 16.090000 kilometer
•
Pengetesan
Untuk
memverifikasi bahwa program sudah berjalan sesuai dengan kebutuhan, cobalah
mentest program dengan memasukkan beberapa jarak dalam mil yang lain.
STUDY KASUS
•
Problem
:
Suatu
dealer minyak menampung minyak jualannya di dalam drum-drum. Sementara semua
pembeli selalu membeli minyak dengan membawa wadah yang sama berupa
jerigen. Pemilik dealer agak kesulitan
untuk menghitung harga minyak yang dibeli oleh pembeli, karena pembeli selalu
membeli minyak dengan satuan jerigen (misalnya 3 jerigen, atau 3.5 jerigen),
sementara harga jual yang diketahui adalah rupiah per drum, yaitu 100.000
rupiah per drum. Diketahui bahwa 1 jerigen isinya sama dengan 1/20 drum. Bisakah anda membantu pemilik dealer untuk
memudahkan perhitungan harga total minyak yang dijual ke setiap pembeli?
REFERENSI
•
Bab 1, “Overview of Computers and
Programming”, Problem Solving and Program Design in C, Jeri R. Hanly dan
Elliot B. Koffman, Addison Wesley, 2002
0 komentar