10/17/2008

Program Pembalik kata....

Tidak lama setelah liburan sekolah usai, beberapa kelas yang telah mengumpul tugas komputer mulai mempelajari bab - bab baru, namun ternyata ada beberapa kelas yang ternyata belum kebagian mendapat tugas komputer... Berbeda dengan kelas IPA 1 , dan IPA 2... Kelas itu mendapat tugas untuk membuat program membilang, namun, kelas lainnya mendapat tugas lainya....

Tanggal 15 kemarin, yaitu hari rabu... Saya sempat kerumah teman saya, Yessi, dan sekalian ia minta dijelaskan sedikit tentang Visual Basic.. Namun saya kira ia minta dijelaskan tentang Program Pembalik kata, karena beberapa anak waktu pulang sekolah menanyakannya, namun ternyata hanya menanyakan beberapa fungsi dari Visual Basic untuk ulangan besok... Duh, maaf yah yessi, kamu ga ngomong dulu sih...

Dan sebenarnya saya ingin nge-post Topic ini saat pulang dari rumah teman saya, namun sayang, guru saya melarang saya untuk melakukannya, dimarahin, karena waktu tugas Program pembilang saya sudah mem post nya ke blog ini sebelum dikumpulkan,,,, hehehhe....

...
OK, kita langsung saja ke VB nya....
Sebenarnya, untuk membalik kata (String) hanya cukup fungsi StrReverse dalam visual Basic.. Sebenarnya cukup sederhana untuk mengerjakan tugas ini. Tapi, mungkin saja bukan string yang telah terbalik, tapi tujuan utamanya adalah logika dari terbaliknya string...

Fungsi StrReverse

StrReverse(Expression As String) As string

Contoh penggunaan :

StrReverse("Bubur manado") akan menghasilkan "odanam rubuB"

Kalau anda ingin menemukan fungsi - fungsi lainnya, Anda cukup membuka "Object Explorer" (f2) yang dapat anda akses dari menu "View > Object Explorer"...



Ok kita akan bermain dengan logika pemrogramannya....

Sebagai contoh, kita akan menggunakan kata "Bubur manado" sebagai string yang akan kita balik. Mengapa Bubur manado? Script untuk membalik kata ini sudah 2 kali ditulis, tapi script yang paling sempurna terbuat saat teman saya, Yessi, menawarkan bubur manado untuk makan siang.... Karena itu, saya coba menggunakan string "bubur manado" sebagai contoh. Thanks yah, tapi ku ga bisa makan bubur, hehehe.... maaf....



...
So pasti, yang pertama kita perlukan, adalah pendeklarasian Variabel.. yang pasti string untuk bubur manado... Jadi kita buat "Function" nya yang akan menghasilkan nilai berupa string..
Public Function rev_kata(ByVal x As String) As String
---- siapkan spasi untuk kode selanjutnya ----

End Function
Banyak yang bertanya, apa maksud dari kode diatas,... kode diatas gunanya untuk membuat suatu fungsi yang bernama "rev_kata"... dan yang di dalam kurung bertuliskan "ByVal x As String" menandakan bahwa fungsi "rev_kata" berfungsi dengan sebuah nilai yang diberi dan diberi variabel x yang bertipe data stirng. dan deretan kode yang paling akhir (As String) berarti, fungsi "rev_kata" akan menghasilkan nilai yang bertipe data string...

Misal ada fungsi sebagai berikut..

----
Public Function makan_apa(ByVal n as string) as string
makan_apa = n & " Rp. 500"

End Function
----

apabila saya memanggil fungsi itu dengan sebuah kode:

makan apa("Kerupuk")


maka fungsi "makan_apa" akan menghasilkan "kerupuk Rp. 500", disini kita lihat, bahwa "n" diisikan nilai (Value) = kerupuk, dan diproses di tubuh fungsi menjadi "kerupuk" & " Rp. 500", menjadi "kerupuk Rp. 500"
Mari kita langsung bermain dengan logika pemrogramannya..

Apabila string "Bubur manado" kita balik, akan menghasilkan "odanam rubuB"... Disini kita temukan logikanya.. Pertama kita ambil huruf yang paling uncit ("o") setelah itu kita taruh di sebelah paling kiri. Selanjutnya, ambil huruf "d" dimana huruf itu terletek satu langkah setelah huruf yang teruncit. Sekarang kita mempunyai huruf "o" dan "d" yang kini telah digabungkan menjadi "od"... Begitu seterusnya, perulangan terjadi terus menerus hingga kata "Bubur manado" menjadi "odanam rubuB", Artinya, mesti dilakukan berulang-ulang untuk mengambil huruf yang letaknya di kanan, disusun terbalik ke kiri sebanyak 12 kali (12 adalah banyak digit huruf "Bubur manado").

Jurus VisualBasic nya, kita butuh 3 fungsi pada pengolahan string, yaitu Left, Right, dan Len...

Len : mengambil banyaknya character (hasil dlm bentuk angka)
Len ([expression/string dlm variabel])

Right : mengambil beberapa char dlm string, dimulai dari kanan.
Right (string, lenght As long/banyaknya yang diambil)

Left : mengambil beberapa char dlm string, dimulai dari kiri.
Left (string, lenght As long/banyaknya yang diambil)

Contoh penggunaan :

Len ("makanNasi") menghasilkan "9"

Right ("makanNasi", 4) menghasilkan "Nasi"

Left ("makanNasi", 4) menghasilkan "maka"

Ini dia, Penggunaan Fungsi - fungsi untuk mengolah string...
Misal kita umpamakan x = "Bubur Manado"

untuk mengambil "o" : Right( x , 1)
untuk mengambil "d" : Left( Right( x , 2) , 1)
untuk mengambil "a" : Left( Right( x , 3) , 1)
untuk mengambil "n" : Left( Right( x , 4) , 1)

Agar dapat dilakukan perulangan tanpa perubahan script, untuk mengambil huruf "o" : Right( x , 1) dapat diubah menjadi Left( Right( x , 1) , 1)...

Sehingga kita dapatkan rumus : Left( Right( x , n) , 1)

dimana n adalah langkah ke-berapa dimana n = 1 hingga 12 (sesuai dengan jumlah digit dari "Bubur Manado")
Nah kita sudah mendapatkan Rumus untuk membalik kata tersebut.... Namun, tidak mungkin kita menulis kode tersebut berulang - ulang, ini mengakibatkan jumlah digit mesti ditentukan dari awal, dan tidak dapat bervariasi....

Untuk itu, kita memerlukan fungsi perulangan sesuai dengan variabel dari jumlah digit dari kata yang kita masukan. dengan menggunakan "For.. Next" kita akan dapat mengulang script menjadi berkali - kali sesuai dengan banyaknya digit yang ada pada string.

Ini dia script lengkapnya, copy dan paste tidak dilarang...

Public Function rev_kata(ByVal x As String) As String
Dim n, p As Integer
Dim kata As String

p = Len(x)

For n = 1 To p
kata = kata & Left(Right(x, n), 1)
Next n

rev_kata = kata
End Function

Maksudnya :

n adalah variabel yang menyatakan langkah, dimana batas langkah ini sampai dengan jumlah digit string yang diolah (p)...

Lalu, terus diulang langkah "kata = kata & Left(Right(x, n), 1)" hingga n = 12 (hingga n mencapai / sama dengan p yang bernilai 12, nilai n dimulai dari 1, terus hingga langkah ke 12).
Namun, tetap saja cara ini bukan cara yang mutlak dipakai semua programmer, masih banyak cara lain yang lebih sempurna dibandingkan cara ini....

Saya pernah lihat judul lagu terbitan orang luar, judulnya "32 ways to DIE", dari situ saja, kita sudah dapat menyimpulkan, mati saja ada banyak cara, masa pemrograman tidak??

Salah satu cara yang juga bagus, adalah dengan menggunakan Mid... thanks to Oey Irwan....
Mid ( x , n , 1)

dimana n adalah langkah ke- berapa dimana huruf mulai akan diambil
Ok, mungkin sekian saja untuk menjelaskannya, yang jelas, mengcopy saja tidak akan menambah ilmu anda dalam segala hal...., maksud saya, dalam hal programming... hehehe...

0 komentar: