Kamis, 22 Maret 2012

Fungsi Algoritma Luhn

Saya membuat fungsi berikut untuk menerapkan algoritma luhn (credit card) menggunakan borland delphi 7, jika ada pertanyaan silahkan posting pertanyaan teman2 :)
var
  Form1: TForm1;
  vNum,vGanjil,vGenap,DigGanjil,DigGenap: array[1..20] of string;
  vTotGanjil, vTotGenap: integer;

implementation

uses Math;

{$R *.dfm}

function TForm1.CheckCard(number:string):string;
var i,vTotal: Integer; vHasil: string;
begin
  vTotGanjil:= 0;
  vTotGenap:= 0;
  for i:= 1 to Length(number) do
    begin
      vNum[i]:= MidStr(number,i,1);
      DigGanjil[i]:= '0';
      DigGenap[i]:= '0';
      if i mod 2 <> 0 then
        begin
          vGanjil[i]:= IntToStr(i);
          vGenap[i]:= '0';
          if StrToInt(vNum[i])*2 > 9 then DigGanjil[i]:= IntToStr((StrToInt(vNum[i])*2)-9) else DigGanjil[i]:= IntToStr(StrToInt(vNum[i])*2);
      end
        else begin
          vGenap[i]:= IntToStr(i);
          vGanjil[i]:= '0';
          DigGenap[i]:= vNum[i];
      end;
        vTotGanjil:= vTotGanjil + StrToInt(DigGanjil[i]);
        vTotGenap:=  vTotGenap + StrToInt(DigGenap[i]);
  end;
    vTotal:= vTotGanjil + vTotGenap;
    case vTotal mod 10 of
      0: vHasil:= 'Sah';
     1..100: vHasil:= 'Tidak Sah';
    end;
    result:= vHasil;
end;

Tidak ada komentar: