• Tidak ada hasil yang ditemukan

BAB 5 PENUTUP

5.2 Saran

Saran-saran yang dapat digunakan untuk pengembangan sistem ini lebih lanjut adalah sebagai berikut:

1. IC MT8870 yang digunakan sebagai dekoder DTMF tidak dapat mendeteksi penutupan telepon pengirim dan dengan menggunakan IC jenis MT8888 masalah ini dapat diatasi.

2. Perancangan ini menggunakan port LPT1 sehingga terminal keluaran dan masukan terbatas. Dengan keluaran dekoder DTMF sebanyak 4 bit, lampu yang dapat dikontrol adalah sebanyak 24 = 16 buah. Dengan memanfaatkan PPI (Programmable Pheripheral Interface) yang mempunyai terminal masukan dan keluaran yang lebih banyak hal ini dapat dilaksanakan. Untuk

keperluan khusus, lampu yang dikontrol dapat lebih banyak lagi dengan menggunakan multiplekser sesudah dekoder DTMF.

3. Perekaman akan menghasilkan sebuah file yang kontinu, hal ini kurang efektif bila rekaman yang masuk sangat banyak. Dengan modifikasi program, file

DAFTAR PUSTAKA

Brain, Marshall 2002 'How Telephones Work' viewed 29 Agustus 2004,

<http://electronics.howstuffworks.com>

Budiharto, Widodo 2004, Interfacing Komputer dan Mikrokontroler, Penerbit Elex Media Komputindo, Jakarta

Engdahl, Tomi 1996, ‘Simple Circuit and Program to Show How to Use PC Parallel Port Output Capabilities’, viewed 12 Mei 2004,

<http://www.hut.fi/misc/electronics/circuits>

Engdahl, Tomi 1998 'Telephone line audio interface circuits' viewed 23 Agustus 2004, <http://splat.foo.is/electronics/teleinterface.htm>

Engdahl, Tomi 2000 'Telephone ringing circuits' viewed 29 Agustus 2004,

<http://ourworld.compuserve.com/homepages/Bill_Bowden/page11.htm>

Harries, Ian 1996, ‘IBM-PC Parallel Printer Port Programming Considerations’, viewed 17 Mei 2004, <http://www.doc.ic.ac.uk/~ih/doc/par/doc.htm> Harries, Ian 1998, ‘Interfacing to the IBM-PC Parallel Printer Port’, viewed 17

Mei 2004, <http://www.doc.ic.ac.uk/~ih/doc/par/doc/intro.htm>

Kurniadi, Adi 2000, Pemrograman Microsoft Visual Basic 6, Penerbit Elex Media Komputindo, Jakarta

Malvino., Barmawi 1994, Prinsip-Prinsip Elektronika Jilid 1, Edisi Ketiga, Penerbit Erlangga, Jakarta

MITEL 1997, Aplication of the MT8870 Integrated DTMF Receiver

Nalwan, Agustinus 2004, Membuat Program Profesional secara Cepat dengan VB, Penerbit Elex Media Komputindo, Jakarta

Paul, 'DTMF Generator/Decoder' viewed 22 Agustus 2004,

<http://www.boondog.com//tutorials/dtmf/dtmf.htm>

Simanjuntak, Tiur LH 1993, Dasar-dasar Telekomunikasi, Penerbit Alumni, Bandung.

A B C D 4 3 2 1 D C B A Title 10 k 47 0u F/2 5V 3, 3 V PC8 17 1u F/1 20 V TIP RING 10 k +5 V 10 0k 10 0k 0.1 uF 0.1 uF 37 0k 3,5 79 M hz +5 V VDD 18 VSS 9 TOE 10 Q4 14 Q3 13 Q2 12 Q1 11 St/GT 17 11 11 IN-2 GS 3 Vref 4 IN+ 1 OSC 2 7 OSC 1 8 MT88 70 R elay C90 13 +5 V 5,6 k Relay C 90 13 12 V 5,6 k 1u F/2 5V

Lin e-in s oun dc ard Lin e-out sou nd card Grou nd

Relay

Relay C90 13 +1 2V Ke saklar gag ang telep on

5,6 k F N Jala-jala PLN 1 14 2 15 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 11 24 12 25 13 LPT1 Ko mpu ter DB25

8x R 5 ,6 k 8x C901 3 8x Dio da 8x R elay 8x Lamp u 1W /220 V

SKEMATIK LENGKAP RANGKAIAN PENGONTROL LAMPU LISTRIK

LAMPIRAN A. SKEMA RANGKAIAN LENGKAP

+12 V +12 V +12 V +12 V +12 V +12 V +12 V +12 V

LAMPIRAN C. LIST PROGRAM PENGGERAK

Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal Value As Byte)

Public Declare Function PortIn Lib "io.dll" (ByVal Port As Integer) As Byte

''Deklarasi "io.dll" untuk inisialisasi port LPT1 Public Declare Function DeleteFile Lib "kernel32.dll" Alias

"DeleteFileA" (ByVal lpFileName As String) As Long

''Deklarasi "kernel32.dll" untuk mengambil fungsi hapus file Function BitStatus(PortAddress, BitYouWant) As Integer

''fungsi mendeteksi data per bit pada port LPT1 If PortAddress = 888 Then

NumOfBits = 8

ElseIf PortAddress = 889 Then NumOfBits = 5

ElseIf PortAddress = 890 Then NumOfBits = 4

End If

ReDim PortBits(NumOfBits) As Integer PortNum = PortIn(PortAddress)

For i = 1 To NumOfBits

PortBits(i) = PortNum Mod 2 PortNum = Fix(PortNum / 2) Next i

BitStatus = PortBits(BitYouWant) End Function

Sub OutPort(PortAddress, OutNum)

''sub mengeluarkan data per bit ke port LPT1 PortState = PortIn(PortAddress)

PortNum = PortState + OutNum PortOut PortAddress, PortNum

If OutNum = 0 Then Call PortOut(PortAddress, 0) End Sub

Private Sub Command1_Click() FrmAbout.Show

End Sub

Private Sub Form_Load() ComboDelay.AddItem "1" ComboDelay.AddItem "5" ComboDelay.AddItem "10" ComboDelay.AddItem "15" ComboDelay.AddItem "20" ComboDelay.AddItem "25" ComboDelay.AddItem "30" ComboDelay.AddItem "35" ComboDelay.AddItem "40" ComboDelay.AddItem "45" ComboDelay.AddItem "60"

Call PortOut(890, 11) ''reset port Control (out) Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer() 'timer pendeteksi dering Dim DeteksiDering As Byte

DeteksiDering = BitStatus(889, 4) If DeteksiDering = 0 Then

Label3.Caption = "Mendeteksi Sinyal Dering..." Delay Timer6.Enabled = True Timer1.Enabled = False End If End Sub Sub Delay()

''fungsi untuk menghitung delay angkat untuk timer 2 Dim IntervalDelay As Long

IntervalDelay = ComboDelay * 1000 Timer2.Interval = IntervalDelay Timer2.Enabled = True

End Sub

Private Sub Timer2_Timer()

''timer pengaktif pengangkat telepon Timer6.Enabled = False

Timer3.Enabled = True Timer2.Enabled = False Call PortOut(890, 2)

''menghubungkan dekoder DTMF ke jalur telepon ''dan mengaktifkan relay pengangkat telepon End Sub

Private Sub Timer3_Timer() 'timer penjawab telepon TimerPass1.Enabled = True

Label3.Caption = "Penjawab Telepon Aktif!!!"

MMControl1.FileName = "C:\Romadhani\Program Tugas Akhir\Pembuka.wav" MMControl1.Command = "Open" MMControl1.DeviceType = "WaveAudio" MMControl1.Command = "Play" Timer4.Interval = 4500 Timer4.Enabled = True Timer3.Enabled = False End Sub

Private Sub Timer4_Timer() 'timer untuk proses merekam TimerTundaTutup.Interval = 10000 TimerTundaTutup.Enabled = True CommandPlay.Enabled = True MMControl1.Command = "Stop" MMControl1.Command = "Close" Call PortOut(890, 0)

''menukar posisi jalur ke line-in MMControl2.DeviceType = "WaveAudio" MMControl2.RecordMode = mciRecordInsert

MMControl2.FileName = "C:\Romadhani\Program Tugas Akhir\Rekaman.wav"

MMControl2.Command = "open" MMControl2.Command = "record"

Label3.Caption = "Sedang merekam pembicaraan" End Sub

Private Sub Timer5_Timer() ''timer pengontrolan lampu Dim VarKontrol As Byte

VarKontrol = PortIn(889) MMControl1.Command = "Stop" MMControl1.Command = "close"

Label3.Caption = "Pengontrolan Aktif" TimerTundaTutup.Interval = 10000 TimerTundaTutup.Enabled = True If VarKontrol = 63 Then

''jika tekan tanda bintang menghidupkan lampu TimerTundaTutup.Enabled = False

Timer7.Enabled = True Timer5.Enabled = False End If

If VarKontrol = 79 Then

''jika tekan tanda pagar mematikan lampu TimerTundaTutup.Enabled = False

Timer8.Enabled = True Timer5.Enabled = False End If

If VarKontrol = 47 Then

''jika tekan 0 telepon ditutup TimerTundaTutup.Enabled = False TimerTundaTutup.Interval = 1 TimerTundaTutup.Enabled = True End If

End Sub

Private Sub Timer6_Timer() 'timer pembatalan panggilan Dim VariabelBatal As Byte

VariabelBatal = BitStatus(889, 4)

If VariabelBatal = 1 Then 'gagang ditutup panggilan batal

Label3.Caption = "Panggilan batal atau telepon telah diangkat" Timer1.Enabled = True

Timer2.Enabled = False End If

End Sub

Private Sub Timer7_Timer() 'timer menghidupkan lampu Dim VariabelHidup As Byte

VariabelHidup = PortIn(889)

Label3.Caption = "Perintah menghidupkan lampu..." MMControl3.Command = "stop"

MMControl3.Command = "close" TimerTundaTutup.Interval = 10000 TimerTundaTutup.Enabled = True

If VariabelHidup = 159 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\Hidup1.wav"

Call HidupLampu(1, 1) End If

If VariabelHidup = 175 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\Hidup2.wav"

Call HidupLampu(2, 2) End If

If VariabelHidup = 191 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\Hidup3.wav"

Call HidupLampu(3, 4) End If

If VariabelHidup = 207 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\Hidup4.wav"

Call HidupLampu(4, 8) End If

If VariabelHidup = 223 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\Hidup5.wav"

Call HidupLampu(5, 16) End If

If VariabelHidup = 239 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\Hidup6.wav"

Call HidupLampu(6, 32) End If

If VariabelHidup = 255 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\Hidup7.wav"

Call HidupLampu(7, 64) End If

If VariabelHidup = 15 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\Hidup8.wav"

Call HidupLampu(8, 128) End If

If VariabelHidup = 31 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\hidupsemua.wav" Call PortOut(888, 255) Timer5.Enabled = True Timer7.Enabled = False CommandSemuaHidup.Enabled = False CommandSemuaMati.Enabled = True End If

If VariabelHidup = 79 Then

''jika tekan tanda pagar ke perintah mematikan Timer8.Enabled = True

Timer7.Enabled = False End If

End Sub

Private Sub Timer8_Timer() ''timer mematikan lampu Dim VariabelMati As Byte VariabelMati = PortIn(889)

Label3.Caption = "Perintah mematikan lampu..." MMControl3.Command = "stop"

MMControl3.Command = "close" TimerTundaTutup.Interval = 10000 TimerTundaTutup.Enabled = True If VariabelMati = 159 Then

MMControl3.FileName = "C:\Tugas Akhir Romadhani\Program Tugas Akhir\Mati1.wav"

Call MatiLampu(1, -1) End If

If VariabelMati = 175 Then

MMControl3.FileName = "C:\Tugas Akhir Romadhani\Program Tugas Akhir\Mati2.wav"

Call MatiLampu(2, -2) End If

If VariabelMati = 191 Then

MMControl3.FileName = "C:\Tugas Akhir Romadhani\Program Tugas Akhir\Mati3.wav"

Call MatiLampu(3, -4) End If

If VariabelMati = 207 Then

MMControl3.FileName = "C:\Tugas Akhir Romadhani\Program Tugas Akhir\Mati4.wav"

Call MatiLampu(4, -8) End If

If VariabelMati = 223 Then

MMControl3.FileName = "C:\Tugas Akhir Romadhani\Program Tugas Akhir\Mati5.wav"

Call MatiLampu(5, -16) End If

If VariabelMati = 239 Then

MMControl3.FileName = "C:\Tugas Akhir Romadhani\Program Tugas Akhir\Mati6.wav"

Call MatiLampu(6, -32) End If

If VariabelMati = 255 Then

MMControl3.FileName = "C:\Tugas Akhir Romadhani\Program Tugas Akhir\Mati7.wav"

Call MatiLampu(7, -64) End If

If VariabelMati = 15 Then

MMControl3.FileName = "C:\Tugas Akhir Romadhani\Program Tugas Akhir\Mati8.wav"

Call MatiLampu(8, -128) End If

If VariabelMati = 31 Then

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\matisemua.wav" Call PortOut(888, 0) CommandSemuaHidup.Enabled = True CommandSemuaMati.Enabled = False Timer5.Enabled = True Timer7.Enabled = False End If If VariabelMati = 63 Then

''jika tekan tanda bintang ke perintah menghidupkan Timer7.Enabled = True

Timer8.Enabled = False End If

End Sub

Private Sub TimerPass1_Timer() If PortIn(889) = 159 Then TimerPass2.Enabled = True TimerPass1.Enabled = False End If

End Sub

Private Sub TimerPass2_Timer() If PortIn(889) = 175 Then TimerPass3.Enabled = True TimerPass2.Enabled = False End If

End Sub

Private Sub TimerPass3_Timer() If PortIn(889) = 191 Then TimerPass4.Enabled = True TimerPass3.Enabled = False End If

End Sub

Private Sub TimerPass4_Timer() If PortIn(889) = 207 Then TimerPass5.Enabled = True TimerPass4.Enabled = False End If

End Sub

Private Sub TimerPass5_Timer() If PortIn(889) = 223 Then Call PortOut(890, 2)

''kembalikan posisi jalur ke line-out Timer3.Enabled = False

Timer4.Enabled = False Timer5.Enabled = True

MMControl3.FileName = "C:\Romadhani\Program Tugas Akhir\hubungkontrol.wav" MMControl3.DeviceType = "WaveAudio" MMControl3.Command = "Open" MMControl3.Command = "Play" MMControl1.Command = "Stop" MMControl1.Command = "Close" MMControl2.Command = "Stop" MMControl2.Command = "Close" TimerPass5.Enabled = False End If End Sub

Private Sub TimerStatusLampu_Timer()

''timer untuk menampilkan status nyala lampu If BitStatus(888, 1) = 1 Then LabelA.ForeColor = &HFF0000 LabelA.Caption = "HIDUP" CmdHidup1.Enabled = False CmdMati1.Enabled = True CommandSemuaMati.Enabled = True Else LabelA.ForeColor = &HFF& LabelA.Caption = "MATI" CmdHidup1.Enabled = True CmdMati1.Enabled = False CommandSemuaHidup.Enabled = True End If If BitStatus(888, 2) = 1 Then LabelB.ForeColor = &HFF0000 LabelB.Caption = "HIDUP" CmdHidup2.Enabled = False CmdMati2.Enabled = True CommandSemuaMati.Enabled = True Else LabelB.ForeColor = &HFF& LabelB.Caption = "MATI" CmdHidup2.Enabled = True CmdMati2.Enabled = False CommandSemuaHidup.Enabled = True End If If BitStatus(888, 3) = 1 Then LabelC.ForeColor = &HFF0000 LabelC.Caption = "HIDUP" CmdHidup3.Enabled = False CmdMati3.Enabled = True CommandSemuaMati.Enabled = True Else LabelC.ForeColor = &HFF& LabelC.Caption = "MATI" CmdHidup3.Enabled = True CmdMati3.Enabled = False CommandSemuaHidup.Enabled = True End If

If BitStatus(888, 4) = 1 Then LabelD.ForeColor = &HFF0000 LabelD.Caption = "HIDUP" CmdHidup4.Enabled = False CmdMati4.Enabled = True CommandSemuaMati.Enabled = True Else LabelD.ForeColor = &HFF& LabelD.Caption = "MATI" CmdHidup4.Enabled = True CmdMati4.Enabled = False CommandSemuaHidup.Enabled = True End If If BitStatus(888, 5) = 1 Then LabelE.ForeColor = &HFF0000 LabelE.Caption = "HIDUP" CmdHidup5.Enabled = False CmdMati5.Enabled = True CommandSemuaMati.Enabled = True Else LabelE.ForeColor = &HFF& LabelE.Caption = "MATI" CmdHidup5.Enabled = True CmdMati5.Enabled = False CommandSemuaHidup.Enabled = True End If If BitStatus(888, 6) = 1 Then LabelF.ForeColor = &HFF0000 LabelF.Caption = "HIDUP" CmdHidup6.Enabled = False CmdMati6.Enabled = True CommandSemuaMati.Enabled = True Else LabelF.ForeColor = &HFF& LabelF.Caption = "MATI" CmdHidup6.Enabled = True CmdMati6.Enabled = False CommandSemuaHidup.Enabled = True End If If BitStatus(888, 7) = 1 Then LabelG.ForeColor = &HFF0000 LabelG.Caption = "HIDUP" CmdHidup7.Enabled = False CmdMati7.Enabled = True CommandSemuaMati.Enabled = True Else LabelG.ForeColor = &HFF& LabelG.Caption = "MATI" CmdHidup7.Enabled = True CmdMati7.Enabled = False CommandSemuaHidup.Enabled = True End If If BitStatus(888, 8) = 1 Then LabelH.ForeColor = &HFF0000 LabelH.Caption = "HIDUP" CmdHidup8.Enabled = False

CmdMati8.Enabled = True CommandSemuaMati.Enabled = True Else LabelH.ForeColor = &HFF& LabelH.Caption = "MATI" CmdHidup8.Enabled = True CmdMati8.Enabled = False CommandSemuaHidup.Enabled = True End If If PortIn(888) = 255 Then CommandSemuaHidup.Enabled = False End If If PortIn(888) = 0 Then CommandSemuaMati.Enabled = False End If End Sub

Sub HidupLampu(Bit, Data)

''Fungsi untuk menghidupkan lampu Call KirimSuara

If BitStatus(888, Bit) = 0 Then Call OutPort(888, Data)

Timer5.Enabled = True Timer7.Enabled = False Else Timer5.Enabled = True Timer7.Enabled = False End If End Sub

Sub MatiLampu(Bit, Data)

''Fungsi untuk mematikan lampu Call KirimSuara

If BitStatus(888, Bit) = 1 Then Call OutPort(888, Data)

Timer5.Enabled = True Timer8.Enabled = False Else Timer5.Enabled = True Timer8.Enabled = False End If End Sub Sub KirimSuara() MMControl3.Command = "Open" MMControl3.DeviceType = "WaveAudio" MMControl3.Command = "Play" End Sub

Private Sub TimerTundaTutup_Timer() ''timer pewaktu untuk menutup telepon Timer2.Enabled = False

Timer3.Enabled = False Timer4.Enabled = False Timer5.Enabled = False Timer6.Enabled = False

Timer7.Enabled = False Timer8.Enabled = False Timer1.Enabled = True

Label3.Caption = "Telepon ditutup" Call SimpanRekam Call PortOut(890, 11) TimerTundaTutup.Enabled = False End Sub Sub SimpanRekam() MMControl2.Command = "stop" MMControl2.Command = "save" MMControl2.Command = "close" Label5.ForeColor = &HFF0000

Label5.Caption = "Ada rekaman baru" Label3.Caption = "Telepon ditutup" End Sub

Private Sub CommandPlay_Click() ''command untuk memutar rekaman CommandStop.Enabled = True CommandHapus.Enabled = False

MMControl2.FileName = "C:\Romadhani\Program Tugas Akhir\Rekaman.wav"

MMControl2.Command = "Open"

MMControl2.DeviceType = "WaveAudio" MMControl2.Command = "Play"

CommandPlay.Enabled = False

Label5.Caption = "Sedang memutar rekaman..." End Sub

Private Sub CommandStop_Click()

''Command untuk menghentikan memutar rekaman CommandHapus.Enabled = True CommandPlay.Enabled = True MMControl2.Command = "stop" MMControl2.Command = "close" CommandStop.Enabled = False Label5.ForeColor = &H0&

Label5.Caption = "Tidak ada rekaman baru" End Sub

Private Sub CommandKeluar_Click() Dim KonfirmasiKeluar As Integer

KonfirmasiKeluar = MsgBox("Yakin ingin Keluar?", vbYesNo, "Keluar")

If KonfirmasiKeluar = 6 Then

Call PortOut(890, 11) ''reset port control End

End If End Sub

Private Sub CommandHapus_Click() ''command untuk menghapus rekaman Dim Hapus As Integer

Hapus = MsgBox("Yakin ingin Menghapus Rekaman?", vbYesNo, "Hapus Rekaman") If Hapus = 6 Then CommandStop.Enabled = False CommandPlay.Enabled = False CommandHapus.Enabled = False

X = DeleteFile("C:\Romadhani\Program Tugas Akhir\Rekaman.wav") If X = 1 Then

MsgBox "File Rekaman.wav telah dihapus!", , "Hapus Rekaman" Else

MsgBox "File tidak ada, penghapusan gagal.", , "Hapus Rekaman" End If

Label5.ForeColor = &HFF&

Label5.Caption = "Rekaman telah dihapus" End If

End Sub

Private Sub CmdHidup1_Click() If BitStatus(888, 1) = 0 Then Call OutPort(888, 1)

End If End Sub

Private Sub CmdHidup2_Click() If BitStatus(888, 2) = 0 Then Call OutPort(888, 2)

End If End Sub

Private Sub CmdHidup3_Click() If BitStatus(888, 3) = 0 Then Call OutPort(888, 4)

End If End Sub

Private Sub CmdHidup4_Click() If BitStatus(888, 4) = 0 Then Call OutPort(888, 8)

End If End Sub

Private Sub CmdHidup5_Click() If BitStatus(888, 5) = 0 Then Call OutPort(888, 16)

End If End Sub

Private Sub CmdHidup6_Click() If BitStatus(888, 6) = 0 Then Call OutPort(888, 32)

End If End Sub

Private Sub CmdHidup7_Click() If BitStatus(888, 7) = 0 Then Call OutPort(888, 64)

End If End Sub

Private Sub CmdHidup8_Click() If BitStatus(888, 8) = 0 Then Call OutPort(888, 128)

End If End Sub

Private Sub CmdMati1_Click() If BitStatus(888, 1) = 1 Then Call OutPort(888, -1)

End If End Sub

Private Sub CmdMati2_Click() If BitStatus(888, 2) = 1 Then Call OutPort(888, -2)

End If End Sub

Private Sub CmdMati3_Click() If BitStatus(888, 3) = 1 Then Call OutPort(888, -4)

End If End Sub

Private Sub CmdMati4_Click() If BitStatus(888, 4) = 1 Then Call OutPort(888, -8)

End If End Sub

Private Sub CmdMati5_Click() If BitStatus(888, 5) = 1 Then Call OutPort(888, -16)

End If End Sub

Private Sub CmdMati6_Click() If BitStatus(888, 6) = 1 Then Call OutPort(888, -32)

End If End Sub

Private Sub CmdMati7_Click() If BitStatus(888, 7) = 1 Then Call OutPort(888, -64)

End If End Sub

Private Sub CmdMati8_Click() If BitStatus(888, 8) = 1 Then Call OutPort(888, -128) End If

End Sub

Private Sub CommandSemuaHidup_Click() Call PortOut(888, 255)

CommandSemuaHidup.Enabled = False End Sub

Private Sub CommandSemuaMati_Click() Call PortOut(888, 0)

CommandSemuaMati.Enabled = False End Sub

Dalam dokumen PENGONTROLAN PERALATAN LISTRIK MELALUI J (Halaman 67-84)

Dokumen terkait