Tampilkan postingan dengan label kartu kredit. Tampilkan semua postingan
Tampilkan postingan dengan label kartu kredit. Tampilkan semua postingan

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;