org 100h
start : jmp mulai
tanya db 'masukan kata anda : $',13,10
kata1 db 'unny cute$' ; lebel untuk menyimpan kata yang akan di ban
; dingkan
kata2 db 0ffh,?,0ffh dup(?) ; lebel untuk kata yang di input
; nantinya
jawaban1 db 13,10,'benar $' ; untuk validasi
jawaban2 db 13,10,'salah $' ; untuk validasi
mulai :
mov ah,09h
mov dx,offset tanya
int 21h
isi :
mov ah , 0ah
mov dx,offset kata2 ; input untuk kata2 yang akan di bandingkan
int 21h
mov bx,dx
inc bx
mov dx,[bx]
xor dh,dh
mov bx ,dx
push dx
mov kata2[bx+2],'$'
xor bx,bx
ulang :
mov al,kata1[bx]
cmp al,'$'
je bndk_pnj_str
inc bx ;untuk mencatat panjang string
loop ulang
bndk_pnj_str :
pop dx
mov al,bl
cmp al,dl
je sama ; jika sama panjang string kata1 dengan kata du maka lompat
; ke lebel sama
jne t_sama ; sebaliknya jika tidak sama maka lompat ke lebel
; t_sama
sama :
push ds
pop es
mov si,offset kata1 ; es:[di] = offset kata1
mov di,offset kata2 ; ds:[si] = offset kata2
add di,02h; ; di + 2 agar di pada lokasi offset kata u / awal
;string
xor bh,bh ; bh = 0 stelah di xor
mov cx,bx ;disini cx akan menjadi acuan kapan akan berhenti //
; atau ulang selama cx != 0 pada saat loop ul_bandingkan_str
ul_bandingkan_str :
cmpsb
jne t_sama
loop ul_bandingkan_str
mov ah,09h
mov dx,offset jawaban1
int 21h
jmp exit
t_sama :
mov ah,09h
mov dx,offset jawaban2
int 21h
exit :
int 20h
end start
dan ini bahasa c nya
#include <stdio.h>
#include <string.h>
int pnj(char pjkata[]){
int x = 0;
for (;pjkata[x] != '�';x++){
}
return x;
}
int bandingkan(char a[],char b[]){
int kondisi=1;
int x = 0;
for(;a[x] == b[x];x++) kondisi = (int)a[x];
return kondisi ;
}
int main(){
char kata1[]={"unny cute"};
char kata2[255];
printf("masukan kata2 anda : n");
scanf("%[^n]",&kata2[0]);
printf("pass anda = %sn",kata2);
if(pnj(kata1) == pnj(kata2) && bandingkan(kata1,kata2) == 0 )
printf("sama");
else
printf("tidak sama");
return 0;
}