Operasi string - Teknik Elektro UGM

advertisement
Operasi string
Menukar elemen string
• Diketahui sebuah string “elektro”, buatlah
program untuk memodifikasi string
tersebut menjadi “ortkele” (susunan string
dibalik)
• “elektro”  d[0] d[1] d[2] d[3] d[4] d[5] d[6]
• “ortkele”  d[6] d[5] d[4] d[3] d[2] d[1] d[0]
Logika program
• Untuk melakukan pembalikan string
dengan panjang 7 lakukan hal-hal sbb:
– Tukar d[0] dengan d[6]
– Tukar d[1] dengan d[5]
– Tukar d[2] dengan d[4]
• Dari logika program di atas, bisa dilihat
bahwa dengan jumlah elemen=7,ada 3
step proses penukaran
Perancangan algoritma
• Hitung n=panjang string
• Tentukan m=n div 2 (div : pembagian
bilangan bulat, menghasilkan bilangan
bulat  contoh: 4 div 2 =2, 5 div 2 = 2)
• Lakukan dari i = 0 sampai m-1
• temp = d[ i ];
• d[ i ] = d[ n – (i+1)]
• d[n-(i+1)]=temp;
Perancangan program
• Cuplikan program:
include<cstring>
...
...
unsigned int m,n,i,temp;
unsigned char d=“elektro”;
n=strlen(d);//menghitung pjg string d
m=n/2;//m=n div 2
for(i=0,i<m,i++){//rutin untuk menukar data
temp=d[i];
d[i]=d[n-(i+1)];
d[n-(i+1)]=temp;
}
...
Aplikasi password
• implementasi password yang paling
sederhana adalah dengan
membandingkan string
• String yang dibandingkan adalah string
yang telah terdefinisi di program dan string
yang dimasukkan oleh user
• Pada saat memasukkan password, data
ditampilkan dengan simbol tertentu
misalnya bintang “***..”
Logika pemrograman
• Baca karakter masukan dari keyboard satu
persatu, dan tampilkan sebagai karakter bintang
di layar
• Simpan karakter-karakter yang dibaca di dalam
sebuah variabel string
• Pembacaan karakter tersebut dilakukan sampai
ditekan tombol enter
• Bandingkan string yang dibaca dengan string
yang tersimpan
• Jika sama,password diterima, jika tidak sama
password ditolak
Algoritma
• Definisikan password
• Inisialisasi counter i=0
• Selama karakter masukan !=enter kerjakan:
– Baca masukan ke-i
– Tampilkan sebagai ‘*’ di layar
– Jika masukan=enter, keluar dari loop
• Bandingkan masukan dengan password
• Jika masukan = pasword, tampilkan ‘sukses’,
jika tidak tampilkan ‘gagal’
Cuplikan program
#include<cstring>
#include<conio.h>
...
char karakter,masukan[20],i,passwd[8]=“rahasia”;
char banding;
karakter=0;
i=0;
while(karakter!=13) //selama karakter masukan !=13
{//13 adalah kode ascii tombol enter
karakter=getch();//baca karakter dari keybd
if(karakter!=13){//jika bukan karakter enter
masukan[i]=karakter;//masukkan karakter ke string
printf(“* ”);//cetak bintang
i++;//increment counter
}
}
masukan[i]=0;//string harus diakhiri dengan 0
banding=strcmp(masukan,passwd);
if(banding==0)
printf(“\npassword benar”);
else
printf(“\npassword salah”);
Download