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;