Jumat, 09 Januari 2015

LATIHAN G NO 1

Program Subprogram;
uses wincrt;
var hasil,nilai1,nilai2:integer;
    hbagi:real;
procedure tambah;
begin
   hasil:=nilai1+nilai2;
   writeln('Nilai X + Y = ',hasil);
end;
Procedure kurang(p,q:integer);
begin
   hasil:=nilai1-nilai2;
   writeln('Nilai X - Y = ',hasil);
end;
Function Kali:integer;
begin
   Kali:=nilai1*nilai2;
end;
Function Bagi(p,q:integer):real;
begin
   bagi:=p/q;
end;
Procedure tukar(var p,q:integer);
var r:integer;
begin
   r:=p;
   p:=q;
   q:=r;
end;
var pilih:integer;
begin
 clrscr;
 pilih:=0;
 while (pilih<>5) do
 begin
   writeln;
   writeln('Masukkan Pilihan Proses');
   writeln('---------------------------');
   writeln('1. Penjumlahan');
   writeln('2. Pengurangan');
   writeln('3. Perkalian');
   writeln('4. Pembagian');
   writeln('5. Selesai');
   writeln('--------------------------');

   repeat
     write('Masukkan Pilihan Anda : ');
     readln(pilih);
   until pilih in [1,2,3,4,5];

   if pilih=5 then exit;

   write('Masukkan nilai X : ');readln(nilai1);
   write('Masukkan nilai Y : ');readln(nilai2);
   case pilih of
        1:tambah;
        2:begin
            if nilai1<nilai2 then
               tukar(nilai1,nilai2);
            kurang (nilai1,nilai2);
          end;
        3:writeln('Hasil X * Y = ',Kali);
        4:begin
            Hbagi:=bagi(nilai1,nilai2);
            writeln('Hasil X / Y = ',hbagi:10:4);
          end;
   end;
 end;
 end.

hasilnya

     

LATIHAN F NO 1

uses wincrt;
var
 awal,akhir,rpbunga:real;
 bunga,lama,i      :integer;
 mau               :char;
begin
repeat
clrscr;
 write('pijaman awal = Rp. ');readln(awal);
 write('bunga [%]= ');readln(bunga);
 write('lamanya pinjaman [periode] = ');readln(lama);
 writeln('--------------------------------------');
 writeln(' periode bunga (%) pimjaman pinjaman bunga (Rp) ');
 writeln('                                                 awal akhir ');
 writeln('--------------------------------------');
 for i:=1 to lama do
  begin
   akhir:=awal+((bunga/100)*awal);
   rpbunga:=0.1*awal;
   writeln(i:5,bunga:9,awal:11:0,akhir:11:0,rpbunga:10:0);
   awal:=akhir;
  end;
 writeln('--------------------------------------');
 Write('mau menghitug lagi ? [Y/N]:');readln(mau);
 until mau='n';
end.

LATIHAN E NO 8

uses wincrt;
var
 pertama,kedua,ketiga:integer;
begin
write('Masukkan Bilangan Pertama : ');read(pertama);
write('Masukkan Bilangan Kedua : ');read(kedua);
write('Masukkan Bilangan Ketiga :');read(ketiga);
if (pertama>kedua) and (pertama>ketiga) then
 begin
 writeln('Bilangan yang Terbesar adalah :',pertama);
 end
else if (kedua>pertama) and (kedua>ketiga) then
 begin
 writeln('Bilangan yang Terbesar adalah :',kedua);
 end
else if (ketiga>pertama) and (ketiga>kedua) then
 begin
 writeln;
 writeln('Bilangan yang Terbesar adalah :',ketiga);
 end;
end.

Hasilnya

LATIHAN E NO 7

uses wincrt;
var
 harga:integer;
begin
 write('Masukkan Harga = ');readln(harga);
case harga of
 1:writeln('SATU');
 2:writeln('DUA');
 3:writeln('TIGA');
 4:writeln('EMPAT');
 5:writeln('LIMA');
 6:writeln('ENAM');
 7:writeln('TUJUH');
 8:writeln('DELAPAN');
 9:writeln('SEMBILAN');
 0:writeln('NOL');
else
writeln('BILANGAN SELAIN 0 s/d 9');
end;
end.

Hasilnya

LATIHAN E NO 5

uses wincrt;
var
 volume,gol1,gol2,gol3,gol4,total:longint;
begin
write('Masukkan pemakaian (m3) = ');readln(volume);
if volume<=50 then
 begin
 gol1:=volume*1500;
 end
else if volume<=75 then
 begin
 gol1:=50*1500;
 gol2:=(volume-50)*1750;
 end
else if volume<=100 then
 begin
 gol1:=50*1500;
 gol2:=25*1750;
 gol3:=2000*(volume-75);
 end
else
 begin
 gol1:=50*1500;
 gol2:=25*1750;
 gol3:=25*200;
 gol4:=2250*(volume-100);
 end;
total:=gol1+gol2+gol3+gol4;
writeln('---------------------------------------------------------');
writeln('harga golongan 1 = Rp.',gol1:8);
writeln('harga golongan 2 = Rp.',gol2:8);
writeln('harga golongan 3 = Rp.',gol3:8);
writeln('harga golongan 4 = Rp.',gol4:8);
writeln('---------------------------------------------------------');
writeln('total bayar = Rp. ',total:8);
readln;
end.


Hasilnya

LATIHAN E NO 6

uses wincrt;
label ulang;
var
  gol,bonus,mau:string;
  kerja,umur:integer;
begin
ulang:
clrscr;
write('Masukkan Umur Anda (Tahun)=');readln(umur);
write('Masukkan Status kerja [staf/nonstaf] = ');readln(gol);
write('Masukkan Lama Bekerja (Tahun) = ');readln(kerja);
if gol='staf' then
  begin
  if (kerja>=5) then
     begin
     if (umur>=50) then
        begin
        Bonus:='Rp. 1.000.000';
        end
     else
        Bonus:='Rp. 500.000';
     end
  else if (kerja<5) and (umur<50) then
    begin
    Bonus:='Rp. 300.000';
    end
  end
else
  begin
  if (kerja>=5) then
   begin
   if (umur>=50) then
    begin
    Bonus:='Rp. 400.000';
    end
   else
    Bonus:='Rp. 250.000';
   end
  else
   Bonus:='Rp. 0';
  end;
writeln('Bonus Pegawai Adalah = ',bonus);
write('Mau ulang [y/t]?');read(mau);
if (mau='y') or (mau='Y') then goto ulang
end.

Hasilnya

LATIHAN E NO 4

Program HitungGajiKaryawan;
uses wincrt;
var
Nama,Jabatan,KJ:string;
GP,TM,TT     :longint;
Begin
 writeln('Masukkan Nama :');readln(Nama);
 writeln('Masukkan Kode Jabatan :');readln(KJ);
If (Kj='DR') or (kj='dr')then
 begin
  Jabatan:='Direktur';
  GP     :=3000000;
  TT     :=850000;
  TM     :=500000;
 end
else if (KJ='WD') or (Kj='wd') then
 begin
 Jabatan:='Wakil Direktur';
 GP     :=2500000;
 TT     :=800000;
 TM     :=500000;
 end
else if (KJ='MN') or (KJ='mn') then
 begin
 Jabatan:='Manajer';
 GP     :=2000000;
 TT     :=800000;
 TM     :=450000;
 end
else if (KJ='AS') or (KJ='as') then
 begin
 Jabatan:='Asisten';
 GP     :=1500000;
 TT     :=700000;
 TM     :=400000;
 end
else if (KJ='KW') or (KJ='kw') then
 begin
 Jabatan:='Karyawan';
 GP     :=1000000;
 TT     :=500000;
 TM     :=300000;
 end;
writeln('Jabatan             :',jabatan);
writeln('Gaji Pokok          :',GP);
writeln('Tunjangan Transport :',TT);
writeln('Tunjangan Makan     :',TM);
end.
 Hasilnya

LATIHAN E NO 3

uses wincrt;
var
  tipe,jenis:char;
begin
clrscr;
write('Tipe Rumah [A,B,C,D]=');readln(tipe);
write('Jenis Pembayaran [T/K]=');readln(jenis);
if tipe='A' then
 begin
 if jenis='T' then
  begin
  writeln('Harga Rumah = Rp. 50.000.000');
  end
 else

  writeln('Angsuran Perbulan = Rp. 500.000');
 end
else if tipe='B' then
 begin
 if jenis='T' then
  begin
  writeln('Harga Rumah = Rp. 65.000.000');
  end
 else
  writeln('Angsuran Perbulan = Rp. 650.000');
 end
else if tipe='C' then
 begin
 if jenis='T' then
  begin
  writeln('Harga Rumah = Rp. 75.000.000');
  end
 else
 writeln('Angsuran Perbulan = Rp. 750.000');
 end
else if tipe='D' then
 begin
 if jenis='T' then
 begin
 writeln('Harga Rumah = Rp. 85.000.000');
 end
 else
 writeln('Angsuran Perbulan = Rp. 850.000');
 end;
end.


LATIHAN E NO 2

uses wincrt;
var
  tipe,jenis:char;
begin
clrscr;
write('Tipe Rumah [A,B,C,D]=');readln(tipe);
write('Jenis Pembayaran [T/K]=');readln(jenis);
  case  upcase (tipe) of
  'A':begin
     case upcase (jenis)  of
     'T': writeln ('Harga Rumah = Rp. 50.000.000');
     'K': writeln ('Angsuran Perbulan = Rp. 500.000');
     end;
      end;
  'B':begin                 
     case upcase (jenis) of
     'T': writeln('Harga Rumah = Rp. 65.000.000');
     'K': writeln('Angsuran Perbulan = Rp. 650.000');
     end;
      end;
  'C':begin
     Case upcase (jenis) of
     'T': writeln('Harga Rumah = RP. 75.000.000');
     'K': writeln('Angsuran Perbulan = Rp. 750.000');
     end;
      end;
  'D':begin
     case upcase (jenis) of
     'T': writeln('Harga Rumah = RP. 85.000.000');
     'K': writeln('Angsuran Perbulan = Rp. 850.000');
     end;
      end;
end;
readln;
end.
     
Hasilnya akan nampak seperti ini

LATIHAN E NO 1

uses wincrt;
const
 pertama = 4500;
 lanjut  = 2000;
var
 jarak,bayar:integer;
begin
clrscr;
  write('Jarak Tempuh (Km)=');readln(Jarak);
if jarak>1 then
 begin
 Bayar:=pertama+(jarak*lanjut);
 end
else
 Bayar:=pertama;
writeln('Bayarnya = Rp.',Bayar);
readln;
end.
Hasilnlya akan nampak


LATIHAN D NO 6 PROGRAM HITUNG JUMLAH BUS DAN MIKROLET YANG BERANGKAT DAN SISA PENUMPANG

Program Hitung_Jumlah_Bus_dan_Mikrolet_yang_Berangkat_dan_Sisa_Pendaftar;
uses wincrt;
var
pendaftar,jumlahbus,jumlahmikrolet,sisa:integer;
begin
clrscr;
   writeln('Masukkan Jumlah Pendaftar=');readln(pendaftar);
   JumlahBus:=pendaftar div 50;
   JumlahMikrolet:=pendaftar mod 50 div 11;
   Sisa:=pendaftar mod 50 mod 11;
   writeln('Jumlah Bus berangkat adalah= ',jumlahbus,' bus');
   writeln('Jumlah Mikrolet berangkat adalah= ',jumlahmikrolet,' mikrolet');
   writeln('Sisa pendaftar adalah = ',sisa,' orang');
end.


LATIHAN D NO 3 PROGRAM HITUNG TAGIHAN

Program HitungTagihan;
uses wincrt;
const tarif=150;
      langganan=25000;
var                          
      pulsa:byte;
      tagihan:integer;
begin
clrscr;
 write('Banyaknya Pulsa=');readln(pulsa);
 tagihan:=(pulsa*tarif)+langganan;
 writeln('Jumlah Tagihan=',tagihan);
 readln;
end.

hasilnya

LATIHAN D NO 5 PROGRAM HITUNG UMUR DALAM JAM

Program Hitung_Umur_Dalam_Jam;
uses wincrt;
var
   tahun,bulan,hari,jam:longint;
begin
clrscr;
   writeln('Masukkan Umurmu berapa Tahun, Bulan dan Hari ?');
   writeln('Tahun=');readln(tahun);
   writeln('Bulan=');readln(bulan);
   writeln('Hari=');readln(hari);
   jam:=(24*hari)+(24*30*bulan)+(24*30*12*tahun);
   writeln('Jadi, Umur kamu sekarang dalam jam adalah=',jam,'jam');
   readln; 
end.

Hasilnya


LATIHAN D NO 4 PROGRAM HITUNG HARGA KARPET

Program HitungHargaKarpet;
uses wincrt;
const karpet=15000;
var
   p1,l1,p2,l2:byte;
   luas,harga:longint;
begin
clrscr;
   p1:=15;
   l1:=6;
   p2:=3;
   l2:=3;
   luas:=(p1*l1)+(p2*l2);
   harga:=karpet*luas;
   write('Biaya yang Harus Dikeluarkan Fakhri Adalah =Rp.',harga);
   readln;
   end.
Hasilnya

PROCEDUR DAN FUNCTION PADA PASCAL

Baik kali ini kita masuk kebagian procedure dan fungsi di pascal.
tapi sebelum membahas lebih jauh kita kenali dulu kira-kira apa sih perbedaan procedure dan fungsi di pascal.
perbedaannya yaitu.
1. Prosedur diawali dengan dengan kata procedure untuk mendeklarasikannya
contoh : procedure hitung_angka;
kalau fungsi di awali dengan kata function
function hitung_bilangan: integer;
2. Procedure tidak mengembalikan nilai ke program utama, sedangkan fungsi akan mengembalikan nilai ke program utama, itu sebabnya fungsi harus ada tipe datanya (integer, char atau string).
3. Procedure outputnya diletakkan di dalam procedure, kalau fungsi outputnya di letakkan di program utama.

PERULANGAN (LOOPING) PADA PASCAL

Perulangan (loop) merupakan bentuk yang sering ditemui dalam suatu program
aplikasi. Di dalam bahasa Pascal, dikenal tiga macam perulangan, yaitu dengan
menggunakan statemen For, While-Do dan Repeat….Until.
Struktur Perulangan For
Perulangan dengan statemen For digunakan untuk mengulang statemen atau satu
blok statemen berulang kali sejumlah yang ditentukan. Perulangan dapat berbentuk
perulangan positif, negatif dan tersarang.

PENYELEKSIAN KONDISI PADA PASCAL




Hampir setiap program yang kompleks mengandung suatu penyeleksian kondisi. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, bergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi suatu kondisi, di dalam bahasa Pascal dapat dipergunakan pernyataan IF  dan CASE.

Rabu, 07 Januari 2015

KONSEP DASAR BAHASA PASCAL


Pengertian

Pemrograman / programming  : adalah pekerjaan penulisan instruksi bagi komputer untuk menyelesaikan suatu masalah.

Program    : adalah himpunan instruksi yang diperuntukkan bagi komputer, untuk menyelesaikan masalah yang diberikan.

Interpreter  :  menerjemahkan perintah baris demi baris dan langsung melaksanakannya. contoh : BASIC.

Compiler     : menerjemahkan dulu seluruh perintah dalam bahasa mesin. Baru kemudian terjemahan tersebut dijalankan oleh komputer. Contoh : FORTRAN, C, PASCAL.

KONSEP DASAR ALGORITMA DAN FLOWCHART

Algoritma
Arti umum adalah serangkaian urutan langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan suatu masalah yang disusun secara sistematis.
1.  Algoritma adalah inti dari ilmu komputer
2.  Algoritma adalah urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu masalah
3.  Algoritma adalah blueprint dari program
4.  Sebaiknya disusun sebelum membuat program
5.  Kriteria suatu algoritma:
·         Ada input dan output
·         Efektifitas dan efisien
·         Terstruktur

Sabtu, 03 Januari 2015

LATIHAN D NO 2

Program KonvensiSuhu;
uses wincrt;
var
 celcius          :byte;
 reamur,fahrenheit:real;
begin
clrscr;
 write('Imput Derajat Celcius=');readln(celcius);
 fahrenheit:=(9/5)*celcius+32;
 reamur:=(4/5)*celcius;
 writeln('Derajat Fahrenheit=',fahrenheit:6:2);
 writeln('Derajat Reamur=',reamur:6:2);
 readln;
 end.


Dan hasilnya akan tampak seperti ini :






LALTIHAN D NO 1

PROGRAM Belajar_Turbo_Pascal;
Uses wincrt;
 begin
 clrscr;
 writeln('selamat datang di Turbo Pascal 7.0');
 writeln('-----------------------');
 writeln;
 writeln('Anda Baru Belajar Turbo Pascal');
 writeln('Gimana...Mudahkan?.. Jangan Cepat Bosan');
 writeln('Anda Harus Bisa');
 writeln('Ikuti Terus Petunjuk Instruktur');
 writeln('Gitu Aza Koq Repot');
 writeln('Dan Jangan segan-segan bertanya Ok.?');
 writeln;
end.


Dan hasil programnya akan ampak seperti ini :