Membuat Y!M Translator sendiri
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
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
- Mengirim URL
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 :
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
seleksi hasil terjemahan, kemudian klik kanan pilih menu View Selection Source, setelah itu akan mendapatkan tampilan seperti berikut :
2. Ini cara yang paling gampang, tinggal nanya aja sama yang membuat skrip phpnya element idnya dikasih nama apa
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
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