BAHASA PEMROGRAMAN(Pengertian,Jenis,Perbedaan,dan langkah-langkah pemrograman
BAHASA PEMROGRAMAN
A.Pengertian bahasa pemrograman
Bahasa pemrograman adalah suatu instruksi atau komando standar untuk memerintah komputer . Bahasa pemrograman ini merupakan suatu susunan aturan penulisan (sintaks) yang membentuk kode
kode yang kemudian akan diterjemahkan oleh program kompiler menjadi
bahasa rakitan (assembly) dan terus diolah hingga dimengerti oleh mesin. Komputer hanya mmengerti bahasa mesin.Bahasa mesin ini memungkinkan
seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh
komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan
diambil dalam berbagai situasi.
B.Jenis-jenis Bahasa Pemrograman
B.Jenis-jenis Bahasa Pemrograman
Berikut ini adalah Penggolongan bahasa pemrograman komputer berdasarkan tingkat kedekatan bahasa dengan mesin komputer.
- Bahasa Mesin, yaitu bahasa pemrograman yang menggunakan bahasa biner yang terdiri dari angka 1 dan 0 untuk memberikan perintah pada komputer. Contoh : 01100101100110
- Bahasa Tingkat Rendah, atau lebih dikenal dengan bahasa rakitan ( Assembly ). Bahasa pemrograman ini memberikan perintah pada komputer menggunakan kode-kode yang singkat ( Kode Mnemonic ), Contoh : SUB, MOV, JMP, JGE, CMP,LOOP, JL, dsb.
- Bahasa Tingkat Menengah, yaitu bahasa pemrograman yang menggunakan campuran intruksi/ perintah dalam kata-kata bahasa manusia.
- Bahasa Tingkat Tinggi, bahasa pemrograman yang sudah memakai instruksi dari kata-kata bahasa manusia, contoh : if, else, true, false, end, or, xor, while, dan masih banyak lagi. Sebagian besar bahasa pemrograman saat ini digolongkan sebagai bahasa tingkat tinggi.
Berikut, Jenis-jenis bahasa pemrograman :
1. Bahasa Pemrograman C ( Tingkat Tinggi )
2. Bahasa Pemrograman ASP
3. Bahasa Pemrograman PHP ( Tingkat Tinggi )
4. Bahasa Pemrograman Basic ( Tingkat Tinggi )
5. MICROSOFT VISUAL BASIC ( Tingkat Tinggi )
6. Bahasa Pemrograman JAVA ( Tingkat Tinggi )
7. Bahasa Pemrograman JavaScript
8. Bahasa Pemrograman PYTHON
9. Bahasa Pemrograman RUBY
10. Bahasa Pemrograman ColdFusion
11. Bahasa Pemrograman SQL ( Tingkat Tinggi )
12. Bahasa Pemrograman HTML ( Tingkat Tinggi )
13. Bahasa Pemrograman CSS
14. Bahasa Pemrograman Perl
15.Bahasa Pemrograman Delphi
C.Perbedaan Masing-masing Bahasa Pemrograman
1. Bahasa Pemrograman C ( Tingkat Tinggi )
Bahasa yang diperuntukkan memprogram jaringan dan sistem komputer, namun
bahasa ini sering juga digunakan dalam pengembangan software aplikasi.
Bahasa C ini juga banyak dipakai oleh berbagai jenis platform sistem
operasi dan arsitektur komputer. Bahkan sudah banyak compiler populer
yang sudah tersedia untuk bahasa ini.
2. Bahasa Pemrograman ASP
ASP ( Active Server Pages ) adalah bahasa pemrograman yang digunakan
untuk menciptakan program web yang dinamis. ASP merupakan salah satu
produk teknologi yang disediakan oleh Microsoft. ASP bekerja pada server
web dan merupakan server side scripting.
3. Bahasa Pemrograman PHP ( Tingkat Tinggi )
PHP pertamakali diciptakan oleh Rasmus Lerdorf pada tahun 1995, Waktu
itu PHP masih bernama Form Interpreted ( FI ), yang bentuknya berupa
sekumpulan kode yang digunakan untuk mengolah bentuk data ( data form )
dari web. Seperti ASP, PHP merupakan server side scripting yang bekerja
pada server web.
4. Bahasa Pemrograman Basic ( Tingkat Tinggi )
BASIC atau Begginer’s All- purpose Symbolic Instruction Code pertamakali
dikembangkan pada tahun 1963 oleh John George Kemeny dan Thomas Eugene
Kurtz. Bahasa Pemrograman Basic mirip dengan bahasa inggris biasa yang
sering digunakan oleh pemrogram dalam menulis berbagai program komputer
sederhana yang berfungsi sebagai konsep dasar bagi pembelajaran
pemrograman komputer.
5. MICROSOFT VISUAL BASIC ( Tingkat Tinggi )
Visual Basic atau lebih dikenal dengan VB adalah sebuah bahasa
pemrograman yang menawarkan Integrated Development Environtmen ( IDE )
visual untuk membuat program software berbasis OS Microsoft Windows
dengan menggunakan model pemrograman ( COM ). VB menawarkan pengembangan
software komputer berbasis grafik dengan cepat, Visual Basic merupakan
perkembangan dari bahasa pemrograman BASIC.
6. Bahasa Pemrograman JAVA ( Tingkat Tinggi )
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai
komputer dan telepon genggam. Pemrograman Java bersifat non-spesifik/
umum ( general purpose ) dan secara khusus didesain untuk memanfaatkan
dependensi implementasi seminimal mungkin. Bahasa ini pertama kali
dibuat oleh James Gosling dan dirilis tahun 1995.
7. Bahasa Pemrograman JavaScript ( Tingkat Tinggi )
Berbeda dengan Bahasa JAVA, JavaScrip ini adalah bahasa scripting yang
berjalan pada sisi client. Bahasa pemrograman ini dikembangkan oleh
Netscape. JavaScript sering digunakan untuk pembangunan web browser.
8. Bahasa Pemrograman PYTHON
Bahasa Pemrograman Python digunakan untuk berbagai macam keperluan
pengembangan software ( perangkat lunak ) dan dapat bahasa ini juga bisa
dijalankan di berbagai macam platform sistem operasi seperti Windows,
Linux, Apple, dll.
9. Bahasa Pemrograman RUBY
Ruby adalah bahasa pemrograman yang berorientasi obyek. Tujuan dari RUBY
adalah menggabungkan kelebihan dari semua bahasa pemrograma scripting
yang ada di dunia. Ruby ditulis dengan bahasa pemrograman C dengan
kemampuan dasar menyerupai Perl dan Python.
10. Bahasa Pemrograman ColdFusion
ColdFusion adalah server aplikasi dan framework pengembangan software
yang digunakan untuk mengembangkan software komputer, khususnya pada
situs web dinamis.
11. Bahasa Pemrograman SQL ( Tingkat Tinggi )
SQL atau kependekan dari Structured Query Language adalah bahasa
pemrograman yang digunakan untuk mengakses data dalam basis data
relasional. Bahasa ini secara umumnya dijadikan menjadi bahasa standar
yang digunakan dalam manajemen basis data relasional. Sekarang ini,
hampir semua server basis data yang mendukung SQL untuk melakukan
manajemen datanya.
12. Bahasa Pemrograman HTML ( Tingkat Tinggi )
HTML ( Hypert Text Markup Language ) adalah bahasa markah yang digunakan
untuk membuat sebuah halaman website dan menampilkan berbagai informasi
seperti tulisan di dalam sebuah web browser internet.
13. Bahasa Pemrograman CSS
CSS ( Cascading Style Sheet ) adalah bahasa yang digunakan untuk
mengatur tampilan suatu dokumen yang ditulis dalam bahasa markah (
markup ). Umumnya sering CSS digunakan untuk memformat atau memodifikasi
halaman web yang ditulis dengan HTML dan XHTML. Tapi, bahasa ini juga
dapat digunakan untuk semua jenis dokumen XML termasuk XUL dan SVG.
Spesifikiasi CSS diatur oleh W3C ( World Wide Web Consortium ).
14. Bahasa Pemrograman Perl
Bahasa pemrograman perl mirip dengan bahasa C. Perl digunakan untuk
mesin dengan Sistem Operasi UNIX ( BSD, Linux, SunOS, HP-UX ). Perl juga
tersedia untuk sistem operasi seperti Windows, DOS, VMS, EBCDIC,
PocketPC, BeOS, dan PowerPC.
15. Bahasa Pemrograman Delphi ( Tingkat Tinggi )
Biasanya delphi lebih sering digunakan untuk pengembangan aplikasi
desktop dan enterprise database, tetapi sebagai sebagai perangkat
pengembangan yang bersifat umum ( general purpose ), delphi juga dapat
digunakan dalam berbagai jenis proyek pengembangan perangkat lunak.
D.Langkah-Langkah Pemrograman
Beberapa langkah yang perlu dipahami dalam membuat sebuah program dan penjelasan selengkapnya :
1. Rencana Penggabungan (Plan The Integration)
Setiap program yang akan dibuat diwajibkan melakukan perencanaan dahulu. Rencanakan urutan dimana setiap program ataupun sistem yang ingin dibuat. Ini disebut Rencana Tes Sistem (System Test Plan).
2. Mendisain Modul (Design The Module)
Karena programmer menerima beberapa tingkatan disain dari fase disain, maka pada langkah ini tugasnya adalah memecah modul secara rinci ke tingkat yang lebih rendah sampi mencapai keadaan programmer siap untuk melakukan pemrograman.
Pertanyaan yang bisa diajukan adalah : “Pada tingkatan mana disain sistem berhenti dan disain modul dimulai ?”. Jawabannya adalah “Disain sistem dipecah sampai pada tingkat dimana programmer dapat memulainya”. Tingkatan ini dapat bermacam-macam dari proyek ke proyek dan bahkan dari satu bagian sistem ke bagian lainnya, tergantung pada programmer yang menerima bagian tersebut.
Adapun pertimbangan lainnya adalah :
• Jika pemecahan modul yang dihasilkan adalah sangat penting yang memerlukan prioritas seperti adanya respon, user-friendly atau konsistensi, perancang bisa melanjutkan ke tingkat yang lebih rendah.
• Tingkat pemecahan dari disain dinyatakan dengan kontrak.
• Jika programmer tidak mengetahui pada waktu disain, pengetahuan programmer tingkat menengah dapat diasumsikan, dan disain dapat diambil alih oleh programmer tingkat menengah yang dapat mengatasinya.
3. Telusuri Disain Modul (Walk Through The Module Design)
Telusuri disain dari masing-masing modul sebelum melakukan pengkodean. Penelusuran ini sangat kecil : hanya programmer yang tepat, supervisor dan mungkin programmer lainnya yang perlu diperhatikan. Kegunaan dari penelusuran disain modul adalah untuk memastikan bahwa disain yang terbaik yang telah dilakukan, semua fungsi telah dialamatkan dan semua bagian telah ditangani.
4. Rencana Bagaimana Menguji Modul (Plan How To Test The Module)
Programmer harus menyiapkan rencana pengujian modul dan data pengujian sebelum dikodekan. Rencana pengujian dilakukan setelah kode ditetapkan. Mereka cenderung hanya menguji bagian kode yang paling ‘sulit’. Disarankan pengerjaan dilakukan secara team work.
5. Kode Setiap Modul (Code Each Module)
Standar pengkodean akan ditetapkan pada saat disain sistem.
Berikut ini adalah ringkasan dari sebuah program terstruktur, yaitu :
• Jika berukuran kecil. Aturan dasarnya adalah kira-kira 100 baris kode yang dapat dieksekusi dan listingnya tidak lebih dari 2 halaman.
• Satu entry, satu exit.
• Referensi secara keseluruhan sedikit.
• Konstruksi terstruktur yang digunakan : berurutan, IF/THEN/ELSE, CASE, WHILE, UNTIL, CALL (bukan GO TO).
6. Menguji Modul (Test The Module)
Programmer menguji modul dengan menetapkan lingkungan yang tepat, menyediakan beberapa input, membiarkan modul langsung memproses secara logik dan mendapatkan hasilnya. Beberapa input mungkin tidak sebenarnya, terutama jika modul tersebut tidak menyediakan input yang sebenarnya.
Modul seharusnya diuji dalam dua tahap, yaitu :
• Tahap Pertama disebut pengujian “White Box”. Programmer harus mengetahui isi di dalam modul dan menyediakan data pengujian, sehingga masing-masing path logical dalam program dapat dieksekusi.
• Tahap Kedua atau pengujian “Black Box” dapat dilakukan. Dalam pengujian ini, programmer mengabaikan bagian dalam dari modul – data disediakan secara berurut dan dianggap seperti pemakaian sebenarnya.
7. Menguji Level Terendah dari Integrasi (Test The Lowest Levels Of Integration)
Jika modul utama memanggil sub-modul, programmer harus menggabungkan dan menguji semua modul secara bersama-sama. Bahkan jika programmer tidak bertanggung jawab untuk menulis sub-modul, programmer harus menguji perintah CALL dan RETURN dari seluruh modul.
Metode terbaik untuk melakukan hal ini adalah membuat sebuah “program stub” (potongan program) sebagai pengganti sub-modul. Potongan program ini dapat terdiri dari empat baris program yang menunjukkan bahwa kontrol sudah diterima dengan baik, tampilkan parameter penerima, jika perlu lakukan pengontrolan kembali dengan beberapa parameter yang tidak sebenarnya.
8. Menyimpan Semua Hasil Pengujian; Penggabungan Modul-modul Yang Telah Diuji (Save The Results Of All Tests; Submit Finished Modules To Integration)
Hasil pengujian digunakan untuk menyusun statistik yang menunjukkan penyebab, cara perbaikan serta biaya-biaya yang dibutuhkan untuk memperbaiki kesalahan-kesalahan program. Pimpinan proyek biasanya menguasai/mengepalai penggabungan ini pada sistem berukuran kecil sampai sedang.
Software seperti CMS (Code Management System) sangat berguna untuk menajemen konfigurasi – menjamin program tetap berjalan sesuai versinya dan mengubah ke source code
9. Memulai Dokumentasi User (Get Started On The User Documentation)
Apakah programmer bertanggung jawab pada dokumentasi user atau tidak, tahapan ini adalah waktu terbaik untuk menjawabnya.
Dokumen-dokumen berikut mungkin harus ditulis :
Tuntunan Pemakai (User’s Guide)
Dokumen ini dapat ditulis oleh programmer, penulis teknis atau bahkan user sendiri. Tampilkan kembali FS yang mempunyai bagian rinci mengenai menu, layar, form, dan user interface lainnya.
USER’S GUIDE yang baik adalah terbagi dalam bagian-bagian yang menunjukkan tingkatan user yang berbeda-beda. Sebagai contoh, dalam USER’S GUIDE sistem ABC, harus ada bagian yang disebut “Registrar’s Functions” atau “Warehouse Functions” atau lainnya. Materinya harus disesuaikan agar user dapat menggunakan secara normal. Hal ini membuat USER’S GUIDE berguna untuk mempelajari sistem.
Urutan popular lainnya untuk USER’S GUIDE adalah menelusuri menu-menu perintah secara logika. Pada akhir dari USER’S GUIDE ini disediakan referensi dari setiap perintah, menu, form dan pesan yang ditampilkan secara alphabet.
Tuntunan Pemeliharaan (Maintenance Guide)
Bagaimana anda menemukan programmer untuk merinci dokumen dari program mereka untuk pemeliharaan berikutnya ? Kebanyakan Manajer proyek mengalami kesulitan dalam hal berikut : programmer enggan untuk melakukan dokumentasi sebelum program ditulis; dan beruntunglah menemukannya setelah semuanya selesai dikerjakan. Programmer berpikir bahwa pemeliharaan memerlukan penjelasan secara rinci dari logika pemrograman. Sangat membosankan untuk menulisnya dan sebenarnya tidak perlu.
Berikut ini adalah solusi sederhana tentang hal tersebut : lebih baik merinci spesifikasi disain tingkat modul secara struktur, mendokumentasikan sendiri kode, dirasa cukup untuk pemeliharaan sistem.
MAINTENANCE GUIDE akan berisi spesifikasi disain, listing program dan penjelasan bagaimana semuanya disesuaikan, bagaimana mengubah pendekatan, dan bagaimana menghubungkan dan menguji semuanya.
Tuntunan Operator / Tuntunan Manajer Sistem (Operator’s Guide / System Manager’s Guide)
Sama seperti USER’S GUIDE untuk orang-orang yang menghidupkan sistem di pagi hari, mematikannya, melakukan backup, menangani permasalahan utama, melakukan perhitungan, dsb. Dokumentasi yang disediakan oleh perusahaan hardware dan sistem operasi mungkin cukup – hanya prosedur untuk software tertentu yang harus ditulis ulang.
1. Rencana Penggabungan (Plan The Integration)
Setiap program yang akan dibuat diwajibkan melakukan perencanaan dahulu. Rencanakan urutan dimana setiap program ataupun sistem yang ingin dibuat. Ini disebut Rencana Tes Sistem (System Test Plan).
2. Mendisain Modul (Design The Module)
Karena programmer menerima beberapa tingkatan disain dari fase disain, maka pada langkah ini tugasnya adalah memecah modul secara rinci ke tingkat yang lebih rendah sampi mencapai keadaan programmer siap untuk melakukan pemrograman.
Pertanyaan yang bisa diajukan adalah : “Pada tingkatan mana disain sistem berhenti dan disain modul dimulai ?”. Jawabannya adalah “Disain sistem dipecah sampai pada tingkat dimana programmer dapat memulainya”. Tingkatan ini dapat bermacam-macam dari proyek ke proyek dan bahkan dari satu bagian sistem ke bagian lainnya, tergantung pada programmer yang menerima bagian tersebut.
Adapun pertimbangan lainnya adalah :
• Jika pemecahan modul yang dihasilkan adalah sangat penting yang memerlukan prioritas seperti adanya respon, user-friendly atau konsistensi, perancang bisa melanjutkan ke tingkat yang lebih rendah.
• Tingkat pemecahan dari disain dinyatakan dengan kontrak.
• Jika programmer tidak mengetahui pada waktu disain, pengetahuan programmer tingkat menengah dapat diasumsikan, dan disain dapat diambil alih oleh programmer tingkat menengah yang dapat mengatasinya.
3. Telusuri Disain Modul (Walk Through The Module Design)
Telusuri disain dari masing-masing modul sebelum melakukan pengkodean. Penelusuran ini sangat kecil : hanya programmer yang tepat, supervisor dan mungkin programmer lainnya yang perlu diperhatikan. Kegunaan dari penelusuran disain modul adalah untuk memastikan bahwa disain yang terbaik yang telah dilakukan, semua fungsi telah dialamatkan dan semua bagian telah ditangani.
4. Rencana Bagaimana Menguji Modul (Plan How To Test The Module)
Programmer harus menyiapkan rencana pengujian modul dan data pengujian sebelum dikodekan. Rencana pengujian dilakukan setelah kode ditetapkan. Mereka cenderung hanya menguji bagian kode yang paling ‘sulit’. Disarankan pengerjaan dilakukan secara team work.
5. Kode Setiap Modul (Code Each Module)
Standar pengkodean akan ditetapkan pada saat disain sistem.
Berikut ini adalah ringkasan dari sebuah program terstruktur, yaitu :
• Jika berukuran kecil. Aturan dasarnya adalah kira-kira 100 baris kode yang dapat dieksekusi dan listingnya tidak lebih dari 2 halaman.
• Satu entry, satu exit.
• Referensi secara keseluruhan sedikit.
• Konstruksi terstruktur yang digunakan : berurutan, IF/THEN/ELSE, CASE, WHILE, UNTIL, CALL (bukan GO TO).
6. Menguji Modul (Test The Module)
Programmer menguji modul dengan menetapkan lingkungan yang tepat, menyediakan beberapa input, membiarkan modul langsung memproses secara logik dan mendapatkan hasilnya. Beberapa input mungkin tidak sebenarnya, terutama jika modul tersebut tidak menyediakan input yang sebenarnya.
Modul seharusnya diuji dalam dua tahap, yaitu :
• Tahap Pertama disebut pengujian “White Box”. Programmer harus mengetahui isi di dalam modul dan menyediakan data pengujian, sehingga masing-masing path logical dalam program dapat dieksekusi.
• Tahap Kedua atau pengujian “Black Box” dapat dilakukan. Dalam pengujian ini, programmer mengabaikan bagian dalam dari modul – data disediakan secara berurut dan dianggap seperti pemakaian sebenarnya.
7. Menguji Level Terendah dari Integrasi (Test The Lowest Levels Of Integration)
Jika modul utama memanggil sub-modul, programmer harus menggabungkan dan menguji semua modul secara bersama-sama. Bahkan jika programmer tidak bertanggung jawab untuk menulis sub-modul, programmer harus menguji perintah CALL dan RETURN dari seluruh modul.
Metode terbaik untuk melakukan hal ini adalah membuat sebuah “program stub” (potongan program) sebagai pengganti sub-modul. Potongan program ini dapat terdiri dari empat baris program yang menunjukkan bahwa kontrol sudah diterima dengan baik, tampilkan parameter penerima, jika perlu lakukan pengontrolan kembali dengan beberapa parameter yang tidak sebenarnya.
8. Menyimpan Semua Hasil Pengujian; Penggabungan Modul-modul Yang Telah Diuji (Save The Results Of All Tests; Submit Finished Modules To Integration)
Hasil pengujian digunakan untuk menyusun statistik yang menunjukkan penyebab, cara perbaikan serta biaya-biaya yang dibutuhkan untuk memperbaiki kesalahan-kesalahan program. Pimpinan proyek biasanya menguasai/mengepalai penggabungan ini pada sistem berukuran kecil sampai sedang.
Software seperti CMS (Code Management System) sangat berguna untuk menajemen konfigurasi – menjamin program tetap berjalan sesuai versinya dan mengubah ke source code
9. Memulai Dokumentasi User (Get Started On The User Documentation)
Apakah programmer bertanggung jawab pada dokumentasi user atau tidak, tahapan ini adalah waktu terbaik untuk menjawabnya.
Dokumen-dokumen berikut mungkin harus ditulis :
Tuntunan Pemakai (User’s Guide)
Dokumen ini dapat ditulis oleh programmer, penulis teknis atau bahkan user sendiri. Tampilkan kembali FS yang mempunyai bagian rinci mengenai menu, layar, form, dan user interface lainnya.
USER’S GUIDE yang baik adalah terbagi dalam bagian-bagian yang menunjukkan tingkatan user yang berbeda-beda. Sebagai contoh, dalam USER’S GUIDE sistem ABC, harus ada bagian yang disebut “Registrar’s Functions” atau “Warehouse Functions” atau lainnya. Materinya harus disesuaikan agar user dapat menggunakan secara normal. Hal ini membuat USER’S GUIDE berguna untuk mempelajari sistem.
Urutan popular lainnya untuk USER’S GUIDE adalah menelusuri menu-menu perintah secara logika. Pada akhir dari USER’S GUIDE ini disediakan referensi dari setiap perintah, menu, form dan pesan yang ditampilkan secara alphabet.
Tuntunan Pemeliharaan (Maintenance Guide)
Bagaimana anda menemukan programmer untuk merinci dokumen dari program mereka untuk pemeliharaan berikutnya ? Kebanyakan Manajer proyek mengalami kesulitan dalam hal berikut : programmer enggan untuk melakukan dokumentasi sebelum program ditulis; dan beruntunglah menemukannya setelah semuanya selesai dikerjakan. Programmer berpikir bahwa pemeliharaan memerlukan penjelasan secara rinci dari logika pemrograman. Sangat membosankan untuk menulisnya dan sebenarnya tidak perlu.
Berikut ini adalah solusi sederhana tentang hal tersebut : lebih baik merinci spesifikasi disain tingkat modul secara struktur, mendokumentasikan sendiri kode, dirasa cukup untuk pemeliharaan sistem.
MAINTENANCE GUIDE akan berisi spesifikasi disain, listing program dan penjelasan bagaimana semuanya disesuaikan, bagaimana mengubah pendekatan, dan bagaimana menghubungkan dan menguji semuanya.
Tuntunan Operator / Tuntunan Manajer Sistem (Operator’s Guide / System Manager’s Guide)
Sama seperti USER’S GUIDE untuk orang-orang yang menghidupkan sistem di pagi hari, mematikannya, melakukan backup, menangani permasalahan utama, melakukan perhitungan, dsb. Dokumentasi yang disediakan oleh perusahaan hardware dan sistem operasi mungkin cukup – hanya prosedur untuk software tertentu yang harus ditulis ulang.
.
Demikianlah yang dapat saya sampaikan lebih dan kurangnya mohon di maafkan .
wassalamu'alaikum warahmatullahi wabarakatuh.
Komentar
Posting Komentar