Coding4ever’s Blog

Just coding… coding… and coding… because coding should be fun :)

Membuat Y!M Translator Sendiri

| Comments

Artikel kali ini merupakan pengembangan dari 2 artikel saya sebelumnya yaitu Menganalisa dan membuat mesin penjawab otomatis Y!M dan Manganalisa source code mesin penjawab otomatis Y!M versi 8, 9 & 10.

Sebenarnya sih iseng-iseng aja dan ternyata berhasil ha ha ha :). Oke kita langsung saja, apa saja yg perlu disiapkan untuk membuat aplikasi ini :

1. Skrip php yang menyederhanakan proses parsing dari output Google Translate.

Alamat URLnya bisa diakses di http://amikom.ac.id/service.php?t=pesan_yg_ingin_diterjemankan&l=target terjemahan.

Contoh penggunaan URL tersebut :

http://amikom.ac.id/service.php?t=rubah cokelat yang cepat melompat diatas anjing pemalas&l=en

2. Yahoo! Messenger

3. Tool kesayangan kita Visual Basic :D

Untuk mengirim dan menerima hasil URLnya saya menggunakan komponen Microsoft Internet Controls (dari menu Project -> Components -> Microsoft Internet Controls), pembahasan tuntas bagaimana menerima dan membalas pesan yang masuk via Yahoo! Messenger sudah saya bahasa di dua artikel diatas.

Untuk pembahasan artikel kali ini saya fokuskan bagaimana menggunakan komponen Microsoft Internet Controls untuk mengirim dan menerima hasil URL

  1. Mengirim URL
1
2
3
4
5
6
7
8
9
Private Sub cmdKirimURL_Click()
    Dim url As String
    Dim msg As String

    msg = "rubah cokelat yang cepat melompat diatas anjing pemalas"

    url = "http://amikom.ac.id/service.php?t=" & msg & "&l=en"
    WebBrowser1.navigate url
End Sub

Hasilnya lebih kurang seperti berikut :

Untuk membaca hasil tersebut gunakan kode berikut :

1
2
3
4
5
6
Private Sub cmdBacaHasilURL_Click()
    Dim terjemahan  As String

    terjemahan = WebBrowser1.document.getElementById("translation").innerHTML
    MsgBox terjemahan
End Sub

Mungkin muncul pertanyaan, darimana saya mendapatkan informasi element id “translation”, ada 2 cara yang saya ketahui : 1. Coba ketikkan secara manual alamat urlnya : http://amikom.ac.id/service.php?t=rubah cokelat yang cepat melompat diatas anjing pemalas&l=en

blok/seleksi hasil terjemahan, kemudian klik kanan pilih menu View Selection Source, setelah itu akan mendapatkan tampilan seperti berikut :

  1. Ini cara yang paling gampang, tinggal nanya aja sama yang membuat skrip phpnya element idnya dikasih nama apa :D

Jadi dengan menggabungkan teknik sederhana ini plus dua artikel diatas, kita juga bisa membuat aplikasi Y!M Translator sendiri.

Berikut source code inti dari aplikasi Y!M Translate

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Private Sub tmrAutoReplay_Timer()
    Dim hwndYMMainClass     As Long

    Dim msg                 As String
    Dim ymID                As String
    Dim url                 As String
    Dim terjemahan          As String

    On Error GoTo errHandle

    Select Case ymVersion
        Case "8"
            hwndYMMainClass = FindWindow("YSearchMenuWndClass", vbNullString)

        Case "9"
            hwndYMMainClass = FindWindow("ATL:007C07F0", vbNullString)

        Case "10"
            hwndYMMainClass = FindWindow("CConvWndBase", vbNullString)

    End Select

    If hwndYMMainClass <> 0 Then
        ymID = getYMID(hwndYMMainClass)
        msg = getYMMessage(hwndYMMainClass)

        msg = Replace(msg, "Bookmark", "")

        lstMessageIn.AddItem ymID & ": " & msg
        lstMessageIn.ListIndex = lstMessageIn.ListCount - 1

        If Len(msg) > 0 Then
            url = "http://amikom.ac.id/service.php?t=" & msg & "&l=en"

            WebBrowser1.Navigate url
            While WebBrowser1.ReadyState < 4
                DoEvents: DoEvents: DoEvents
            Wend
            Call pause(1)

            terjemahan = WebBrowser1.Document.getElementById("translation").innerHTML

            Call ymChatSend(hwndYMMainClass, "<#0A8EFE>" & msg & "</#> -> <b>" & terjemahan & "</b>")
            Call closeYM(hwndYMMainClass)
        End If
    End If

    Exit Sub
errHandle:
    Call closeYM(hwndYMMainClass)
End Sub

Selamat MENCOBA :)

Comments