September 07, 2010

Memanipulasi Range Variable String

Variable string yang kita tahu hanya memiliki range 256 karakter. itu merupakan range yang sudah cukup banyak untuk 'pemula'. hahaha. Untuk beberapa kasus dalam problem solving, 256 karakter itu tidak cukup untuk menge-solve beberapa problem yang bahkan meminta range sampai 1juta karakter.

Bagaimana cara memanipulasi
range variable string agar bisa sampai 1juta?

Sebelum kita menemukan caranya, mari kita bahas terlebih dahulu problema ini : "sebenarnya string itu berupa apa sih?". Rupanya, variable string hanyalah kumpulan dari 256 char yang dikumpulkan jadi satu, dan pemanggilan string lebih praktis dan compatible terhadap fungsifungsi manipulasi string.

Kesimpulan yang kita dapatkan dari pernyataan di atas adalah, string dapat di manipulasi range nya dengan menggabung kan sejumlah char.


Jadi bagaimana menggabungkan char
menjadi tipe variable mirip string?

Kita dapat menggunakan array dalam menggabung char menjadi tipe variable serupa dengan string. Range array yang kita buat akan sama dengan range tipe variable string baru yang akan di hasilkan. Jadi berikut contoh penggabungannnya.


Var
  s : array[1..1000000]of char;


maka variable s akan mempunyai range sepanjang 1juta karakter. uyee.
Tapi masih ada cara lain yang lebih praktis. yaitu menjadikan sebagai tipe baru dengan menggunakan TYPE. contohnya


Type
  strung : array[1..1000000]of char;
Var
  s : strung;


Tapi ingat!! hatihati untuk pembacaan, pemanipulasian, dan penulisan variable string baru yang kita buat ini. karena dalam pembacaan dan penulisannya, variable ini akan di baca sampai index ke 1juta. dan kalau pada pemanipulasian menggunakan fungsi seperti pos,delete.dkk. itu juga dapat mengakibat kan error (maaf, kurakura lagi menjalankan risetnya. wkwkwk. jadi ini baru sebagian risetnya :P)


Contoh Error pada penulisannya:
Misalnya s yang telah di manipulasi rangenya di isi dengan 'kurakura'. maka program akan menulis 'kurakura' ditambah dengan 'spasi' sebanyak sisa range dari variable tersebut. jika range nya 1juta, maka di akan menulis 'kurakura                    ..sampe 1 juta..'

Solving untuk error di atas:

Algoritmanya :
kita harusnya menulis isi dari variable nya saja kan? maka oleh karena itu, kita harus membuat program yang hanya menulis char yang memiliki isinya, dengan kata lain orde dari ASCII char yang kita tulis harus lebih dari 0.

Potongan Program :

  //i masih bernilai 0
  while ord(s[i+1])>0 do
  begin
     i:=i+1;
     write(s[i]);
  end;


Sekian posting dari kurakura. Tetap lah mencoba dalam membuat program, jika kamu gagal, coba lagi dan lagi. latihan programming terus menerus hingga menjadi ahli. Semoga kalian bisa memahami manipulasi string. terima kasih sudah membaca kurakuraprogrammer.


Bye!! salam kurakura :)

3 komentar:

  1. makasih ya infonya ...
    walaupun aq ndak ngerti ...
    huahaha ...

    tapi gua pengen banget bisa programming ...
    blog ini bakal aq jadikan referensi ...
    trima kasih y kurakuraprogrammer ...

    eh, bannernya kok nggak menggambarkan kura-kura ?
    huahaha ...

    BalasHapus
  2. trims untuk komen dan kesetiannya. suatu hal yg besar math-pedia.com udah mau baca kurakuraprogrammer. hahaha.

    Awalnya udah buat kurakura, cuman karena jelek. kurakuranya di hapus. hahahaha

    BalasHapus
  3. coba di pahami !!!
    Thnks !

    * maaf telat koment !!!

    BalasHapus