30 Desember 2009

Belajar Algoritma


ALGORITMA DAN PEMROGRAMAN TERSTRUKTUR
1.1 Pendahuluan
Konsep pemrograman terstruktur memegang peran penting dalam merancang, menyusun, memelihara dan mengembangkan suatu program, khususnya program aplikasi yang besar dan kompleks. Konsep ini diungkapkan pertama kali pada tahun 1960-an oleh Profesor Edsger Djikstra dari Universitas Eindhoven. Profesor Djikstra mengungkapkan bahaya dari penggunaan instruksi peralihan proses tanpa syarat tertentu
(GOTO) dalam pembuatan segala bentuk program karena akan menjadikan program tidak terstruktur dengan baik. Oleh sebab itu mulailah dikembangkan teknik pemrograman terstruktur. Namun demikian penerapan teknik ini tidak semata-mata hanya untuk menghindari penggunaan instruksi GOTO, tetapi untuk menciptakan program yang terstruktur dan sistematis.

1.2 Istilah-istilah Dasar
Sebelum mempelajari pemrograman terstruktur lebih lanjut, ada beberapa istilah mendasar yang perlu dipahami lebih dahulu, yaitu:
a. Program adalah kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikandengan menggunakan bahasa pemrooraman sehingga dapat dieksekusi oleh komputer.
b. Bahasa pemrograman merupakan prosedur/tata cara penulisan program. Pada bahasa pemrograman terdapat dua faktor penting, yaitu sintax dan semantik. Sintax (sintaks) adalah aturan-aturan gramatikal yang mengatur tata cara penulisan kata, ekspresi dan pernyataan sedangkan semantik adalah aturan-aturan untuk menyatakan suatu arti.
c. Pemrograman merupakan proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan Menggunakan suatu bahasa pemrograman.
d. Pemrograman terstruktur merupakan proses mengimplementasikan urutan langkah untuk menvelesaikan suatu masalah dalam bentuk program yang memiliki rancang bangun yang terstruktur dan tidak berbelit-belit sehingga mudah ditelusuri, dipahami dan dikembangkan oleh siapa saja.

1.3. Ciri Teknik Pemrograman Terstruktur Teknik pemrograman terstruktur memiliki ciri atau karakteristik sebagai berikut:
a. menyandung algoritma pemecahan masalah yang tepat, benar, sederhana,standar dan efektif
b. memiliki struktur logika dan struktur program yang benar dan mudah dipahami serta menghindari penggunaan instruksi GOTO
c. membutuhkan biaya testing, pemeliharaan dan pengernbangan yang rendah
d. memiliki dokumentasi yang baik

1.4 Standar Program yang Baik Standar pemrograman dibutuhkan untuk menciptakan suatu program yang baik yang memiliki portabilitas yang tinggi sehingga memudahkan dalam merancang dan merawat program serta meningkatkan efektivitas penggunaan peralatan komputer Untuk menentukan standard program yang baik dibutuhkan beberapa standar sebagai dasar penilaian seperti:

a. teknik pemecahan masalah
b. penyusunan program
c. perawatan program
d. standar prosedur

Standar-standar tersebut sering dilihat oleh pemrogram sebagai batasan kreativitas dan kemampuan untuk menuangkan berbagai ide ke dalam bentuk program. Namun standar tersebut akan membuat program  menjadi konsistendan mudah untuk dikembangkan.

1.4.1 Standar Teknik Pemecahan Masalah
Setelah masalahnya dipahami dengan baik. seorang pemrogram tentu membutuhkan suatu teknik untuk memecahkan masalah tersebut, yang
antara lain dikenal dengan teknik Top-Down dan teknik Bottom-Up. Teknik Top-Down merupakan teknik pemecahan masalah yang paling
umum dilgunakan. di mana suatu masalah yang kompleks dibagi-bagi ke dalam beberapa tingkatan kelompok masalah hingga subbagian yang paling
kecil. Setelah itu kemudian disusun langkah-langkah untuk menyelesaikannya secara detail. Teknik Bottom-Up merupakan teknik pemecahan masalah mulai
ditinggalkan karena sulit untuk melakukan standarisasi proses duri prosedurprosedur yang sudah ada untuk digabungkan menjadi suatu kesatuan.
Setelah memilih teknik pemecahan masalah yang akan digunakan, pernrogram akan mulai menyusun langkah-langkah untuk memecahkan
masalah secara detail. Langkah-langkah inilah yang disebut algoritma.

Algoritma berasal dari kata algoris dan ritmis. Istilah ini pertama kali diungkapkan oleh Abu Ja'far Mohammed lbn Musa al Khowarizmi (825
M) dalam buku Al-Jabr Wa-al Muqabla. Dalam bidang pemrograman, algoritma didefinisikan sebagai suatu metoda khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur danditulis secara sistematis, yang akan dikerjakan untuk menyelesaikan suatu
masalah dengan bantuan komputer. Hubungan antara algoritma, masalah dan solusi dapat digambarkan sebagai berikut:
Masalah ? Algoritma ? Solusi
algoritma dan solusi Proses dari masalah menjadi suatu algoritma disebut tahap pemecahan
masalah, sedangkan tahap dari algoritrna hingga menjadi suatu solusi disebut dengan tahap implementasi. Solusi yang dimaksud adalah suatu
program yang merupakan implementasi dari Agoritrna yang disusun. Algoritma pemrograman yang baik memiliki ciri-ciri sebagai berikut:
1. tepat, benar, sederhana, standar dan efektif
2. logis, terstruktur dan sistematis
3. semua operasi terdefinisi
4. semua proses harus berakhir setelah sejumlah langkah dilakukan
5. ditulis dengan bahasa yang standar dengan format pemograman agar mudah untuk diimplementasikan dan tidak menimbulkan arti ganda.
Catatan yang perlu diperhatikan
Logika program sehingga ini adalah contoh program yang Pemrogram harus dapat menjamin kebenaran dapat diperoleh hasil yang
benar. Berikut mengandung kesalahan logika:

// Program counter
void MyCounter() keterangan nama function
{ blok begin function
int low, high, current; pendefinisian variable
low = 0; assigment variable low
high = 10; assigment variable high
current = low; assigment variable current
while (current <= high) awal pengulangan
{ blok begin while
printf(“%d”, current); mencetak nilai while
} blok end while
} blok end function

Program tersebut tidak akan berhenti prosesnya pada waktu dilakukan eksekusi karena kondisi perulangan selalu terpenuhi dan tidak ada yang dapat
melakukan perubahan terhadap kondisi current. Program diatas dapat diperbaiki menjadi:

// Program counter
void MyCounter() keterangan nama function
{ blok begin function
int low, high, current; pendefinisian variable
low = 0; assigment variable low
high = 10; assigment variable high
current = low; assigment variable current
while (current <= high) awal pengulangan
{ blok begin while
printf(“%d”, current); mencetak nilai while
current = current + 1; menambah nilai current
} blok end while
} blok end function

Setelah program diperbaiki, maka ketika dilakukan eksekusi, program akan melakukan perulangan jika nilai current lebih besar dari nilai current.
1.4.2 Standar Penyusunan Program Pemrogram hendaknya memperhatikan faktor-faktor yang menjadi standar dalam menyusun program, yaitu sebagai berikut:
a. Kebenaran logika dan penulisan Program yang disusun harus memiliki kebenaran logika pemecahan masalah maupun penulisan. Program harus memiliki ketepatan, ketelitian dan
kebenaran dalam perhitungan sehingga hasilnya dapat dipercaya. Dalam menyusun program, pemrogram tidak boleh hanya berpegang pada
prinsip "asal program dapat dieksekusi" saja, tetapi harus benar-benar teliti dalam menulis rumus dan urutan logis dari langrkah-langkah pemecahan
masalah yang disusun.
b. Waktu minimum untuk penulisan program Dalam penulisan program, pemrogram harus dapat menentukan waktu minimum penulisan programnya. Waktu minimum penulisan program adalah
waktu yang harus tersedia secara wajar untuk menyusun program, dari awal hingga siap dioperasikan.
c. Kecepatan maksimum eksekusi program Ada beberapa faktor yang harus diperhatikan untuk dapat menghasilkan program yang memiliki kecepatan eksekusi maksimum, antara lain bahasa
pemrograman yang digunakan (basis interpreter atau compiler), algoritma yang disusun, teknik pemrograman yang diterapkan dan perangkat keras
yang dipakai untuk mengoperasikannya. Kecepatan maksimum eksekusi program juga dapat ditingkatkan dengan memperbaiki struktur program, misalnya dalam proses pengujiannya.

• Hindarilah proses pengujian yang berulang-ulang secara percuma. Contoh:
IF item = nilai1
instruksi1
Endif
IF item = nilai2
instruksi2
Endif
IF Item = nilai3
instruksi3
Endif
Bentuk di atas merupakan bentuk sequence dari tiba kali pengujian untuk
mendapatkan satu alternatif. Lebih baik jika bentuk pengujian di atas ditulis
sebagai berikut:
IF item = nilai1
instruksi1
ELSE IF item = nilai2
instruksi2
ELSE IF Item = nilai3
instruksi3
ENDIF
ENDIF
ENDIF

Bentuk kedua di atas menvebabkan suatu nilai item belum tentu digunakan, karena segera setelah pengujian berhasil mendapatkan solusi, maka proses
pengujian tidak dilanjutkan lagi.
• Letakkan syarat pengujian yang akan menolak data dengan jumlah terbanyak sebagai syarat pengujian peratama, kemudian diikuti syarat
pengujian yang akan menolak data dengan jumlah terbanyak kedua dan seterusnya.
Dari 5000 orang pemegang polis pensiun diketahui data sebagai berikut:

Karakteristik Jumlah orang
Umur >50 1750
Laki-laki 3250
Kode kerja <25 1100
Kode kerja >30 s-150
Yayasan dana pensiun menginginkan daftar penmegang, polis pensiun yang
berusia >50 tahun, berjenis kelamin laki-laki dengan kode kerja 35 sampai
dengan 30.
Pada masalah di atas terdapat langkah pemecahan yang penting, yaitu
menentukan urutan pengujian dan urutan keputusan. Berikut ini adalah daftar
urutan pengujian:
IS Camp – Algoritma 6 of 49
Karakteristik Jumlah
Benar
Jumlah
Salah
(Ditolak)
Urutan
Pengujian
Umur >= 50 1750 3,250 2
Laki-laki 3250 1750 1
Kode kerja >= 25 3900 1100 4
Kode kerja <= 30 1600 3400 1
Dengan urutan pengujian seperti tabel tersebut di atas, maka jumlah data
yang diuji akan semakin berkurangl sehingga akan meningkatkan efisiensi
waktu pemrosesan.
Perbaiki susunan baris program guna meningkatkan kecepatan eksekusinya
Program 1:
n = 1;
while(n<=50) {
item[n] = A*B/C+D-E+n;
n = n + 1;
}
Program 2:
n = 1;
hasil = A*B/C+D-E+n
while(n<=50) {
item[n] = hasil + n;
n = n + 1;
}

Pada program yang kedua, ekspresi matematika A*B/C+D-E hanva dieksekusi satu kali saja sehinggaa proses eksekusi lebih cepat dibandingkan program
pertama.

d. Ekspresi renagunaan memori
Pemrogram perlu mempelajari teknik-teknik pembuatan program yang meminimumkan penggunaan memori agar dapat mempercepat proses
eksekusi program. Untuk dapat meminimumkan penggunaan memori, maka perlu diperhatikan:
I. Penggunaan tipe data yang cocok untuk kebutuhan prmrogramman.
Misalnya bila variable yang digunakan untuk perhitungan cukup dengan yang berjenis single precision, janganlah menggunakan double precision.
II. Hindarilah penggunaan yang berulang-ulang terhadap variable yang berindeks seperti
If (data[n]>0) {
total = total + data[n];
hasil = hasil - data[n];
}

Agar lebih efisien dalam penggunaan memori, sebaiknya program ditulis seperti berikut:
nilai = data[n]
If (nilai>0) {
total = total + data[n];
hasil = hasil - data[n];
}
e.Kemudahan merawat dan mengembangkan program Program hendaknya rne miliki struktur pemrograman yang baik, struktur data
yang jelas, dan dilengkapi dengan dokumentasi sehingga mudah untuk dipahami, diuji dan dikembangkan.
f. User friendly
Prooram yang disusun harus memiliki fasilitas-fasilitas yang memberikan kemudahan baik pemakai untuk mengoperasikannya, misalnya dengan
menambahkan fasilitas on line help guna memberi penjelasan jika terjadi kesulitan, menu pilihan, tampilan yang infonmatif pesan-pesan yang
sederhana dan singkat sehingga mudah untuk dipahami, dan sebagainya.
g. Portabilitas
Usahakan agar program yang disusun dapat dioperasikan dengan berbagaijenis sistem operasi dan perangkat keras yang berbeda, sehingga fleksibel
untuk digunakan.
h. Pemrograman Modular
Pada teknik top down; masalah yang besar dan kompleks dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil. Kelompok masalah yang
kecil itu disebut modul dan teknik pemrograman terstruktur yang digunakan untuk mengimplementasikan langkah-langkah pemecahan masalah pada
kelompok masalah yang kecil tersebut dikenal dengan sebutan teknik pemrograman modular; Namun setelah masing-masing modul disusun maka
harus dibuat suatu sistem untuk mengintegrasikannya sehingga menjadi satu kesatuan program yang lengkap. Modul program adalah sekumpulan instruksi yang memiliki operasi-operasi
dan data yang didefinisikan; memiliki struktur internal yang tidak tergantung pada subprogram yang lain, dan merupakan satu kesatuan yang utuh yang
akan dieksekusisecara berulang-ulang.
1.4.3 Standar Perawatan Program
Beberapa standar telah ditentukan oleh para ahli agar dapat memudahkan pemrogram dalam merawat dan mengembangkan program, yaitu:
a) Dokumentasi
Secara umum dokumentasi merupakan catatan dari setiap langkah pekerjaan membuat program yang dilakukan dari awal hingga akhir. Dokumentasi ini
penting guna melakukan penelusuran jika terjadi kesalahan, maupun untuk pengembangannya. Dokumentasi yang baik akan rnemberikan informasi yang
cukup memadai sehingga orang lain dapat mengerti dan memahami alur logika program.
b) Penulisan lnstruksi
Agar memudahkan perawatan program, sebaiknya penulisan program dilakukan sebagai berikut:
i) Tulis satu instruksi pada satu baris progrum
Contoh penulisan yang kurang baik:
while (n<=10) {n=n+1; printf(“%d”,n);}
contoh penulisan yang baik
while (n<=10) {
n=n+1;
printf(“%d”,n);
}
ii) Pisahkan modul-modul atau kelompok instruksi dengan memberikan spasi beberapa baris untuk mempermudah pembacaan.
iii) Berikanlah tabulasi yang berbeda untuk penulisan instruksi-instruksi yang berbeda dalam loop atau struktur kondisional.
iv) Hindarilah penggunaan konstanta dalam penulisan rumus, jika konstanta tersebut mungkin akan berubah-ubah. Misalnya rumus gaji karyawan
harian sebagai berikut. Gaji_Kyw = Jumlah_hari_kerja * 3500. dimana angka 3500 menunjukkan standard gaji perharinya. Angka tersebut
mungkin akan mengalami perubahan jika ada kenaikan standard gaji. Oleh karena itu sebaiknya rumus tersebut ditulis: Gaji_Kyw = Jumlah_hari_kerja
* Standard_Gaji.
v) Lakukan pembatasan jumlah baris instruksi untuk modul-modul, misalnya
50 – 70 baris instruksi permodul, sehingga tidak terlalu panjang.
1.4.4 Standar Prosedur
Dalam menyusun suatu program, seorang, pemrogram memiliki kebebasan
untuk menuagkan ide-ide/gagasan-gagasan yang merupakan tahap-tahap
penyelesaian masalah, tetapi sebaiknya pemrogram menggunakan prosedurprosedur
yang standar yang telah dikenal banyak urang dan teruji kebenarannya.
IS Camp – Algoritma 9 of 49
Penggunaan prosedur standar akan memudahkan bagi pengembang,
sistem/program dalam mengem-bangkan sistem/program tersebut.
1.5. Menulis Program
Menulis program bukan hanya merupakan suatu bentuk kreativitas tetapi juga
merupakan sebuah penerapan disiplin ilmu secara teliti karena program
merupakan implementasi dari suatu algoritma.
Pemrogram yang baik akan menghasilkan program yang mampu memberikan
solusi yang tepat dan benar. Pemrogram dapat digolongkan dalam dua
jenjang, yaitu amatir dan profesional. Pemrogram amatir biasanya hanva
menghasilkan program untuk memecahkan masalah-masalah yang relatif
kecil. sedangkan pemrogram profesional memiliki kemampuan untuk
rnenyusun prooram untuk memecahkan masalah-masalah yang besar dan
rumit.
Banvak orang, yang memiliki hobi bermain dengan komputer yang kemudian
menjadi pemrogram amatir. Namun untuk menvelesaikan masalah masalah
yang rumit dibutuhkan pemrogram yang profesional dalam bidangnya.
Banyak pemrogram profesional memulainya dengan sertifikat dari sebuah
kursus atau ijzah yang diperoleh dari perguruan tinggi dan kemudian mereka
mencari pengalaman dan terus berlatih.
Pemrogram adalah orang yang bekerja menyusun progam. Untuk
menghasilkan program yang baik dibutuhkan pemrogram yang baik dan
berkualitas. Adapun kriteria pemrogram yang baik adalah:
a) mampu menyusun alugritma dengan baik
b) menguasai bahasa dan teknik penulisan program dengan baik
c) dapat bekerja sama dalam suatu tim kerrja:
d) dapat bekerja secara efisien dan tepat waktu.
IS Camp – Algoritma 10 of 49
BAB 2
MEMBANGUN PROGRAM
2.1 Pendahuluan
Untuk menyusun sebuah progam yang besar dan kompleks, pemrogram
membutuhkan tahapan penyusunan yang sistematis dan terpadu, sebagai
berikut:
a). Definisi masalah,
b). Analisis kebutuhan,
c). Penyusunan algoritma,
d). Pen-kodean/ pemrograman,
e). Testing dan Debuging,
f). Pemeliharaan,
g). Dokumentasi.
Untuk memecahkan suatu masalah sederhana pemrogram tidak perlu melalui
ketujuh tahap tersebut, tetapi cukup dengan mengidentifikasikan masalah,
yaitu menentukan input, proses dan output yang diinginkan; menentukan
algoritma; mengimplementasikannya dengan suatu bahasa pemrograman
tertentu dan melakukan testing. Berikut ini contoh pemrograman untuk
memecahkan suatu masalah sederhana:
Masalah
Buatlah program untuk menghitung secara berurutan luas beberapa persegi
panjang, jika diketahui panjang dan lebar sisi-sisinnya sebagai berikut:
Panjang Lebar
Persegi Panjang 1 35 5
Persegi Panjang 2 20 10
Persegi Panjang 3 25 5
Persegi Panjang 4 125 75
Kemudian tentukanlah luas persegi panjang tersebut diatas
Identifikasi masalah
Data Input: data yang akan diinputkan pada saat program dieksekusi
Panjang Lebar
Persegi Panjang 1 35 5
Persegi Panjang 2 20 10
Persegi Panjang 3 25 5
Persegi Panjang 4 125 75
Proses: langkah-langkah pengolahan data yang harus dilakukan pada saat
program di eksekusi
IS Camp – Algoritma 11 of 49
Luaspp1 = panjang1 * lebar1
Luaspp2 = panjang2 * lebar2
Luaspp3 = panjang3 * lebar3
Luaspp4 = panjang4 * lebar4
output: menampilkan isi variable luaspp1, luaspp2, luaspp3 dan luaspp4
Algoritma:
Proses perulangcrn : Ulangi langkah-langkah berikut sebanyak 4 kali
Input : Baca data panjang dan lebar
Proses : Hitung luaspp = panjang * lebar
Output : cetak isi variable luaspp
Implementasi:
// program menghitung luas
// beberapa persegi panjang
void menghitungLuas()
{
int i, panjang, lebar, luaspp;
for (i=0;4;i++) {
scanf(“%d %d”, panjang, lebar);
luaspp = panjang * lebar;
printf(“%d”,luaspp);
}
}
2.2 Alasan Menggunakan Tahap-tahap Penyusunan Program
Ada beberapa alasan mengapa pemrogram perlu menggunakan tahap tahap
penyusunan program tersebut, yaitu:
a) Pertimbangan logis
Melalui tahap definisi masalah dan analisis kebutuhan, maka pemrogram
dapat mengetahui dengan jelas bobot atau tingkat kesulitan yang harus
dipecahkan sehingga dapat melakukan perhitungan dengan tepat, baik
untuk menentukan jumlah tenaga, harga, sumber daya maupun waktu
yang dibutuhkan untuk menyusun program.
b) Pertimbangan analogi
Menyusun program seakan-akan identik dengan membangun rumah di
mana dibutuhkan rancangan arsitektur dan definisi tahap tahap pengerjaan
yang harus terencana dengan baik dan sistematis, sebelum ia mulai
membangun.
c) Pertimbangan jumlah data
Jumlah dan jenis data serta proses pengolahan data merupakan suatu hal
yang perlu diperhatikan secara khusus. Jumlah dan jenis data sangat
IS Camp – Algoritma 12 of 49
mempengaruhi dalam menentukan jenis variabel dan struktur data yang
akan digunakan dalam penyusunan program tersebut.
d) Pertimbangan untuk pengembangan
Melalui tahap-tahap penyusunan program akan diperoleh suatu program
yang baik, terstruktur dan sistematis yang disertai dengan dokumentasi
yang lengkap sehingga dapat dengan mudah dikembangkan di masa
mendatang.
e) Pertimbangan prinsip
Dalam menyusun program sebaiknya pemrogram membuat persiapan dan
rancangan arsitektur program dengan matang sehingga tidak menimbulkan
masalah pada tahap pemrograman dan testing.
2.3 Pendefinisian Masalah
Tujuan dari langkah pendefinisian masalah adalah untuk mendapatkan
pengertian atau pemahaman yang lebih mendalam tentang masalah yang
ada. Yang dengan demikian akan dapat diperoleh asumsi-asumsi yang baik
dan benar guna memecahkan masalah. Pada tahap ini pemrogram juga dapat
menentukan batasan-batasan agar masalah tidak menjadi tak terbatas.
Adapun langkah-langkah dalam pendefinisian masalah adalah sebagai berikut:
a) Pahami masalah dengan tepat
Dalam memahami masalah, pemrogram perlu berhati-hati karena mungkin
saja terjadi perbedaan persepsi yang mengakibatkan perbedaan di dalam
memahami masalah sehingga tidak dapat diperoleh pemecahan masalah
yang tepat. Oleh karena itu pada saat memahami masalah, pemrogram
jangan mengembangkan persepsinya sendiri, melainkan berusaha untuk
memahami persepsi permasalahan dari pihak pemesan program. Dalam hal
ini sangat perlu untuk mengembangkan komunikasi yang intensif antara
pemrogram dan pemesan. Jika permasalahan yang terjadi cukup rumit,
maka dapat digunakan berbagai analogi untuk menjelaskannya.
b) Identifikasi dan definisi masalah
Setelah pemrogram memahami masalah yang dihadapi. maka pemrogram
perlu mengidentifikasi dan mendefinisikan masalah yang ada secara rinci.
Pemrogram juga harus dapat mengungkap masalah lain yang mungkin
akan muncul di seputar masalah utama. Namun pemrogram harus
menentukan batasan masalah agar masalah tidak berkembang secara tak
terbatas.
IS Camp – Algoritma 13 of 49
Pembuatan program tanpa pendefinisian masalah dengan tepat akan dapat
mengakibatkan pemecahan masalah tidak dapat disusun den-an tepat
sesuai sasaran.
2.4 Analisis Kebutuhan
Tujuan analisis kebutuhan adalah untuk menentukan spesifikasi fungsi,
kemampuan dan fasilitas dari program yang disusun. Analisis kebutuhan juga
bermanfaat sebagai dasar evaluasi setelah program selesai disusun.
Analisis kebutuhan tersebut harus meliputi:
a) Siapa pemakai program?
b) Pesan-pesan apa saja yang ingin ditampilkan?
c) Apakah dibutuhkan password guna menjaga keamanan program?
d) Bagaimana format menu, input, proses dan output yang diinginkan?
e) Data apa saja yang akan diinputkan?
f) Berapa digit angka yang akan diproses?
g) Rumus apa yang akan digunakan atau bagaimana proses pengolahan data
harus dilakukan?
h) Siapa saja yang membutuhkan informasi yang akan dihasilkan nanti?
i) Informasi apa yang dibutuhkan oleh masing-masing pemakai?
j) Apakah manfaat dan informasi yang dihasilkan tersebut?
k) Kapan informasi tersebut dibutuhkan?
l) Apa bentuk help yang diinginkan oleh para pemakai?
Tanpa analisis kebutuhan yang memadai, pemrogram hanya akan dapat
mengungkapkan masalah secara umum dan kehilangan aspek kualitasnya. Di
samping itu, tanpa analisis kebutuhan dapat mengakibatkan pemecahan
masalah menjadi tidak tepat dan tidak proporsional.
2.5 Perancangan Arsitektur Program
Merancang arsitektur program pada awal pembangunan suatu program
adalah suatu hal yang penting. Dengan merancang arsitekturnya, Suatu
program yang dibentuk akan memiliki konstruksi yang baik, proses
pengolahan data yang tepat dan akurat, bernilai seni, memiliki aspek user
friendly dan memiliki dasar untuk pengembangan selanjutnya.
Seorang pemrogram juga harus dapat menentukan mana modul utama dan
mana modul rutin. Di samping itu pemrogram harus dapat menjalankan
strategi untuk menangani kesalahan dan memperhitungkan pengembangan
yang mungkin terjadi.
Pada saat merancang arsitektur program, pemrogram harus dapat memerinci
format tampilan. input, proses dan output; struktur data dan teknik yang
digunakan; manajemen memori: penanganan kesalahan; dan mendefinisikan
IS Camp – Algoritma 14 of 49
fungsi generik yang disediakan. Pada object oriented programming. seorang
pemrogram harus dapat memerinci objek utama yang diimplementasikan.
Pemrogram jangan tergesa-gesa dalam menyusun rancangan arsitektur
program karena hal itu dapat berakibat fatal; yang mungkin mengakibatkan
terjadinya kesalahan rancang, bangun, yang akan memaksa pemrogram
untuk merancana ulang arsitektur program tersebut.
Setelah proses perancangan arsitektur program ini selesai maka pemrogram
dapat mulai menyusun suatu algoritma. Algoritma dibuat dengan tujuan
untuk menyelesaikan masalah. Algoritma tidak dibuat sekali jadi. Oleh karena
itu harus selalu dikaji terus-menerus sehingga dapat diperoleh algoritma yang
paling lengkap, tepat, benar clan relevan. Algoritma yang sudah tersusun juga
harus dikoreksi kembali. Jika terdapat kesalahan maka harus direvisi.
Menyusun algoritma sama dengan menuliskan Iangkah-langkah pemecahan
masalah yang ada. Algoritma harus memiliki kebenaran secara logika
sehingga setelah langkah-langkah revisi selesai maka harus dilakukan pengecekan
logika sebelum siap untuk diimplementasikan dalam bentuk program.
Berikut ini contoh penyusunan algoritma dari suatu masalah:
Masalah
Buatlah agloritama untuk menyusun program yang dapat rnenghitung
banyaknya bilangan positif, negatif dan nol dalam suatu deret bilangan: 31, -
9, 0.
Algoritma awal
a) Jika bilangan < 0, tambahlah pencacah bilangan negatif dengan angka 11;
jika tidak maka lanjutkanlah ke langkah b).
b) Jika bilangan > 0, tambahlah pencacah bilangan positif dengan angka 1;
jika tidak maka lanjutkanlah ke langkah c).
c) Jika bilangan = 0, tambahlah pencacah bilangan nol dengan angka 1.
Algoritma Revisi Pertama
a) Baca data, jika tidak ada data, lanjutkan ke langkah e).
b) Jika bilangan < 0, tambahlah pencacah bilangan negatif dengan angka 1
dan kemudian ke langkah a); jika tidak maka lanjutkanlah ke langkah c).
c) Jika bilangan > 0, tambahlah pencacah bilangan positif dengan angka 1
dan kemudian ke langkah a); jika tidak maka lanjutkanlah ke langkah d).
d) Jika bilangan - 0, tambahlah pencacah bilangan nol dengan angka 1 dan
kemudian ke langkah a).
e) Cetaklah semua isi pencacah bilangan.
Algoritma Revisi Kedua
IS Camp – Algoritma 15 of 49
a) Tentukanlah variabel yang akan digunakan.
b) Tentukanlah nilai awal semua pencacah sama dengan nol.
c) Baca data, jika tidak ada data, lanjutkan ke langkah g).
d) Jika bilangan < 0, tambahlah pencacah bilangan negatif dengan angka 1
dan kemudian ke langkah c); jika tidak maka lanjutkanlah ke langkah e).
e) Jika bilangan > 0, tambahlah pencacah bilangan positif dengan angka 1
dan kemudian ke langkah c); jika tidak maka lanjutkanlah ke langkah f).
f) Tambahlah pencacah bilangan nol dengan angka 1 dan kemudian ke
langkah c).
g) Cetaklah semua isi pencacah bilangan.
h) Selesai.
Algoritma dapat disajikan dalam bentuk kata-kata (English structure -
Indonesia) seperti di atas, tetapi seringkali hal ini sangat membosankan,
terlebih bila untuk menyelesaikan masalah yang rumit dan besar. Oleh karena
itu dibutuhkan metode-metode yang dapat mengimplementasikan algoritma
dengan lebih menarik dan mudah dipahami, misalnya structure chart, HIPO
dan flow chart.
Setelah algoritma selesai disusun maka kemudian dilakukan pengecekan
logika dan usaha-usaha untuk mengekspresikan langkah-langkah yang ada,
khususnya yang berkaitan dengan masalah pengujian. Proses efisiensi
tersebut dapat dilakukan dengan decision table. Setelah diperoleh algoritma
yang terbaik maka dari algoritma tersebut disusunlah suatu pseudocode.
Pemeriksaan logika
Step Algoritma Bil Var
Neg
Var
Pos
Var
Nol Testing Keterangan
1 a
2 b 0 0 0 semua var=0 benar
3 c 31 bil kesatu benar
4 d 31 ke langkah e benar
5 e 31 1 bil 31 > 0 benar
6 c -9 bil kedua benar
7 d -9 1 bil -9 < 0 benar
8 c 0 bil ketiga benar
9 d 0 bil langakah e benar
10 e 0 ke langkah f benar
11 f 0 1 bil 0 = 0 benar
12 c data habis! Ke lanakah e benar
13 g 1 1 1 isi variabel counter benar
2.6 Pemrograman
Pemrograman merupakan suutar proses guna rnengimplementasikan
algoritma dengan menggunakan suatar bahasa pemrograman. Satu hal yang
cukup penting sebelum seorang pemrogram mulai menyusun program adalah
memilih bahasa pemrograman yang akan digunakan.
IS Camp – Algoritma 16 of 49
Fungsi bahasa pemrograman adalah sebagai media untuk menyusun dan
memahami serta sebagai alat komunikasi antara pemrogram dengan
komputer, meskipun dapat juga digunakan sebagai alat komunikasi antara
orang yang satu dengan yang lain.
Secara umum bahasa pemrograman dapat dibagi dalam empat kelompok,
yaitu:
a) Bahasa aras rendah (Low level language)
Bahasa aras rendah merupakan bahasa pemrograman yang berorientasi
pada mesin. Pemrogram yang menggunakan bahasa ini, harus dapat
berpikir berdasarkan logika mesin komputer, sehingga bahasa ini dinilai
kurang fleksibel dan sulit untuk dipahami oleh pemula. Contohnya adalah
bahasa assembly.
b) Bahasa aras menengah (middle level language)
Bahasa aras menengah merupakan bahasa pemrograman yang
menggunakan aturan-aturan gramatikal dalam penulisan ekspresi atau
pernyataan dengan standar bahasa yang mudah dipahami oleh manusia
serta memiliki instruksi-instruksi tertentu yang dapat langsung diakses
oleh komputer. Contohnya adalah bahasa C.
c) Bahasa aras tinggi (High level language)
Bahasa aras tinggi merupakan bahasa pemrograman yang memiliki
aturan-aturan gramatikal dalam penulisan ekspresi atau pernyataan
dengan standar bahasa yang dapat dipahami secara langsung oleh
manusia. Contohnva adalah bahasa Pascal, For-tran, Cobol, Power Basic,
dan lain-lain.
d) Bahasa berorientasi objek (Object oriented language)
Bahasa berorientasi pada objek merupakan bahasa pemrograman yang
rnengandung "kapsul-kapsul" yang berisi fungsi-fungsi untuk penyelesaian
suatu masalah. Dengan bahasa ini pemrogram tidak lagi harus menuliskan
secara detail semua pernyataan dan ekspresi seperti pada bahasa aras
tinggi, melainkan cukup dengan memasukkan kriteria-kriteria yang
dikehendaki saja. Bahasa ini kemudian akan menggunakan "kapsulkapsul"
tersebut untuk memecahkan permasalahan itu. Contohnya adalah
bahasa C++, Java dan C#.
Agar komputer dapat memahami program yang disusun denggan suatu
bahasa pemrograman, maka dibutuhkan suatu penerjemah, yaitu interpreteratau
compiler.
2.6.1 Interpreter
Interpreter berasal dari kata to interpret yang berarti menerjemahkan atau
mengartikan. Interpreter merupakan penerjemah bahasa pemrograrran yang
menerjernahkan instruksi demi instruksi pada saat eksekusi program.
IS Camp – Algoritma 17 of 49
Pada saat menerjemahkan, interpreter akan memeriksa sintaksis. leksikal dan
semantik dari setiap instruksi program. Jika ditemukan kesalahan sintaksis
(syntux error) maka interpreter akan menampilkan pesan kesalahan dan
proses eksekusi program akan langsung terhenti pada saat itu juga.
Memori yang dibutuhkan untuk interpreter tidak besar karena program
dieksekusi secara berurutan (sequence). Namun demikian memori yang
tersedia harus cukup besar, karena pada saat eksekusi itu seluruh source
program, data dan interpreter secara bersamasama berada di dalam memori.
Gambar 2.1 Diagram Proses kerja Interpreter
Penerjemah jenis interpreter ini lebih cocok digunakan oleh para pemula.
sedangkan untuk pemrogram yang telah beranjak menjadi profesional maka
penerjemah ini kurang cocok karena interpreter akan membiasakan
pemrogram untuk menyusun program dengan logika yang kurang baik. Hal ini
dapat dilihat dari proses penerjemahan yang dilakukan interpreter yang tidak
mampu mendeteksi adanya kesalahan logika dan hanya mampu mendeteksi
kesalahan sintaksis saja. Di samping itu pemrogram juga akan senantiasa
bergantung pada penggunaan paket bahasa pemrograman tersebut dan
melakukan eksekusi program.
2.6.2 Compiler
Istilah compiler berasal dari kata to compile yang berarti menyusun,
mengumpulkan atau menghimpun. Compiler merupakan penerjemah bahasa
pemrograman yang menerjemahkan instruksi-instruksi dalam satu kesatuan
modul ke dalam bahasa mesin (object program).
Kemudian object program akan mengalami proses linking yang berfungsi
untuk menggabungkan modul tersebut den-an modul lain yang berkaitan,
seperti data tentang karakteristik mesin, file-file pustaka atau object program
lainnya yang berkaitan dengan object program tersebut, sehingga dihasilkan
suatu file executable program yang akan dieksekusi oleh komputer. Bila pada
saat proses penerjemahan atau proses linking terjadi kesalahan maka akan
tampil pesan kesalahan dan proses eksekusi akan berhenti.
Proses kompilasi dilakukan setelah seluruh program selesai ditulis. karena
compiler juga akan memeriksa sintaksis, leksikal, semantik dan logika
programnya.
IS Camp – Algoritma 18 of 49
Program yang dikompilasi umumnya berjalan dengan kecepatan tinggi dan
tidak tergantung lagi pada bahasa pemrograman yang digunakan untuk
menyusunnya.
Gambar 2.2 Diagram kerja Compiler
Kekurangan penerjemah jenis compiler ini adalah pada penggunaan memori
komputer yang besar pada saat proses kompilasi source program untuk
menghasilkan object program dan executable program.
2.7 Sistematika Penulisan Program
Secara umum, sistematika pokok penulisan program terdiri dari inisialisasi,
input, proses, output.
a) Inisialisasi
Pada beberapa bahasa pemrograman terstruktur seperti Pascal, C, Fortran
dan Cobol, proses inisialisasi merupakan suatu keharusan (bandingkan
dengan bahasa Basic). Pada tahap ini, pemrogram harus menuliskan nama
program, piranti yang akan digunakan, konstanta, variabel, fungsi dan
prosedur yang akan digunakan.
b) Input
Pada tahap ini pemrogram menuliskan perintah-perintah untuk
memasukkan data yang akan diproses dengan suatu prosedur.
c) Proses
Pada tahap ketiga ini pemrogram menuliskan proses-proses pengolahan
data, baik berupa rumus matematika, statistik maupun logika, dan lainlain.
d) Output
IS Camp – Algoritma 19 of 49
Pada tahap terakhir ini pemrogram menuliskan perintah perintah untuk
menampilkan hasil pengolahan data dalam bentuk format tertentu, seperti
tabel, grafik. dan lain-lain.
Sebagai contoh kasus, buatlah program untuk menghitung harga premium
dan solar bila diketahui banyaknya bahan bakar yan- dibeli 10,5 liter.
Sedangkan harga premium per liter adalah Rp. 2400,00 dan harga solar per
liter
adalah Rp. 1800,00. Tampilan yang diinginkan adalah jumlah liter bahan
bakar yang dibeli, harga 10,5 liter premium clan harga 10,5 liter solar.
Inisialisasi : //Program men-hitung harga bahan bakar
Input : Liter = 10,5
Proses : Premium = Liter * 1000
Solar = Liter *500
Output : Print Liter, Premium, Solar End
2.8 Testing dan Debuging
Pada dasarnya ada dua istilah untuk menyebut pengujian pada program,
yaitu testing dan debuging. Banyak penulis yang membedakan arti dari kedua
istilah itu, walaupun keduanya mempunyai tujuan yang sama, yaitu
menghasilkan program yang benar.
Testing adalah proses mengeksekusi program secara intensif untuk
menemukan kesalahan, sedangkan debugging adalah saat menemukan
kesalahan sampai kesalahan itu diperbaiki sehingga tidak ada kesalahan lagi.
Dalam buku ini akan dipakai satu istilah saja, yaitu testing, karena pengujian
tidak hanya untuk mendapatkan program yang benar, namun juga memastikan
bahwa program tersebut telah bebas dari kesalahan untuk segala kondisi.
2.8.1 Angka Bena
Konsep angka bena secara fornal menandakan keandalan suatu nilai numerik.
Angka bena adalah angka yang dapat digunakan dengan pasti.
Gambar 2.3 Angka Bena
IS Camp – Algoritma 20 of 49
Beberapa soal mengalami kekaburan, misalnya penulisan angka nol sebagai
berikut:
0,0000 1845 = 1,845 * 10-5
0,000 1845 = 1,845 * 10-4
0,00 1845 = 1,845 * 10-3
Ketiga contoh tersebut memiliki empat angka bena, tetapi hal ini berbeda
dengan permasalahan berikut:
Berapakah angka bena dari 45,300? Mungkin saja tiga buah (4,53 *
104), mungkin empat angka bena (4,530 * 104) atau lima huah
(=4,5300 * 104). Hal ini terguntung pada angka nol yang diyakini
benar.
Konsep angka bena mempunyai dua terapan penting untuk pengkajian
metode numerik:
a) Karena metode numerik memberikan hasil-hasil hampiran (aproksimasi),
maka harus dikembangkan kriteria untuk memerinci seberapa jauh
hampiran tersebut dapat dipercaya.
b) Bilangan tertentu seperti p, e atau v7 menyatakan besaran-besaran
tertentu. Bilangan-bilangan tersebut tidak dapat diungkapkan secara eksak
dengan menggunakan sejumlah berhingga bilangan. Misal p =
3,141592653589979..... karena komputer hanya dapat menyimpan
sejumlah angka bena. Bilangan-bilangan yang demikian tidak pernah
dapat, dinyatakan secara eksak.
2.8.2 Ketelitian dan Ketepatan
Galat yang berhubungan denaan perhitungan maupun pengukuran dapat
dicirikan dengan memperhatikan ketelitian dan ketepatannya.
IS Camp – Algoritma 21 of 49
Gambar 2.4 Ketelitian dan Ketepatan
Keterangan:
i. tidak teliti dan tidak tepat,
ii. teliti dan tidak tepat
iii. tidak teliti dan tepat
iv. teliti dan tepat
2.8.3 Proporsi Testing
Proporsi testing yang dilakukan terhadap suatu program juga tergantung dari
rancangan program tersebut sejak awal. Semakin banyak waktu yang
digunakan untuk membuat rancangan yang baik maka akan semakin sedikit
waktu yang digunakan untuk testing. Perancangan program yang baik akan
meminimalkan kesalahan. Jika ada kesalahan pun, maka kesalahan yang
terjadi itu bukanlah karena kesalahan logika yang mendasar, namun
kesalahan eksekusi program biasa yang dapat diatasi dengan mudah.
2.8.4 Kapan Menguji?
Pengujian program merupakan prosedur yang berkelanjutan. Testing pertama
kali terhadap program dilakukan setelah proses penulisan program selesai.
Jadi setelah suatu algoritma diterjemahkan ke dalam bentuk program, sudah
seharusnya dilakukan desk checking terhadap program tersebut. Proses
pengujian desk checking ini sebaiknya dilakukan dengan data yang berbedabeda
dan oleh beberapa orang.
Prosedur umum metode desk checking adalah sebagai berikut:
a) Pengujian terhadap pendefinisian masalah dan analisis kebutuhan;
b) Pengujian terhadap pseudocode;
c) Pengujian dengan menggunakan data;
d) Lakukan koreksi jika ada kesalahan.
Setelah melakukan pengujian dengan metode desk checking, maka program
yang dihasilkan perlu diuji dengan metode data-logic driver, baik terhadap
setiap modul maupun program secara keseluruhan setelah dilakukan
penggabungan sehingga menjadi suatu sistem yang terintegrasi.
Pengujian data driver mengacu pada kepastian kebenaran output dari
program dengan segala macam data yang memenuhi kriteria tertentu.
Keuntungan dari pengujian data driver adalah:
a) Pengujian dilakukan dengan mengggunakan data yang sesungguhnya
dalam secala kondisi; bukan hanya pengujian terhadap struktur program
b) Pengujian dapat dilakukan oleh seorang user biasa
c) Penampilan output yang tepat merupakan tanda bahwa algoritma bekerja
secara benar.
IS Camp – Algoritma 22 of 49
Sedangkan kelemahan pengujian dengan metode data driver antara lain
adalah tidak dapat melacak kepastian validitas logika dari algoritma dan tidak
semua data dapat dicoba.
Di samping metode data driver, pengujian juga dapat dilakukan dengan
metode logic-driver. Metode ini mengacu pada pengujian algoritma dari suatu
program yang akan menentukan benar atau salahnya suatu algoritma.
Keuntungan pengujian dengan metode ini adalah:
a) Bagaimanapun juga prosedur pengujian logika menggunakan metode logic
driver akan memperlihatkan tingkat kelemahan proses yang terjadi.
Pemrogram akan melihat ketidak-beresan pada algoritma
b) Pemrogram dapat melakukan perbaikan terhadap struktur program agar
program dapat bekerja lebih efisien dan mudah untuk mengembangkannya.
Namun metode ini juga memiliki kelemahan, yang antara lain adalah sebagai
berikut:
a) Data yang digunakan untuk melakukan pengujian telah ditentukan agar
tidak menyebabkan terjadinya kesalahan
b) Pengujian ini membutuhkan seorang pemrogram (tidak dapat digantikan
oleh user biasa) karena pengujian berkaitan terhadap struktur program.
2.8.5 Strategi Pengujian
Dalam melakukan pengujian terhadap suatu program, seorang pemrogram
harus memperhatikan beberapa hal berikut:
a) Gunakanlah beberapa macam data yang bervariasi dengan batasan -
batasan yang telah ditentukan di mana data yang diberikan harus
merupakan data valid.
b) Jangan terlalu cepat berasumsi bahwa program pasti benar hanya
berdasarkan hasil pengujian output program karena belum tentu logika
program sudah benar.
c) Pengujian terhadap struktur logika selection dapat 2 pangkat n buah titik
seleksi. Misalnya, dalam suatu program ada 9 titik keputusan, maka ada 2
pangkat 9 kemungkinan pengujian. Di samping itu jika ada 3 modul
program dan masing-masing modul memiliki 3 titik keputusan, maka
secara keseluruhan program akan memiliki 23 + 23 + 23 kombinasi;
dengan catatan ketiga modul tersebut tidak saling berkombinasi, sehingga
kemungkinannya bukan 29.
d) Pengujian dapat dilakukan dengan metode trace, yaitu proses mencari
kesalahan pada level yang sekecil-kecilnya. Tracing ini akan melacak
setiap baris program untuk menemukan kesalahan atau penyebab
kesalahan.
e) Pada pembuatan program dengan teknik modular, pengujian dapat
dilakukan per prosedur.
f) Pengujian perlu dilakukan oleh orang lain yang bukan pemrogram.
IS Camp – Algoritma 23 of 49
2.9 Bug
Kesalahan berawal dari kata "galat" atau "bug". Istilah ini diciptakan oleh
Admiral Grace Hopper pada tahun 1945. Istilah bug yang berarti ngengat digunakan
oleh Grace Hopper karena ngengat tersebut berada di dalam dan
merusak komputernya.
Ada lima macam kesalahan, yaitu galat sintaksis (syntax error), galat
eksekusi (execution error), galat logika (logic error), galat numerik
(numerical error) dan galat hitung (computing error),
2.9.1 Galat Sintaksis
Galat sintaksis terjadi jika pemrogram salah dalam mengetikkan perintahperintah
yang sesuai dengan bahasa pemrograman yang digunakan.
Misalnya: PIRNT seharusnya PRINT. Jadi galat sintaksis adalah galat yang
disebabkan oleh terjadinya kesalahanan ejaan, kesalahan ketik dari suatu
perintah atau sintax.
2.9.2 Galat Eksekusi
Galat eksekusi adalah kesalahan yang terjadi pada saat suatu program
dieksekusi. Misalnya, variabel penampung data yang diinputkan berjenis
integer tetapi masukan yang diinputkan berupa abjad.
2.9.3 Galat Logika
Galat logika adalah kesalahan yang terjadi karena salah dalam melakukan perancangan arsitektur dan
algoritma dari suatu program. Untuk memperbaiki kesalahan ini pemrogram harus melakukan
perancangan ulang. Dengan kata lain, pemrogram harus mengubah arsitektur programnya secara total.
2.9.4 Galat Numerik
Galat numerik timbul dari pengukuran atau pengamatan angka yang tidak
tepat atau dari penggunaan hampiran (aproksimasi) untuk menyatakan
besaran matematika yang eksak. Ada tiga macam galat numerik dari suatu
nilai sejati (nilai sejati = aproksimasi + galat), yaitu galat lekat (inherent
error), galat penggal (truncation error) dan galat pembulatan (round of
error).
a) Galat lekat
Galat numerik jenis ini terjadi karena pengukuran atau pernyataan atau
pengamatan angka yang tidak tepat. Misal:
IS Camp – Algoritma 24 of 49
Gambar 2.5 Galat Lekat
b) Galat penggal
Galat penggal akan terjadi jika dilakukan proses pemenggalan dari
suatu besaran eksak, misal 7,127113124 menjadi 7,12 yang berarti
terdapat galat sebesar 0,007113124.
c) Galat pembulatan
Galat pembulatan terjadi karena ada proses pembulatan suatu besaran
eksak, seperti: 45,4 menjadi 45. Ini berarti terdapat galat sebesar -0,4.
Sedangkan jika terdapat angka 47,76 dibulatkan menjadi 47,8 berarti
terdapat galat sebesar + 0,04.
2.9.5 Galat Hitung
Galat hitung terjadi bila ada proses penjumlahan, pengurangan, perkalian clan
pembajian. Hal ini terjadi karena setiap angka mengandung kesalahan
sehingga kesalahan tersebut juga terbawa dalam proses perhitungan
tersebut.
a) Galat hitung penjumlahan
Jika diketahui dua buah nilai eksak sejati X dan Y, sedangkan nilai sejati =
aproksimasi + galat, maka kedua nilai tersebut dapat dituliskan sebagai
berikut:
Xsejati = Xhampiran + Xgalat
Ysejati = Yhampiran + Ygalat
Jika Xsejati dijumlahkan dengan Ysejati maka akan diperoleh Xhampiran + Xgalat
+ Yhampiran + Ygalat = Xhampiran + Yhampiran + Xgalat + Ygalat Jadi galat
penjumlahan yang terjadi adalah Xgalat + Ygalat
b) Galat hitung pengurangan
Jika diketahui dua buah nilai eksak P dan Q. sedangkan nilai sejati =
aproksimasi + galat, maka kedua nilai tersebut dapat dituliskan sebagai
berikut:
Psejati = Phampiran + Pgalat
IS Camp – Algoritma 25 of 49
Qsejati = Qhampiran + Qgalat
Jika Psejati dijumlahkan dengan Qsejati maka akan diperoleh (Phampiran + Pgalat)
– (Qhampiran + Qgalat) = Phampiran - Qhampiran + Pgalat - Ygalat Jadi galat
penjumlahan yang terjadi adalah Pgalat - Qgalat
c) Galat perkalian
Jika diketahui dua buah nilai eksak sejati A dan B, sedangkan nilai sejati =
aproksimasi + galat, maka kedua nilai tersebut dapat dituliskan sebagai
berikut:
Asejati = Ahampiran + Agalat
Bsejati = Bhampiran + Bgalat
Jika Asejati dikalikan dengan Bsejati maka akan diperoleh (Ahampiran * Bhampiran)
+ (Ahampiran * Bgalat) + (Bhampiran * Agalat) + + (Agalat * Bgalat ) Jadi galat
penjumlahan yang terjadi adalah (Ahampiran * Bgalat) + (Bhampiran * Agalat) +
(Agalat * Bgalat )
d) Galat pembagian
Jika diketahui dua buah nilai eksak sejati C dan D, sedangkan nilai sejati =
aproksimasi + galat, maka kedua nilai tersebut dapat dituliskan sebagai
berikut:
Csejati = Champiran + Cgalat
Dsejati = Dhampiran + Dgalat
Jika Asejati dibagikan dengan Bsejati maka akan diperoleh (Champiran + Cgalat) *
[1/ {(Dhampiran * (1 + Dgalat : Dhampiran)}] = [(Champiran + Cgalat) / Dhampiran] *
[1/(1+ {(Dgalat : Dhampiran)}] karena 1/(1+ {(Dgalat : Dhampiran)} sangat kecil
Jadi galat penjumlahan yang terjadi adalah Cgalat/Dhampiran
2.10 Dokumentasi
Dalam ilmu pemrograman, dokumentasi program memegang peranan yang
sangat penting. Dokumentasi program merupakan salah satu alasan utama
yang membedakan pemrogram amatir dan profesional.
Pemrogram amatir biasanya menulis program yang hanya dapat dimengerti
oleh dan dioperasikannya sendiri, sedangkan pemrogram profesional menulis
program untuk dioperasikan dan diubah sewaktu-waktu, baik oleh dirinya
sendiri maupun oleh orang lain.
2.10.1 Pemakai Dokumentasi
Ada tiga jenis pemakai dokumentasi dengan kebutuhan yang berbeda-beda,
yaitu pemrogram, operator dan pemakai biasa (user).
IS Camp – Algoritma 26 of 49
a) Dokumentasi Pemrogram
Sekali ditulis, sebuah program akan dipakai dalam suatu sistem kerja
selama periode tertentu, misalnya beberapa tahun. Dalam masa operasi
tersebut tentu banyak ditemukan alternatif alternatif lain yang dapat
membuat sistem menjadi lebih efektif dan efisien jika diterapkan.
Perubahan untuk menambah kemampuan program ini termasuk dalam
kategori perawatan program.
Biaya yang digunakan untuk melaksanakan pemeliharaan program ini
dapat mencapai 50% dari biaya pembuatan program keseluruhan. Untuk
mengatasi kesulitan ini maka diperlukan dokumentasi yang rapi sehingga
dapat dipahami oleh pemrogram lain. Dokumentasi yang dibutuhkan oleh
pemrogram untuk melaksanakan pemelihara-an program dapat dibagi
menjadi dua kategori, yaitu:
Dokumentasi Internal
Dokumentasi ini berguna untuk menuntun pemrogram berhubungan
dengan bahasa pemrograman. Beberapa hal yang perlu diperhatikan dalam
dokumentasi internal:
i) Gunakan nama prosedur yang dapat menggambarkan fungsi prosedur,
seperti nama prosedur Hitung Gaji yang menggambarkan fungsi
prosedur untuk menghitung gaji karyawan
ii) Gunakan nama variabel yang dapat menggambarkan status data,
misalnya variabel Luas yang menggambarkan bahwa data yang
dikandungnya merupakan data luas suatu area
iii) Penulisan baris program sebaiknya satu instruksi satu baris
iv) Perlu penggunaan tabulasi dalam penulisan baris program
v) Keterangan-keterangan pada baris-baris program yang mempunyai
fungsi tertentu
Dokumentasi Eksternal
Dokumentasi ini dapat diwujudkan dalam bentuk manual dan catatancatatan
penting tentang program. Jika program mengalami perubahan,
jangan lupa untuk menyesuaikan dokumentasi yang ada agar dokumentasi
selalu up-to-date. Dokumentasi yang out-of-date akan menyebabkan
pemrogram lain gagal menjalankan tugasnya karena apa yang ada dalam
catatan berbeda dengan program yang telah diubah. Dokumentasi
eksternal meliputi:
i) Listing dari source program
ii) Spesifikasi program, termasuk tujuan dan mode operasionalnya
iii) Diagram struktur yang menggambarkan modul-modul program secara
hirarkis
IS Camp – Algoritma 27 of 49
iv) Spesifikasi aliran data yang diproses, bagaimana data diterima, dari
mana asalnya, file-file yang berhubungan, bagaimana struktur datanya,
dan lain-lain.
b) Dokumentasi Operator
Operator membutuhkan dokumentasi tata cara melaksanakan
pengoperasian program karena operator tidak tahu persis bagaimana
program tersebut bekerja. Oleh karena itu operator membutuhkan
pedoman yang berisi tata cara pengoperasian program. Seorang
pemrogram amatir akan mengoperasikan sendiri programnya karena hanya
ia sendiri yang tahu cara mengoperasikannya. Hal tersebut berbeda
dengan pemrogram profesional, di mana ia akan menuangkan tata cara
pengoperasian, perawatan program dan peralatan komputer dalam suatu
buku manual agar dapat dipelajari oleh operator. Dokumentasi untuk
operator biasanya meliputi:
i) Nama-nama file yang akan diakses
ii) Cara mengeksekusi clan mengoperasikan program
iii) Cara memahami tampilan layar
iv) Tata cara memasukkan data dan mencetak hasil
v) Data teknis seperti kapasitas pengingat yang dibutuhkan, dan
sebagainya
vi) Penjelasan detail tentang pesan-pesan kesalahan atau pernyataan
yang ditampilkan di layar
C) User biasa
User adalah orang yang merupakan anggota organisasi yana
memanfaatkan hasil pengolahan data untuk rnenjalankan tugasnya. User
mungkin tidak pernah melihat secara langsung bagaimana jalannya
program. Hanya operator yang, selalu berhubungan dengan pengoperasian
program. User hanya perlu mengetahui bagaimana bentuk masukan yang
diminta program. prosedur proses dan hasil yang diterima. Disamping itu,
user juga memerlukan pedoman tata cara membaca hasil pemrosesan
tersebut. Oleh karena itu program harus memiliki buku pedoman manual
untuk user sebagai dokumentasi. Buku manual ini harus mencakup:
i) Penjelasan detail tentang fungsi program
ii) Penjelasan detail tentang hasil pengolahan dan cara membaca hasil
tersebut.
2.10.2 Dokumentasi Sistem Interaktif
Perkembangan dewasa ini menunjukkan kecenderungan bahwa program
disusun dengan menggunakan sistem on-line interaction di mana
dokumentasi untuk operator dituangkan langsung pada tampilan menu di
IS Camp – Algoritma 28 of 49
layar. Dokumentasi tersebut dalam bentuk fasilitas on-line help sehingga
pemrogram tidak perlu lagi menyusun buku manual untuk operator.
2.11 Pemeliharaan
Progam yang sudah selesai disusun pasti membutuhkan pemeliharaan atau
perawatan yang meliputi :
• Penambahan atau peningkatan atau perbaikan program
• Adaptasi program dengan produk perangkat keras atau lunak yang
yang baru
• Pembetulan terhadap kesalahan yang timbul.
Jadi pemeliharaan program berarti melakukan koreksi (corective
maintenance), adaptasi (adaptive maintenance) dan melengkapi fasilitas guna
mengantisipasi kebutuhan masa depan (preventive maintenance).
Koreksi merupakan kegiatan pemeliharaan untuk memperbaiki program,
karena program masih mengandung kesalahan. Kesalahan tersebut mungkin
terjadi pada operasi input, proses maupun output.
Adaptasi merupakan kegiatan pemeliharaan untuk menyesuaikan program
dengan perangkat keras yang baru, misalnya format tampilan pada printer
yang semula dilakukan berdasarkan printer Epson LX-800, namun printer
tersebut kemudian diganti dengan printer laser sehingga dibutuhkan
penyesuaian agar dapat menampilkan hasil yang baik pada printer baru
tersebut.
preventive maintenance merupakan kegiatan pemeliharaan yang berkaitan
dengan prediksi ke masa mendatang. Misalnya pemrogram melihat bahwa
mungkin di masa mendatang akan digunakan peralatan input seperti barcode,
maka progam yang akan disusun sudah mulai dipikirkan untuk
dilengkapi dengan fasilitas tersebut.
IS Camp – Algoritma 29 of 49
BAB 3
PENYAJIAN ALGORITMA
3.1 Pengantar
Algoritma merupakan pola pikir yang terstruktur yang berisi tahap-tahap
penyelesaian masalah; dapat disajikan dengan menggunakan dua teknik,
yaitu teknik tulisan dan gambar.
Penyajian algoritma dalam bentuk tulisan biasanya menggunakan metode
English structure dan pseudocode, sedangkan penyajian algoritma dengan
teknik gambar biasanya menggunakan metode structure chart, hierarchy
plus input-process-output, flowchart dan Nassi Schneiderman chart.
3.2. English Structure dan Pseudocode
English structure merupakan alat yang cukup efisien untuk menggambarkan
suatu algoritma. Basis dari English structure adalah bahasa Inggris, tetapi
juga dapat menggunakan bahasa Indonesia. Oleh karena bahasa manusia
yang digunakan sebagai dasar penggambaran afgoritma, maka English
structure lebih tepat untuk menggambarkan suatu algoritma yang akan
dikomunikasikan kepada pemakai sistem.
Sedangkan pseudocode berarti kode yang mirip dengan kode pemrograman
yang sebenarnya. Pseudocode berasal dari kata pseudo yang berarti imitasi
atau mirip atau menyerupai, dan code yang berarti program. Pseudocode
ditulis berbasis bahasa pemrograman seperti BASIC, PASCAL, atau C,
sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan
dikomunikasikan kepada programmer. Pseudocode lebih rinci dari English
structure, misalnya dalam menyatakan tipe data yang digunakan.
Dalam penulisan English structure dan pseudocode juga dikenal struktur
penulisan program seperti sequence structure, selection structure dan looping
structure.
3.2.1 Struktur Urut pada English Structure dan Pseudocode
Struktur ini terdiri dari sebuah instruksi atau blok instruksi yang tidak
mempunyai perulangan atau keputusan di dalamnya. Contoh English
(Indonesia) structure adalah sebagai berikut:
• Inisialisasi dan pemberian nilai awal variabel
• Baca data panjang dan lebar empat persegi panjang
• Hitung luas empat persegi panjang sama dengan panjang dikalikan
dengan lebar
• Tampilkan hasil perhitungan
IS Camp – Algoritma 30 of 49
Sedangkan bentuk struktur urut pada pseudocode adalah sebagai berikut:
REMARK Program menghitung luas persegi panjang
SET data panjang diberi nilai awal 0
SET data lebar diberi nilai awal 0
INPUT data panjang
INPUT data lebar
PROSES luas sama dengan data panjang * data lebar
OUTPUT luas persegi panjang
END
3.2.2 Struktur Keputusan pada English Structure dan Pseudocode
Selection structure merupakan struktur logika guna mengambil suatu
keputusan. Struktur ini dapat menggunakan instruksi-instruksi seperti IFTHEN
atau struktur CASE. Berikut ini contoh penulisan selection structure
pada English structure (Indonesia):
• Inisialisasi variabel
• Baca data nilai siswa
• Jika nilai siswa lebih besar dari 60 maka statusnya sama dengan lulus, jika
tidak maka status sama dengan gagal
• Cetak status siswa
Sedangkan penulisan struktur keputusan pada pseudocode adalah:
REM program kelulusan siswa
LET data nilai diberi nilai awal 0
INPUT data nilai
IF data nilai >60 THEN
Status siswa sama dengan ‘Lulus’
ELSE
Status siswa sama dengan ‘Gagal’
PRINT Status siswa
END
3.2.3 Struktur Perulangan pada English Structure dan Pseudocode
Suatu perulangan diterapkan pada situasi di mana suatu instruksi atau grup
dari instruksi diproses berulangkali sampai kondisi yang diinginkan terpenuhi.
Pada struktur perulangan ini dapat digunakan instruksi FOR, REPEAT-UNTIL,
DO-WHILE. Berikut inivcontoh penulisan looping structure pada English
(Indonesia) structure:
• Inisialisasi variabel yang digunakan
• Tentukan nilai awal hitungan,
• Bila hitungan belum mencapai lebih besar dari sepuluh, maka ulangilah
blok instruksi berikut ini
? Cetak kata 'MERDEKA'
? Hitungan ditambah satu
• Selesai.
Sedangkan penulisan looping structure pada pseudocode adalah:
REM Program untuk menampilkan kata MERDEKA 10 kali
LET Hitungan diberi nilai awal 0
WHILE Hitungan <=10
IS Camp – Algoritma 31 of 49
PRINT kata ‘MERDEKA’
Hitungan ditambah 1
WEND
END
3.2.4 Gaya Penulisan English Structure
Pada English structure terdapat beberapa gaya penulisan yang telah banyak
digunakan. Gaya penulisan tersebut antara lain adalah:
• Common Style (menggunakan huruf besar di awal dan selanjutnya huruf
kecil semua)
• Capitalized Common Style (menggunakan huruf besar semua)
• Outline Common Style (dengan menggunakan nomor urut)
• Narative Style (berbentuk uraian);
• Gaya lain (tiap kata kunci ditulis dengan huruf besar semua).
3.2.5 Aturan Penulisan Pseudocode
Pada pseudocode terdapat beberapa aturan penulisan agar pseudocode
mudah dipahami dan dimengerti oleh pemrogram. Aturan penulisan tersebut
antara lain:
• Satu pseudocode satu baris.
• Pisahkan modul-modul atau kelompok pseudocode dengan memberikan
spasi beberapa baris untuk mempermudah pembacaan.
• Pseudocode ditulis dengan huruf kapital, sedangkan komentar atau
variabel dalam huruf kecil.
• Berikanlah tabulasi yang berbeda untuk penulisan pseudocodepseudocode
yang berada dalam kalang (loop) atau struktur kondisional.
• Lakukan pembatasan jumlah baris pseudocode setiap modulnya, misalnya
50 - 75 baris pseudocode per modul, sehingga tidak terlalu panjang.
3.3 Structure Chart
Structure Chart (bagan terstruktur) digunakan untuk mendefinisikan dan
mengilustrasikan organisasi dari sistem secara berjenjang dalam bentuk
modul clan submodul. Structure chart juga menunjukkan hubungan elemen
data dan elemen kontrol serta hubungan antarmodulnya sehingga structure
chart dapat memberikan penjelasan yang lengkap tentang sistem dipandang
dari elemen data, elemen kontrol, modul dan hubungan antarmodulnya.
3.3.1 Simbol-simbol Dasar
Dalam menggambarkan struktur organisasi sistem secara berjenjang
digunakan bebarapa macam simbol standar. Di samping simbol simbol
standar tersebut, pemrogram juga dapat menambah khasanah simbol yang
akan digunakan dalam penggambaran tersebut asalkan pemrogram
IS Camp – Algoritma 32 of 49
memberikan penjelasan tentang maksud dari simbol yang dibuat tersebut
dalam bentuk kamus simbol. Namun demikian sebaiknya pemrogram
menggunakan simbol-simbol standar untuk menggambarkan struktur sistem
tersebut agar mudah dipahami oleh pemrogram lain.
Gambar 3.1 Simbol-simbol dasar structure chart
Contoh penggunaan simbol-simbol pada structure chart dalam menggambarkan struktur suatu sistem.
Gambar 3.2.a Penggunaan simbol structure chart
IS Camp – Algoritma 33 of 49
Gambar 3.2.b Penggunaan simbol structure chart
3.3.2 Model Structure Chart
Structure Chart memiliki dua model penggambaran sistem, yaitu
transformerd-centered dan trunsaction-centered.
a) Transformed-centered
Structure chart dengan model transformed-centered menggambarkan
sistem dalam 3 cabang utama, yaitu:
• Cabang input yang, merupakan cabang yang akan menerima input dan
menentukan status input untuk siap diproses
• Cabang proses yang merupakan cabang yang akan melakukan fungsi
utama dari sistem, yaitu memproses input yang dikirim dari cabang
input
• Cabang output, merupakan cabang yang akan memformat data menjadi
output.
Contoh:
IS Camp – Algoritma 34 of 49
Gambar 3.3 Structure Chart Transformed Centered
b) Transaction-centered
Gambar 3.4 Structure Chart Transaction Centered
3.3.3 Lexical Inclusion
Lexical inclusion adalah bentuk penggambaran secara logika di mana suatu
modul berada di dalam modul yang lainnya. Pada contoh berikut ini, tipe
transaksi dispatch merupakan modul yang sangat sederhana. Modul tersebut
hanya berisi keputusan ke mana proses akan diarahkan. Oleh karena itu
modul ini dapat digabungkan pada modul proses pesanan.
IS Camp – Algoritma 35 of 49
Gambar 3.5 Structure Chart Lexical Inclusion
3.4 HIPO (Hierarchy plus Input-Process-Output)
HIPO (Hierarchy plus Input-Process-Output) merupakan alat dokumentasi
program yang dikembangkan dan didukung oleh IBM. Tetapi kini HIPO juga
telah digunakan sebagai alat bantu untuk merancang dan mendokumentasikan
siklus pengembangan sistem.
3.4.1 Sasaran HIP0
HIPO telah dirancang dan dikembangkan secara khusus untuk
menggambarkan suatu struktur bertingkat guna memahami fungsi dari
modul-modul suatu sistem; HIPO juga dirancang untuk menggambarkan
modul-modul yang harus diselesaikan oleh pemrogram. HIPO tidak dipakai
untuk menunjukkan instruksi-instruksi program yang akan digunakan; di
samping itu HIPO menyediakan penjelasan yang lengkap dari input yang akan
digunakan, proses yang akan dilakukan serta output yang diinginkan.
3.4.2 Diagram HIPO
HIPO menggunakan tiga macam diagram untuk masing-masing tingkatannya,
yaitu sebagai berikut:
a) Visual table of contents
Diagram ini menggambarkan hubungan dari modulmodul dalam suatu
sistem secara berjenjang.
IS Camp – Algoritma 36 of 49
Gambar 3.6 Visual Table of Contents
b) Overwiew diagrams
Overview diagrams digunakan untuk menunjukkan secara garis besar
hubungan dari input, proses dan output, di mana bagian input
menunjukkan item-item data yang akan digunakan oleh bagian proses;
bagian proses berisi langkah langkah yang menggambarkan kerja dari
fungsi atau modul; dan bagian output berisi hasil pemrosesan data.
Input Process Output
Data Karyawan Memasukkan Data - Katu identitas
- Daftar Karyawan
- Slip Gaji
Gambar 3.7 Overview diagram
c) Detail Diagram
Detail diagram berisi elemen-elemen dasar dari paket yang menggambarkan secara rinci kerja dari
fungsi atau modul.
Input Process Output
Data karyawan
Meliputi:
• NIP
• Nama Lengkap
• Tempat
• Tanggal Lahir
• Alamat Lengkap
• Golongan
• Jabatan
• Status
• Jumlah Anak
• Gaji Pokok
• Tunjangan
• Masukkan data
• Uji Kesamaan Data
• Uji Akhir input data
• Kartu identitas
• Daftar karyawan
• Slip Gaji
• Pemberitahuan
kesamaan data
• Pemberitahuan
Kesalahan data
• Kembalu ke menu
induk
Gambar 3.8 Detail Diagram
3.5 Flowchart
IS Camp – Algoritma 37 of 49
English structure disusun dengan tujuan untuk menggambarkan tahap tahap
penyelesaian suatu masalah dengan kata-kata (teks). Metode ini memiliki
kelemahan, di mana penyusunan algoritma dengan English structure sangat
dipengaruhi oleh tata bahasa pembuatnva. sehingga kadang-kadang sulit
dipahami oleh orang lain. Oleh karena itu kemudian dikembangkan suatu
metode untuk menggambarkan tahap-tahap pemecahan masalah dengan
merepresentasikan simbol-simbol tertentu yang mudah dimengerti, mudah
digunakan dan standar. Salah satu tnetode penulisan simbol ini adalah
flowchart.
Tujuan utama dari penulisaan flovvchart adalah untuk menggambarkan suatu
tahapan penyelesaian masalah secara sederhana, terurai, rapi dan jelas
dengan menggunakan simbol-simbol yang standar. Tahap penyelesaian
masalah yang disajikan harus jelas, sederhana, efektif dan tepat. Dalam
penulisan flowchart dikenal dua model, yaitu sistem flowchart dan program
flowchart.
3.5.1 Sistem Flowchart
Sistem flowchart merupakan diagram alir yang menggambarkan suatu sistern
peralatan komputer yang digunakan dalam proses pengolahan data serta
hubungan antar peralatan tersebut.
Sistem flowchart ini tidak digunakan untuk menggambarkan urutan langkah
untuk memecahkan masalah, tetapi hanya untuk mengambarkan prosedur
dalam sistem yang dibentuk.
Dalam menggambar flowchart biasanya digunakan simbol-simbol yang
standar, tetapi pemrogram juga dapat membuat simbol-simbol sendiri apabila
simbol-simbol yang telah tersedia dirasa masih kurang. Dalam kasus ini
pemrogram harus melengkapi gambar flowchart tersebut dengan kamus
simbol untuk menjelaskan arti dari masing -masing simbol yang digunakannya
agar pemrogram lain dapat mengetahui maksud dari simbol-simbol tersebut.
Berikut ini adalah gambar dari simbol-simbol standar yang telah banyak
digunakan pada penggambaran sistem flowchart serta contoh
penggunaannya.
IS Camp – Algoritma 38 of 49
Gambar 3.9 Simbol-simbol sistem flowchart
Contoh penggunaan sistem flowchart
Gambar 3.10 Contoh penerapan sistem flowchart
3.5.2 Program Flowchart
Program Flowchart merupakan diagram alir yang menggambarkan urutan
logika dari suatu prosedur pemecahan masalah. Untuk menggambarkan
program flowchart telah tersedia simbol-simbol standar; namun demikian
seperti halnya pada sistem flowchart, pemrogram dapat menambah khasanah
simbol-simbol tersebut asalkan pemrogram melengkapinya dengan
penggambaran program flowchart dengan kamus simbol.
IS Camp – Algoritma 39 of 49
Berikut ini adalah gambar dari simbol-simbol standar yang digunakan pada
program flowchart.
Gambar 3.11 Gambar simbol-simbol program flowchart
Gambar 3.12 Proses Conceptual Flowchart
Pada penggambaran program flowchart terdapat dua jenis metode, yaitu
conceptual flowchart dan detail flowchart. Conceptual flowchart
menggambarkan tentang alur dari suatu pemecahan masalah secara global
saja, sedangkan detail flowchart menggambarkan alur pemecahan masalah
secara rinci.
IS Camp – Algoritma 40 of 49
Gambar 3.13 Proses setelah diperbaiki
3.6 Flowchart Nassi-Schneiderman
Salah satu cara menggambarkan algoritma, selain dengan flowchart di atas,
adalah menggunakan flowchart Nassi-Schneiderman. Pada dasarnya flowchart
tersebut merupakan flowchart terstruktur yang tidak menggunakan anak
panah sebagai penunjuk proses.
Diagram ini juga mengenal tiga macam struktur program, yaitu struktur urut,
struktur perulangan dan struktur keputusan. Berikut ini adalah bentuk simbolsimbol
yang digunakan pada penggambaran flowchart Nassi-Schneiderman.
IS Camp – Algoritma 41 of 49
Gambar 3.14 Simbol-simbol Nassi Schneiderman Chart
Contoh penggunaan flowchart Nassi-Schneiderman
Gambar 3.15 Penerapan Nassi Schneiderman
IS Camp – Algoritma 42 of 49
BAB 5
STRUKTUR PROGRAM
5.1 Pengantar
Suatu program sebenarnya hanya terdiri dari tiga buah struktur program saja,
yaitu struktur urut, struktur keputusan, dan struktur perulangan. Dari ketiga
struktur inilah nantinya akan dikembangkan sehingga membentuk suatu
program yang lebih kompleks.
Bab ini akan membahas bagaimana masing-masing struktur program tersebut
dimanfaatkan dalam penyusunan suatu program. Setiap bahasa pemrograman
pasti memiliki ketiga struktur tersebut.
5.2 Struktur Urut
Struktur urut merupakan struktur program yang paling sederhana, di mana
setiap baris program akan dikerjakan secara urut dari atas ke bawah. Dalam
struktur urut tidak ada baris program yang dikerjakan lebih dari satu kali,
atau tidak ada baris program yang tidak dikerjakan.
Gambar 5.1 Flowchart struktur urut
Program yang dibuat dengan struktur urut adalah program yang sederhana
dan mudah untuk dipahami. Contoh:
1 { Program Menghitung luas Persegi Panjang }
2 Procedure LuasPersegiPanjang;
3 Var P, L , Luas : integer
4 Begin
5 Write(“Panjang : “); Readline(P);
6 Write(“Luas : “);
Readline(L);
7 Luas := P * L;
IS Camp – Algoritma 43 of 49
9 Writeln(“Luas Persegi panjang = “ , Luas);
10 End
Setiap baris program di atas akan diproses secara urut, mulai dari baris 102
sampai dengan baris 106. Pada saat baris 102 dan 103 dieksekusi, operator
akan diminta untuk memasukkan panjang dan lebar dari persegi panjang.
Pada baris 104 komputer akan menghitung luas persegi panjang dengan
rumus P * L. Pada baris 105 komputer akan menampilkan hasil perhitungan
dan ketika baris 106 dieksekusi, maka komputer akan mengakhiri proses
eksekusi program tersebut.
5.3 Struktur Keputusan
Pada struktur program ini tidak setiap baris program dikerjakan. Suatu baris
program akan dikerjakan jika memenuhi sebuah syarat. Struktur keputusan
adalah struktur program yang melakukan proses pengujian untuk mengambil
suatu keputusan apakah suatu baris atau blok instruksi akan diproses atau
tidak. Pengujian kondisi ini dilakukan untuk memilih salah satu dari beberapa
alternatif yang tersedia.
Syarat dalam dunia pemrograman adalah sebuah pernyataan boole, yang
dapat bernilai benar (true) atau salah (false). Biasanya sebuah syarat terdiri
dari operand-operand yang dihubungkan dengan operator relasi dan
digabungkan dengan operator logika. Contohnya:
• 5 = 5 (Bernilai benar, sebab 5 sama dengan 5)
• 3 = 4 (Bernilai salah, sebab 3 tidak sama dengan 4)
• 3 > 1 (Bernilai benar, sebab 3 lebih besar dari pada 1)
• 5 <> 3 (Bernilai benar, sebab 5 tidak sama dengan 3)
• A = 5 (Dapat bernilai benar atau salah, tergantung isi dari variabel A)
• (A>5) AND (B>10)
(Dapat bernilai benar atau salah, tergantung isi dari variabel A dan B)
IS Camp – Algoritma 44 of 49
Gambar 5.2 Flowchart struktur keputusan
Dalam penulisan program, instruksi struktur keputusan yang biasa digunakan
adalah instruksi IF. Ada beberapa macam struktur instruksi IF, yaitu:
5.3.1 IF Syarat THEN Instruksi
Instruksi IF syarat THEN instruksi digunakan jika hanya terdapat satu syarat
yang digunakan untuk menguji apakah suatu instruksi akan diproses atau
tidak; jika syarat dipenuhi maka instruksi tersebut akan diproses lebih dahulu
sebelum melanjutkan ke eksekusi baris instruksi selanjutnya; jika syarat tidak
dipenuhi maka komputer akan langsung melanjutkan dengan mengeksekusi
baris instruksi selanjutnya. Contoh:
1 { Program menghitung luas persegi panjang}
2 { Program dapat dieksekusi ulang juka
dibutuhkan }
3 Procedure LuasPersegiPanjang;
4 Var
5 P, L , Luas : integer
6 Lagi : char
7 Begin
8 repeat
9 Write(“Panjang : “);
Readline(P);
10 Write(“Luas : “);
Readline(L);
11 Luas := P * L;
12 Writeln(“Luas Persegi panjang = “ ,
Luas);
IS Camp – Algoritma 45 of 49
13 Write(“Apakah anda akan menghitung
lagi(Y/N)?”);
14 Readline(Lagi);
15 Until Lagi <> ‘N’
16 End
17 End
Setelah baris program 12 dieksekusi maka komputer akan meminta masukan
dari operator dengan memberikan pertanyaan "Apakah Anda akan
menghitung lagi (Y/N) ?"; jika operator ingin melakukan perhitungan ulang
maka operator dapat memberikan jawaban dengan menekan tombol Y. Jika
operator tidak ingin mengulang eksekusi program maka operator dapat
memberikan jawaban dengan menekan tombol N.
Setelah operator memberikan jawaban maka komputer akan mengeksekusi
baris program 15, di mana pada baris tersebut dilakukan pengujian untuk
menentukan apakah instruksi until Lagi <> ‘N’ akan dieksekusi atau tidak.
Pengujian tersebut menggunakan syarat jika Lagi= "Y" atau Lagi ="y". Jika
syarat tersebut terpenuhi maka instruksi repeat akan dieksekusi. Jika tidak
maka instruksi repeat tidak akan dieksekusi dan komputer akan segera
mengeksekusi baris program 16.
5.3.2 IF Syarat THEN Instruksi1 ELSE Instruksi2
Instruksi IF syarat THEN instruksil ELSE instruksi2 digunakan jika terdapat
satu syarat yang digunakan untuk memutuskan alternatif instruksi mana yang
akan diproses; jika syarat dipenuhi maka instruksil akan diproses lebih dahulu
sebelum mengeksekusi baris instruksi selanjutnya; jika syarat tidak dipenuhi
maka komputer akan mengeksekusi instruksi2 sebelum melanjutkannya
dengan mengeksekusi baris instruksi selanjutnya. Contoh:
1 {Program untuk menentukan status bilangan}
2 Procedure StatusBilangan;
3 Var bil : integer
4 Begin
5 Write(“Ketikkan sebarang bilangan :”);
6 Readline(bil)
7 if bil >=0 then
8 Writeln(“Bilangan Positive”);
9 else
10 Writeln(“Bilangan Negative);
11 End
12 End
Pada saat program untuk menentukan status bilangan di atas dieksekusi,
maka pertama-tama komputer akan meminta operator untuk mengetikkan
suatu bilangan. Pada baris program 7 komputer akan melakukan pengujian
terhadap bilangan yang telah diketikkan oleh operator tersebut. Jika bilangan
>= 0 maka komputer akan menampilkan status bahwa bilangan tersebut
IS Camp – Algoritma 46 of 49
adalah bilangan positif, lalu komputer akan segera mengeksekusi baris
program 8; jika syarat pengujian tidak terpenuhi, maka komputer akan
menampilkan status bilangan negatif, lalu komputer akan segera
mengeksekusi baris program 11.
5.3.3 IF Syarat THEN Blok Instruksi END IF
Instruksi IF syarat THEN blok instruksi END IF digunakan jika terdapat satu
syarat yang digunakan untuk menguji apakah suatu blok instruksi akan
diproses atau tidak; jika syarat dipenuhi maka blok instruksi tersebut akan diproses
lebih dahulu sebelum dilanjutkan dengan mengeksekusi baris instruksi
selanjutnya; jika syarat tidak dipenuhi maka komputer akan langsung menb
eksekusi baris instruksi selanjutnya. Contoh:
1 {Program menentukan bentuk dan menghitung luas
persegi empat}
2 procedure LuasPersegiEmpat;
3 var Bentuk: string
4 p, l : integer
5 Luas : integer
6 Begin
7 Bentuk:=”Persegi Panjang”
8 Writeln(“Panjang :”); readln(p);
9 Writeln(“lebar :”); readln(l);
10 If p=l then
11 Bentuk:=”bujur sangkar”
12 Luas:=p*l
13 Writeln(“Luas “, bentuk, “= “ , luas);
14 End
Pada saat program di atas dieksekusi, pertama-tama variabel Bentuk diberi
status awal "Persegi Panjang". Setelah itu komputer akan meminta masukan
berupa nilai dari variabel P (panjang) dan L (lebar) yang merupakan variabel
yang menunjukkan panjang sisi dari suatu segi empat. Komputer kemudian
melanjutkan dengan suatu pengujian untuk menentukan status dari segi
empat tersebut, dengan syarat jika isi variabel P sama dengan isi variabel L
maka status awal dari variabel Bentuk akan diganti dengan status "Bujur
sangkar" lalu komputer akan melanjutkan dengan menghitung luas dan
mencetak hasil; tetapi jika syarat tersebut tidak terpenuhi, maka komputer
akan langsung menghitung luas segi empat dan mencetak hasil perhitungan
tersebut.
5.3.4 IF Syarat THEN glok Instruksil ELSE Blok Instruksi2 END IF
Instruksi IF syarat THEN instruksil ELSE instruksi2 digunakan jika terdapat
satu syarat yang digunakan untuk memutuskan alternatif blok instruksi mana
yang akan diproses; jika syarat dipenuhi maka blok instruksil akan diproses
lebih dahulu sebelum dilanjutkan dengan mengeksekusi baris instruksi
selanjutnya; jika syarat tidak dipenuhi maka komputer akan mengeksekusi
IS Camp – Algoritma 47 of 49
blok instruksi2 sebelum dilanjutkan dengan mengeksekusi baris instruksi
selanjutnya. Contoh:
1 {Program menentukan status bilangan}
2 procedure StatusBilangan;
3 var bil : integer
4 Begin
5 Write(“Ketikkan sebarang bilangan: ”);
6 readln(bil);
7 if bil>=0 then
8 begin
9 Writeln(“Bil Positive”);
10 Writeln(“Bil Positive adalah bilangan >=
nol”);
11 else
12 Writeln(“Bil Negative”);
13 Writeln(“Bil Negative adalah bilangan <=
nol”);
14 end
15 End
5.3.5 Struktur Keputusan dengan Lebih dari Satu Syarat
Jika syarat yang digunakan untuk melakukan seleksi cukup banyak, maka
dibutuhkan instruksi IF dengan struktur sebagai berikut:
IF Syaratl THEN
blok instruksi
ELSEIF Syarat2 THEN
blok instruksi
ELSEIF Syarat3 THEN
blok instruksi
ELSE
blok instruksi
END IF
Untuk instruksi IF dengan banyak syarat, ada alternatif lain yang dapat
digunakan untuk menyederhanakan penulisan program, yaitu dengan
menggunakan instruksi SELECT CASE yang memiliki struktur penulisan
sebagai berikut:
SELECT CASE
perintah
perintah
END SELECT
Instruksi SELECT CASE ini pada bahasa pemrograman terstruktur dinilai
efektif untuk menyusun program di mana terdapat proses pemilihan dari
beberapa alternatif yang tersedia. Namun instruksi CASE ini memiliki
kelemahan, di mana syarat yang dapat diperiksa sangat terbatas, tidak
fleksibel seperti instruksi IF. Contohnya, syarat pada instruksi CASE tidak
dapat digunakan untuk menulis syarat: nilai >10, atau yang lainnya.
IS Camp – Algoritma 48 of 49
5.4 Struktur Perulangan
Pada struktur perulangan ini terdapat bagian program yang dikerjakan secara
berulang-ulang, selama syarat perulanban dipenuhi. Struktur program ini
akan sangat berguna jika dibutuhkan sebuah proses perulangan dalam suatu
program.
Struktur perulangan ini mempunyai beberapa macam bentuk penulisan,
seperti tampak pada flowchart berikut ini:
Gambar 5.3 Flowchart struktur perulangan
5.4.1 FOR-NEXT
Struktur perulangan dengan instruksi FOR-NEXT ini akan mengulangi eksekusi
baris program selama syarat/kondisi perulangan dipenuhi. Pada perulangan
menggunakan instruksi FOR-NEXT, pengujian kondisi dilakukan sebelum
perulangan dari suatu blok instruksi dilaksanakan sehingga selama kondisi
dipenuhi maka perulangan akan dilaksanakan, sedangkan jika kondisi sejak
awal sudah tidak terpenuhi maka perulangan tidak akan dilakukan. Kondisi
yang digunakan pada instruksi perulangan ini tidak dalam bentuk instruksi
logika tetapi dalam bentuk angka.
5.4.2 WHILE-WEND
Pada bagian ini suatu perulangan akan dilakukan bila suatu syarat/ kondisi
terpenuhi. Pada perulangan yang menggunakan instruksi WhileWend,
syarat/kondisi yang diberikan dapat lebih fleksibel dibandingkan
syarat/kondisi dengan instruksi FOR-NEXT.
5.4.3 DO-LOOP UNTIL
Pada bagian ini suatu perulangan terhadap suatu blok instruksi akan
dikerjakan sampai suatu syarat/kondisi terpenuhi.
Pada perulangan dengan menggunakan instruksi DO - LOOP UNTIL, proses
eksekusi blok instruksi akan dilaksanakan terlebih dahulu, kemudian baru
IS Camp – Algoritma 49 of 49
dilakukan pengujian terhadap kondisi perulangan yang ada. Jika kondisi tidak
terpenuhi maka akan dilakukan perulangan dengan mengeksekusi blok
instruksi tersebut; tetapi bila kondisi terpenuhi maka eksekusi dihentikan

1 Komentar:

Anonim mengatakan...

так, напэўна так і ёсць