Huaduh, setelah lama gak bersua, kali ini saya akan share source code program lagi, yaitu source code program copy paste dengan Pascal. Sebelumnya, ada yang namanya meniru prosedur delete pascal, tapi di sini adalah merupakan pengembangan dari prosedur copy, cut, dan delete itu sendiri. Tanpa panjang lebar lagi akan saya paparkan pada highlight di bawah ini :
Uses Crt;
var
i,n,k,l : integer;
st,st_a,st_b,del,pas,aw,sis,res : string;
begin
clrscr;
write('Masukkan kata : ');
readln(st);
write('n : ');
readln(n);
write('k : ');
readln(k);
write('l : ');
readln(l);
for i:=1 to n do
st_a:=st_a+st[i];
for i:=n+1+k to length(st) do
st_b:=st_b+st[i];
for i:n+1 to n+k do
del:=del+st[i];
res:=st_a+st_b;
for i:=1 to l do
aw:=aw+res[i];
for i:=l+1 to length(res) do
sis:=sis+res[i];
pas:=aw+del+sis;
writeln(pas);
end.
Untuk Analisa algoritmanya, mungkin lebih ke pengembangan program delete sebelumnya. Jadi, program copy paste yang saya maksud di sini yaitu membawa potongan yang di delete pada program delete, dan disisipkan ke hasil potongan sebelumnya.
Misalkan : kita mempunyai kalimat 'string', kita potong bagian 'rin' maka akan menghasilkan result: 'stg', nah disini lah akan disisipkan potongan tadi entah akan menjadi 's rin tg','st rin g', dan 'stgrin'. Nah, setelah contoh tadi kita langsung ke TKP Algoritma deh.
Sebenarnya, setelah kita mendapat res(result), 'stg' tadi. Kita bayangkan lagi memiliki string awal, yaitu 'stg' adalah string awal kita, maka kita deklar saja dalam program bahwa res:=st_a+st_b; ( untuk menyatakan st_a+st_b agar lebih mudah pada program berikutnya ). Nah, setelah itu, potongan (del) akan kita sisipkan ke dalam (res) tadi, entah di res[1],res[2],atau di res[3]. Nah, ketika kita sisipkan, bagian akhir yang kita dapat anggaplah (awal+del+sisa), saya nyatakan bahwa, ketiga elemen ini adalah pembentuk akhir dari string terakhir kita dalam program ini. Fiuh lumayan ribet, tapi pada akhir segmen akan saya per singkat lagi.
Dari 3 elemen yg kita dapat, kita dapat menyimpulkan, bahwa program copas bisa dibuat dengan mencari nilai awal delete dan sisa,
Awal, tersebut dalam
for i:=1 to l do
aw:=aw+res[i];
Pada pernyataan itu terdapat, 1 to l, l adalah letak (del) akan disisipkan. Maka awal, pada contoh di atas 'stg' tadi, akan menyebabkan aw:=aw+res[1]+res[2]; (jika l=2, del disisipkan setelah res[2]).
Sisa, tersebut dalam
for i:=l+1 to length(res) do
sis:=sis+res[i];
Hampir sama dengan Awal tadi, pada sisa, ini dimaksudkan untuk memisahkan menjadi 3 elemen, antara awal+delete+sisa. Nah, mari kita gabungkan setelah ini.
Penggabungan 3 elemen ini akan menyebabkan, kita buat suatu contoh program,
1. masukkan string, n=2, k=3, l=1 ( memotong 3 huruf setelah st)
2. dan potongan tersebut akan disisipkan ke dalam hasil potongan (stg) setelah huruf s
3. output akan menghasilkan 'srintg' = 's'+'rin'+'tg'
secara Garis besar, INPUT : String OUTPUT: Srintg
Nah, cukup sekian analisis algoritma ini. Fiuh, kl ada saran, dan kritik... atau belum jelas mohon kerjasamanya untuk memperbaiki.. hehe ;peace yak kl salah.. hehe