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”);