Sorry banget nih..
Ini dibuat pake C#, tolong di convert ke VB.
Tapi paling tidak anda bisa baca logikanya.
MyString di code itu "ABC" maka outpunya adalah : 731
============================================================================
public class Base26
{
public static void Main()
{
String MyString = "ABC";
Array ArrayString = MyString.ToCharArray();
Array.Reverse(ArrayString);
int tmp = 0;
for (int iArray = 0; iArray < ArrayString.Length; iArray++)
{
int mapped =
MappingCharacter((Char)ArrayString.GetValue(iArray));
int hasil = mapped * (int)pangkat(26, iArray);
tmp += hasil;
}
Console.WriteLine(tmp.ToString());
Console.ReadLine();
}
private static int MappingCharacter(Char chr)
{
return ((int)chr - 64);
}
private static float pangkat(int number, int n)
{
if (n == 0)
{
return 1;
}
else
{
return number * (int)pangkat(number, n - 1);
}
}
}
=======================================================================
Regards,
Setiawan
-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED]
On Behalf Of Setiawan
Sent: Wednesday, December 21, 2005 2:29 PM
To: [email protected]
Subject: RE: [Programmer-VB] Konversi Angka ke Huruf ? Ada yang bisa bantu?
Ini sebenarnya sama aja, kalau kita hitung bilangan biner, octa, dsb.
Perhitungan ini kita bisa bilang basis 26.
A=1, B=2, ..Z=26
Jadi hitungnya begini.
ZZ =
Z = 26 * 26^0 = 26
Z = 26 * 26^1 = 676
ZZ = 676+26 = 702
ABC =
C = 3 * 26^0 = 3
B = 2 * 26^1 = 52
A = 1 * 26^2 = 676
ABC = 676+52+3 = 731
Setiawan
-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED]
On Behalf Of Jenar Suseno
Sent: Wednesday, December 21, 2005 11:59 AM
To: [email protected]
Subject: Re: [Programmer-VB] Konversi Angka ke Huruf ? Ada yang bisa bantu?
' aku udah coba bikin seperti ini
' ini bisa sampai ribuan, tapi hasilnya rusak pada
angka
' kelipatan 26 , 702 harusnya ZZ jadinya AAZZ
' dan untuk puluhan ribu juga belum bisa
' Ada perbaikan dari temen-temen?
Private Sub Command1_Click()
Text2.Text = rubah(Text1.Text)
End Sub
Public Function rubah(x As Integer) As String
Dim y As Integer, z As Integer, h As String, i As
String
h = ""
If x < 27 Then
h = Chr(x + 64)
Else
Do
y = x Mod 26
z = x \ 26
If y <> 0 Then
h = Chr(y + 64) & h
If z < 27 Then
h = Chr(z + 64) & h
Exit Do
Else
x = z
End If
Else
h = h & Chr(26 + 64)
h = Chr((z - 1) + 64) & h
x = z
End If
Loop Until x < 27
End If
rubah = UCase(h)
End Function
--- Aksan Kurdin <[EMAIL PROTECTED]> wrote:
> sori ada salah informasi,
>
> > jadi ABC = 1 X (26 pangkat 2) + 2 X (26 pangkat
> 1) + 3 X (26 pangkat 0)
> > sama dengan ... 791
>
> harusnya 731
>
>
> lalu semua operator "\" diganti menjadi operator
> mod.
>
> aksan kurdin
>
>
> Pada tanggal 12/20/05, Aksan Kurdin
> <[EMAIL PROTECTED]> menulis:
> > Logikanya dulu,
> > ini kayaknya main kombinasi
> > XXX
> >
> > untuk tiga angka di atas,
> > tempat pertama (paling kanan) bisa di isi dari A
> sampai Z, jadi ada 26
> > kemungkinan
> > tempat kedua (tengah) bisa di isi dari A sampai Z,
> jadi ada 26 kemungkinan juga
> > tempat ketiga (paling kiri) bisa di isi dari A
> sampai Z, jadi ada 26
> > kemungkinan juga
> >
> > total jumlah kemungkinan (AAA,BGH,ZAA, .... sampai
> ZZZ) ada 26 X 26 X
> > 26 kemungkinan, dan bisa dibuat konversi urut
> berdasarkan abjad.
> >
> > kesimpulannya total kemungkinan dari n posisi
> (dalam hal ini 3 posisi)
> > bisa dihitung sebanyak 26 pangkat n.
> >
> > Contoh huruf ABC, itu kalau dikonversikan angka
> menjadi berapa ?
> > A=1
> > B=2
> > C=3
> > jadi ABC = 1 X (26 pangkat 2) + 2 X (26 pangkat
> 1) + 3 X (26 pangkat 0)
> > sama dengan ... 791
> >
> > Untuk membalikkannya berarti dilakukan pohon
> faktor terhadap 26 .
> > 731 sama dengan berapa abc-nya ?
> >
> > 731/ 26 = 28
> > 731\ 26 = 3-> 3 di simpan, lalu 28 diproses lagi
> >
> > 28 / 26 = 1
> > 28 \ 26 = 2
> >
> > kalau di sederhanakan pembagiannya:
> >
> > 731
> > 26 -------- 3
> > 28
> > 26 -------- 2
> > 1
> >
> > bacanya: 731bagi 26 dapet 28 sisa 3
> > 28 bagi 26 dapet 1 sisa 2
> >
> > lalu sisa semua di baca dari bawah menjadi : 123
> > lalu kita konversikan:
> > 1=A
> > 2=B
> > 3=C
> >
> > maka 731 = ABC
> >
> > contoh lain?
> >
> > 1500=abc?
> >
> > 1500
> > 26 --------18 = R
> > 57
> > 26 -------- 5 = E
> > 2 = B
> >
> >
> > jadi 1500 = BER
> >
> >
> >
> > nah, logikanya sudah ketemu, tinggal menerjemahkan
> ke vb-nya silakan
> > ...... saya belum punya waktu luang untuk ini....
> >
> >
> > aksan kurdin
> >
> >
> >
> >
> > 2005/12/20, Purwedi Kurniawan
> <[EMAIL PROTECTED]>:
> > > ' mas jenar, fungsi berikut cuman saya test u
> angka 1 sampai 702, buat angka
> > > ' diatas itu kayaknya masih belum bisa, mgk yg
> lain bisa nambahin
> > >
> > > Option Explicit
> > > '
> > > Public Function NumToCase(iNum As Integer) As
> String
> > > Dim iMod As Integer, iDiv As Integer, sResult
> As String
> > >
> > > iDiv = iNum \ 27
> > > iMod = iNum Mod 27
> > > If iNum <= 26 Then
> > > sResult = Chr(iDiv + iMod + 64)
> > > Else
> > > sResult = Chr(iDiv + 64) & Chr(iDiv +
> iMod + 64)
> > > End If
> > >
> > > NumToCase = sResult
> > > End Function
> > > '
> > > Public Sub Test()
> > > Debug.Print NumToCase(702)
> > > End Sub
> > > '
> > >
> > > best regards
> > > [wwn]
> > >
> > > On 12/20/05, Jenar Suseno <[EMAIL PROTECTED]>
> wrote:
> > > > Minta petujuk .....
> > > >
> > > > Aku mau buat konversi angka ke huruf, misalnya
> 1 jadi
> > > > A, 2 jadi B,..26 jadi Z, 27 jadi AA..., trus
> 702 jadi
> > > > ZZ, nah...bgmn ya logika programnya supaya
> berapapun
> > > > angkanya akan dibuat konversinya ke huruf?
> > > >
> > > > makasih
> > > >
> > > > jenar
> > > >
> > > >
> > >
> > >
> > >
> > > Untuk keluar dari millis ini, kirim email kosong
> ke:
> > > [EMAIL PROTECTED]
> > >
> > >
> > > Yahoo! Groups Links
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
>
>
>
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Untuk keluar dari millis ini, kirim email kosong ke:
[EMAIL PROTECTED]
Yahoo! Groups Links
Untuk keluar dari millis ini, kirim email kosong ke:
[EMAIL PROTECTED]
Yahoo! Groups Links
------------------------ Yahoo! Groups Sponsor --------------------~-->
Most low income homes are not online. Make a difference this holiday season!
http://us.click.yahoo.com/5UeCyC/BWHMAA/TtwFAA/k7folB/TM
--------------------------------------------------------------------~->
Untuk keluar dari millis ini, kirim email kosong ke:
[EMAIL PROTECTED]
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Programmer-VB/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/