Union, Intersection, Differences, Concatenation dan Reverse Dengan Delphi 7

                   Concatenation adalah sebuah operasi bahasa, atau lebih dikenal nya sebagai perkalian bahasa (saya kira). Misal ada bahasa L1 =  {ab, bba} dan L2 = {bb,aba} , maka jika kedua bahasa itu dilakukan operasi concatenation maka akan menjadi L3={abbb,ababa,bbabb,bbaaba} . Nah kalau secara teori saya sendiri juga tidak begitu mengerti, tapi untuk membuat program yang seperti itu dengan delphi saya malah mengerti.

                  Logikanya begini , langkah pertama yang harus dilakukan adalah memisahkan setiap kata yang terpisahkan oleh koma. Maka  diperlukan sebuah komponen penampung untuk melakukan hal tersebut. Untuk itu saya akan menggunakan komponen combobox,  Sebenarnya tidak hanya dengan combobox saja yang digunakan untuk ini, anda dapat menggunakan komponen lain seperti listbox, memo atau lainnya.  Setelah kedua bahasa telah dipisah dan berada dalam masing combobox, misal combobox1 dan combobox2 maka untuk langkah concatinationnya adalah menggunakan dua perulangan.  tambahkan satu value atau kata dari setiap baris combobox1 ke semua baris combobox2 . ulang langkah tersebut hingga baris dari combobox1 habis.

 Oke, berikut ini adalah perintah untuk memsisahkan string tersebut.

procedure TForm1.memecahkanbahasa(kata : string);
var
 i,j : integer;
 stringdata : string;
begin
  j:=0;
  for i := 1 to length(kata)+1 do
   begin
    if(kata[i]<>’,’) and (kata[i]<>”) then
     begin
      stringdata:=stringdata+”+kata[i];
     end

    else
     begin
      ComboBox1.Items.Add(stringdata);
      Inc(j);
      stringdata:=”;
     end;
   end;
end;

               Saya ngak perlu menjelaskan perintah tersebut, yang pasti perintah diatas adalah untuk memasukan elemen – elemen bahasa atau setiap kata yang diinputkan melalui editbox akan terpisah menjadi sekumpulan baris dalam combobox. Lalu bagaimana untuk operasi concatenation yang sudah ditunggu-tunggu. hehe.. oke berhubung saya lagi baik hati , saya tidak hanya akan memberikan procedure concatenationnya saja tetapi untuk procedure Difference, Intersection dan Reverse juga akan saya berikan. akan tetapi  saya tidak akan memberikan program jadinya secara langsung. Program jadinya akan saya berikan seusai praktikum .

Nah ini dia procedure Concatenation, Difference, Intersection dan Reverse nya

{procedure intersection}
procedure TForm1.intersection;
var
 i : integer;
 stringdata : string;
begin
stringdata:=”;
  for i := ComboBox3.Items.Count – 1 downto 0 do
  begin
   if ComboBox2.Items.IndexOf(ComboBox3.Items[i])>=0 then
    stringdata:=stringdata+”+ComboBox3.Items.Strings[i]+’,’;
  end;
  Memo1.Lines.Add(”);
  Memo1.Lines.Add(‘hasil intersection kedua bahasa’);
  if stringdata=” then
   begin
    Memo1.Lines.Add(‘tidak ada intersection’);
   end

   else
   begin
  Memo1.Lines.Add(stringdata);
   end;
  Memo1.Lines.Add(‘————————-‘);
end;

{Procedure Difference}
procedure TForm1.difference;
var
i, j : integer;
stringdata : string;
begin
  stringdata:=”;
  for i := 0 to ComboBox4.Items.Count – 1 do
   begin
    if ComboBox2.Items.IndexOf(ComboBox4.Items[i]) >= 0 then
     ComboBox4.Items.Delete(i);
   end;

   for j := 0 to ComboBox4.Items.Count – 1 do
    begin
     stringdata:=stringdata+”+ComboBox4.Items.Strings[j]+”+’,’;
    end;

    Memo1.Lines.Add(”);
    Memo1.Lines.Add(‘Hasil Differences kedua bahasa’);
    Memo1.Lines.Add(stringdata);
    Memo1.Lines.Add(‘————————-‘);
end;

{Procedure Concatenation}
procedure TForm1.concatination;
var
 i,j,last_i,last_j : integer;
 stringdata : string;
begin
last_i:=ComboBox1.Items.Count-1;
last_j:=ComboBox3.Items.Count-1;

stringdata:=”;

 for i:=0 to ComboBox3.Items.Count – 1 do
  begin
    for j:=0 to ComboBox2.Items.Count – 1 do
     begin
      if (i=last_i) and (j=last_j) then
       begin
       stringdata:=stringdata+”+ComboBox3.Items.Strings[i]+”+ComboBox2.Items.Strings[j]+”;
       end

      else
       begin
       stringdata:=stringdata+”+ComboBox3.Items.Strings[i]+”+ComboBox2.Items.Strings[j]+’,’;
       end;
     end;
  end;
  Memo1.Lines.Add(”);
  Memo1.Lines.Add(‘hasil concatination kedua bahasa’);
  Memo1.Lines.Add(stringdata);
  Memo1.Lines.Add(‘————————-‘);
end;

{Procedure Reverse}
procedure TForm1.reverse;
var
i,j,k : integer;
stringdata, tampungdata : string;
begin
 for i:=0 to ComboBox5.Items.Count – 1 do
  begin
   stringdata:=”;
   tampungdata:=”;

   stringdata:=ComboBox5.Items.Strings[i];
    for j:=length(stringdata) downto 0 do
     begin
      tampungdata:=tampungdata+”+stringdata[j];
     end;
     ComboBox5.Items.Strings[i]:=tampungdata;
  end;

   stringdata:=”;

     for k := 0 to ComboBox5.Items.Count – 1 do
    begin
     stringdata:=stringdata+”+ComboBox5.Items.Strings[k]+”+’,’;
    end;

    Memo1.Lines.Add(”);
    Memo1.Lines.Add(‘Hasil Reverse Bahasa 1(1,1) ‘);
    Memo1.Lines.Add(stringdata);
    Memo1.Lines.Add(‘————————-‘)
end;

{Procedure Reverse 2}
procedure TForm1.reverse2;
var
i,j,k : integer;
stringdata, tampungdata : string;
begin
 for i:=0 to ComboBox6.Items.Count – 1 do
  begin
   stringdata:=”;
   tampungdata:=”;

   stringdata:=ComboBox6.Items.Strings[i];
    for j:=length(stringdata) downto 0 do
     begin
      tampungdata:=tampungdata+”+stringdata[j];
     end;
     ComboBox6.Items.Strings[i]:=tampungdata;
  end;

   stringdata:=”;

     for k := 0 to ComboBox6.Items.Count – 1 do
    begin
     stringdata:=stringdata+”+ComboBox6.Items.Strings[k]+”+’,’;
    end;

    Memo1.Lines.Add(”);
    Memo1.Lines.Add(‘Hasil Reverse Bahasa 2(1,2) ‘);
    Memo1.Lines.Add(stringdata);
    Memo1.Lines.Add(‘————————-‘)
end;

Bila mengalami kesulitan, bisa tanyakan langsung di blog ini. Selamat Mencoba !!!

One thought on “Union, Intersection, Differences, Concatenation dan Reverse Dengan Delphi 7

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s