Senin, 07 Mei 2012

Materi ALGORITMA PEMROGRAMAN 2A - PERTEMUAN 3 (MANIPULASI STRING)


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.
C/
:
            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


C/:       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)






 

            C/:       VAR   r,s : string[24];
BEGIN
    s := ‘UNIVERSITAS DARMA’;
    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.                                                                          1 spasi
                                                                  à        1801
                                                                              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);
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
 
           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.








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     
Latihan !
Tentukan hasil dari program berikut
  1. PROGRAM LATIH1;
VAR M, N      : STRING[14];
BEGIN
            M := ‘ESCHATOLOGICAL’;
            N := COPY (M,6,4);
            INSERT (‘L’, N, 3);
            WRITELN (N);
END.
  1. PROGRAM LATIH2;
VAR    A         : STRING[5];
            N         : INTEGER;
            C         : INTEGER;
BEGIN
            A := ‘12345’;
            N := VAL (A, N, C);                                       {Nilai C belum diketahui)
            WRITELN (N);
END.
  1. PROGRAM LATIH3;
VAR    A, B     : STRING[10];
BEGIN
            A := ‘MORGAN’;
B := COPY ( CONCAT ( COPY (A, 3, 2), A), 3, 2 );
WRITELN (B);
END.
  1. PROGRAM LATIH4;
VAR A, B       : STRING[10];
BEGIN
            A := ‘MORGAN’;
B := COPY (A, 2, 2);
WRITELN (B);
            A := ‘CONCAT (A, B);
WRITELN (A);
END.
  1. PROGRAM LATIH5;
VAR M, N      : STRING[10];
BEGIN
            M := ‘ABCDEFGHIK’;
DELETE (M, 5, 2);
INSERT (‘Z’, A, 2);
WRITELN (COPY (A, 4, 3);
END.

0 komentar:

Posting Komentar

Please Leave Your Comment :)