Beranda > Pemrograman > Runtunan (Sequence)

Runtunan (Sequence)

Finder

Algoritma merupakan runtunan (sequence) satu atau lebih instruksi, yang berarti bahwa:

1. Tiap instruksi dikerjakan satu persatu.

2. Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang.

3.  Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang tertulis di dalam teks algoritmanya.

4.  Akhir dari instruksi terakhir merupakan akhir algoritma.

Sebelum membuat program dengan algoritma runtunan (sequence) yang lebih rumit, kita coba dulu program-program yang tidak terlalu rumit seperti di bawah ini:

1. Buatlah program penjumlahan 2 buah bilangan dimana bilangan ke-1 dan ke-2 dimasukkan oleh pengguna?

program jumlah2bilangan;

uses wincrt;

var x,y,z: real;

begin

writeln ('MENGHITUNG JUMLAH 2 BILANGAN');

writeln ('============================');

write ('masukan bilangan 1 : ');

read (x);

write ('masukan bilangan 2 : ');

read (y);

z:=x+y;

write ('Hasil Penjumlahan = ',z:8:2)

end.

Hasil programnya seperti ini.

2. Buatlah program untuk menghitung luas lingkaran dan keliling lingkaran?

program lingkaran;

uses wincrt;

var r,kel,ls:real;

begin

writeln ('MENGHITUNG KELILING DAN LUAS LINGKARAN');

writeln ('======================================');

write ('masukan nilai jari-jari: ');

read (r);

kel:=2*3.14*r;

ls:=2*3.14*r*r;

writeln ('keliling lingkaran = ',kel:8:2);

write ('luas lingkaran = ', ls:8:2)

end.

Hasil programnya ada disini.

3. Buatlah program untuk menghitung luas segitiga?

program luas_segitiga;

uses wincrt;

var a,t,ls:real;

begin

writeln ('MENGHITUNG LUAS SEGITIGA');

writeln ('========================');

write ('masukan nilai alas : ');

read (a);

write ('masukan nilai tinggi : ');

read (t);

ls:=a*t/2;

write ('luas segitiga = ',ls:6:2)

end.

Hasilnya programnya seperti ini.

4. Buatlah program untuk meghitung luas trapesium yang diketahui panjang alas dan atas (kedua sisi sejajar) serta tingginya. Hitung pula luas segitiga yang alasnya dan tingginya sama dengan alas dan tinggi trapesium?

program luas_trapesium;

uses wincrt;

var al,at,t,ls1,ls2:real;

begin

writeln ('MENGHITUNG LUAS TRAPESIUM DAN SEGITIGA');

writeln ('======================================');

write ('masukan nilai alas : ');

read (al);

write ('masukan nilai atas : ');

read (at);

write ('masukan nilai tinggi : ');

read (t);

ls1:=(al+at)*t/2;

ls2:=al*t/2;

writeln ('luas trapesium = ', ls1:8:2);

write ('luas segitiga  = ', ls2:8:2)

end.

Hasil programnya ada disini.

5. Buatlah program untuk mencari nilai konversi dari suatu temperatur/ suhu , dimana suhu awal yang diketahui dalam derajat Fahrenheit, konversikan ke dalam derajat Celcius, Reamur.

Catatan:

Gunakan formula sbb: C = 5 / 9 (F – 32), R = 4 / 9 (F – 32)

program temperatur;

uses wincrt;

var F,R,C: real;

begin

writeln ('MENGHITUNG TEMPERATUR/SUHU');

writeln ('==========================');

write ('masukan nilai fahrenheit yang telah diketahui: ');

read (f);

C:=(5/9)*(F-32);

R:=(4/9)*(F-32);

writeln ('nilai C = ',C:4:2);

write ('nilai F= ',R:4:2)

end.

Hasil programnya ada disini.

6. Buatlah sebuah program untuk menampilkan kalimat : ”Senang bertemu dengan anda, nama, thanks…” Diimana nama adalah yang dimasukkan oleh user?

program nice2meetyou;

uses wincrt;

var x:string;

begin

write ('Masukan nama anda : ');

readln (x);

writeln ('Senang bertemu dengan anda ',x,', ','thanks...')

end.

Hasilnya seperti ini.

Setelah mencoba program-program diatas, mari kita lanjutkan pembahasan mengenai runtanan (sequence) ini. Urutan instruksi di dalam algoritma adalah penting. Urutan instruksi menunjukkan urutan logik penyelesaian masalah. Bergantung pada masalahnya, urutan instruksi yang berbeda mungkin tidak ada pengaruhnya terhadap solusi persoalan, tetapi mungkin juga menghasilkan keluaran yang berbeda pula.

– Contoh urutan instruksi yang tidak berpengaruh terhadap solusi persoalan

Contoh kasus:

Dibaca dua buah nilai integer, A dan B. Hitung jumlah keduanya dan hasil kali keduanya, lalu cetak jumlah dan hasil kali tersebut.

uses wincrt;

var a,b,c,d:integer;

begin

writeln ('PERBANDINGAN ALGORITMA');

writeln ('======================');

write ('masukan nilai pertama : ');

readln (a);

write ('masukan nilai kedua : ');

readln (b);

writeln ('');

writeln ('ALGORITMA 1 - BENAR');

c:=a+b;

d:=a*b;

writeln ('HASIL PENJUMLAHAN = ',c,', ','HASIL PERKALIAN = ',d);

writeln ('');

writeln ('ALGORITMA 2 - BENAR');

d:=a*b;

c:=a+b;

writeln ('HASIL PENJUMLAHAN = ',c,', ','HASIL PERKALIAN = ',d);

end.

Hasilnya seperti ini. Kedua algoritma di atas akan menghasilkan keluaran yang sama meskipun urutan instruksinya diubah.

– Contoh Urutan instruksi berpengaruh terhadap solusi persoalan

Contoh kasus:

Diketahui dua buah nilai, masing-masing disimpan di dalam dua buah peubah (variabel), A dan B. Bagaimana cara mempertukarkan nilai A dan B ? Misalnya, sebelumnya pertukaran A=biru dan B=merah, maka setelah pertukaran, nilai A=merah dan B=biru. Dalam mempertukarkan nilai dua buah variabel, perlu digunakan variabel bantu, misalnya C.

program tukarbejana;

uses wincrt;

var a,b,c: string;

begin

writeln ('TUKAR ISI BEJANA');

writeln ('================');

write ('Tulis warna isi bejana A : ');

readln (a);

write ('Tulis warna isi bejana B : ');

readln (b);

writeln ('');

writeln ('ALGORITMA 1 - BENAR');

c:=a;

a:=b;

b:=c;

writeln ('Warna isi bejana A = ',a);

writeln ('Warna isi bejana B = ',b);

writeln ('');

writeln ('ALGORITMA 2 - SALAH');

c:=a;

b:=c;

a:=b;

writeln ('Warna isi bejana A = ',a);

writeln ('Warna isi bejana B = ',b)

end.

Hasilnya seperti ini. Kedua algoritma di atas akan memberikan hasil yang berbeda. Pada algoritma pertama akan memberikan hasil yang diinginkan sebaliknya pada algortima kedua nilai A dan nilai b tidak akan bertukar.

Contoh – contoh:

1. Tulislah program untuk menampilkan jumlah hari, jam, menit, dan detik dari masukan berupa lamanya waktu dalam detik. Sebagai contoh, masukan 100.000 detik akan menghasilkan keluaran: 1 hari, 3 jam 46 menit dan 40 detik. Keluaran dari program ini adalah banyaknya hari, jam, menit dan detik dari waktu detik yang dimasukan.

Jawab:

Misalkan masukan 100.000 detik. Langkah-langkah penghitungan tersebut dapat diltuliskan sebagai berikut:

– Banyaknya hari = 100.000 / (60 * 60 * 24) = 100.000 / 86.400 = 1 hari.

– Banyaknya jam = (100.000 – 1 * 86.400)/ (60 * 60) = 13.600 / 3600 = 3 jam

– Banyaknya menit = (13.600 – 3 * 3.600) / 60 = 2.800 / 60 = 46 menit

– Banyaknya detik = (2.800 – 46 * 60) = 2.800 – 2.760 = 40 detik.

Berdasarkan contoh penghitungan di atas, maka dapat dituliskan algoritma pencarian hari, jam, menit dan detik adalah sebagai berikut:

program konversi_waktu;

uses wincrt;

var detik,hr,jm,mn,dt:longint;

begin

writeln ('MENGHITUNG KONVERSI WAKTU');

writeln ('=========================');

write ('masukan nilai detik : ');

readln (detik);

hr:=detik div (60*60*24);

detik:=detik-(hr*60*60*24);

jm:=detik div (60*60);

detik:=detik-(jm*60*60);

mn:=detik div (60);

dt:=detik-(mn*60);

writeln ('HASILNYA:');

writeln (hr,' hari');

writeln (jm,' jam');

writeln (mn,' menit');

writeln (dt,' detik');

end.

Hasilnya seperti ini.

Program diatas juga bisa dikerjakan dengan fungsi mod. Codingnya yaitu seperti ini:

program waktu3;

uses wincrt;

var hr,jj,mm,dd,detik,sisa:longint;

begin

writeln ('MENGHITUNG WAKTU');

writeln ('================');

write ('Masukkan nilai detik: ');

readln (detik);

hr:=detik div (60*60*24);

sisa:=detik mod (60*60*24);

jj:=sisa div 3600;

sisa:=sisa mod 3600;

mm:=sisa div 60;

dd:=sisa mod 60;

write (hr,' hari ',jj,' jam ',mm,' menit ',dd,' detik')

end.

Hasilnya seperti ini.

Sedangkan jika tidak menampilkan jumlah hari, maka programya menjadi lebih sederhana, yaitu:

program waktu2;

uses wincrt;

var jj,mm,dd,detik,sisa:longint;

begin

writeln ('MENGHITUNG WAKTU');

writeln ('================');

write ('Masukkan nilai detik: ');

readln (detik);

jj:=detik div 3600;

sisa:=detik mod 3600;

mm:=sisa div 60;

dd:=sisa mod 60;

write (jj,' jam ',mm,' menit ',dd,' detik')

end.

Hasilnya seperti ini.

2. Dibaca nama karyawan dan gaji pokok bulanannya. Gaji bersih yang diterima pegawai adalah:

gaji bersih = gaji pokok + tunjangan – pajak

Tunjangan karyawan dihitung 20% dari gaji pokok, sedangkan pajak adalah 15% dari gaji pokok ditambah tunjangan. Nama karyawan dan gaji bersihnya dicetak ke piranti keluaran. Buatlah programnya.

Jawab:

Tunjangan = 0.2 * gaji pokok

Pajak = 0.15 * (gaji pokok + tunjangan)

Gaji bersih = gaji pokok + tunjangan – pajak

Dari ketentuan di atas kita dapat tuliskan algoritma sebagai berikut:

program gaji;

uses wincrt;

var nama:string;

gapok,gaber,tunjangan,pajak:real;

begin

writeln ('MENGHITUNG GAJI KARYAWAN');

writeln ('========================');

write ('Masukkan nama karyawan: ');

readln (nama);

write ('Masukkan Gaji Pokok: ');

readln (gapok);

tunjangan:=0.2*gapok;;

pajak:=0.15*(gapok+tunjangan);

gaber:=gapok+tunjangan-pajak;

write (nama,' mempunyai gaji bersih sebesar ',gaber:10:2);

end.

Hasilnya seperti ini.

3. Buatlah program dalam bahasa Pascal untuk meminta masukan berupa nama, nim, absen, nilai tugas, nilai uts dan nilai uas. Berdasarkan absen, nilai tugas, nilai uts dan nilai uas tersebut hitunglah nilai akhir mahasiswa tersebut dengan menggunakan formula sebagai berikut:

Nilai akhir = 10% absen + 20% tugas + 30% uts + 40% uas

program nilai_mahasiswa;

uses wincrt;

var nama,nim:string;

absen, tugas, uts, uas, na : real;

begin

writeln ('MENCARI NILAI MAHASISWA/I');

writeln ('=========================');

write ('masukan nama mahasiswa/i : ');

readln (nama);

write ('masukan NIM nya : ');

readln (nim);

write ('nilai absen : ');

readln (absen);

write ('nilai tugas : ');

readln (tugas);

write ('nilai UTS : ');

readln (uts);

write ('nilai UAS : ');

readln (uas);

na:=(0.1*absen)+(0.2*tugas)+(0.3*uts)+(0.4*uas);

write (nama,' ',nim,' mendapatkan nilai akhir ',na:5:2)

end.

Hasilnya seperti ini.

Kategori:Pemrograman Tag:,
  1. 28 Juni 2013 pukul 11:11 PM

    This is really interesting, You’re a very skilled blogger. I’ve joined
    your feed and look forward to seeking more of your excellent post.
    Also, I have shared your website in my social networks!

  2. 1 Juli 2013 pukul 1:35 PM

    If you have, we understand what a superstar he is.
    Airports located in large, unfamiliar cities can be exchanged between the members, nor is the fact
    the rear end suspension system of the old classic motorcycles of
    the country, seek help. If you do, this lets people realize that easy everyday items such
    as diabetes and various glandular disorders
    Infections during pregnancy Falling or other illegal drugs.

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: