Skip to main content

Teknologi SMS Gateway dengan AT Command di Fox Pro

Berikut ini saya posting contoh aplikasi SMS Gateway dengan AT Command di Microsoft Visual Fox Pro, yang didapat dari http://www.fox-id.com/. Caranya buka Ms. VFP anda dan pilih new - program, lalu di copy paste sintak berikut ini kemudian RUN (Ctlr + E):

*!* Aplikasi SMS dengan Visual FoxPro via IrDA
*!* Created by : Handi Rusli
*!* Member Of http://www.fox-id.com
*!* Komunitas Programmer FoxPro Indonesia
LOCAL oForm as Form
oForm = CREATEOBJECT("FormSMS")
oForm.Show(1)
RETURN
DEFINE CLASS FormSMS AS form
DataSession = 2
Height = 440
Width = 527
AutoCenter = .T.
Caption = "Aplikasi SMS dengan Visual FoxPro"
ADD OBJECT sms as mysms WITH Visible = .F.
ADD OBJECT pageframe1 as mypageframe1
ADD OBJECT label1 AS myLabel WITH ;
Caption = "Com Port :", ;

Height = 17, ;
Left = 67, ;
Top = 126, ;
Width = 60
ADD OBJECT label2 AS myLabel WITH ;
FontBold = .T., ;
FontName = "Verdana", ;
FontSize = 10, ;
Caption = "http://www.fox-id.com (Komunitas Programmer FoxPro Indonesia)", ;
Height = 18, ;
Left = 7, ;
Top = 416, ;
Width = 512
ADD OBJECT label3 AS myLabel WITH ;
Caption = "Baud Rate Settings :", ;
Height = 17, ;
Left = 13, ;
Top = 153, ;
Width = 114
ADD OBJECT label4 AS myLabel WITH ;
Caption = "(9600,N,8,1) - Default Value", ;
Height = 17, ;
Left = 225, ;
Top = 154, ;
Width = 153
ADD OBJECT label5 AS myLabel WITH ;
FontBold = .T., ;
FontSize = 12, ;
Caption = "Cobalah SMS ke nomor ini, ", ;
Height = 22, ;
Left = 158, ;
Top = 378, ;
Visible = .F., ;
Width = 211, ;
ForeColor = RGB(255,0,0)
ADD OBJECT label6 AS myLabel WITH ;
FontBold = .T., ;
FontSize = 12, ;
Caption = "OnComm Event akan memberitahu Anda bahwa ada SMS Masuk :-D", ;
Height = 22, ;
Left = 4, ;
Top = 398, ;
Visible = .F., ;
Width = 518, ;
ForeColor = RGB(255,0,0)
ADD OBJECT label7 AS myLabel WITH ;
FontBold = .T., ;
Caption = "* Tested using Nokia 6510 & Nokia 8310 Mobile Phone via IrDA with Windows XP", ;
Height = 17, ;
Left = 3, ;
Top = 99, ;
Width = 454, ;
ForeColor = RGB(0,0,255)
ADD OBJECT edit1 AS editbox WITH ;
FontSize = 7, ;
Height = 94, ;
Left = 3, ;
ReadOnly = .T., ;
Top = 3, ;
Width = 521
ADD OBJECT command1 AS commandbutton WITH ;
Top = 138, ;
Left = 396, ;
Height = 27, ;
Width = 108, ;
Caption = "Connect"
ADD OBJECT text1 AS textbox WITH ;
Height = 23, ;
InputMask = "#", ;
Left = 133, ;
Top = 124, ;
Width = 30
ADD OBJECT text2 AS textbox WITH ;
Height = 23, ;
Left = 133, ;
Top = 150, ;
Width = 87
PROCEDURE Init
SET TALK OFF
SET BELL OFF
SET CENTURY ON
thisform.edit1.Value="Demo ini hanya merepresentasikan bagaimana Teknologi "+;
"SMS dapat digunakan di Visual FoxPro (tidak menunjukan semua kemampuan yang "+;
"dimiliki oleh Teknologi ini). Untuk tingkat lanjut, "+;
"Anda dapat mengunjungi situs http://www.forum.nokia.com "+CHR(013)+CHR(013)+;
"Salam hangat, "+CHR(013)+CHR(013)+;
"Handi Rusli"
thisform.text1.Value = thisform.sms.CommPort
thisform.text2.Value = thisform.sms.settings
ENDPROC
PROCEDURE command1.Click
IF this.Caption="Connect"
=MESSAGEBOX("Bagi Anda yang menggunakan IrDA sebagai koneksinya, "+;
"pastikan Modul IrDA sudah diaktifkan di HP Anda dan "+CHR(013)+;
"Virtual Infrared COM Port sudah diinstall pada komputer Anda."+CHR(013)+CHR(013)+;
"Tekan 'OK' Jika sudah siap",64,"Perhatian")
thisform.sms.PortOpen = .t.
WITH thisform.pageframe1.page3
.text1.value = thisform.sms.ManufacturerInfo()
.text2.value = thisform.sms.ModelInfo()
.text3.value = thisform.sms.IMEIInfo()
.edit1.value = thisform.sms.FirmwareInfo()
ENDWITH
thisform.pageframe1.page1.Activate
this.Caption="Disconnect"
WITH this.Parent
STORE .f. to .text1.Enabled, .text2.enabled
ENDWITH
WITH thisform
STORE .t. to .label5.visible,.label6.visible
ENDWITH
ELSE
thisform.sms.PortOpen = .f.
this.Caption="Connect"
WITH this.Parent
STORE .t. to .text1.Enabled, .text2.enabled
ENDWITH
WITH thisform.pageframe1.page3
STORE "" TO .text1.value,.text2.value,.text3.value,.edit1.value
ENDWITH
WITH thisform
STORE .f. to .label5.visible,.label6.visible
ENDWITH
ENDIF
ENDPROC
PROCEDURE text1.LostFocus
thisform.sms.CommPort=this.Value
ENDPROC
PROCEDURE text2.LostFocus
thisform.sms.Settings=ALLTRIM(this.Value)
ENDPROC
ENDDEFINE
DEFINE CLASS mypageframe1 as PageFrame
TabStyle = 1
Top = 179
Left = 0
Width = 528
Height = 196
ADD OBJECT page1 as mypage1
ADD OBJECT page2 as mypage2
ADD OBJECT page3 as mypage3
ENDDEFINE
DEFINE CLASS mypage1 as Page
FontBold = .T.
Caption = "Read SMS"
ADD OBJECT label1 AS myLabel WITH ;
Caption = "Inbox No :", ;
Height = 17, ;
Left = 60, ;
Top = 20, ;
Width = 56
ADD OBJECT label2 AS myLabel WITH ;
Caption = "Pengirim (Sender) :", ;
Height = 17, ;
Left = 8, ;
Top = 46, ;
Width = 109
ADD OBJECT label3 AS myLabel WITH ;
Caption = "Tgl Kirim :", ;
Height = 17, ;
Left = 60, ;
Top = 69, ;
Width = 57
ADD OBJECT label4 AS myLabel WITH ;
Caption = "Jam Kirim :", ;
Height = 17, ;
Left = 53, ;
Top = 92, ;
Width = 64
ADD OBJECT label5 AS myLabel WITH ;
Caption = "Pesan (Message) :", ;
Height = 17, ;
Left = 262, ;
Top = 18, ;
Width = 106
ADD OBJECT spinner1 AS spinner WITH ;
Height = 24, ;
InputMask = "##", ;
KeyboardHighValue = 15, ;
KeyboardLowValue = 1, ;
Left = 119, ;
SpinnerHighValue = 15.00, ;
SpinnerLowValue = 1.00, ;
Top = 19, ;
Width = 43, ;
Value = 1
ADD OBJECT text1 AS textbox WITH ;
Height = 23, ;
Left = 119, ;
ReadOnly = .T., ;
Top = 43, ;
Width = 134
ADD OBJECT text2 AS textbox WITH ;
Height = 23, ;
Left = 119, ;
ReadOnly = .T., ;
Top = 66, ;
Width = 134
ADD OBJECT text3 AS textbox WITH ;
Height = 23, ;
Left = 119, ;
ReadOnly = .T., ;
Top = 89, ;
Width = 134
ADD OBJECT edit1 AS editbox WITH ;
Height = 109, ;
Left = 262, ;
ReadOnly = .T., ;
Top = 38, ;
Width = 254
ADD OBJECT command1 AS commandbutton WITH ;
Top = 116, ;
Left = 138, ;
Height = 27, ;
Width = 84, ;
Caption = "Delete"
PROCEDURE Activate
this.spinner1.InteractiveChange
ENDPROC
PROCEDURE spinner1.InteractiveChange
IF thisform.sms.readsms(this.Value)
WITH this.Parent
.text1.Value = thisform.sms.pengirim
.text2.Value = thisform.sms.tglkirim
.text3.value = thisform.sms.jamkirim
.edit1.value = thisform.sms.pesan
ENDWITH
this.Parent.command1.Enabled= .t.
ELSE
WITH this.Parent
STORE "Kosong" TO .text1.value,.text2.value,.text3.value,.edit1.value
ENDWITH
this.Parent.command1.Enabled= .F.
ENDIF
ENDPROC
PROCEDURE command1.Click
thisform.sms.deletesms(this.Parent.spinner1.Value)
this.Parent.spinner1.InteractiveChange
ENDPROC
ENDDEFINE
DEFINE CLASS mypage2 as Page
FontBold = .T.
Caption = "Send SMS"
ADD OBJECT label1 AS myLabel WITH ;
Caption = "Nomor HP yang dituju :", ;
Height = 17, ;
Left = 35, ;
Top = 23, ;
Width = 128
ADD OBJECT label2 AS myLabel WITH ;
FontBold = .T., ;
Caption = "* (Maksimal 160 karakter)", ;
Height = 17, ;
Left = 167, ;
Top = 105, ;
Width = 149
ADD OBJECT label3 AS myLabel WITH ;
Caption = "Pesan :", ;
Height = 17, ;
Left = 119, ;
Top = 50, ;
Width = 44
ADD OBJECT text1 AS textbox WITH ;
Height = 23, ;
Left = 167, ;
Top = 21, ;
Width = 132
ADD OBJECT edit1 AS editbox WITH ;
Height = 55, ;
Left = 167, ;
MaxLength = 160, ;
Top = 48, ;
Width = 321
ADD OBJECT command1 AS commandbutton WITH ;
Top = 127, ;
Left = 220, ;
Height = 27, ;
Width = 84, ;
Caption = "Kirim"
PROCEDURE command1.Click
IF thisform.sms.sendsms(ALLTRIM(this.Parent.teXT1.Value),ALLTRIM(this.Parent.ediT1.Value))
=MESSAGEBOX("Pesan sudah dikirim",64,"Aplikasi SMS dgn VFP")
ELSE
=MESSAGEBOX("Pesan TIDAK terkirim",16,"ERROR")
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS mypage3 as Page
FontBold = .T.
Caption = "Mobile Phone Info"
ADD OBJECT label1 AS myLabel WITH ;
Caption = "Manufacturer Info :", ;
Height = 17, ;
Left = 66, ;
Top = 24, ;
Width = 102
ADD OBJECT label2 AS myLabel WITH ;
Caption = "Model Info :", ;
Height = 17, ;
Left = 104, ;
Top = 48, ;
Width = 64
ADD OBJECT label3 AS myLabel WITH ;
Caption = "Firmware Info :", ;
Height = 17, ;
Left = 85, ;
Top = 94, ;
Width = 83
ADD OBJECT label4 AS myLabel WITH ;
Caption = "Serial Number :", ;
Height = 17, ;
Left = 80, ;
Top = 71, ;
Width = 88
ADD OBJECT text1 AS textbox WITH ;
Height = 23, ;
Left = 171, ;
ReadOnly = .T., ;
Top = 22, ;
Width = 286
ADD OBJECT text2 AS textbox WITH ;
Height = 23, ;
Left = 171, ;
ReadOnly = .T., ;
Top = 45, ;
Width = 286
ADD OBJECT edit1 AS editbox WITH ;
Height = 53, ;
Left = 171, ;
ReadOnly = .T., ;
Top = 91, ;
Width = 286
ADD OBJECT text3 AS textbox WITH ;
Height = 23, ;
Left = 171, ;
ReadOnly = .T., ;
Top = 68, ;
Width = 286
ENDDEFINE
DEFINE CLASS myLabel as Label
AutoSize = .T.
BackStyle = 0
ENDDEFINE
DEFINE CLASS mySMS as Container
nTimeOut = 10
CommPort = 4
PortOpen = .f.
Settings = "9600,N,8,1"
myBuffer = ""
Pengirim = ""
UdahDiBaca = .t.
TglKirim = ""
JamKirim = ""
Pesan = ""
ADD OBJECT oSMS as myOLE
PROCEDURE PortOpen_Assign
LPARAMETERS newValue
this.PortOpen = m.newValue
IF this.PortOpen
this.oSMS.Settings = this.Settings
this.oSMS.InputLen = 0
this.oSMS.CommPort = this.CommPort
this.oSMS.Handshaking = 3 && Setting Buffer
ENDIF
this.oSMS.PortOpen = this.PortOpen
IF this.PortOpen
*!* Memerintahkan HP/Modem untuk berjalan di Mode Teks
this.SendReceiveData("AT+CMGF=1")
*!* Memerintahkan HP/Modem untuk mem-"ByPass" SMS yg masuk langsung ke PC (tidak disimpan ke SIM Card)
this.SendReceiveData("AT+CNMI=2,2")
ENDIF
ENDPROC
PROCEDURE SendReceiveData
LPARAMETERS cString,lRemoveATCommand
IF PCOUNT()=1
lRemoveATCommand = .t.
ENDIF
LOCAL nWaktu as Long, lSendSMS as Boolean
WITH this.oSMS
STORE 0 TO .Rthreshold,.Sthreshold
.InBufferCount = 0
IF ("AT+CMGS=" $ cString)
lSendSMS = .t.
ELSE
lSendSMS = .f.
ENDIF
.Output = cString + CHR(13)
cString = ""
nWaktu = SECONDS() + this.nTimeOut
DO WHILE (nWaktu>SECONDS()) .and. ;
IIF(lSendSMS,!(">" $ cString),(!("OK" $ cString) .and. !("ERROR" $ cString)))
IF (.InBufferCount>0)
cString = cString + .Input
ENDIF
ENDDO
STORE 1 TO .Rthreshold,.Sthreshold
ENDWITH
IF lRemoveATCommand
cString = SUBSTR(cString,AT(CHR(13),cString),RAT(CHR(13),cString,2)-AT(CHR(13),cString))
ENDIF
RETURN (cstring)
ENDPROC
PROCEDURE IMEIInfo
RETURN STRTRAN(STRTRAN(this.SendReceiveData("AT+CGSN"),CHR(13),""),CHR(10),"")
ENDPROC
PROCEDURE ModelInfo
RETURN STRTRAN(STRTRAN(this.SendReceiveData("AT+CGMM"),CHR(13),""),CHR(10),"")
ENDPROC
PROCEDURE ManufacturerInfo
RETURN STRTRAN(STRTRAN(this.SendReceiveData("AT+CGMI"),CHR(13),""),CHR(10),"")
ENDPROC
PROCEDURE FirmwareInfo
LOCAL cTemp as String
cTemp = this.SendReceiveData("AT+CGMR")
DO WHILE LEFT(cTemp,1)=CHR(13)
cTemp = SUBSTR(cTemp,2)
ENDDO
DO WHILE LEFT(cTemp,1)=CHR(10)
cTemp = SUBSTR(cTemp,2)
ENDDO
RETURN (cTemp)
ENDPROC
PROCEDURE NetworkFieldStrength
RETURN (this.SendReceiveData("AT+CSQ"))
ENDPROC
PROCEDURE SendSMS
LPARAMETERS tSMSNum, tMessage
LOCAL cString
cString = this.SendReceiveData("AT+CMGS=" + ["] + tSMSNum + ["],.f.)
cString = this.SendReceiveData(tMessage + CHR(26),.f.)
RETURN !("ERROR" $ cString)
ENDPROC
PROCEDURE DeleteSMS
LPARAMETERS lSMSNum
RETURN !("ERROR" $ this.SendReceiveData("AT+CMGD=" + TRANSFORM(lSMSNum) + CHR(13)))
ENDPROC
PROCEDURE ReadSMS
LPARAMETERS tSMSNum
LOCAL tChar, i, tRead, lQuoteNum, tDateTime, tData, balik
TRY
tData = "AT+CMGR=" + TRANSFORM(tSMSNum) + CHR(13)
WITH this.oSMS
STORE 0 TO .Rthreshold,.Sthreshold
.InBufferCount = 0
.Output = tData
ENDWITH
tData = ""
i = SECONDS() + this.nTimeOut
DO WHILE (i > SECONDS()) .and. !("OK" $ tData) .and. !("ERROR" $ tData)
IF (this.oSMS.InBufferCount > 0)
tChar = this.oSMS.Input
tData = tData + tChar
ENDIF
ENDDO
STORE 1 TO this.oSMS.Rthreshold, this.oSMS.Sthreshold
IF !EMPTY(tData) .and. !("ERROR" $ tData)
lQuoteNum = 0
STORE "" TO tRead, tSender, tDateTime, tMessage
FOR i = 1 To LEN(tData)
tChar = SUBSTR(tData, i, 1)
IF tChar = ["]
lQuoteNum = lQuoteNum + 1
ENDIF
IF (lQuoteNum = 1) .and. !(tChar=["])
tRead = tRead + tChar
ENDIF
IF (lQuoteNum = 3) .and. !(tChar=["])
tSender = tSender + tChar
ENDIF
IF (lQuoteNum = 5) .and. !(tChar=["])
tDateTime = tDateTime + tChar
ENDIF
IF (lQuoteNum = 6) .and. !(tChar=["])
tMessage = tMessage + tChar
ENDIF
ENDFOR
this.UdahDiBaca = (tRead = "REC READ")
this.Pengirim = tSender
this.TglKirim = LEFT(tDateTime, 8)
this.JamKirim = SUBSTR(tDateTime,10,8)
tMessage = RIGHT(tMessage,LEN(tMessage)-2)
this.Pesan = SUBSTR(tMessage, 1, AT(CHR(13),tMessage) - 1)
balik = .t.
ENDIF
CATCH
balik = .f.
ENDTRY
RETURN (balik)
ENDPROC
ENDDEFINE
DEFINE CLASS myOLE as OLEControl
OLEClass = "MSCommLib.MSComm.1"
PROCEDURE OnComm
IF (this.CommEvent = 2) .and. (this.InBufferCount>0)
this.parent.myBuffer = this.Input
IF !EMPTY(this.parent.myBuffer) .and. !("ERROR" $ this.parent.myBuffer)
lQuoteNum = 0
STORE "" TO tSender, tDateTime, tMessage
FOR i = 1 To LEN(this.parent.myBuffer)
tChar = SUBSTR(this.parent.myBuffer, i, 1)
IF tChar = ["]
lQuoteNum = lQuoteNum + 1
ENDIF
IF (lQuoteNum = 1) .and. !(tChar=["])
tSender = tSender + tChar
ENDIF
IF (lQuoteNum = 3) .and. !(tChar=["])
tDateTime = tDateTime + tChar
ENDIF
IF (lQuoteNum = 4) .and. !(tChar=["])
tMessage = tMessage + tChar
ENDIF
ENDFOR
WITH this.parent
.UdahDiBaca = .f.
.Pengirim = tSender
.TglKirim = LEFT(tDateTime, 8)
.JamKirim = SUBSTR(tDateTime,10,8)
.Pesan = ALLTRIM(tMessage)
=MESSAGEBOX("Pengirim : "+.Pengirim+CHR(013)+;
"Tgl Kirim : "+.tglkirim+CHR(013)+;
"Jam Kirim : "+.jamkirim+CHR(013)+;
"Pesan : "+.pesan,64,"Ada SMS Masuk",5000)
ENDWITH
ENDIF
ENDIF
ENDPROC
ENDDEFINE

Selesai.


Comments

  1. Nice blog. I will keep visiting this blog very often.
    Thanks , for much information,Keep sharing such a wonderful information..!

    ReplyDelete
  2. errorr bozzzzzzzzz ,, gmna caranya

    ReplyDelete
  3. @andry yudha : thanks bro
    @Anonymous : errornya dimana bos? soalne ane sudah tes kode ini dan berhasil menggunakan Microsoft Visual Foxpro 9.0 berhasil.

    ReplyDelete
  4. Bro ini error di

    Caption = "Com Port :", ;

    Gimana solusinya maaf masih newbie,.,

    ReplyDelete
  5. Di skip aja bro, itu hanya caption label nya
    caranya kasi tanda *!*
    *!* Caption = "Com Port :", ;

    ReplyDelete
  6. Maaf bro,,saya ada aplikasi penjualan,,saya udah buat aplikasi tersebut dengan foxpro,,,saya pengen tambahin fitur sms gateway,,,kiranya bisa membantu saya hub saya di 087834863678 atau Email di rivaargadia@ymail.com nanti saya berani bayar.
    Terima Kasih.

    ReplyDelete
  7. kalau menggunakan modem usb bagaimana command untuk koneksinya,
    terima kasih

    ReplyDelete
  8. Itu sudah uji coba pake modem apa aja bro? Databasenya bisa pake apa aja?

    ReplyDelete
  9. @Joko : kalau pake USB bisa cek di device manager lihat di Ports atau di modem (Modemnya masuk port berapa) cek disana, lalu pakai kode diatas


    @Junior : pake modem serial dan USB bro

    ReplyDelete
  10. @Riva Argadia : kalau pak riva sudah bisa buat aplikasi penjualan, saya yakin bisa menggunakan kode diatas

    ReplyDelete
  11. This comment has been removed by the author.

    ReplyDelete

Post a Comment

Popular posts from this blog

Apa itu Port ?

Mengenal apasih yang dinamakan PORT? kayaknya sering denger tapi belum paham. Nah port itu adalah suatu celah atau pintu atau lubang pada system komputer / micro computer sebagai jalur transfer data. Pada system komputer sebenarnya ada dua jenis Port yaitu : Port fisik,adalah soket atau slot atau colokan yang ada di belakang CPU sebagai penghubung peralatan input-output komputer, misalnya Mouse, keyboard, printer…dll Port Logika (non fisik),adalah port yang di gunakan oleh Software sebagai jalur untuk melakukan koneksi dengan komputer lain, tentunya termasuk koneksi internet Port Logika inilah yang akan kita bahas di sini, yaitu port yang berhubungan secara langsung dengan kegiatan kita ber-internet. 1. Port 80, Web Server Port ini biasanya digunakan untuk web server, jadi ketika user mengetikan alamat IP atau hostname di web broeser maka web browser akan melihat IP tsb pada port 80, 2. Port 81, Web Server Alternatif ketika port 80 diblok maka port 81 akan digunakan sebagai port

Mengenal NNTP (Network News Transfer Protocol) Pada Server

NNTP (Network News Transfer Protocol) NNTP merupakan protocol aplikasi internet yang berguna untuk membaca dan mem-posting artikel berita dalam jaringan (membentuk newsgroup dan grup diskusi dalam). Dengan menggunakan reader news client standar seperti Microsoft Outlook Express, pengguna/ user dalam sebuah jaringan dapat membaca artikel dari orang lain yang mempunyai hobi yang sama, mengirim artikel ke user lain dan ikut berpartisipasi dalam sebuah diskusi. NNTP beroperasi dalam sebuah chanel data stream bidirectional 8-bit yang handal. Ketika koneksi terbentuk, NNTP server host harus mengirimkan sebuah pesan pembuka (greeting) kemudian server host dan client host saling mempertukarkan commands dan merespon sampai koneksi tertutup atau dibatalkan. Jika koneksi yang digunakan TCP maka server host akan mulai menjalankan service NNTP dengan membuka sebuah TCP port. Ketika client host ingin menggunakan service maka client haris membentuk koneksi TCP dengan server host dengan cara konek ke

Menghapus Driver Audio Realtek yang Error

Kali ini saya berbagi pengalaman tentang instalasi OS Ms. Windows XP pada komputer. Biasanya setelah instalasi OS selesai kita masukin tu driver-driver device komputernya supaya di detect dan bekerja normal hardwarenya. Nah pas install driver audio / soundcard realtek ada kejadian driver yang diinstall salah, jadi trouble deh. Mau di disable trus un install drivernya, muncul pesan Error boot bla bla.... wah jadi pusing, untung nemu cara gini, silahkan dicoba. Dan biasanya problemnya, Installation failure and terminate alias komputer / laptop jadi bisu karena gagal mengenal Driver audio. Nah penyebabnya, Microsoft Universal Audio Architecture (UAA) driver terlalu memaksa ketika mengenali Realtek HD pada saat instalasi Solusi : - Hapus (UnInstall) terlebih dahulu program Realtek HD Audio - Disable MS UAA Bus Driver for HD Audio Realtek, caranya : Buka Control Panel>Device Manager> cari System Device (bagian bawah) > pada Ms UAA Bus Driver klik kanan pilih Disable trus UnInstall