Minggu, 19 Oktober 2014

Manipulasi String Pada Pascal

OPERASI STRING

Suatu String dalam Bahasa Pascal dapat dioperasikan dengan berbagai macam tujuan. Pascal menyediakan berbagai prosedur standar dan fungsi stanfar untuk opersai string.

Prosedur Standar Fungsi Standar

1. DELETE 1. CONCAT

2. INSERT 2. COPY

3. STR 3. POS

4. VAL 4. LENGHT

Dalam Operasinya String hanya mempunyai sebuah operator, yaitu operator ‘+’. Bila operator ini digunakan untuk dua buah elemen string, maka akan menjadi penggabungan dua buah string menjadi satu.Panjang Maksimal suatu string yang diijinkan oleh Pascal adalah 255 karakter.

Contoh :
            Const
               Jenis = ‘Bahasa’;
               Nama = ‘Turbo Pascal’;
            Var
               Sifat : String[10];
               Kalimat : String [80];
            Begin
               Sifat := ‘terstruktur’;
               Kalimat := Jenis+’  ‘+Nama+’  ‘+’merupakan’+Jenis+’  ‘+Sifat;
               WriteLn(Kalimat);
            End.
à Bahasa Turbo Pascal merupakan Bahas terstrukur

Procedure Standart pada String
1.      DELETE (Procedure)
ð menghapus substring dari suatu string, dimulai dari posisi i, sebanyak n à String
BU : DELETE ( string, i, n)
 Cat. Jika jumlah I lebih besar dari jumlah karakter dalam string, maka tidak ada karakter yang terhapus
 Contoh :       VAR   s,h : string;
BEGIN
    s := ‘ABCDEF’;
    h := delete(s,2,3);
    WriteLn(‘String pertama =  ’, s);
    WriteLn(‘String akhir =   ‘, h);
 END.
à    String pertama = ABCDEF
String kedua =  AEF

2.       INSERT     ð insert (menyisipkan) substring (string1) dalam suatu string (string2), pada posisi I à String

BU : INSERT (string1, string2, i)
Contoh :       VAR   r,s : string[24];
    s := ‘UNIVERSITAS DARMA’;
BEGIN
    r := insert(‘GUNA’,s,7);                                
   writeLn(‘Hasil r adalah  ‘, r);
END.
 à Hasil r adalah  UNIVERSITAS GUNADARMA
Cat. Apabila hasil penyisipan menjadi String yang panjangnya lebih dari 255 karakter, maka yang dianggap signifikan hanya sampai 255 karakter saja.

3.       STR ð mengubah bentuk numerik (x) menjadi nilai string (s)
BU : STR (x [ : n [ :m ] ], string)

Nilai  ‘n’ menunjukkan format panjang dari nilai utuh dan nilai ‘m’ menunjukkan format panjang desimal (nilai dibelakang koma)
C/:       VAR    N1,N2            : integer;
                       S1,S2  : string;
            BEGIN
                 N1 := 1234;  N2 := 567;
     Writeln (N1+N2);                                                
     Str (N1:4,S1); 
     Str (N2:4,S2);
     Writeln(S1+S2);                                                  

                       END.  
                        à 1801_ terdapat spasi 1
                                                                                    1234  567

4.       VAL ð mengubah nilai suatu argumen string menjadi nilai numerik
BU :

Val(Var_string_angka,Var_nilai,kode)
                                                                                  posisi salah

Cat.     Var_string_angka berisi data string yang berupa angka
            Var_nilai berisi data hasil konversi.
Jika terjadi kesalahan data maka akan posisi kesalahan disimpan pada
      kode

C/:      
VAR    N1, N2                        : Real;
S1, S2                        : String[6];
            Salah1,salah2          : Integer;
BEGIN
            S1 := ‘123.45’
            S2 := ‘765.A3’
            Val (S1, N1, salah);
            Val (S2, N2, salah);
            WriteLn(‘Nilai String1 = ‘ , S1);
WriteLn(‘Nilai String2 = ‘, S2);
            WriteLn(‘Nilai Real1   =’, N1);
            WriteLn(‘Nilai Real2   =’, N2);
            WriteLn(‘Posisi Salah N1 = ‘, salah1);
            WriteLn(‘Posisi Salah N2 = ‘, salah2);
END.

Nilai String1 = 123.45  
Nilai String2 = 765.A3
Nilai Real1   = 1.2345000000E+02
Nilai Real2   = 7.6500000000E+02
Posisi Salah N1 = 0
Posisi Salah N2 = 5


Fungsi Standar pada Operasi String

  1. CONCAT ð menggabungkan dua string secara berurut

BU :
ConCat(S1,S2[,S3,…, Sn])

Cat. Fungsi standar ini mempunyai operasi yang sama dengan operator string ‘+’, yaitu merangkai beberapa nilai string.

 

C/:       VAR
                 S1, S2 : string[3] ;
                 S3  : string[6];
            BEGIN
                S1 := ‘ABC’;    S2 := ’XYZ’;
    S3 := CONCAT(S1,S2);
    Write (‘Nilai S3 = ‘, S3);                                                  
                        END.

                              à        Nilai S3 = ‘ABCXYZ’                 


2.    COPY       ð mengambil bagian string (substring) dari suatu string, dimulai dari posisi i, sebanyak n à String


BU :COPY (String, i, n )

C/:       VAR
                             s,r : string;
            BEGIN
                 s := ‘ABCDEF’;
                 r := copy (s,2,3);
    WriteLn (‘Nilai r adalah  ‘, r);
            END.

à        Nilai r adalah  BCD
           
3.    POS        ð Mencari posisi letak dari suatu substring yang ada dalam suatu string à Interger


BU : POS (subString, string)

Cat : Jika SubString yang dicari terdiri dari beberapa karakter, maka dalam pencariannya akan mencari deretan karakter yang sesuai. 

C/:       VAR
                 K1, K2, K3, K4     : string[4];
                 S                            : String[20];
            BEGIN
                 S := ‘ABCDEFGHIJKLMNOPQRST’;
                 K1 := ‘ FGH’;
     K2 := ‘H’;
     K3 := ‘JUGA’;
     K4 := ‘PQRS’;
     WriteLn(K1, ‘ di posisi  ‘,POS(K1,S);                          
     WriteLn(K2, ‘ di posisi  ‘,POS(K2,S);                          
     WriteLn(K3, ‘ di posisi  ‘,POS(K3,S);                          
     WriteLn(K4, ‘ di posisi  ‘,POS(K4,S);                          
            END.

                        à        FGH di posisi 6
H diposisi 6
JUGA diposisi 0
PQRS diposisi 16

4.      LENGTH ð memberikan nilai panjang atau jumlah karakter dari suatu string à integer

 

C/:       VAR         s : string[20];
                 i : word;
            BEGIN
.                s := ‘program pascal’;
                 i := LENGTH(s);
                             WriteLn(‘Panjang string : ’, ‘‘‘‘,s, ‘‘‘‘ ,‘  adalah  ‘, I, ‘  karakter’);                                END.
                                    à     Panjang string “program pascal” adalah  14 karakter

Konsep Dasar Bahasa Pascal

Sejarah Singkat Bahasa PASCAL
Bahasa PASCAL pertama kali dikembangkan pada awal tahun 70-an oleh NICLAUS WIRTH di Technical University, Zurich – Swiss. Nama PASCAL diambil dari nama seorang ahli matematika bangsa Perancis, yaitu BLEISE PASCAL yang telah berjasa menemukan alat hitung mekanis pertama di dunia pada abad ke-17. Bahasa pemrograman ini termasuk kategori “High Level Language”. Instruksi-instruksi yang digunakan dalam bahasa pemrograman ini sangat sistematis dan terstruktur. Pada awalnya bahasa pemrograman ini diperkenalkan dengan tujuan untuk menjelaskan masalah pemrograman komputer bagi mahasiswa yang belajar pemrograman komputer. Ternyata dalam waktu singkat, bahasa pemrograman ini menjadi salah satu bahasa yang sangat populer dikalangan universitas, sehingga menjadi julukan sebagai bahasa universitas.
Mulai dari awal perkembangannya hingga saat ini banyak sekali jenis bahasa pemrograman ini, masing-masing merupakan hasil pengembangannya, antara lain :
  • UCSD Pascal
  • Microsoft Pascal
  • Apple Pascal
  • Turbo Pascaldsb

Diantara versi-versi yang ada, Turbo Pascal merupakan versi yang sangat populer saat ini.
Struktur Dan Komponen Dasar Program Pascal.
Struktur dari suatu program Pascal terdiri dari sebuah judul program dan suatu blok program atau badan program. Blok program dibagi lagi menjadi dua bagian, yaitu bagian deklarasi dan bagian pernyataan (statement).
Struktur program :
Judul Program PROGRAM nama-program;
Blok Program
Bagian deklarasi
- deklarasi label LABEL nama-label;
- deklarasi konstanta CONST…………..;
- deklarasi tipe         TYPE …………….;
- deklarasi variabel VAR ……………...;
- deklarasi prosedur PROCEDURE nama-prosedur;
……………………………….;
- deklarasi fungsi FUNCTION nama-fungsi;
………………………….;
Bagian Pernyataan
Begin
(statement)  
…………;
…………;
end.
Contoh :  Menghitung luas bidang berbentuk empat persegi panjang dengan panjang P dan lebar L.
PROGRAM Luas; {Judul}
VAR P,L,Luas : real; {Deklarasi variabel}
BEGIN
Read (P,L); {Statemant}
Luas := P*L; {Statement}
Write (P, L, Luas); {Statement}
END.
Judul program sifatnya adalah optional, dan bila ditulis, harus terletak pada awal dari program dan diakhiri dengan titik koma.
Bagian deklarasi digunakan bila di dalam program digunakan pengenal (identifier). Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan fungsi. Kalau suatu program menggunakan identifier, Pascal menuntut supaya identifier tersebut diperkenalkan terlebih dahulu sebelum digunakan, yaitu dideklarasikan terlebih dahulu pada bagian ini.
Beberapa aturan dalam program Pascal :
Akhir sebuah program Pascal ditandai dengan tanda baca titik (.) setelah END yang             paling akhir.
Tanda titik koma (;) merupakan pemisah antar instruksi satu dengan lainnya.
Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda baca titk         koma (;)
Contoh : simpan  :=  akhir;   akhir := simpan + awal;
Baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan }
Contoh : Var rerata : real; (*nilai rata-rata*)
Nil1 : real; {nilai ujian}
Statement  (pernyataan)
Adalah instruksi atau gabungan instruksi, yang menyebabkan komputer melakukan aksi.
Type statement dalam Pascal terdiri atas :
1. Sederhana : 
- Menandai sebuah item data ke sebuah variabel (assignment statement)
contoh : X := Y * 4.135
- pemanggilan procedure dan goto statement

2. Terstruktur:
- Compound Statement
contoh : Begin 
read (x) ;
y := x + 5;
write (y)
 End.
     - Repetitive Statement
contoh : For I := 1 to 100 do 
write (count);
    - Conditional Statement
contoh : If x > 100 then write (s)
else write (p) ;
Komponen Dasar Program Pascal
Pola susun bahasa Pascal dibentuk dengan menggunakan komponen bahasa pemrograman yang umum, yaitu :
1. Simbol Dasar
2. Reserved Word (kata pasti)
3. Identifier (penyebut)


1. Simbol Dasar.
Simbol dasar terdiri atas:
1. Simbol huruf, yaitu huruf A sampai dengan Z atau a sampai dengan z.
(huruf besar dan kecil).
2. Simbol angka atau digit yaitu : 0,1,2,3,4,5,6,7,8,9.
3. Simbol khusus, yaitu
+   -   *   /   ;   :=   ,   ‘   =   <   >   <=   >=   <>   :   {  }   ( )   [   ]
2. Reserved Word (kata pasti)
Reserved Word adalah suatu kata yang secara mutlak tidak boleh diartikan lain dan harus digunakan sebagaimana yang telah didefinisikan atau ditentukan kegunaanya oleh bahasa Pascal. Reserved word ini tidak boleh didefinisikan ulang oleh pemakai, sehingga tidak dapat dipergunakan sebagai pengenal (identifier)
Reserved Word ini jumlahnya berbeda untuk masing-masing bahasa Pascal.
Contoh beberapa reserved word yang telah didefinisikan oleh bahasa pascal antara lain 
AND         ELSE LABEL   SET
ARRAY          END OF   TYPE
BEGIN         FUNCTION OR   UNTIL
CASE         FOR PROCEDURE   VAR
CONST         GOTO PROGRAM    WHILE
DO         IF RECORD   WITH
DOWNTO       IN REPEAT   dsb
3. Identifier (sebutan/pengenal)
Identifier merupakan sebuah kata yang digunakan sebagai nama atau sebutan terhadap sesuatu didalam program. Pemakai dapat mendefinisikan sendiri suatu nama sebagai identifier.
Identifier ini terdiri atas :
1. Identifier Standar, yaitu identifier yang telah didefinisikan oleh bahasa pascal.
Contoh dari Identifier standar ini antara lain:
ABS LN
ARCTAN ODB
BOOLEAN PRED
CHAR ROUND
CHR READ
COS READLN
EOF SQR
EOLN SQRT
EXP SUCC
Dan masih banyak lagi.
2. Identifier Non Standar; yaitu identifier yang didefinisikan oleh pemakai bahasa pascal; misalnya;
3. nama suatu program 
4. nama suatu konstanta
5. nama suatu variabel
6. nama suatu procedure
Identifier ini bebas, tetapi dengan ketentuan-ketentuan sebagai berikut :
Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.              Huruf besar dan huruf kecil dianggap sama.
Tidak boleh mengandung blank.
Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah.
Panjangnya bebas, tetapi hanya 63 karakter pertama yang dianggap signifikan. Contoh :

Identifier
Keterangan
GajiKaryawan
Benar
No_Mhs
Benar
P3K
Benar
1X
Salah, karakter pertama harus huruf
A&B
Salah, tidak boleh mengandung simbol khusus
A B
Salah, tidak boleh mengandung blank

Referensi :
1. Anonim, “Algoritma & Pemrograman II”, Penerbit Gunadarma, Jakarta, 1990
2. Bryon, Goffried, “Programming with PASCAL”, Schaum Series, New York, 1986
3.  Prather, Ronald E., “Problem Solving Principle : Programming with Pascal”, Prentice Hall, New Jersey, 1982
4. Dumairy, Matematika Terapan untuk Bisnis & Ekonomi Press (BPFE Yogyakarta)
5. Yogianto H.M, Turbo Pascal 5.0 Penerbit Andi Offset, Yogyakarta.
6. Ediman Lukito, Belajar Sendiri Pemrograman dengan Turbo Pascal 7.0

7. Ir. P. Insap Santosa, Turbo Pascal versi 5.0 dan 5.5, Elexmedia Komputindo