Thursday, January 1, 2015


BAB I
PEMROGRAMAN PASCAL

 
Penggunaan Turbo Pascal
Dari modus prompt DOS, hal yang dilakukan sbb:
 A:\> turbo

 Menu dalam Pascal :
a. File  (Alt-F)
Load / Pick     : untuk mengambil  program yang sudah ada  di disk kerja.
New                 : untuk membuat program baru.
Save                 : untuk menyimpan program.
Write to            : untuk merekam program ke suatu file.
Directory         : untuk menampilkan directory.
Change dir     : untuk mengganti direktory yang aktif.
OS Shell           : untuk menjalankan perintah-printah DOS
Quit                 : mengakhiri turbo  Pascal dan  kembali  keprompt DOS
 
b. Edit  (Alt-E)
          Digunakan untuk keperluan memperbaiki program.
 
c. Run  (Alt-R) 
Digunakan   untuk  menjalankan  program  yang   ada   dijendela edit.

d. Compile  (Alt-C)
Digunakan untuk mengkompilasi program.
Destination Memory (disimpan di memory).
Destination Disk (disimpan di disk dengan ext .EXE).

e. Options  (Alt-O)
Digunakan  untuk  mengatur/menentukan kembali bagaimana  F1-help,  F2-Save
F3-new file,  F4-import data, F9-expand, F10-contract dan  Esc-exit integrated environment
bekerja.

f. Debug dan Break/Watch  (Alt-D & Alt-B)
Digunakan untuk melacak program.mengaktifkan Debug & Break/Watch.

** Cat :  tekan Esc untuk meninggalkan menu.








Struktur Program Pascal
Secara  ringkas, struktur suatu program Pascal  dapat  terdiri dari :
1.  Judul Program
2.  Tubuh Program
Tubuh program dibagi menjadi dua bagian utama :
         a. Bagian deklarasi
              - deklarasi label
              - deklarasi konstanta
              - deklarasi tipe
              - deklarasi variabel/perubah
              - deklarasi prosedur
              - deklarasi fungsi
         b. Bagian Pernyataan/Terproses

Cat : baris-baris  komentar  untuk   memperjelas  program   diletakkan   diantara   tanda (* dan *)  atau  { dan } . 

1. Judul program
Judul  program  ini digunakan untuk memberi nama  program  dan sifatnya   optional.  Jika  ditulis harus terletak pada awal  dari program  dan  diakhiri   dengan titik koma (;).
Contoh penulisan judul program :
PROGRAM latihan;
PROGRAM latihan(input,output);
PROGRAM lat_1;
PROGRAM lat_satu(output);

2. Bagian Pernyataan/Terproses
Bagian   ini  adalah bagian yang akan terproses dan   terdapat dalam    suatu  blok  yang 
diawali  dengan  BEGIN  dan   diakhiri dengan    END    (penulisan   END diikuti   dengan  tanda  titik).
Bagian   ini   berisi   pernyataan /   statamen    yang  merupakan instruksi  program. 
Setiap statemen diakhiri dengan tanda titik koma (;).
Bentuk umumnya adalah sbb :

                               BEGIN
                                    ...
                                    statemen;
                                    statemen;
                                    ...
                               END.

3. Bagian deklarasi
Bagian ini menjelaskan/memperkenalkan secara rinci semua data yang akan digunakan pada suatu program. Dalam penulisannya tidak boleh  sama  dengan kata-kata
cadangan (reserved words)  dan selalu diakhiri dengan titik koma (;).


Deklarasi label
Deklarasi  label digunakan Jika pada penulisan program akan menggunakan 
statemen GOTO (untuk meloncat ke suatu statement tertentu).
Contoh :
                 PROGRAM cetak;
                         LABEL satu,akhir;
                         BEGIN
                              WRITELN('AMIK');
                              GOTO SATU;
                              WRITELN('INTELCOM');
                              satu:
                              WRITELN('GLOBAL');
                              GOTO akhir;
                              WRITELN('INDO');
                              akhir:
                         END.

Bila program di atas dijalankan, output sbb :
                   AMIK
                   INTELCOM

Deklarasi konstanta
Deklarasi ini digunakan untuk mengidentifikasikan data yang nilainya sudah ditentukan dan pasti, tidak  dapat  dirubah dalam program.

Contoh :
                    PROGRAM CETAK_2(OUTPUT);
                         CONST a = 50;  (* selalu menggunakan tanda = *)
                               b = 'INDONESIA Merdeka';
                         BEGIN
                              WRITELN(a,' TAHUN ');
                              WRITELN(b);
                         END.

Bila program dijalankan, output sbb :
                   50 tahun
                   INDONESIA Merdeka


Deklarasi tipe
Deklarasi ini digunakan  untuk  menyebutkan  tipe  setiap  data yang   akan  digunakan pada program Pascal. Tipe  data  menentukan jangkauan  nilai yang mungkin dari data yang digunakan
Contoh :
               PROGRAM SATU;
               TYPE bulat  = INTEGER;  { selalu  menggunakan = }
                          hasil,pecahan = REAL;
                          ket           = STRING[20];
               BEGIN
                          pecahan := 2.52;
                          bulat := 2;
                          hasil := pecahan + bulat;
                          ket := 'hasil penjumlahan = ';
               WRITE(ket,hasil:4:2);
               END.
Output program, sbb :  hasil penjumlahan = 4.52

Deklarasi variabel/perubah
Deklarasi   ini  berisi data-data yang bisa  berubah-ubah   nilainya   di  dalam program. 
Deklarasi variabel harus di  letakkan setelah  deklarasi  tipe  (jika ada). 
Contoh :
                         VAR satu : INTEGER;
                                  dua  : INTEGER;
                                  a    : REAL;
                                  b    : REAL;          { selalu menggunakan : }
                         BEGIN
                                  satu := 5;
                                  dua := 4;
                                  a := 2.3;
                                  b := 5+4*2.3;        { hasil real }
                         WRITE('hasil = ',b:4:1);
                        END.

Output program :   hasil = 14.2

Program diatas  bisa ditulis sbb :
                         VAR satu,dua : INTEGER;
                                  a,b      : REAL;
                        BEGIN
                              ...
                              statement;
                              ...
                         END. 

Contoh jika terdapat deklarasi tipe :
                         TYPE 
 bilangan = integer;
                         VAR 
 satu,dua,a   : bilangan;
                                     b              : real;
                         BEGIN
                              ...
                              statement;
                              ...
                         END.

Deklarasi prosedur dan Fungsi 
Program dapat  dibagi menjadi  beberapa   bagian/subprogram, yang terdiri dari satu program utama dan satu /  lebih  program bagian  (bisa  berupa  prosedur /  fungsi). Deklarasi prosedure/ fungsi terletak pada subprogram yang menggunakannya.
 
Tipe Data
Tipe  Data dapat terletak pada deklarasi variabel maupun  padadeklarasi tipe.
Pascal menyediakan beberapa macam tipe data,  yang terdiri dari :
1. Tipe data sederhana/skalar, terdiri dari :
                      1.1. Tipe data standar/predefinisi
                         1.1.1. bulat (integer)
                         1.1.2. real
                         1.1.3. karakter
                         1.1.4. string
                         1.1.5. logika (boolean)
                      1.2. Tipe data didefinisikan pemakai :
                         1.2.1. subjangkauan (subrange)
                         1.2.2. terbilang (enumerated)
2. Tipe data terstruktur, terdiri dari :
                      2.1. larik (array)
                      2.2. rekaman (record)
                      2.3. berkas (file)
                      2.4. himpunan (set)
3. Tipe data penunjuk (pointer)

1.1. Tipe data standar
1.1.1. Tipe data integer
Tipe   integer   adalah bilangan yang tidak  mempunyai   titik desimal/bilangan  pecahan. 
Integer terdiri  dari  beberapa  tipe, yaitu :
- byte,        dengan jangkauan nilai                      0..255
- shortint, dengan jangkauan nilai           -128..127
- integer,  dengan jangkauan nilai           -32768..32767
- word,                 dengan jangkauan nilai                       0..65535
- longint,  dengan jangkauan nilai           -2147483648..2147483647

Operator yang dapat digunakan pada data tipe integer :
 +,   penjumlahan
 -,   pengurangan
 *,   perkalian
 div,   pembagian
 mod,  sisa pembagian






Contoh :
             VAR a,b,jumlah1,jumlah2 : INTEGER;
             BEGIN
                  jumlah1:=10;
                  jumlah2:=3;
                  a:=jumlah1 DIV jumlah2;
                  b:=jumlah1 MOD jumlah2;
                  WRITELN('HASIL A = ',a);
                  WRITELN('HASIL B =',b);
             END.
hasil program :    hasil a = 3
                            hasil b = 1

1.1.2. Tipe data real
Tipe  real  adalah  bilangan  yang  mengandung pecahan, palingsedikit  harus ada satu
digit  sebelum dan sesudah titik  desimal.
Operator yang dapat digunakan pada data  tipe real adalah :
 +   penjumlahan
 -   pengurangan
 *   perkalian
 /   pembagian

Contoh :
                      VAR nilai1,nilai2,hasil : REAL;
                      BEGIN
                           nilai1 := 2.52;
                           nilai2 := 3.2;
                           hasil := nilai1 + nilai2;
                           WRITE('HASIL PENJUMLAHAN = ',hasil:4:2);
                      END.
             Output program, sbb :   hasil penjumlahan = 5.72

1.1.3. Tipe data karakter
Nilai    data   karakter   berupa   sebuah   karakter     yang ditulis diantara tanda  petik tunggal,  misalnya :  'A', 'b', '@', dan sebagainya. Karakter yang dapat diterima oleh komputer :
             huruf besar/kecil   : A,B,C,...,Z / a,b,...,z
             digit               : 1,2,3,...,9
             operator aritmatika : * / + -
             tanda baca          : , . ; : ? !
             simbol khusus       : $  @  {  } ( ) [ ] % #
             spasi






Contoh :
             VAR nilai : CHAR;
             BEGIN
                  nilai :='A';
                  WRITELN('NILAI TERBAIK = ',nilai);
             END.
             hasilnya :  nilai terbaik = A

1.1.4. Tipe data string
Nilai  data   string   adalah   satu   atau   lebih   karakteryang   terletak  diantara  tanda petik tunggal, misal :  'INTELCOM'.   Bila     panjang   dari suatu  string  di  dalam  deklarasi variabel tidak disebutkan, maka dianggap panjangnya 255 karakter.

Contoh :
             VAR kata1 : STRING[5];
                 kata2 : STING[9];
                 kata : CHAR;
             BEGIN
                  kata1 :='AMIK';
                  kata2 :='INTELCOM';
                  kata :=' ';                  { karakter berupa spasi }
                  WRITELN(kata1,kata,kata2);
             END.

             hasil :   AMIK INTELCOM

1.1.5. Tipe data boolean
Data tipe boolean mempunyai dua nilai, yaitu True dan False.
Contoh :
             VAR
                benar : BOOLEAN;
             BEGIN
                  benar := TRUE;
                  WRITELN('benar = ',benar);
             END.
             hasil :   benar = TRUE


1.2. Tipe data Terdefinisi
1.2.1 Tipe data subjangkauan
Tipe   data  ini  adalah  tipe  data   yang   dapat    didefinisikan  sendiri oleh pemakai. Nilai data pada tipe ini  mempunyai jangkauan  tertentu. Misalkan nilai ujian  mempunyai harga 0 sampai 100, maka nilai ujian dapat didefinisikan sbb :





                            TYPE
                                 nilai = 0..100;
Contoh :
             VAR sks      : 1..4;
                      angkatan : 89..95;
                      nilai    : 'A'..'E';

1.2.2. Tipe data terbilang
Tipe data ini juga dapat didefinisikan sendiri oleh pemakai. Disebut tipe terbilang karena semua nilai disebut  satu persatu.

Contoh :
          TYPE hari       =  (Senin,Selasa,Rabu,Kamis,Jum'at,Sabtu,Minggu);
               hari_kerja   =  (Senin,Selasa,Rabu,Kamis,Jum'at);
               situasi         = (senang,gembira,sedih,susah);

2.1. Tipe data larik (array)
Larik (array) adalah kumpulan data yang  mempunyai  tipe data sejenis. Daftar nomor telpon, daftar kode  mata  kuliah, vektor,  matrik   merupakan  contoh larik. 

Contoh  penulisan  tipe larik berdimensi satu sbb :

CONST batas = 20;
VAR telpon : ARRAY[1..3] OF STRING[7];{larik dengan nama telpon mempunyai 3  data dengan tipe string }
nilai : ARRAY[1..5] OF INTEGER; {larik dengan nama nilai mempunyai 5 data  dengan tipe integer}
gaji : ARRAY[1..batas] OF REAL; {larik dengan  namagaji mempunyai 20 data     dengan tipe real}

Contoh larik yang mempunyai tipe data terbilang atau  subjangkauan :
 TYPE batas   = 0..100;
           keadaan = (baru,lama,bagus,jelek);
 VAR nilai : ARRAY[1..30] OF 'A'..'B'; {larik dengan nama nilai  mempunyai 30 data, dan pengisian data yang diperbolehkan hanya A, B, C, D, E }
 angka : ARRAY[1..50] OF batas; {larik dengan nama angka mempunyai 50 data, dan  pengisian data yang diperbolehkan hanya 1,2,3,...,99,100}
baju : ARRAY[1..10] OF keadaan; {larik Dengan nama  angka mempunyai 10 data,dan pengisian data yang diperbolehkan baru, lama, bagus, jelek }






Contoh program :
             VAR jumlah : INTEGER;
                  nilai    : ARRAY[1..3] OF 'A'..'E';
                 angka  : ARRAY[1..3] OF INTEGER;
             BEGIN
                  nilai[1] := 'C';
                  nilai[2] := 'B';
                  nilai[3] := 'A';
                  angka[1] := 75;
                  angka[2] := 60;
                  angka[3] := 90;
                  jumlah := angka[1]+angka[2]+angka[3];
                  WRITELN('NILAI = ',angka[2],' MENDAPAT ',nilai[1]);
                  WRITELN('JUMLAH = ',jumlah);
             END.
hasil :  nilai 60 mendapat C
            jumlah = 225

Contoh penulisan tipe larik berdimensi dua sbb :
             VAR tabel : ARRAY[1..3,1..2] OF BYTE; {larik tabel mempunyai 3  baris dan 2  kolom dengan  tipe byte }
             BEGIN tabel[1,1] := 5;    { baris 1, kolom 1 }
                   tabel[1,2] := 7;
                   tabel[2,1] := 21;   { baris 2, kolom 1 }
                   tabel[2,2] := 18;
                   tabel[3,1] := 8;
                   tabel[3,2] := 7;
                   WRITELN('BARIS 1 KOLOM 2 = ',tabel[1,2]);
             END.
             hasil :   BARIS 1 KOLOM 2 = 7

 2.2. Tipe data record dan file
( dibahas pada pembahasan record dan file)














BAB II
STATEMEN-STATEMEN PADA PASCAL

RESERVED WORD
Reserved  Word adalah kata-kata baku yang digunakan  dalam program   dan mempunyai
bentuk serta kegunaan tertentu yang  telah didefinisikan  oleh  Pascal.
Reserved  Word  tidak  boleh  didefinisikan  kembali  oleh pemakai, sehingga tidak dapat
digunakan sebagai pengenal  (Identifier).  Dalam  bahasa pemrograman Pascal, beberapa 
Reserved  Word tersebut adalah :

 AND                               DOWNTO          IN                     OF                         STRING
 ASM                                ELSE                 INHERITED    OR                                       THEN
 ARRAY                          END                   INLINE            PACKED                               TO
 BEGIN                                       EXPORTS          INTERFACE   PROCEDURE       TYPE
 CASE                              FILE                   LABEL            PROGRAM           UNIT
 CONST                           FOR                    LIBRARY       RECORD                           UNTIL
        CONSTRUCTOR           FUNCTION        MOD               REPEAT   
 DESTRUCTOR              GOTO                 NIL                             SET
        DIV                                 IF                         NOT                SHL                        WHILE
 DO                       IMPLEMENTATION   OBJECT          SHR  
WITH                               VAR                    USES

Selain  dari  Reserved Word di atas,  Turbo  Pascal  masih memiliki tambahan Reserved
Word berikut :

 ABSOLUTE      ASSEMBLER()                 FAR             FORWARD          INDEX


BEBERAPA STATEMEN / PERINTAH  PADA PASCAL
Statemen adalah perintah untuk pengerjaan program  pascal. Statemen terletak di bagian
deklarasi statemen dengan diawali oleh  kata  cadangan BEGIN dan diakhiri dengan kata
cadangan END.  Akhir  dari  setiap  statemen diakhiri dengan  titik  koma(;).  Statemen-
statemen  dalam bahasa Pascal terdiri dari pernyataan yang  berupa fungsi dan prosedur
yang telah disediakan sebagai perintah   standar Turbo Pascal.





1.    Statemen-statemen yang digunakan untuk input/output

1.1. READ/READLN(prosedur)
Digunakan  untuk  memasukkan (input) data lewat  keyboard  ke dalam suatu variabel.
Sintaks:  READ/READLN(V);
Keterangan : 
V               = variabel.
READ       = pada  statemen  ini posisi kursor tidak  pindah ke baris selanjutnya.
READLN = pada statemen ini  posisi  kursor  akan pindah ke baris selanjutnya
setelah  di input.


1.2. READKEY(fungsi)
Untuk  pembacaan  sebuah karakter dari  keyboard.  Tipe  data yang dihasilkan adalah
char.
              Sintaks:  READKEY;

1.3. WRITE/WRITELN(prosedur)
Digunakan untuk menampilkan isi dari suatu nilai variabel  di layar.
              Sintaks:  WRITE/WRITELN(V);
              Keterangan : 
V    = variabel.
WRITE/WRITELN    = sama dengan READ/READLN.
              Contoh :
                         PROGRAM in_out;
                         USES CRT;
                         VAR nm  : STRING;
                             npm : STRING;
                         BEGIN
                              CLRSCR;
                              WRITELN('masukkan nama dan NPM ');
                              WRITELN('------------------------------');
                              WRITE('nama anda : ');
                              READLN(nm);
                              WRITELN('NPM anda : ');
                              READLN(npm);
                         END.
Bila dijalankan hasilnya adalah:
                        masukkan nama dan NPM
                        ------------------------------
                        nama anda : ( di input )
                        NPM anda : ( di input )

2.  Statemen-statemen  yang digunakan untuk  pengaturan  letak  di
layer



2.1. CLRSCR(prosedur)
Digunakan untuk membersihkan layar. 
              sintaks:  CLRSCR;

2.2. GOTOXY(prosedur)
Untuk menempatkan posisi kursor pada layar.
              Sintaks:  GOTOXY(X, Y: Byte);
              Keterangan : 
X = sumbu X (posisi horisontal), Y = sumbu Y (posisi vertikal)

2.3. DELLINE(prosedur)
Untuk menghapus sebuah baris pada posisi kursor dan menaikkan baris-baris
dibawahnya.
              Sintaks:  DELLINE;
 2.4. INSLINE(prosedur)
Untuk  menyisipkan sebuah baris pada posisi kursor dan  menggeser kebawah tampilan-
tampilan baris dibawahnya.
              Sintaks:  INSLINE;

2.5. DELAY(prosedur)
Untuk menghentikan sejenak proses program.
              Sintaks:  DELAY(MS: Word);
              Keterangan :  MS = ukuran waktu dalam milisecond.
              Contoh :
                 PROGRAM LAYAR;
                 USES CRT;
                 VAR   x : CHAR;
                 BEGIN
                      CLRSCR;
                      GOTOXY(35,10);WRITELN('AMIK INTELCOM);
                      WRITE(tunggu sebentar...!!');
                      DELAY(5000);
                      INSLINE;
                      GOTOXY(35,11);WRITELN('Top Banget Dech ...');
                      GOTOXY(01,13);WRITELN('Tekan Enter !');
                      DELAY(1000);
                      GOTOXY(15,12);
                      DELLINE;
                      READ(x);
                 END.

 Hasilnya adalah :
                                            AMIK INTELCOM
                                            Top Banget Dech ...
                      tunggu sebentar...!   
                      Tekan Enter !


3. Statemen yang digunakan untuk memanipulasi string
3.1. CONCAT(fungsi)
Untuk menggabungkan 2 atau beberapa variabel string. 
              Sintaks:  CONCAT(s1 [,s2,...,sn]: String) : STRING;
              contoh:   CONCAT('ABC','DEF')          { ABCDEF }

3.2. COPY(fungsi)
Mengambil satu(1) atau beberapa karakter dari sebuah string.
              Sintaks:  COPY(S,Index,Count) : String;
              Keterangan :
                     S          = sebuah string (string).
                     Index   = posisi  awal kita  akan  mengambil  beberapa karakter (integer)
                     Count  = banyaknya karakter yang akan diambil   (integer).

3.3. DELETE(prosedur)
Menghapus sebagian karakter dari sebuah string.
              Sintaks:  DELETE(S,Index,Count);
              Keterangan : sama dengan statemen COPY.

3.4. INSERT(prosedur)
Menyisipkan  satu(1) atau beberapa karakter ke  dalam  sebuah string.
              Sintaks:  INSERT(Source,var S,Index);
              Keterangan : 
Source = sumber string untuk disisipi (string)
var  S = string tujuan yang akan disisipi  oleh string Source (string)
Index  = posisi mulai (integer).

3.5. LENGTH(fungsi)
Memberikan  nilai panjang dari suatu string (jumlah  karakterdalam string).
              Sintaks:  LENGTH(S);
              Keterangan : 
S = string
LENGTH(S) menghasilkan nilai integer.

3.6. POS(fungsi)
Mencari  posisi  sebuah  bagian  string  (substring)  didalam sebuah string.
              Sintaks:  POS(Substr,S); {menghasilkan nilai Byte}
              Keterangan :
Substr    =   substring yang akan dicari  posisinya  di dalam sebuah string S. Bila
bernilai 0 berarti nilai string yang dicari tidak ada.

3.7. STR(prosedur)
Merubah nilai numerik ke dalam nilai string.
              Sintaks:  STR(N,S);
              Keterangan :
                          N = data tipe integer,
                          S = data tipe string.

3.8. VAL(prosedur)
Merubah nilai string ke dalam nilai numerik.
              Sintaks:  VAL(S,N,P);
              Keterangan :
                              S = nilai string,
                              N = nilai real,
                              P  = posisi salah.
Nilai string harus berisi angka, plus atau  minus, bila tidak berarti kesalahan dan letak
kesalahannya ditunjukkan oleh variabel posisi salah. Jika benar, maka nilai variabel tsb = 0 (nol).


3.9. UPCASE(fungsi)
Memberikan huruf kapital dari argumen.
              Sintaks:  UPCASE(S);
              Keterangan :
                        S = variabel bertipe karakter.
              Contoh :
               PROGRAM mani_string;
               USES CRT;
               VAR  s : STRING;
                          l : INTEGER;
                         h : STRING;
               CONST  a='STMIK';
                              b='STIE ';
                              c='GUNADARMA';
               BEGIN
                    CLRSCR;
                    s:=CONCAT(a,b,c);
                    WRITELN(s);
                    INSERT(' & ',s,6);
                    WRITELN(s);
                    DELETE(s,7,7);
                    WRITELN(s);
                    h:=COPY(s,1,5);
                    WRITELN(h);
                    l:=LENGTH(s);
                    WRITELN('Panjangnya string S : ',l);
                    WRITELN('Posisi "GUNA" pada nilai S : ',POS('GUNA',s));
               END.


Hasilnya adalah :
                                   STMIKSTIE GUNADARMA
                                   STMIK & STIE GUNADARMA
         AMIK INTELCOM
                                   STMIK
                                   Panjangnya string S : 15
                                   Posisi "GUNA" pada nilai S : 7
4. Statemen-statemen untuk perhitungan aritmatik

4.1. ABS(fungsi)
Memberikan nilai mutlak dari suatu argumen.
              Sintaks:  ABS(x);

4.2. ARCTAN(fungsi)
Memberikan nilai dari fungsi arctangent dari perhitungan goniometri.
              Sintaks:  ARCTAN(x);
Dimana x dapat bertipe real atau integer dan akan  menghasil kan nilai bertipe real.

4.3. COS(fungsi)
              Memberikan nilai dari fungsi Cosinus.
              Sintaks:  COS(x);

4.4. EXP(fungsi)
Menghitung  nilai  pangkat dari bilangan e  (bilangan  alam),
              yaitu sebesar x.
              Sintaks:  EXP(x);
              x  dapat  bertipe  real atau integer  dan  akan  menghasilkan nilai bertipe real.

4.5. FRAC(fungsi)
Untuk mendapatkan nilai pecahan dari suatu bilangan.
              Sintaks:  FRAC(x);
                        Tipe dari x sama seperti yang diatas.

4.6. INT(fungsi)
Memberikan nilai integer (bilangan bulat) dari suatu variabel dengan membuang bilangan
di belakang koma.
              Sintaks:  INT(X);

4.7. LN(fungsi)
Digunakan  untuk  menghitung nilai  logaritma  alam  (natural logarithm) dari nilai x.
              Sintaks:  LN(x);
4.8. SIN(fungsi)
Memberikan nilai dari fungsi Sinus.
              Sintaks:  SIN(x);

4.9. SQR(fungsi)
Digunakan  untuk menghitung nilai pangkat kuadrat dari  suatu bilangan.
              Sintaks:  SQR(x);
              Tipe dari x bisa berupa real maupun integer. Dan hasilnya  akan sama dengan tipe
dari x.

4.10. SQRT(fungsi)
Digunakan untuk menghitung nilai akar dari suatu bilangan.

                Sintaks:  SQRT(x);
                Contoh :
                PROGRAM Aritmatik;
                USES CRT;
                VAR x : REAL;
                BEGIN
                    CLRSCR;
                    WRITE('masukkan nilai dari X = ');
                    READLN(x);
                    IF x<0 THEN x:=ABS(x);
                    WRITELN('Nilai X = ',x:5:2);
                    WRITELN('Nilai eksponentialnya = ',EXP(x):9:3);
                    WRITELN('Nilai logaritma alamnya = ',LN(x):9:3);
                    WRITELN('Nilai integernya = ',INT(x):5:2);
                    WRITELN('Nilai fraksionalnya = ',FRAC(x):5:2);
                    WRITELN('Nilai X dipangkatkan = ',SQRT(x):9:3);
                    WRITELN('Nilai X diakarkan = ',SQRT(x):9:3);
                    WRITE('Nilai X jika dimasukkan dalam ');
                    WRITELN('fungsi SIN,COS,TANGEN : ');
                    WRITELN('- Sinus = ',SIN(x):9:3);
                    WRITELN('- Cosinus = ',COS(x):9:3);
                    WRITELN('- Tangen = ',ARCTAN(x):9:3);
                END.
Hasilnya :
                  masukkan nilai dari X = -2.5
                  Nilai X = 2.50
                  Nilai eksponensialnya = 12,182
                  Nilai logarima alamnya =  0,196
                  Nilai integernya = 2.00
                  Nilai fraksionalnya = 0.50
                  Nilai X dipangkatkan = 6.250
                  Nilai X diakarkan =  1.581
                  

Nilai X jika dimasukkan dalam fungsi SIN,COS,TANGEN :
                  - Sinus = 0.598
                  - Cosinus =  -0.801
                  - Tangen = 1.190


5. Statemen-statemen untuk transfer nilai dari suatu variable

5.1. CHR(fungsi)
Merubah nilai dari byte ke bentuk karakter yang sesuai dengan kode ASCII.
              Sintaks:  CHR(x);
              Keterangan : x bertipe byte
              contoh :  WRITELN(CHR(61);
              hasilnya : a

5.2. ORD(fungsi)
Merubah  nilai suatu variabel dari bentuk karakter ke  bentuk longint.
              Sintaks:  ORD(X);
              Keterangan : x bertipe char
              contoh : WRITELN(ORD('B');
              hasilnya : 42



5.3. ROUND(fungsi)
Membulatkan data tipe real ke data tipe longint.
              Sintaks:  ROUND(X);
              Keterangan  : Jika nilai pecahan < 0,5 maka dibulatkan  kebawah.
                                    Jika  nilai pecahan > 0,5 maka dibulatkan  keatas.
              contoh : WRITELN('10/3 dibulatkan = ',ROUND(10/3));
              hasilnya : 10/3 dibulatkan = 3

5.4. TRUNC(fungsi)
Membulatkan kebawah data tipe real ke data tipe longint.
              Sintaks:  TRUNC(X);
              contoh    :
              WRITELN('20/3 dibulatkan kebawah = ',TRUNC(20/3));
              hasilnya : 20/3 dibulatkan kebawah = 6

6. Statemen-statemen untuk memanipulasi data
6.1. PRED(fungsi)
Memberikan nilai sebelum nilai argumen dalam urutannya  dalam ASCII.
              Sintaks:  PRED(x);

 6.2. SUCC(fungsi)
Memberikan nilai sesudah nilai argumen dalam urutannya  dalam ASCII.
              Sintaks:  SUCC(x);

6.3. INC(fungsi)
Menambah (increments) nilai suatu variabel.
              Sintaks:  INC(x,i);        {i >= 1}
 
6.4. DEC(fungsi)
Mengurangi (decrements) nilai suatu variabel.
              Sintaks:  DEC(x,i);        {i >=1}
              Contoh :
               PROGRAM Mani_data;
               USES CRT;
               TYPE
                    hari = (hr0,hr1,hr2,hr3,hr4,hr5,hr6,hr7)
               VAR
                    urutanhr : hari;
               CONST
                    namahr : ARRAY[hr1..hr7] OF STRING[6]=
                             ('Senin','Selasa','Rabu','Kamis',
                              'Jumat','Sabtu','Minggu');
               BEGIN
                    WRITELN('DAFTAR NAMA HARI');
                    urutanhr := hr0;
                    WHILE Urutanhr < hr7 DO
                    BEGIN
                     urutanhr := SUCC(urutanhr);
                     WRITE('hari ke ',ORD(Urutanhr):2,' adalah ');
                     WRITELN(namahr[urutanhr]);
                    END;
               END.
hasilnya adalah :
                     DAFTAR NAMA HARI
                     hari ke  1 adalah Senin
                     hari ke  2 adalah Selasa
                     hari ke  3 adalah Rabu
                     hari ke  4 adalah Kamis
                     hari ke  5 adalah Jumat
                     hari ke  6 adalah Sabtu
                     hari ke  7 adalah Minggu  

7.    Statemen-statemen tambahan (warna,suara dan window)

7.1. TEXTCOLOR(prosedur)
Untuk mengatur warna dari karakter-karakter di layar.
              Sintaks:  TEXTCOLOR(color : Byte);
              Catatan : untuk pilihan warna lihat pada buku Turbo Pascal.

7.2. TEXTBACKGROUND(prosedur)
Untuk mengatur warna latar belakang dari karakter-karakter dilayar.
              Sintaks:  TEXTBACKGROUND(Color : Byte);

7.3. WINDOW(prosedur)
Untuk  membuat  suatu  jendela (window)  yang  terletak  pada layar.
              Sintaks:  WINDOW(x1,x2,y1,y2 : Byte);
x1,x2  = kordinat kiri atas dengan nilai   maksimal sesuai dengan mode layar.
y1,y2  = kordinat  kanan   bawah   dgn   nilai maksimal sesuai dengan mode layar.

7.4. TEXTMODE(prosedur)
Untuk mengatur lebar layar, 80 kolom atau 40 kolom.
              Sintaks:  TEXTMODE(Mode: Byte);
                        Default = C80

7.5. SOUND(prosedur) 
Untuk mengaktifkan suara(beep) pada internal speaker.
              Sintaks:  SOUND(Hz : word);
                        Untuk mengnonaktifkannya, gunakan statemen NOSOUND.
             
Contoh :
                           PROGRAM Layar2;
                           USES CRT;
                           BEGIN
                                CLRSCR;
                                WINDOW(5,5,20,75);
                                TEXTBACKGROUND(RED);
                                TEXTCOLOR(YELLOW);
                                SOUND(220);
                                GOTOXY(10,7);
                                WRITELN('Laboratorium Komputer');
                                GOTOXY(11,7);
                                WRITELN('Manejemen Informatika');
                                NOSOUND;
                           END.


Statement Input/Output
     contoh latihan untuk proses Input/Output
Contoh
1. Buatlah program seperti berikut ini :
     Algoritma Penjualan
     {Algoritma ini menghitung Pembelian barang dengan nama,
 kode, jumlah dan harga di inputkan dari piranti masukkan dan
 jumlah bayar di hitung dengan rumus jumlah di kali harga.
 Jumlah pembayaran ditampilkan di piranti output }
     Deklarasi
     Nama, kode : String
     Jumlah : Integer
     Harga, bayar: real
     Deskripsi :
     Read (nama, kode, jumlah, harga)
     bayar ← jumlah x harga
     Write (nama, kode, jumlah, harga, bayar)


Program Penjualan; { Heading program }
Uses Crt;
Var {Bagian Deklarasi }
Nama : String[20],
Kode : String[5];
Jumlah : integer;
Harga,Bayar : Real;
Begin (* Bagian Pernyataan *)
(* ========= Input ========= *)
Clrscr; (* Menghapus layar *)
Write (‘Masukkan Nama Barang = ‘);Readln (Nama);
Write (‘Masukkan Kode Barang = ‘);Readln (Kode);
Write (‘Masukkan Jumlah Barang = ‘);Readln (Jumlah);
Write (‘Masukkan Harga Barang = ‘);Readln (Harga);
(* ========= Proses ========= *)
Bayar := Jumlah * Harga;
(* ========= Keluaran ======== *)
Clrscr;
Writeln (‘Daftar Penjualan TOKO LARIS ‘);
Writeln (‘SEMARANG ‘);
Writeln (‘======================== ‘);
Writeln
(‘Nama Barang = ‘, Nama );
Writeln
(‘Kode Barang = ‘,Kode );
Writeln
(‘Jumalh Barang = ‘,Jumlah );
Writeln
(‘Harga Barang = ‘,Harga : 8:2);
Writeln(‘Jumlah Pembayaran = ‘,Bayar : 8:2);
Readln;
End.


2. Ketikkan program berikut :
Uses Crt;
Var
Warna : byte;
Begin
Warna :=2;
Clrscr;
Window(40,5,70,25);
Textcolor(Warna);
Write(‘Bahasa Pascal OYE’);
End.

           
SOAL-SOAL :

Soal  I :
Buatlah  program  dibawah  ini  dengan  tampilan  menggunakan perintah  Window, 
Textcolor, Textbackground,  Gotoxy,  dan  Sound untuk memperindah tampilan.
1.  Mengubah derajat temperatur, dari derajat Celcius  ke  derajat Fahreinheit dan
Reamur (derajat Celcius diinput
2.  Menghitung Luas dan Keliling lingkaran, dengan jari-jari  diketahui (diinput).
3.  Menghitung Luas dan Keliling segitiga sembarang yang  diketahui ke tiga
sisinya.
4.  Mencari nilai Sinus, Cosinus, dan Tangen dengan sudut diinput.
5.  Mencari akar dan kuadrat dari suatu nilai (nilai diinput).
6.  Mencari nilai bulat dan pecahan dari suatu nilai yang  dimasuk kan melalui
keyboard (diinput). Nilai pecahan tersebut dibulatkan sampai 3 angka
dibelakang koma (,).
7.  Tampilkan nama dan NPM anda di dalam window, dan terletak  pada tengah-
tengah layar.
8.  Tampilkan tulisan 'AMIK INTELCOM' di dalam window pada  pojok
kanan atas dengan ukuran window sama dengan tulisan tersebut.

Soal  II :
Buatlah  program pada soal jenis I (no. 1-6) dengan  tampilan menggunakan  2 window.
Window yang pertama digunakan  untuk  nilai yang diinput. Window yang kedua untuk
hasil dari program (output).

Soal  III :
1.  Buatlah program untuk menggabungkan 2 buah kata yang diinput. Setiap  kata
yang diinput harus berada didalam window yang  dan hasilnya  berada pada
window yang berbeda pula.
































BAB III
BENTUK - BENTUK PERULANGAN DAN PENYELEKSIAN KONDISI

BENTUK - BENTUK PERULANGAN
Dalam  hampir setiap program yang kompleks mutlak  memerlukan suatu perulangan
dan percabangan. Tujuan perulangan disini  adalah untuk mengulang statement atau blok
statement berulang kali sesuai sejumlah yang ditentukan pemakai. Dalam materi ini akan
memberikan gambaran konsep dasar dari pengertian diatas.

1. Perulangan FOR
Perulangan  dengan  statemen FOR  digunakan  untuk  mengulang statemen atau suatu
blok statemen berulang kali. Perulangan dengan statemen FOR dapat berupa perunlangan positif dan perulangan negatif.

Perulangan FOR positif
Contoh :
           Perulangan positif untuk satu statement :
            USES CRT;
            VAR
                 i : INTEGER;
            BEGIN
                 FOR i := 1 TO 5 DO WRITELN('AMIK INTELCOM');
            END.

             Maka bila program diatas dicompile
hasilnya :
                         AMIK INTELCOM
                         AMIK INTELCOM
                         AMIK INTELCOM
                         AMIK INTELCOM
                         AMIK INTELCOM

Penjelasan : Berati statemen AMIK INTELCOM akan diulang  sebanyak  5  kali yaitu
dengan menghitung nilai i dari i  ke 1  sampai nilai i terakhir yaitu i ke 5.

Contoh  dengan menggunakan blok statement:
Cara penulisannya dengan pada awal blok diawali dengan BEGIN dan pada
akhir blok diakhiri dengan END;

             USES CRT;
             VAR
                  i : INTEGER;
             BEGIN
                  FOR i:= 1 TO 10 DO
                  BEGIN
                       WRITELN('AMIK INTELCOM');     {  blok statement  }
                  END;
            END.
 Hasil  yang akan didapat akan sama dengan contoh  yang  pertama, tapi yang harus
diingat disini untuk penggunaan blok pada  perulangan FOR biasanya mempunyai
banyak statement (lebih dari 1  statement)

Contoh 3 :
         Peggunaan perulangan FOR dalam blok statement untuk membuat tabel

            USES CRT;
            VAR
                a,b,c : INTEGER;
                bagi  : REAL;
            BEGIN
                 WRITELN('----------------------------------------------');
                 WRITELN(' a        a*a       a*a*a          1/a        ');
                 WRITELN('----------------------------------------------');
                 FOR a:= 1 TO 10 DO
                 BEGIN
                  b:= a*a;
                  c:=a*a*a;
                  bagi := 1/a;
                  WRITELN(a:4,c:10,d:10,bagi:12:3);
                 END;
                 WRITELN('----------------------------------------------');
            END.


maka hasilnya  :
                 ----------------------------------------------
                  a       a*a       a*a*a            1/a
                 ----------------------------------------------
                  1         1           1          1.000
                  2         4           8          0.500
                  3         9          27          0.333
                  4        16          64          0.250
                  5        25         125          0.200
                  6        36         216          0.167
                  7        49         343          0.143
                  8        64         512          0.125
                  9        81         729          0.111
                 10       100        1000          0.100
                ----------------------------------------------





Perulangan FOR negatif
Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar ke kecil. Statement yang digunakan adalah FOR-DOWNTO-DO
Contoh :
                 USES CRT;
                 VAR
                        i  : INTEGER ;
                 BEGIN
                      FOR i := 10 DOWNTO 1 DO WRITE(i:3);
                 END.
Hasil :
                 10  9  8  7  6  5  4  3  2  1

Perulangan FOR tersarang
Perulangan  FOR tersarang adalah perulangan FOR  yang  berada pada  perulangan  yang lainnya. Perulangan yang lebih  dalam  akan diproses  terlebih dahulu sampai habis,
kemudian  perulangan  yang lebih luar baru akan bertambah, mengerjakan perulangan yang  lebih dalam lagi mulai dari nilai awalnya dan seterusnya.
Contoh :
          VAR
            a,b : INTEGER;
           BEGIN
              FOR  a := 1 TO 3 DO
              BEGIN
               FOR b := 1 TO 2 DO  WRITE(a :4,b:2);
               WRITELN;
              END;
           END.
Hasil :
          1 1     1 2
          2 1     2 2
          3 1     3 2


2. Perulangan WHILE-DO
Penyeleksian  kondisi  digunakan  untuk  agar  program  dapat menyeleksi kondisi, sehingga program dapat menentukan tindakan apa yang  harus  dikerjakan, tergantung dari  kondisi  yang  diseleksi tersebut.  Perulangan WHILE-DO tidak dilakukan jika kondisi  tidak terpenuhi.








Contoh :
                 USES CRT;
                 VAR  i : INTEGER;
                 BEGIN
                      i := 0;
                      WHILE i < 5 do
                      BEGIN
                       WRITE(i:3);
                       INC(i);    { sama dengan i:=i+1 }
                      END;
                 END.

Hasilnya :
                          0  1  2  3  4

Perulangan WHILE-DO tersarang
Perulangan  WHILE-DO  tersarang (nested  WHILE-DO)  merupakan perulangan  WHILE-DO yang satu di dalam perulangan  WHILE-DO  yang lainnya.
Contoh :
         USES CRT;
          VAR
            a, b : INTEGER;
          BEGIN
               CLRSCR;
                a:=1;
                b:=1;
               WHILE a < 4 DO  { loop selama a masih lebih kecil dari 4 }
                BEGIN
                     a := a+1;
                    WHILE b < 3 DO { loop selama b masih lebih kecil dari 3 }
                     BEGIN
                       WRITE(a:3,b:2);
                        b:=b+1;
                   END;
               END;
               READLN;
          END.


3. Perulangan REPEAT-UNTIL.
REPEAT-UNTIL  digunakan  untuk  mengulang  statement-statemen atau blok statement sampai (UNTIL) kondisi yang diseleksi di UNTIL tidak terpenuhi. Sintak dari statement ini adalah :
Contoh
                 VAR
                       i : INTEGER;
                 BEGIN
                      i:=0;
                      REPEAT
                         i:= i+1;
                         WRITELN(i);
                      UNTIL i=5;
                 END.

hasil :
                 1
                 2
                 3
                 4
                 5

REPEAT-UNTIL tersarang
REPEAT-UNTIL  tersarang adalah suatu perulangan  REPEAT-UNTIL yang satu berada
didalam perulangan REPEAT-UNTIL yang lainnya.
         Contoh :
         VAR
              a,b,c   : REAL;
          BEGIN
               WRITELN('========================================');
               WRITELN(' sisi A     sisi B             Sisi C   ');
               WRITELN(' =======================================');
               a:= 1;
               REPEAT           { perulangan luar }
                b := 0;
                REPEAT     { perulangan dalam }
                 c:=SQRT(a*a+b*b);
                 WRITELN(a:6:2, b:9:2, c:9:2);
                 b:=b+5;
                UNTIL  b>25;  { berhenti jika b lebih besar  dari  5  untuk
                                perulangan dalam }
                     a:=a+1;
               UNTIL  a>3;    { berhenti jika a lebih besar  dari  3  untuk
                                perulangan luar }
               WRITELN(' =======================================');
          END.











BAB IV
STATEMENT KENDALI

 BENTUK-BENTUK PERCABANGAN / PENYELEKSIAN KONDISI
1. IF-THEN
Bentuk struktur IF-THEN adalah sebagai berikut :
                             IF Kondisi THEN Statement
Ungkapan  adalah  kondisi yang diseleksi oleh  statement  IF. Bila kondisi yang diseleksi
terpenuhi, maka statement yang  mengikuti THEN akan diproses, sebaliknya bila kondisi
tidak  terpenuhi, maka yang akan diproses statement berikutnya. 
         Misalnya :
               IF Pilihan = 2 THEN
               BEGIN     { jika kondisi terpenuhi, Yaitu jika pilihan = 2 }
                ......
                ......
               END
               ELSE      { jika kondisi tidak terpenuhi, yaitu jika pilhan
                           tidak sama dengan 2}
               BEGIN
                .......
                .......
               END;

Contoh Program :
         USES CRT;
         VAR
             Nilai : REAL;
         BEGIN
              WRITE('Jumlah Nilai :');
              READLN(nilai);           {  Pemasukan data  }
              IF nilai >60 THEN        {  seleksi kondisi variabel nilai  }
              WRITELN('Lulus')         {  Dilaksanakan  jika  nilai  lebih besar dari 60  }
              ELSE
              WRITELN('Tidak lulus');  {  Dilaksanakan jika variabel  nilai lebih kecil dari 60  }
         END.
         Hasil :
Jika  kita  Memasukan  40 pada varibel  nilai,  Maka  program diatas akan mencetak Tidak
lulus.


IF tersarang (nested IF)
Struktur  IF tersarang merupakan bentuk dari suatu  statement IF  berada  di dalam
lingkungan statemen IF  yang  lainya.  Bentuk statement IF tersarang sebagai berikut :

         IF kondisi1 THEN               atau            IF Kondisi1 THEN
         IF kondisi2 THEN                                 BEGIN
              statemen1                                          IF kondisi2 THEN
         ELSE                                                          statemen1
             statemen2;                                         ELSE
                                                                            statemen2
                                                                       END;

2. CASE-OF
Struktur CASE-OF mempunyai suatu ungkapan logika yang disebut dengan  selector dan
sejumlah statemen yang diawali  dengan  suatu label  permasalahan (case label) yang
mempunyai tipe  sama  dengan selector.
Statement yang mempunyai case label yang bernilai sama dengan case label yang bernilai
sama dengan nilai selector akan  diproses sedang statemen yang lainya tidak.
Bentuk struktur dari CASE-OF :
                CASE Variabel Kondisi OF
                    CASE- LABEL 1; STATEMENT 1;
                    CASE- LABEL 2; STATEMENT 2;
                    ........
                    CASE- LABEL N; STATEMENT N;
                END;                            {  end dari case  }
         Daftar  case  label dapat berupa konstanta, range  dari  konstanta yang  bukan 
bertipe real.
          Contoh program ;
         PROGRAM nilai;
         VAR
               nil : CHAR;
         BEGIN
              WRITE('Nilai Numerik yang didapat :');
              READLN(nil);
              CASE nil OF
                'A': WRITELN('SANGAT BAIK');
                'B': WRITELN('BAIK');
                'C': WRITELN('CUKUP');
                'D': WRITELN('KURANG');
                'E': WRITELN('SANGAT KURANG ');
              END;
         END.
hasil  :
              Nilai Numerik yang didapat : B
              BAIK





 Contoh listing program untuk dicoba :
1. Program input data dengan array
         PROGRAM pemakaian_Array_Untuk_10_data_dengan_menggunakan_For;
         USES CRT;
         CONST
            garis='------------------------------------------------------';
         VAR
              nil1,nil2 : ARRAY [1..10] OF 0..100; {Array dgn Type subjangkauan}
              npm       : ARRAY [1..10] OF STRING[8];
              nama      : ARRAY [1..10] OF STRING[15];
              n,i,bar   : INTEGER;
              jum       : REAL;
              tl        : CHAR;
         BEGIN
              CLRSCR;
              { pemasukan data dalam array }
              WRITE('MAU ISI BERAPA DATA :');
              READLN(N);
              FOR i:= 1 TO n DO
              BEGIN
                   CLRSCR;
                   GOTOXY(30,4+1); WRITE('DATA KE-:',i:2);
                   GOTOXY(10,5+i); WRITE('NPM     :'); READLN(NPM[i]);
                   GOTOXY(10,6+i); WRITE('NAMA    :'); READLN(NAMA[i]);
                   GOTOXY(10,7+i); WRITE('NILAI 1 :'); READLN(NIL1[i]);
                   GOTOXY(10,8+i); WRITE('NILAI 2 :'); READLN(NIL2[i]);
               END;
              { proses data dalam array }
              CLRSCR;
              GOTOXY(5,4); WRITE(GARIS);
              GOTOXY(5,5); WRITE('NO');
              GOTOXY(9,5); WRITE('NPM');
              GOTOXY(18,5); WRITE('NAMA');
              GOTOXY(34,5); WRITE('NIL.1');
              GOTOXY(41,5); WRITE('NIL.2');
              GOTOXY(47,5); WRITE('RATA');
              GOTOXY(54,5); WRITE('ABJAD');
              GOTOXY(5,6); WRITE(GARIS);
              {  proses Cetak isi array dan seleksi kondisi  }
              bar:=7;
              FOR i:= 1 TO n DO
              BEGIN
                   jum:=(nil1[i]+nil2[i])/2;
                   IF jum>=90 THEN tl:='A'
                   ELSE
                       IF jum>80 THEN tl:='B'
                       ELSE
                           IF jum>60 then tl:='C'
                           ELSE
                               IF jum 50 THEN tl:='D'
                               ELSE
                                   tl:='E';
                   {  cetak hasil yang disimpan di array dan hasil  }
                   {  penyeleksian kondisi  }
                   GOTOXY(5,bar); WRITELN(i:2);
                   GOTOXY(9,bar); WRITELN(NPM[i]);
                   GOTOXY(18,bar); WRITELN(NAMA[i]);
                   GOTOXY(34,bar); WRITELN(NIL1[i]:4);
                   GOTOXY(41,bar); WRITELN(NIL2[i]:4);
                   GOTOXY(47,bar); WRITELN(jum:5:1);
                   GOTOXY(54,bar); WRITELN(tl);
                   bar:=bar+1;
             END;
             GOTOXY(5,bar+1);WRITELN(garis);
             READLN;
         END.

          2. Program jendela bergerak
         PROGRAM Window_Bergerak_dgn_delay;
         USES CRT;
         VAR i : INTEGER;
         BEGIN
              FOR i:=1 TO 15 DO
              BEGIN
                   SOUND(i*100);
                   DELAY(100);
                   NOSOUND;
              END;
              TEXTBACKGROUND(black);
              CLRSCR;
              FOR i := 1 TO 9 DO
              BEGIN
                   TEXTBACKGROUND(white);
                   WINDOW(42-i*4,10-i,38+i*4,15+i);
                   CLRSCR;
                   DELAY(100);
              END;
              TEXTCOLOR(15);
              GOTOXY(28,2);WRITELN('c');
              GOTOXY(8,3); WRITELN('3');
              GOTOXY(28,4); WRITELN('A');
              TEXTCOLOR(black);
              GOTOXY(44,3); WRITELN('3');
              GOTOXY(44,2); WRITELN('&');
              GOTOXY(29,4); WRITELN('U');
              TEXTCOLOR(red*25);
              GOTOXY(30,3); WRITELN('B E L A J A R');
              TEXTCOLOR(black);
              GOTOXY(5,5); WRITE('c');
              FOR i := 6 TO 64 DO
              BEGIN
                   GOTOXY(i,5);WRITELN('');
              END;
              FOR i := 6 TO 20 DO
              BEGIN
                   GOTOXY(5,i); WRITELN('3 ');
              END;
              GOTOXY(5,21); WRITELN(' ');
              TEXTCOLOR(white);
              GOTOXY(65,5); WRITE('U');
              FOR i := 6 TO 65 DO
              BEGIN
                   GOTOXY(i,21); WRITELN('  `);
              END;
              FOR i := 6 TO 20 DO
              BEGIN
                   GOTOXY(65,i); WRITELN('3');
              END;
              GOTOXY(65,21); WRITELN('c');
              TEXTCOLOR(yellow);
              READLN;
         END.
 

 SOAL - SOAL :
Buatlah  program  untuk soal dibawah ini dengan  tampilan  sebagus mungkin 
(gunakan  perintah Window, Textcolor  dll).  Jumlah  suku sesuai dengan input dari
keyboard.
         1. Buat deret  hitung  3,7,11,15,......................=?
             Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.
         2. Buat deret ukur  3,9,27,................................=?
             Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.
         3. Buat tabel deret bergoyang 1,-2,4,-8,...........=?
             Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.
        4. Buat deret suku harmonis 1,1/2,1/3,.............=?
            Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.
    
   5. Buat deret fibbonaci 1,1,2,3,5,.....................=?
            Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.

        6. Buat deret  seperti berikut  1,-2,3,-4,.............=?
            Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.

        7. Buat deret kuadrat 1, 4, 9,............................=?
            Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.

        8. Buat deret seperti berikut  100, 90, 70 ,...........=?
           Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.

       9. Buat deret seperti berikut 256, 196, 144,............=?
           Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.

     10. Buat  deret seperti berikut  1, 1, 1, 2,  2, 3,   6,  4,  24, 5..........=?
           Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.

      11. Buatlah program untuk mencari faktorial, sesuai dengan  input yang diminta.

12. Buatlah program huruf yang berjatuhan sehingga membentuk suatu kalimat yang
telah diinput dari keyboard .


                        LATIHAN:
1.      Nama program: Latihan1.pas
Uses crt;
Var
         Umur:byte;
Begin
         Clrscr;
         Write(‘Inputkan Umur:’); readln(umur);
         If umur in [0..5] then writeln(‘Balita’);
         Else if umur in [6..16] then writeln(‘Remaja’);
         Else if umur in [17..99] then writeln(‘Dewasa’);
End.

2.      Nama program: Latihan2.pas
Uses crt;
Var
         Beli, bayar, disk : real;
Begin
         Write(‘Jumlah Beli =’); readln(beli);
         Disk:=0;
         If beli>=50000 then disk:=beli*0.1;
         Bayar:=beli-disk;
         Writeln(‘Jumlah Bayar :’,bayar:10:2);
End.




3.      Nama Program: Latihan3.pas
Uses crt;
Var
         Nm: string[20];
         Mtk: string[20];
         Ket: string [10];
         Nl: byte;
Begin
         Writeln(‘Entri Nilai Mahasiswa’);
         Writeln(‘____________________’);
         Writeln(‘Nama            :’); readln(nama);
         Writeln(‘Mata Kuliah  :’); readln(mtk);
         Writeln(‘Nilai              :’); readln(nl);
         Writeln(‘________________________’);
         If nl>=60 then ket:=’Lulus’ else ket:=’Gagal’;
         Writeln(‘Keterangan   :’,ket);
         Writeln(‘_________________________’);
End.
























0 comments:

Post a Comment

Unordered List

Sample Text

Popular Posts

Recent Posts

Text

Flag Counter