UTS Soal 1
1. Tujuan [kembali]
- Mempelajari bagaimana suatu rancangan rangkaian decoder memori dan I/O untuk suatu sistem minimum 8086 bekerja.
2. Alat dan Bahan [kembali]
3. Dasar Teori [kembali]
- RESISTOR
Resistor merupakan komponen elektronika dasar yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian.Sesuai dengan namanya, resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Resistor memiliki simbol seperti gambar dibawah ini :
Resistor mempunyai nilai resistansi (tahanan) tertentu yang dapat memproduksi tegangan listrik di antara kedua pin dimana nilai tegangan terhadap resistansi tersebut berbanding lurus dengan arus yang mengalir, berdasarkan persamaan Hukum OHM :
Seri : Rtotal = R1 + R2 + R3 + ….. + Rn
Paralel: 1/Rtotal = 1/R1 + 1/R2 + 1/R3 + ….. + 1/Rn
- IC 74LS138
Prinsip Kerja IC 74LS138:
Input:
- Tiga Input Alamat (A, B, C): IC ini memiliki tiga input alamat (A, B, C) yang menentukan output mana yang akan diaktifkan. Input ini adalah representasi biner 3-bit, sehingga dapat menghasilkan kombinasi dari 000 hingga 111 (total 8 kombinasi).
- Tiga Input Pengendali (G1, G2A, G2B):
- G1 (Enable) adalah input aktif tinggi, artinya IC hanya bekerja jika G1 diberi logika 1.
- G2A dan G2B adalah input aktif rendah (logika 0). IC hanya bekerja jika kedua pin ini diberi logika 0. Jika salah satu dari G2A atau G2B diberi logika 1, semua output akan tetap dalam keadaan tidak aktif (logika 1).
- Jadi, untuk membuat IC berfungsi, kondisi yang harus dipenuhi adalah G1 = 1, G2A = 0, dan G2B = 0.
Output:
- IC ini memiliki delapan output (Y0 hingga Y7). Pada setiap saat, hanya satu output yang akan aktif rendah (logika 0), tergantung pada nilai input biner yang diberikan pada pin alamat A, B, dan C.
- Output yang dipilih sesuai dengan kode biner input. Misalnya:
- Jika A = 0, B = 0, C = 0, maka Y0 akan menjadi aktif rendah (logika 0), dan Y1 hingga Y7 tetap dalam keadaan aktif tinggi (logika 1).
- Jika A = 0, B = 0, C = 1, maka Y1 akan menjadi aktif rendah, dan Y0 serta Y2-Y7 tetap aktif tinggi.
- Dan seterusnya hingga kombinasi A = 1, B = 1, C = 1, yang akan mengaktifkan Y7.
Fungsi Enable:
- Fungsi pengendali (G1, G2A, G2B) memungkinkan IC ini untuk diaktifkan atau dinonaktifkan secara eksternal. Jika IC dinonaktifkan, semua output akan berada dalam keadaan tidak aktif (logika 1) terlepas dari nilai input A, B, dan C.
Operasi Dekoder/Demultiplexer:
- Sebagai decoder, IC ini menerima input biner 3-bit dan menghasilkan satu output aktif rendah yang sesuai. Hal ini sering digunakan dalam sistem digital untuk memilih satu dari delapan perangkat atau memori.
- Sebagai demultiplexer, IC 74LS138 dapat digunakan untuk mendistribusikan satu sinyal input ke salah satu dari delapan saluran output tergantung pada kode input biner.
- 6116
IC memori 6116 merupakan salah satu RAM statik berkapasitas 16.384 bit atau 2 kbyte. IC 6116 mempunyai 8 jalur data (D0-D7) dan 11 jalur alamat (A0-A10). Untuk menulis data digunakan sinyal W (aktif LOW) dan untuk membaca data digunakan sinyal G (aktif LOW). Kaki E (aktif LOW) digunakan untuk mengijinkan memori menulis atau membaca data pada jalur data. Kaki 12 dihubungkan ke GND dan kaki 24 dihubungkan ke +5V.
-CS | -OE | -WE | Mode | Pin–pin I-O |
1 | X | X | Non aktif | High Z |
0 | 0 | 1 | Read | Out |
0 | 1 | 0 | Write | In |
- 6264
- LOGICSTATE
Prinsip kerja IC 74HC373
Prinsip kerja IC 74HC373 adalah berdasarkan prinsip latch D. Dalam latch D, data pada input (D0-D3) akan diteruskan ke output (Q0-Q3) hanya jika input enable (LE) aktif. Jika input enable (LE) tidak aktif, maka output (Q0-Q3) akan tetap mempertahankan nilainya.
Tabel kebenaran IC 74HC373
Berikut adalah tabel kebenaran IC 74HC373:
Input | Output |
---|---|
LE | Q0 |
0 | 0 |
1 | D0 |
Penggunaan IC 74HC373
IC 74HC373 dapat digunakan untuk berbagai keperluan, antara lain:
- Menyimpan data digital
- Mengontrol peralatan elektronik
- Membangun rangkaian logika
Berikut adalah beberapa contoh penggunaan IC 74HC373:
- Dalam sebuah sistem penghitung, IC 74HC373 dapat digunakan untuk menyimpan data digital, seperti angka atau huruf.
- Dalam sebuah mesin pengukur, IC 74HC373 dapat digunakan untuk mengontrol peralatan elektronik, seperti motor atau lampu.
- Dalam sebuah rangkaian logika, IC 74HC373 dapat digunakan untuk membangun rangkaian logika yang lebih kompleks.
- IC 8255A
IC 8255A adalah IC programmable peripheral interface (PPI) yang dirancang untuk bekerja dengan tegangan sumber +5 volt DC. IC ini memiliki 24 pin, dengan 16 pin untuk input/output, empat pin untuk kontrol, dan empat pin untuk sumber daya.
Spesifikasi dari IC 8255A:
Arsitektur: 8 bitPort: 3 buah port 8 bitMode operasi: 3 modeFrekuensi operasi: 0 hingga 10 MHzKekuatan: 5 VProses pembuatan: NMOS
Konfigurasi PIN
Pin 1-4: VCC (tegangan suplai) Pin 5-6: GND (tegangan nol) Pin 7: RESET (reset) Pin 8: CS (chip select) Pin 9-10: A0-A1 (alamat bus)Pin 11-18: D0-D8 (data bus)Pin 19: INT (interrupt) Pin 20: MODE (mode) Pin 21: INH (input enable) Pin 22: OBF (output buffer full) Pin 23: IBF (input buffer full) Pin 24: WR (write) Pin 25: RD (read) Pin 27-30: PA0-PA7 (port A)Pin 31-36: PB0-PB7 (port B)Pin 37-40: PC0-PC7 (port C)
Prinsip kerja IC 8255A adalah berdasarkan prinsip PPI. Dalam PPI, data input dapat diubah menjadi data output, atau data input dapat digunakan untuk mengontrol peralatan elektronik.
Pada IC 8255A, data input/output dapat dikonfigurasi ke dalam berbagai mode, seperti:
- Mode Input: Mode Input memungkinkan data input dari peralatan elektronik untuk dibaca oleh mikroprosesor.
- Mode Output: Mode Output memungkinkan data output dari mikroprosesor untuk ditulis ke peralatan elektronik.
- Mode Bidirectional: Mode Bidirectional memungkinkan data input/output dikonfigurasikan secara dinamis.
Penggunaan IC 8255A
IC 8255A dapat digunakan untuk berbagai keperluan, antara lain:
- Membangun rangkaian input/output
- Mengontrol peralatan elektronik
- Membangun rangkaian logika
Berikut adalah beberapa contoh penggunaan IC 8255A:
- Dalam sebuah sistem penghitung, IC 8255A dapat digunakan untuk membaca data dari sensor atau mengontrol peralatan elektronik.
- Dalam sebuah mesin pengukur, IC 8255A dapat digunakan untuk menampilkan data ke layar atau mengontrol motor.
- Dalam sebuah rangkaian logika, IC 8255A dapat digunakan untuk membangun rangkaian logika yang lebih kompleks.
- Bahasa Mesin dan Bahasa Assembly
Prinsip kerja IC 8255A adalah berdasarkan prinsip PPI. Dalam PPI, data input dapat diubah menjadi data output, atau data input dapat digunakan untuk mengontrol peralatan elektronik.
Pada IC 8255A, data input/output dapat dikonfigurasi ke dalam berbagai mode, seperti:
- Mode Input: Mode Input memungkinkan data input dari peralatan elektronik untuk dibaca oleh mikroprosesor.
- Mode Output: Mode Output memungkinkan data output dari mikroprosesor untuk ditulis ke peralatan elektronik.
- Mode Bidirectional: Mode Bidirectional memungkinkan data input/output dikonfigurasikan secara dinamis.
Penggunaan IC 8255A
IC 8255A dapat digunakan untuk berbagai keperluan, antara lain:
- Membangun rangkaian input/output
- Mengontrol peralatan elektronik
- Membangun rangkaian logika
Berikut adalah beberapa contoh penggunaan IC 8255A:
- Dalam sebuah sistem penghitung, IC 8255A dapat digunakan untuk membaca data dari sensor atau mengontrol peralatan elektronik.
- Dalam sebuah mesin pengukur, IC 8255A dapat digunakan untuk menampilkan data ke layar atau mengontrol motor.
- Dalam sebuah rangkaian logika, IC 8255A dapat digunakan untuk membangun rangkaian logika yang lebih kompleks.
Instruksi yang difetch dari memori untuk kemudian diseksekusi oleh mikroprosesor berformat biner (kombinasi angka 0 dan 1), yang disebut bahasa mesin. Sebagai contoh, perintah untuk memindahkan data dalam register BX ke register CX adalah 10001011 11001011 ($8B CB), sedangkan bahasa mesin untuk menjumlahkan data dalam register AL dengan angka 7 adalah 00000100 00000111 ($04 07), dan perintah membaca dari port 5 diberikan dengan 11100100 00000101 ($E4 05).Seperti terlihat pada ketiga contoh di atas, bahasa mesin tidak mudah untuk dimengerti dan dihapalkan oleh seorang programer, apalagi jumlah instruksi yang tersedia berkisar ribuan perintah. Di samping itu, akan mudah sekali terjadi kesalahan ketika menuliskan angka-angka biner yang tersusun atas angka 0 dan 1 yang banyak sekali. Oleh karena itu biasanya kita tidak memprogram komputer langsung dalam bahasa mesin, namun dalam bahasa assembly.
Dalam bahasa assembly, setiap instruksi diberi kata (mnemonic) yang sesuai dengan maksud perintah itu, sehingga dapat membantu pemrogram dalam mengingat instruksi kepada mikroprosesor tersebut. Kata yang dipakai biasanya berupa singkatan atau beberapa huruf awal dari kata dalam bahasa Inggris untuk perintah tersebut. Misalnya, mnemonic untuk perintah penjumlahan adalah ADD, untuk perintah pengurangan adalah SUB (dari kata subtract), dan untuk memindahkan data( ) 4 dari suatu register atau memori ke lokasi lain adalah MOV (dari kata move). Sebagian besar instruksi terdiri atas mnemonic dan operand yang merupakan parameter dari instruksi tersebut, yang dituliskan di belakang mnemonic tersebut. Contoh bahasa assembly dari perintah-perintah dengan bahasa mesin di atas diberikan dalam Tabel
Dalam bahasa assembly, setiap instruksi diberi kata (mnemonic) yang sesuai dengan maksud perintah itu, sehingga dapat membantu pemrogram dalam mengingat instruksi kepada mikroprosesor tersebut. Kata yang dipakai biasanya berupa singkatan atau beberapa huruf awal dari kata dalam bahasa Inggris untuk perintah tersebut. Misalnya, mnemonic untuk perintah penjumlahan adalah ADD, untuk perintah pengurangan adalah SUB (dari kata subtract), dan untuk memindahkan data( ) 4 dari suatu register atau memori ke lokasi lain adalah MOV (dari kata move). Sebagian besar instruksi terdiri atas mnemonic dan operand yang merupakan parameter dari instruksi tersebut, yang dituliskan di belakang mnemonic tersebut. Contoh bahasa assembly dari perintah-perintah dengan bahasa mesin di atas diberikan dalam Tabel
- Pin Diagram Mikroprosessor 8086
Mikroprosesor 8086 mempunyai 40 kaki (pin) yang masing-masing digunakan untuk melewatkan sinyal tertentu. Setiap pin sinyal diberi nama berupa mnemonic yang sesuai dengan fungsinya. Sistem komputer 8086 mempunyai bus data selebar 16 bit dan bus alamat selebar 20 bit, sehingga dapat mengalamati memori sampai dengan 220 atau 1 Mb. Untuk menghemat jumlah pin, maka antara pin untuk data dan pin untuk alamat digabungkan dengan diberi nama AD0-AD15 (dari kata address data), sedangkan 4 bit alamat sisanya diberi nama A16-A19 (pin-pin ini juga digunakan untuk sinyal status).
Terdapat juga pin-pin untuk catu daya yang disuplaikan, yaitu VCC dan GND, masing-masing untuk tegangan catu daya dan pentanahan. Untuk dapat bekerja, selain membutuhkan catu daya, mikroprosesor 8086 juga memerlukan sinyal detak (clock) secara eksternal dengan frekuensi sampai 10 MHz. Sinyal clock ini dilewatkan ke pin CLK yang ada pada kaki nomor 19.
Pin-pin lainnya digunakan untuk sinyal kendali. Mikroprosesor 8086 dapat digunakan dalam 2 mode, minimum dan maksimum, yang masing-masing menggunakan pin kendali secara berbeda. Mode ini ditentukan dengan memberi nilai pada pin MXMN/ ( ) 1 , nilai 1 (dihubungkan dengan Vcc) untuk mode minimum dan nilai 0 (ditanahkan) untuk mode maksimum. Kebanyakan aplikasi menggunakan mode minimum. Pada mode ini, nama pin yang dipakai pada kaki nomor 24 sampai dengan 31 adalah yang berada di dalam tanda kurung (sebelah kanan)
Sinyal RESET digunakan untuk memerintah mikroprosesor agar melakukan inisialisasi dengan cara memberi nilai 0 pada register DS, SS, ES, IP, dan flag; serta nilai $FFFF untuk CS( ) 2 . Pin INTR dan NMI digunakan untuk menginterupsi kerja mikroprosesor. Jika ada sinyal pada kedua pin itu, maka mikroprossor akan menghentikan eksekusi program yang sedang dijalankannya, kemudian menjalankan subrutin sesuai yang dikehendaki, dan setelah selesai kembali ke tempat semula di mana program diinterupsi. Sinyal INTR (interrupt) berupa permintaan untuk melakukan interupsi yang dapat dianulir /tidak dipenuhi jika flag IF direset, sedangkan sinyal NMI (non maskable interrupt) tidak dapat ditutup/ditolak, artinya interupsi harus dilakukan. Pin INTA (interrupt acknowledge) digunakan oleh mikroprosesor untuk menjawab bahwa permintaan interupsi dari sinyal INTR dapat diterima/dijalankan
Pin IO M/ (memory/IO), RD (read), dan WR (write) digunakan untuk mengendalikan memori dan port pada saat pemindahan data. Sinyal IO M/ digunakan untuk memilih apakah memori atau port yang akan diakses oleh mikroprosesor. Jika hendak menghubungi memori, maka mikroprosesor memberi nilai tinggi (1) pada sinyal ini dan jika port yang hendak diakses maka sinyal ini diberi nilai rendah (0). Sinyal RD akan diaktifkan (bernilai rendah) jika operasi yang dilakukan adalah membaca, yaitu transfer data dari memori/port ke mikroprosesor. Sementara sinyal WR digunakan untuk menulis, tranfer data dari mikroprosesor ke memori/port, jika aktif. Sinyal-sinyal lain adalah R DT/ (data transmit/receive), DEN (data enable), ALE (address latch enable), dan BHE (bus high enable) yang akan dibahas kemudian.
Terdapat juga pin-pin untuk catu daya yang disuplaikan, yaitu VCC dan GND, masing-masing untuk tegangan catu daya dan pentanahan. Untuk dapat bekerja, selain membutuhkan catu daya, mikroprosesor 8086 juga memerlukan sinyal detak (clock) secara eksternal dengan frekuensi sampai 10 MHz. Sinyal clock ini dilewatkan ke pin CLK yang ada pada kaki nomor 19.
Pin-pin lainnya digunakan untuk sinyal kendali. Mikroprosesor 8086 dapat digunakan dalam 2 mode, minimum dan maksimum, yang masing-masing menggunakan pin kendali secara berbeda. Mode ini ditentukan dengan memberi nilai pada pin MXMN/ ( ) 1 , nilai 1 (dihubungkan dengan Vcc) untuk mode minimum dan nilai 0 (ditanahkan) untuk mode maksimum. Kebanyakan aplikasi menggunakan mode minimum. Pada mode ini, nama pin yang dipakai pada kaki nomor 24 sampai dengan 31 adalah yang berada di dalam tanda kurung (sebelah kanan)
Sinyal RESET digunakan untuk memerintah mikroprosesor agar melakukan inisialisasi dengan cara memberi nilai 0 pada register DS, SS, ES, IP, dan flag; serta nilai $FFFF untuk CS( ) 2 . Pin INTR dan NMI digunakan untuk menginterupsi kerja mikroprosesor. Jika ada sinyal pada kedua pin itu, maka mikroprossor akan menghentikan eksekusi program yang sedang dijalankannya, kemudian menjalankan subrutin sesuai yang dikehendaki, dan setelah selesai kembali ke tempat semula di mana program diinterupsi. Sinyal INTR (interrupt) berupa permintaan untuk melakukan interupsi yang dapat dianulir /tidak dipenuhi jika flag IF direset, sedangkan sinyal NMI (non maskable interrupt) tidak dapat ditutup/ditolak, artinya interupsi harus dilakukan. Pin INTA (interrupt acknowledge) digunakan oleh mikroprosesor untuk menjawab bahwa permintaan interupsi dari sinyal INTR dapat diterima/dijalankan
Pin IO M/ (memory/IO), RD (read), dan WR (write) digunakan untuk mengendalikan memori dan port pada saat pemindahan data. Sinyal IO M/ digunakan untuk memilih apakah memori atau port yang akan diakses oleh mikroprosesor. Jika hendak menghubungi memori, maka mikroprosesor memberi nilai tinggi (1) pada sinyal ini dan jika port yang hendak diakses maka sinyal ini diberi nilai rendah (0). Sinyal RD akan diaktifkan (bernilai rendah) jika operasi yang dilakukan adalah membaca, yaitu transfer data dari memori/port ke mikroprosesor. Sementara sinyal WR digunakan untuk menulis, tranfer data dari mikroprosesor ke memori/port, jika aktif. Sinyal-sinyal lain adalah R DT/ (data transmit/receive), DEN (data enable), ALE (address latch enable), dan BHE (bus high enable) yang akan dibahas kemudian.
4. Proseur Percobaan [kembali]
Komponen yang Terlibat
- Memori (misalnya, RAM atau ROM): Komponen ini digunakan untuk menyimpan data.
- Decoder Memori: Digunakan untuk memilih lokasi memori tertentu berdasarkan input alamat.
- Mikrokontroler atau Mikroprosesor: Mungkin digunakan untuk mengirim alamat dan data ke memori.
- Saklar dan LED: Digunakan untuk masukan manual dan indikasi output.
Langkah-langkah Prosedur Percobaan
Berikut adalah langkah-langkah umum yang dapat diikuti untuk melakukan simulasi rangkaian memori dan decoder memori di Proteus:
Membuka Proteus dan Membuat Proyek Baru:
- Buka software Proteus dan buat proyek baru. Beri nama proyek sesuai dengan kebutuhan.
Menambahkan Komponen ke Skema:
- Cari dan tambahkan komponen-komponen seperti memori (RAM atau ROM), decoder, mikroprosesor, saklar, dan LED dari library komponen Proteus.
- Letakkan komponen-komponen tersebut di skema proyek.
Menghubungkan Komponen:
- Hubungkan pin output dari mikrokontroler ke pin input dari decoder memori.
- Hubungkan output dari decoder ke input alamat dari memori.
- Pasangkan saklar ke pin data input memori jika diperlukan untuk input manual.
- Hubungkan LED ke output data memori untuk indikasi visual.
Mengatur Konfigurasi Memori dan Decoder:
- Konfigurasikan memori dengan menentukan ukuran dan tipe (misalnya, RAM atau ROM).
- Atur decoder memori untuk menerima input alamat dan memilih lokasi memori yang sesuai.
Menulis Program (Jika Menggunakan Mikrokontroler):
- Jika menggunakan mikrokontroler, tulis kode yang mengontrol pengiriman data dan alamat ke memori.
- Program ini mungkin ditulis dalam bahasa seperti Assembly atau C.
Menjalankan Simulasi:
- Setelah semua komponen terhubung dan program diunggah (jika ada), jalankan simulasi.
- Amati bagaimana data dikirim ke dan dari memori, dan bagaimana decoder memori memilih lokasi memori yang benar berdasarkan input alamat.
Menguji dan Mengamati Output:
- Gunakan saklar untuk memasukkan alamat atau data yang berbeda.
- Amati LED atau alat ukur lain untuk memastikan bahwa memori dan decoder berfungsi dengan benar sesuai dengan yang diharapkan.
Menganalisis Hasil Simulasi:
- Catat hasil simulasi dan analisis apakah perilaku rangkaian sesuai dengan teori yang diharapkan.
- Jika ada masalah, lakukan debugging untuk menemukan dan memperbaiki kesalahan.
5. Rangkaian Simulasi dan Prinsip Kerja [kembali]
1. Memori (RAM atau ROM):
- Memori adalah perangkat penyimpanan yang digunakan untuk menyimpan data dan instruksi. Dalam konteks rangkaian ini, memori bisa berupa RAM (Random Access Memory) atau ROM (Read-Only Memory).
- RAM adalah tipe memori yang bisa dibaca dan ditulis, yang berarti data bisa disimpan dan dimodifikasi selama perangkat aktif.
- ROM hanya bisa dibaca, artinya data disimpan secara permanen dan tidak bisa diubah oleh mikrokontroler setelah pemrograman awal.
- Memori ini diakses melalui alamat tertentu. Setiap alamat memori memiliki sel memori yang berisi data.
2. Decoder Memori:
- Decoder adalah komponen yang digunakan untuk mengontrol akses ke lokasi memori tertentu. Decoder menerima input alamat dari mikrokontroler atau mikroprosesor dan mengaktifkan salah satu outputnya sesuai dengan alamat yang diberikan.
- Jika rangkaian memori menggunakan lebih dari satu chip memori, decoder ini akan memilih chip memori yang benar untuk akses berdasarkan alamat yang diberikan.
- Misalnya, jika alamat terdiri dari 4 bit, decoder akan memiliki 16 (2^4) output, masing-masing terhubung ke satu lokasi memori atau chip.
3. Mikrokontroler atau Mikroprosesor:
- Mikrokontroler atau mikroprosesor bertindak sebagai pengontrol utama dalam rangkaian ini. Komponen ini menghasilkan sinyal alamat yang menentukan lokasi memori yang ingin diakses dan sinyal data untuk ditulis atau dibaca dari memori.
- Saat mikrokontroler ingin membaca data dari memori, ia akan mengirimkan alamat yang diinginkan ke decoder. Decoder kemudian memilih lokasi memori yang sesuai dan mengaktifkan jalur untuk membaca data dari alamat tersebut.
- Sebaliknya, untuk menulis data, mikrokontroler mengirimkan alamat dan data yang ingin ditulis ke lokasi memori yang dipilih.
4. Interaksi dan Aliran Data dalam Rangkaian:
- Alamat dari Mikrokontroler: Mikrokontroler mengirimkan sinyal alamat ke input decoder memori. Sinyal alamat ini menunjukkan lokasi memori yang akan diakses.
- Pemilihan Lokasi Memori oleh Decoder: Decoder memori menerima sinyal alamat dan mengaktifkan salah satu outputnya sesuai dengan alamat yang diberikan. Output aktif ini akan menentukan lokasi memori tertentu yang diakses.
- Akses Data: Setelah lokasi memori dipilih, data dapat ditulis ke atau dibaca dari memori.
- Membaca Data: Jika operasi yang diminta adalah membaca, data dari alamat yang dipilih di memori akan dikirim kembali ke mikrokontroler melalui jalur data.
- Menulis Data: Jika operasi yang diminta adalah menulis, mikrokontroler akan mengirim data yang akan disimpan ke alamat memori yang dipilih melalui jalur data.
- Pengindikasian melalui LED atau Output Lain: Output data atau status operasi dapat ditunjukkan melalui LED atau perangkat lain untuk memberikan indikasi visual tentang aktivitas yang terjadi di dalam rangkaian.
6. Video Simulasi [kembali]
7. Download File [kembali]
Komentar
Posting Komentar