Analisis:
1. Ketika program dijalankan maka akan muncul permintaan untuk
memasukkan satu nama.
2. Nama ini kemudian dicari, misalnya dengan rentatan if then else atau dengan
instruksi case()
3. Bila nama tersebut ketemu makanomor teleponnya akan ditampilkan
4. Bila nama tersebut tidak ada maka tampil “nama tersebut tidak ada”.
5.
Algoritma Buku_Telepon
{mencari nomor telepon seseorang}
Devinisi Variabel
string nama, notelp;
Rincian Langkah
write(”Ketik Namanya:”);
read(nama);
case (nama)
‘Anton’ : notelp ← (0411) 324-678;
‘Bahrul’ : notelp ← (021) 434-6783;
‘Charles’ : notelp ← (022) 256-1234;
‘Daud’ : notelp ← (0411) 567-342;
‘Endang’ : notelp ← (0411) 344-235;
‘Fahri’ : notelp ← (021) 765-0856;
‘Gunarsih’ : notelp ← (0421) 123-876;
Default : notelp ← ‘nama tersebut tidak ada’;
endcase
write(notelp);
Tentu saja algoritma diatas hanya cocok untuk data dengan volume yang tidak
terlalu besar. Untuk kasus seperti ini namun dengan volume data yang besar maka
diperlukan aplikasi basis data (data base) yang berada diluar konteks buku ini.
Solusi altenatif untuk volume data sedang adalah dengan membagi data menjadi
beberapa kelompok berdasarkan huruf pertama dari nama, sehingga menjadi
kelompok A, kelompok B, kleompok C dan seterusnya. Kemudian setiap kelompok
dinyatakan dalam bentuk array (vektor) nama. Pencarian nama bisa dilakukan
dengan kombinasi instruksi case, for, dan if then. Potongan kodenya adalah sebagai
berikut :
awal ← substr(nama,I);
case (awal)
‘A’: for i=1 to n
If(nama=namaA[i])
then notelp ← telp A[i];
break
‘B’: for i=1 to n
If(nama=namaB[i])
then notelp ← telp B[i];
break
MENJUMLAHKAN DERET
Buatlah sebuah algoritma untuk menghitung jumlah deret denga N buah suku sebagai
berikut :
1 1 1 1 1 1 1
S = 1- + - + - + - +
2 4 6 8 10 12 14
Analisis :
1. Ketika dijelaskan maka akan ada permintaan untuk memasukkan jumlah suku N
2. Bila diperhatikan maka tanda berselang-seling positif dan negatif. Posisi ganjil
tandanya positif dan posisi genap tandanya negatif.
3. Nilai yang dijumlahkan adalah kelipatan dari (1/2) yang dikalikan sesuai degan
posisinya, mula2 ½ kemudian 1/(2 ¿ 2), 1/(2 ¿ 3), ...
Algoritma Jumlah_Deret
{menjumlahkan deret sebanyak N buah suku}
Devinisi Variabel
integer N, cacah, k ;
real S;
Rincian Langkah
write(“Masukkan banyak sukunya:”);
read(N);
S ← 1;
cacah ← 1;
k ← 0;
while (cacah ¿ N) do
cacah ← cacah+1;
k ← k+2;
if (cacah%2=0)
then S ← S-1/k;
else S ← S+1/k;
endif.
endwhile
Write(“Jumlah deret”,S);
MENGELOMPOKKAN DATA
Andaikan dari keyboard dimasukkan N buah data (bilangan bulat) dan kemudian
akan dikelompokkan menjadi dua macam, yaitu kelompok bilangan ganjil dan
kelompok bilangan genap, dalam bentuk jumlahan maka keluarannya dalam bentuk
sebagai berikut:
Jumlah Bilangan Ganjil “ ...
Jumlah Bilangan Genap “ ...
Analisia:
Berapa banyak data yang harus di telebih terlebih dahulu → N
Lakukan perulangan sebanyak N kali untuk :
a. Meminta data
b. Memeriksa data apakah termasuk bilangan ganjil atau bilangan
genap,
c. Menjumlahkan data sesuai dengan kelompoknya
Tampilkan hasil penjumlahan
Algoritma Ganjil-Genap
{mengelompokkan data dalam bentuk penjumlahan bilangan ganjil dan genap}
Deklarasi
integer N, cacah, angka, Ganjil, Genap;
Deskripsi
write(“Masukkan banyaknya bilangan:”);
read(N);
cacah ← 1;
Ganjil ← 1;
Genap ← 1;
repeat
write(“Masukkan bilangan ke”, cacah);
read(angka);
if (angka%2=0)
then Genap ← Genap+angka;
else Ganjil ← Ganjil+angka;
endif.
cacah ← cacah+1;
until (cacah>N)
Andaikan operasi terhadap dua bilangan dapat dipilih melalui satu “menu” sebagai
berikut :
Pilih operasi yang diinginkan
Penjumlahan
Pengurangan
Perkalian
Pembagian
Jenis operasi:
Masukkan angka 1:
Masukkan angka 2:
Hasil “...
Apabila jawaban untuk mencoba ulang adalah “Y”, maka nama operasi diatas
dimunculkan kembali dan proses yang sama berulang hingga jawaban penggguna
program adalah “T”.
Algoritma Ganjil-Genap
{memilih operasi berdasarkan pilihan pada Menu Program}
Deklarasi
real angka1, angka2, angka3
char pilhan, ulang
Deskripsi
ulang ← ”Y”;
while (ulang “Y” ulang “Y”) do
write(“+ Penjumlahan”);
write(“- Pengurangan”);
write(“/ Pembagian”);
write(“* Perkalian”);
write(“ ”);
write(“ Jenis Operasi”);
read(pilihan);
endcase
if (angka2;=0)
then write(“Hasil “,hasil);
endif.
write(“Masih mau coba (Y/T:”);
read(ulang);
endwhile.
PEMBAYARAN CICILAN
Bunga dihitung per bulan sehingga , Bunga = Bunga ½ dan n adalah lamanya pinjaman
dalam bulan sehingga, n= Lama * ½
Algoritma Jumlah_Deret
{pembayaran cicilan atas pinjaman modal}
Devinisi Variabel
Real Modal, Cicilan, Bunga;
real ModalBulanan, BungaBulanan, Modal Tahunan, BungaTahunan;
integer Lama, n;
Rincian Langkah
(masukkan data utama)
write(“Masukkan Modal Pinjaman:”);
readln(Modal);
write(“Masukkan Bunga Pinjaman:”);
readln(Bunga);
write(“Masukkan Lama Pinjaman:”);
readln(Lama);