Program Membalik Kalimat

String merupakan salah satu tipe data yang bisa digunakan dalam program pascal dalam format untaian huruf. Dengan menggunakan tipe data ini, dapat dibuat dengan mudah program membalik kalimat. Program membalik kalimat yang dimaksud adalah program yang mempunyai output membaca input dari belakang. Sebagai contoh:

Input:
MATHEMATICS AND SCIENCE
Output:
ECNEICS DNA SCITAMEHTAM

Pada saat menggunakan tipe data ini, dapat diperhatikan bahwa s[i] menyatakan karakter ke-i dari input program dan length(s) menyatakan banyaknya karakter yang diinputkan ke program.
Sehingga program membalik kalimat dapat dibuat seperti berikut.

var s:string; j,i:integer;
begin
  readln(s);
  i:=length(s);
  for j:=i downto 1 do
  begin
    write(s[j]);
  end;
end.

Dalam free pascal dapat dilihat pada gambar di bawah ini.


Sehingga pada saat dirun, dan untuk 2 contoh input, dapat dilihat pada gambar di bawah ini.


Apabila ingiin mengunduh dalam format txt, silakan klik di sini.

2 Responses
  1. Octa Says:

    uses wincrt;
    const elemen = 255;
    type s255 = string[elemen];
    tumpukan = record
    isi:s255;
    atas: 0..elemen;
    end;

    var t: tumpukan;
    i, k, l, m: integer;
    kal, word: s255;

    procedure awalan(var t: tumpukan);
    begin
    t.atas:=0;
    end;

    procedure push (var t:tumpukan; x: char);
    begin
    t.atas:=t.atas+1;
    t.isi[t.atas]:= x;
    end;

    function pop(var t:tumpukan):char;
    begin
    pop:=t.isi[t.atas];
    t.atas:=t.atas-1;
    end;

    begin
    clrscr;
    awalan(t);
    writeln('membalik kalimat Adjja');
    writeln;
    write('Masukan Kalimat yang kaba pengen: '); readln(kal);
    clrscr;
    writeln('kalimat asli: ',kal);
    writeln;
    write('Hasil stack adalah : ');
    for i:=1 to length(kal) do
    begin
    if (kal[i]=' ') then
    begin
    for k:=(i-1) downto l do
    word:=word+kal[k];
    word:=word+kal[i];
    end;
    l:=length(word);
    if i=length(kal) then
    begin
    for i:=length(kal) downto l do
    word:=word+kal[i];
    end;
    end;

    for i := 1 to (length(kal) + 1) do
    push(t, word [i]);
    for i := 1 to (length(kal) + 1) do
    write (pop (t) );
    readln;

    end.


  2. Bernad Adjie Says:

    ini cara lain ya, cukup panjang