04.45

Free avatar, Dancing chicken

Free avatar, Dancing chicken

01.34

MATERI PEMROGRAMAN KOMPUTER 1


 Turbo pascal merupakan bahasa pemrograman yang paling populer dan terbaik di komputer mikro.
Dengan menguasai bahasa pascal maka kita dapat membuat sebuah program.
Berikut ini disajikan beberapa contoh program yang sedikit banyak dapat membantu dalam memahani dan mengerti tentang pascal.


A. LULUS-TIDAK LULUS
Untuk memudahkan guru atau pun dosen mengetahui murid (mahasiswa) mereka lulus atau tidak maka dibuat program sebagai berikut:


program Kelulusan;
uses wincrt;
var
a,b,c,d:real;
Ket:string[11];
begin
writeln ('Masukkan Nilai PDB=');readln(a);
writeln ('Masukkan Nilai Kalkulus=');readln(b);
writeln ('Masukkan Nilai Statistika Inferensial=');readln(c);
d:=(a+b+c)/3;
Writeln ('Rata-rata Nilai',(d):5:2);
Ket:='Lulus';
if d <50>
writeln(Ket);
end.



B. KONVERSI JAM - DETIK

Program Konversi_Detik_ke_Jam;
Uses Wincrt;
Var
hh,mm,ss,Total_Detik:longint;
Begin
Write ('Total Detik= ');readln (Total_Detik);
hh:=Total_detik div 3600;
mm:=(Total_detik mod 3600) div 60;
ss:=(Total_detik mod 3600) mod 60;
Writeln ('Waktu dalam Jam adalah ',hh,(' jam, '),mm,(' menit, '),ss,(' detik.'));
End.



Program Konversi_Jam_ke_Detik;
Uses Wincrt;
Type Jam = record
hh:longint;
mm:longint;
ss:longint;
End;
Var
J:Jam;
Total_Detik:longint;
Begin
Write ('Jam = ');readln (J.hh);
Write ('Menit= ');readln (J.mm);
Write ('Detik= ');readln (J.ss);
Total_Detik:=(J.hh*3600)+(J.mm*60)+J.ss;
Writeln ('Waktu dalam detik adalah ',Total_Detik);
End.




C. LAMA WAKTU TELEPON

Program Menghitung_Lama_Waktu_Telepon_dalam_Detik;
Uses Wincrt;
Type Jam = record
hh:real;
mm:real;
ss:real;
end;
Var
J1,J2:Jam;
Total_Detik:real;
Begin
Writeln ('Waktu mulai telepon:');
Write ('Jam =');read (J1.hh);
Write ('Menit=');read (J1.mm);
Write ('Detik=');read (J1.ss);
Writeln ('Waktu selesai telepon:');
Write ('Jam =');read (J2.hh);
Write ('Menit=');read (J2.mm);
Write ('Detik=');read (J2.ss);
Total_Detik:=(J2.hh-J1.hh)*3600+(J2.mm-J1.mm)*60+(J2.ss-J1.ss);
Writeln ('Lama Waktu Telepon dalam Detik adalah ',(Total_Detik):2:0, (' detik.'));
End.


Program Menghitung_Biaya_Telepon;
Uses Wincrt;
Type Jam = record
hh:longint;
mm:longint;
ss:longint;
end;
Var
J1,J2:Jam;
Total_Detik:longint;
Biaya_Telepon:longint;
Begin
Writeln ('Waktu mulai telepon:');
Write ('Jam =');read (J1.hh);
Write ('Menit=');read (J1.mm);
Write ('Detik=');read (J1.ss);
Writeln ('Waktu selesai telepon:');
Write ('Jam =');read (J2.hh);
Write ('Menit=');read (J2.mm);
Write ('Detik=');read (J2.ss);
Total_Detik:=(J2.hh-J1.hh)*3600+(J2.mm-J1.mm)*60+(J2.ss-J1.ss);
Biaya_Telepon:=(Total_Detik div 5)*200;
Writeln ('Lama Waktu Telepon dalam Detik adalah ',(Total_Detik), (' detik.'));
Writeln ('Biaya Telepon adalah Rp ',Biaya_Telepon);
End.



D. KONVERSI SUHU
Dalam pelajaran fisika sering dipelajari mengenai konversi satuan suhu. Berikut ini disajikan program yang dapat memudahkan Anda untuk mengkonversi suhu dari celcius ke kelvin dan farenheit.


Program Konversi_Suhu;
Uses Wincrt;
Var
C,K,F:real;
Begin
Write ('Masukkan suhu dalam Celcius= ');readln(C);
F:=((9/5)*C)+32;
K:=C+273;
Writeln ('Suhu dalam Fahrenheit= ',(F):5:2);
Writeln ('Suhu dalam Kelvin= ',(K):5:2);
End.


E. UMUR

Program Menghitung_Umur_Seseorang;
Uses Wincrt;
Type Tahun = record
yy:longint;
mm:longint;
dd:longint;
end;
Var
T1,T2:Tahun;
Total_Hari,Umur_Tahun,Umur_Bulan,Umur_Hari:longint;
Begin
Writeln ('Masukkan Tanggal Sekarang:');
Write ('Tanggal=');read (T1.dd);
Write ('Bulan =');read (T1.mm);
Write ('Tahun =');read (T1.yy);
Writeln ('Masukkan Tanggal Lahir:');
Write ('Tanggal=');read (T2.dd);
Write ('Bulan =');read (T2.mm);
Write ('Tahun =');read (T2.yy);
Total_Hari:=(T1.yy-T2.yy)*365+(T1.mm-T2.mm)*30+(T1.dd-T2.dd);
Umur_Tahun:=Total_Hari div 365;
Umur_Bulan:=(Total_Hari mod 365) div 30;
Umur_Hari:=(Total_Hari mod 365) mod 30;
Writeln ('Umur Anda Sekarang adalah ',(Umur_Tahun),(' tahun,'),(Umur_Bulan),(' bulan,'),(Umur_Hari),(' Hari.'));
End.


VOLUM DAN LUAS PERMUKAAN
Program Menghitung_Volum_dan_Luas_Permukaan_Kubus;
Uses Wincrt;
Var
s,Volum,Luas_Permukaan:real;
Begin
Write ('Masukkan ukuran rusuk Kubus=');readln (s);
Volum:=s*s*s;
Luas_Permukaan:=6*s*s;
Write ('Volum Kubus adalah ');writeln ((Volum):5:2);
Write ('Luas Permukaan Kubus adalah ');writeln ((Luas_Permukaan):5:2);
End.


TUKAR NILAI
Program Menukar_Nilai_A_dan_B;
Uses Wincrt;
Var
A,B:real;
Procedure Tukar(Var X,Y:real);
Var
penukar:real;
Begin
penukar:=X;
X:=Y;
Y:=penukar;
End;
Begin
Write ('Masukkan Nilai A=');readln (A);
Write ('Masukkan Nilai B=');readln (B);
Writeln ('Nilai A sebelum ditukar',(A):5:0);
Writeln ('Nilai B sebelum ditukar',(B):5:0);
Tukar(A,B);
Writeln ('Nilai A setelah ditukar',(A):5:0);
Writeln ('Nilai B setelah ditukar',(B):5:0);
End.


OPERASI BILANGAN
Program Operasi_Tambah_Kurang_Kali_Bagi_Div_Mod;
Uses Wincrt;
Var
a,b:longint;
c,d,e,f,g,h:real;
Begin
Write ('Masukkan bilangan pertama=');readln (a);
Write ('Masukkan bilangan kedua=');readln (b);
c:=a+b;
d:=a-b;
e:=a*b;
f:=a/b;
g:=a div b;
h:=a mod b;
Writeln ('Hasil Penjumlahan adalah ',(c):5:0);
Writeln ('Hasil Pengurangan adalah ',(d):5:0);
Writeln ('Hasil Perkalian adalah ',(e):5:0);
Writeln ('Hasil Pembagian adalah ',(f):5:2);
Writeln ('Hasil Pembaian Bulat adalah ',(g):5:0);
Writeln ('Sisa Hasil Pembagian adalah ',(h):5:0);
End.


MENGHITUNG GAJI
Program Menghitung_Gaji_Karyawan;
Uses Wincrt;
Var
Nama_Karyawan:string;
Gaji_Pokok:real;
Jumlah_Anak:longint;
Tunjangan_Istri,Tunjangan_anak,Gaji_Keseluruhan,Pajak,Gaji_Akhir:real;
Begin
Write ('Masukkan Nama Karyawan: ');readln (Nama_Karyawan);
Write ('Masukkan Gaji Pokok=Rp ');readln (Gaji_Pokok);
Write ('Masukkan Jumlah anak= ');readln (Jumlah_Anak);
Tunjangan_Istri:=0.15*Gaji_Pokok;
Tunjangan_Anak:=Jumlah_Anak*0.20*Gaji_Pokok;
Gaji_Keseluruhan:=Gaji_Pokok+Tunjangan_Istri+Tunjangan_Anak;
Pajak:=0.15*Gaji_Keseluruhan;
Gaji_Akhir:=Gaji_Keseluruhan-Pajak;
Writeln ('Tunjangan Istri =Rp ',(Tunjangan_Istri):15:2);
Writeln ('Tunjangan anak =Rp ',(Tunjangan_Anak):15:2);
Writeln ('Gaji Keseluruhan =Rp ',(Gaji_Keseluruhan):15:2);
Writeln ('Pajak =Rp ',(Pajak):15:2);
Writeln ('Gaji Akhir =Rp ',(Gaji_Akhir):15:2);
End.


CASE OF - MENU MAKANAN
Program Menu_Makan_Hari_Ini;
Uses Wincrt;
Var
a:integer;
Begin
Gotoxy (28,3); Writeln ('Menu Makan Hari Ini');
Gotoxy (25,4); Writeln ('=========================');
Gotoxy (25,6); Writeln ('1. Nasi Uduk');
Gotoxy (25,7); Writeln ('2. Nasi Jamblang');
Gotoxy (25,8); Writeln ('3. Nasi Goreng');
Gotoxy (25,9); Writeln ('4. Nasi Gudeg');
Gotoxy (25,10); Writeln ('5. Nasi Padang');
Gotoxy (25,11); Writeln ('6. Nasi Rames');
Gotoxy (25,13); Write ('Masukkan Pilihan Anda: ');readln (a);
Clrscr;
Gotoxy (20,7);
Case a of
1: Begin
Writeln ('Menu yang Anda pilih adalah Nasi Uduk.');
Gotoxy (20,8); Writeln ('Selamat Menikmati, Semoga Anda Puas.');
End;
2: Begin
Writeln ('Menu yang Anda pilih adalah Nasi Jamblang.');
Gotoxy (20,8); Writeln ('Selamat Menikmati, Semoga Anda Puas.');
End;
3: Begin
Writeln ('Menu yang Anda pilih adalah Nasi Goreng.');
Gotoxy (20,8); Writeln ('Selamat Menikmati, Semoga Anda Puas.');
End;
4: Begin
Writeln ('Menu yang Anda pilih adalah Nasi Gudeg.');
Gotoxy (20,8); Writeln ('Selamat Menikmati, Semoga Anda Puas.');
End;
5: Begin
Writeln ('Menu yang Anda pilih adalah Nasi Padang.');
Gotoxy (20,8); Writeln ('Selamat Menikmati, Semoga Anda Puas.');
End;
6: Begin
Writeln ('Menu yang Anda pilih adalah Nasi Rames.');
Gotoxy (20,8); Writeln ('Selamat Menikmati, Semoga Anda Puas.');
End;
else Writeln ('Pilihan Anda Salah');
End;
End.


MENAMPILKAN BILANGAN GENAP
Program Menampilkan_Bilangan_Genap;
Uses Wincrt;
Var
x,angka_awal:longint;
Begin
angka_awal:=2;
Repeat
Write (angka_awal,' ');
angka_awal:=angka_awal+2;
Until angka_awal>50
End.


JUMLAH DERET BILANGAN BULAT
Program Penjumlahan_Deret_Bilangan_Bulat;
Uses Wincrt;
Var
bilangan_awal,bilangan_akhir,bilangan_setelah_awal,bilangan_penolong1,bilangan_penolong2:longint;
jumlah1,jumlah2,jumlah_akhir:longint;
Begin
Write ('Masukkan bilangan awal yang diinginkan = '); readln (bilangan_awal);
Write ('Masukkan bilangan akhir yang diinginkan = '); readln (bilangan_akhir);
If bilangan_akhir=bilangan_awal then write (bilangan_awal)
else begin
jumlah_akhir:=0;
jumlah1:=0;
jumlah2:=0;
bilangan_setelah_awal:=bilangan_awal+1;
bilangan_penolong1:=0;
bilangan_penolong2:=0;
Write (bilangan_awal);
Repeat
jumlah2:=jumlah2+bilangan_penolong2;
bilangan_penolong2:=bilangan_penolong2+1;
Until bilangan_penolong2>=bilangan_awal;
Repeat
jumlah1:=jumlah1+bilangan_penolong1;
bilangan_penolong1:=bilangan_penolong1+1;
Until bilangan_penolong1>bilangan_akhir;
Repeat
Write (' + ',bilangan_setelah_awal);
bilangan_setelah_awal:=bilangan_setelah_awal+1;
jumlah_akhir:=jumlah1-jumlah2;
Until bilangan_setelah_awal>bilangan_akhir;
Write (' = ',jumlah_akhir);
end
End.


SEGITIGA
Program Jumlah_Segitiga_Asik;
Uses Wincrt;
Var
a,b,c,d:longint;
Begin
Write ('Berapa baris segitiga asik yang kamu inginkan: '); read (a);
For c:=1 to a do
Begin
For b:=1 to 1 do
Write (c:2);
For b:=2 to c do
Write (' +',c:2);
For b:=1 to c do
d:=c*b;
Write (' = ');
Write (d);
Writeln;
Writeln;
End;
End.


ARRAY- MAKS, MIN, RATA-RATA
Program Latihan_Array_Nilai_Maks_Min_Rata_Rata;
Uses Wincrt;
Var
a,b,c,maks,min:integer;
d:real;
data: array[1..10] of integer;
Begin
Write('Masukkan jumlah data yang diinginkan: ');Readln(b);
Begin
For a:=1 to b do
Begin
Write('Data ke-',a,':');Readln(data[a]);
Writeln;
End;
End;
Clrscr;
Begin
For a:=1 to b do
Begin
Writeln('Data ke-',a,':',data[a]);
Writeln;
End;
End;
Begin
c:=0;
For a:=1 to b do
Begin
c:=c+data[a];
End;
d:=c/b;
Writeln('Rata-rata data adalah ',(d):5:2);
End;
Begin
maks:=data[1];
For a:=2 to b do
Begin
If data[a]>maks then
maks:=data[a];
End;
Writeln('Data terbesar adalah ',(maks));
End;
Begin
min:=data[1];
For a:=2 to b do
Begin
If data[a]
min:=data[a];
End;
Writeln('Data terkecil adalah ',(min));
End;
End.


MAKSIMAL
Program Nilai_Terbesar;
Uses Wincrt;
Var
a,b,c:longint;
Begin
Write ('Masukkan 1: ');Readln(a);
Write ('Masukkan 2: ');Readln(b);
Write ('Masukkan 3: ');Readln(c);
If (a>b) and (a>c) then Write(a);
If (b>a) and (b>c) then Write(b);
If (c>a) and (c>b) then Write(c);
End.


MINIMAL
Program Nilai_Terkecil;
Uses Wincrt;
Var
a,b,c:longint;
Begin
Write ('Masukkan 1: ');Readln(a);
Write ('Masukkan 2: ');Readln(b);
Write ('Masukkan 3: ');Readln(c);
If (a
If (b
If (c
End.


REPEAT UNTIL
Program Repeat_until;
Uses Wincrt;
Var
a:longint;
Begin
a:=0;
Repeat
a:=a+1;
Writeln (a,' . Pemrograman Komputer');
Until a>4;
End.


REPEAT UNTIL
Program Pengulangan;
Uses Wincrt;
Var
a,b:longint;
Begin
Write ('Kita akan mengulang berapa kali : '); read (b);
For b:=1 to b do
a:=1;
b:=b+1;
Repeat
Write (a,'. ');
Writeln ('Aku Suka Indonesia');
a:=a+1;
Until a>=b;
End.


WHILE DO
Program While_do;
Uses Wincrt;
Var
a:longint;
Begin
a:=0;
While a<5>
Begin
a:=a+1;
Writeln (a,' . Pemrograman Komputer');
End;
End.


FOR DO
Program For_to_do;
Uses Wincrt;
Var
a:longint;
Begin
For a:=1 to 5 do
Writeln (a,' . Pemrograman Komputer');
End.


REKURSI
program rekorsi;
uses wincrt;
var
akhir:word;
procedure rekursi;
begin
if akhir<10>
begin
write (' cipi cantik ');
akhir:=akhir+1;
rekursi;
end;
end;
begin
akhir:=0;
rekursi;
end.


FAKTORIAL
Program faktor;
uses wincrt;
procedure faktorial(N:byte;var hasil:longint);
begin
if N<=1 then
hasil:=1
else
begin
faktorial(N-1,hasil);
hasil:=N*hasil;
end;
end;
var
N:byte;
F:longint;
begin
write('Berapa faktorial? ');readln(N);
faktorial(N,F);
writeln('faktorial= ',F);


End.


DERET FIBONACCI
Program fibo;
uses wincrt;
function fibonacci(N:integer):integer;
var
fibobawah, fiboatas, X, I:integer;
begin
if N<2>
fibonacci:=N
else
begin
fibobawah:=0;
fiboatas:=1;
for I:=2 to N do
begin
X:=fibobawah;
fibobawah:=fiboatas;
fiboatas:=X+fibobawah;
end;
fibonacci:=fiboatas;
end;
end;


var
N:integer;
begin
write('suku ke berapa? ');readln(N);
writeln('nilai suku ke ', N,' adalah ',fibonacci(N));


End.