Trending
Loading...
Sunday, October 1, 2017

Sejarah, Definisi,Syarat - syarat, tahap pembuatan Algoritma !!!

11.      Jelaskan sejarah algoritma!
Jawab :
Algoritma berasal dari nama penulis buku, yakni Abu Ja`far Muhammad Ibnu Musa Al-Khwarizmi yang berasal dari Uzbekistan. Orang Barat menyebut Al-Khwarizmi dengan Algorism.
Pada saat itu, Al-Khwarizmi menulis buku dengan judul Al Jabar wal-Muqabala yang artinya “Buku Pemugaran dan Pengurangan” (The book of Restoration and Reduction). Dari judul buku tersebut, kita juga memperoleh kata “aljabar” atau biasa dikenal dengan algebra.
Abu Abdullah Ibnu Musa al-Khawarizmi (770M-840M) lahir di Khawarizm (Kheva), kota yang berada di selatan Sungai Oxus (sekarang disebut Uzbekistan) pada 770 M. Al Khawarizmi merupakan salah satu ilmuan terkenal di zamannya. Ada beberapa cabang ilmu matematika yang berhasil ditemukannya, antara lain yang dikenal sebagai astronom dan geografer.
Awalnya, algoritma merupakan istilah yang merujuk kepada aturan-aturan aritmetis yang berguna untuk menyelesaikan persoalan dengan menggunakan bilangan numeric Arab.

Pada tahun 1950, kata algoritma pertama kali digunakan pada "algoritma Euclidean" (Euclid`s algorithm). Euclid, seorang matematikawan Yunani (lahir pada tahun 350 M), dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan bulat, m dan n [KNU73] (tentu saja Eulid tidak menyebut metodenya itu sebagai algoritma, baru di abad modernlah orang-orang menyebut metodenya itu sebagai "algoritma Euclidean").


22.      Jelaskan tentang definisi algoritma!
Jawab:
Definisi algoritma adalah urutan langkah-langkah logis penyeselaian masalah yang disusun secara sistematis dan logis. Kata logis (logika) merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus dapat ditentukan bernilai benar atau salah.


33.      Jelaskan tentang syarat-syarat algoritma!
Jawab :
Berikut syarat-syarat algortima baik :
1. Tingkat Kepercayaan Tinggi ( Realibility )
Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
2. Pemrosesan yang Efisien ( Cost Rendah )
Pemrosesans harus diselesaikan secepat mungkin dan frekuensi kalkulasi sependek mungkin.
3. Sifatnya General
Bukan sesuatu yang hanya menyelesaikan kasus saja, tetapi juga untuk kasus yang lain yang lebih General .
4. Bisa dikembangkan ( Expandable )
Haruslah sesuatu yang dapat kita kembangkan. Lebih jauh berdasarkan perubahan (requirement) yang ada.
5. Mudah dimengerti
Siapapun yang melihat, dia akan bisa memahami algoritma anda. Susah di mengertinya suatu program akan membuat susah dikelola.
6. Portabilitas yang Tinggi
Bisa dengan mudah diimplementasikan diberbagai Platform Komputer.
7. Tepat koma, Betul, dan Teliti ( Precise )
8. Efektive
Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemrosesnya. yang akan menjalankannya dan tidak boleh ada instruksi yang Ambigu / Ganda.
9. Harus Ada Akhir ( Terminate )
Jalannya Algoritma harus ada kriteria berhenti.
10. Output yang dihasilkan harus tepat.

Ada juga syarat - syarat algoritma menurut Donald E. Knoth, yaitu :
a.      Finiteeness (Keterbatasan)
Algoritma harus berakhir setelah melakukan sejumlah langkah proses.
b.      Difininess (Kepastian)
Setiap langkah algoritma harus didefinisikan dengan tempat dan tidak menimbulkan makna ganda.
c.       Input (Masukan)
Sebuah algoritma memiliki nol atau masukan (input) yang diberikan kepada algoritma sebelum dijalankan.
d.      Output (Keluaran)
Setiap algoritma memberikan satu atau beberapa hasil keluaran.
e.       Efectiviness (Efektivitas)
Langkah langkah algoritma dikerjakan dalam waktu yang “wajar”


44.      Jelakan tahapan dalam pembuatan algoritma!
Jawab :
1.  Defenisikan Masalah
a.  Tentukan apa yang menjadi masalah
b.  Tentukan data input yang diperlukan
c.  Tentukan output yang diinginkan
2.  Buat bagan dan struktur cara penyelesaian
a.  Bagan secara global
b.  Deskripsikan tugas masing-masing subprogram
            3. Pilih Metode Penyelesaian
a.  Pilih struktur data dan Algoritma terbaik
            4.  Pengkodean
a.  Pilih bahasa pemrograman yang sesuai
b.  Menterjemahkan algoritma ke bahasa pemrograman
            5.  Mencari Kesalahan
a.  Kesalahan sintaks (penulisan program)
b.  Kesalahan Pelaksanaan: Semantik, Logika, dan  ketelitian
            6. Uji dan Verifikasi Program
            7.  Dokumentasi Program
            8.  Pemiliharaan Program
a.  Memperbaiki kekurangan yang ditemukan kemudian
b.  Memodifikasi, karena perubahan spesifikasi
           

55.      Sebut dan Jelaskan notasi yang digunakan dalam pembuatan algoritma
Jawab :
Ada 3 notasi yang digunakan dalam penulisan algoritma, yaitu :
1. Kalimat Deskriptif 
Dengan notasi kalimat deskriptif ini, deskripsi setiap langkah dijelaskan dengan bahasa yang  jelas/gamblang. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman relatif sulit.
contoh algoritma dengan kalimat deskriptif.
Algoritma menghitung luas persegi panjang:
luas persegi panjang = panjang*lebar.
mulai.
baca panjang
baca lebar
hitung luas = panjang*lebar
cetak luas
selesai.

2. Diagram Alir (Flowchart)
Dengan diagram alir, deskripsi setiap langkah dijelaskan dalam sebuah bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dalam suatu program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sulit.
contoh algoritma dengan diagram alur.
Algoritma menghitung luas persegi panjang:
Tentukan luas persegi panjang. P= panjang, L=lebar, Luas=P*L.

3. Pseudo-code
Dengan notasi pseudocode, deskripsi setiap langkah dijelaskan dengan menggunakan vacabulary (baku) atau dalam arti lain seperti ini pseudocode merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Notasi pseudocode adalah yang paling umum di gunakan dalam penulisan algoritma karena pengkonversian ke bahasa pemograman relatif mudah.
Notasi pseudo-code terdiri dari :
Head(Judul) : memberikan nama pada algoritma; umumnya nama sudah dapat memberi  gambaran pada prosedur penyelesaian masalah atau masalah yang akan diselesaikan
Deklarasi : menyatakan jenis dari setiap elemen data (variabel) yang akan digunakan  dalam algoritma.
Deskripsi : merupakan inti prosedur penyelesaian masalah; meliputi pernyataan/operasi,  fungsi, penjelasan, dll.
contoh algoritma dengan pseudocode:
ALGORITMA HITUNG LUAS
menghitung luas  persegi panjang.
DEKLARASI:
   P=panjang
   L=lebar
   Luas=P*L
DESKRIPSI:
   read (P,L)
   while (Luas=P*L)
   endwhile
   write (Luas)


66.      Apakah pentingnya algoritma dalam pemrograman, jelaskan!
Jawab :
Dalam pembuatan sebuah program ada beberapa factor yang harus di pertimbangkan,dan kebenaran logika. Sintaksis dapat di artikan sebagai tata bahasa yang di gunakan dalam program. Semantic adalah maksut yang di kandung pada setiap pernyataan di dalam program. Sementara kebenaran logika berhubungan dengan benar tidaknya urutan pernyataan serta prosedur yang ada di dalam program, atau yang biasa di sebut dengan algoritma.
Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah, yang saling berkaitan untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat di terjemahkan secara bertahap pada setiap tahap dari awal hingga akhir. Dalam penyusunannya diperlukan suatu logika agar algoritma yang di hasilkan sesuai dengan yang di harapkan. Algoritma merupakan bagian yang terpenting dan tidak dapat di pisahkan dari pemrograman. Meskipun semantic dan sintaksis yang di buat benar adanya,dengan algoritma yang keliru,permasalahan yang ingin di pecahkan dengan teknik pemrograman tidak akan behasil. Oleh karena itu untuk membuat program aplikasi hal pertama yang harus kita pahami adalah adalah algiritma atau pemecahannya. Hal ini bertujuan agar program yang talah di buat dapat sesuai dengan yang di harapkan.


77.      Apakah Perbedaan dari on-page connector dan off-page connector?
Jawab :
On-page Connector yaitu keluar – masuk atau penyambungan proses dalam lembar / halaman yang sama. Sedangkan Off-page Connector yaitu keluar – masuk atau penyambungan proses pada lembar / halaman yang berbeda.


88.      Carilah perbedaan selection dan pengulangan pada struktur algoritma!
Jawab :
Selection (if) hanya menjalankan kode sekali, jika Pengulangan menjalankan kode secara berulang - ulang sampai kondisinya tidak terpenuhi lagi (false).


99.      Dalam suatu kasus untuk membuat aplikasi perhitungan luas segitiga, berapakah inputan yang dibutuhkan? Sebutkan!
Jawab :
Dibutuhkan 2 inputan, yaitu input alas segitiga dan input tinggi segitiga


110.  Apakah algoritma harus urut? Jelaskan!
Jawab :
Iya,karena kata logis merupakan kata kunci dalam algoritma, serta jika ada satu yang terlewatkan, maka proses tidak akan berjalan dengan baik.

Sumber            : https://brainly.co.id/tugas/11246022
               https://brainly.co.id/tugas/7615805

111.  sebut dan jelaskan tiga notasi penulisan algoritma!
Jawab :
Ada 3 notasi yang digunakan dalam penulisan algoritma, yaitu :
1. Kalimat Deskriptif 
Dengan notasi kalimat deskriptif ini, deskripsi setiap langkah dijelaskan dengan bahasa yang  jelas/gamblang. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman relatif sulit.
contoh algoritma dengan kalimat deskriptif.
Algoritma menghitung luas persegi panjang:
luas persegi panjang = panjang*lebar.
mulai.
baca panjang
baca lebar
hitung luas = panjang*lebar
cetak luas
selesai.

2. Diagram Alir (Flowchart)
Dengan diagram alir, deskripsi setiap langkah dijelaskan dalam sebuah bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dalam suatu program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sulit.
contoh algoritma dengan diagram alur.
Algoritma menghitung luas persegi panjang:
Tentukan luas persegi panjang. P= panjang, L=lebar, Luas=P*L.

3. Pseudo-code
Dengan notasi pseudocode, deskripsi setiap langkah dijelaskan dengan menggunakan vacabulary (baku) atau dalam arti lain seperti ini pseudocode merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Notasi pseudocode adalah yang paling umum di gunakan dalam penulisan algoritma karena pengkonversian ke bahasa pemograman relatif mudah.
Notasi pseudo-code terdiri dari :
Head(Judul) : memberikan nama pada algoritma; umumnya nama sudah dapat memberi  gambaran pada prosedur penyelesaian masalah atau masalah yang akan diselesaikan
Deklarasi : menyatakan jenis dari setiap elemen data (variabel) yang akan digunakan  dalam algoritma.
Deskripsi : merupakan inti prosedur penyelesaian masalah; meliputi pernyataan/operasi,  fungsi, penjelasan, dll.
contoh algoritma dengan pseudocode:
ALGORITMA HITUNG LUAS
menghitung luas  persegi panjang.
DEKLARASI:
   P=panjang
   L=lebar
   Luas=P*L
DESKRIPSI:
   read (P,L)
   while (Luas=P*L)
   endwhile
   write (Luas)


112.  jelaskan aturan-aturan dalam penulisan flowchart!
Jawab :
Dalam pembuatan flowchart ada aturan-aturan tertentu yang digunakan secara umum. Adapun aturan-aturan tersebut adalah :
1.      Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
2.      Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
3.      Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4.      Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan MENGHITUNG LUAS PERSEGI PANJANG.
5.      Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6.      Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
7.      Gunakan simbol-simbol flowchart yang standar.
113.  jelaskan kriteria dari penulisan algoritma!
Jawab :
a.       Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
b.      Output: algoritma harus memiliki minimal satu buah output keluaran.
c.       Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
d.      Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
e.       Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dengan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
114.  apakah yang dimaksud penulisan algoritma harus Effectiveness?
Jawab :
Algoritma sebisa mungkin harus dapat dilaksanakan dengan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1


115.  Jelaskan penulisan notasi algoritma psuedocode!
Jawab :
Dengan notasi pseudocode, deskripsi setiap langkah dijelaskan dengan menggunakan vacabulary (baku) atau dalam arti lain seperti ini pseudocode merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Notasi pseudocode adalah yang paling umum di gunakan dalam penulisan algoritma karena pengkonversian ke bahasa pemograman relatif mudah.


Notasi pseudo-code terdiri dari :
Head(Judul) : memberikan nama pada algoritma; umumnya nama sudah dapat memberi  gambaran pada prosedur penyelesaian masalah atau masalah yang akan diselesaikan
Deklarasi : menyatakan jenis dari setiap elemen data (variabel) yang akan digunakan  dalam algoritma.
Deskripsi : merupakan inti prosedur penyelesaian masalah; meliputi pernyataan/operasi,  fungsi, penjelasan, dll.
contoh algoritma dengan pseudocode:
ALGORITMA HITUNG LUAS
menghitung luas  persegi panjang.
DEKLARASI:
   P=panjang
   L=lebar
   Luas=P*L
DESKRIPSI:
   read (P,L)
   while (Luas=P*L)
   endwhile
   write (Luas)


116.  Jelakan penulisan notasi algoritma flowchart!
Jawab :
Dengan Flowchart, deskripsi setiap langkah dijelaskan dalam sebuah bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dalam suatu program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sulit.
contoh algoritma dengan diagram alur.
Algoritma menghitung luas persegi panjang:
Tentukan luas persegi panjang. P= panjang, L=lebar, Luas=P*L.


117.  Apakah yang dimaksud penulisan algoritma harus definiteness(kepastian)!
Jawab :
Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda.


118.  Dalam pembuatan program yang baik terdapat 3 kriteria, sebutkan!
Jawab :
a.       Input
b.      Output
c.       Finite
d.      Definite
e.       Efisien
119.  Jelaskan fungsi simbol dibawah ini


220.  Carilah flowchart sederhana dan implementasi flowchart ke bahasa pemrograman.
Jawab :

Program C++ menghitung luas Segitiga

#include
#include
int main(){
int alas;
int tinggi;
int luas;
cout<<"masukan alas= "<<;
cin>>alas;
cout<<"masukan tinggi= "<<;
cin>>tinggi;
luas=0.5*alas*tinggi;
cout<<"luas segitiga="<<
return 0;
}


221.  Sebutkan software aplikasi peragkat lunak untuk membuat program c++
Jawab :
-          Borland C++
-          Dev C++
-          QT Creator



222.  Bagaimana struktur bahasa c/c++
Jawab :
Program C maupun C++ selalu tersusun dari 5 (Lima) bagian utama, yaitu :
1.      Preprocessor Directive (Pengarah Kompilator)
2.      Declaration (Deklarasi)
3.      Definition (Definisi)
4.      Statement atau Expressions (Pernyataan atau Ekspresi)
5.      Comments (Komentar)


223.  Apakah yang dimaksud variable, operator dan tipe data di c++
Jawab :
-          Variabel atau peubah adalah obyek yang nilainya dapat berubah-ubah dalam sebuah program. Pada saat sebuah variabel dideklarasikan, program "memesan" tempat dengan ukuran tertentu (sesuai tipe datanya) pada memori untuk menyimpan nilai dari variabel tersebut.
-          Operator adalah pengendali operasi yang akan dilakukan pada beberapa operan sehingga membentuk sebuah ekspresi. Secara umum, dalam sebuah ekspresi terdapat sebuah operator yang diapit dua operan.
-          Tipe data adalah himpunan nilai yang dapat dimiliki oleh sebuah data. Tipe data menentukan apakah sebuah nilai dapat dimiliki sebuah data atau tidak, serta operasi apa yang dapat dilakukan pada data tersebut. Contoh tipe data dalam dunia nyata adalah bilangan bulat.


224.  Sebut dan jelaskan tipe data yang dimiliki oleh c/c++
Jawab :
Integer
salah satu dasar tipe data yang dapat kita gunaka untuk menyimpan memori berformat angka / bilangan bulat, yaitu bilangan yang tidak mengandung angka dibelakang koma. Contoh data bilangan bulat adalah 1, 2, 4, 100 dan sebagainya.
Floating Point (Float)
salah satu tipe data yang bersifat menyatakan bilangan pecahan / real / mengandung angka dibelakang koma, maupun eksponensial. Tipe data float dapat menyatakan bilangan real dengan ketelitian relatif lebih rendah jika dibanding double (hingga 7 digit di belakang koma). Contoh data float adalah 3,14 dan sebagainya.
Double Floating Point (Double)
salah satu tipe data yang bersifat menyatakan bilangan pecahan / real / mengandung angka dibelakang koma, maupun eksponensial. Perbedaan double dengan float hanya pada ukuran memori, jangkauan nilai yang dapat disimpan dan tipe data double dapat menyatakan bilangan real dengan ketelitian tinggi (hingga 15 digit di belakang koma).
Boolean
salah satu tipe data pilihan yang hanya memiliki dua nilai yaitu True (Benar) atau False (Salah). Tipe data ini merepresentasikan data-data yang hanya mengandung dua buah nilai, yaitu nilai logika (boolean). Nilai logika itu sendiri hanya terdiri dari nilai benar (biasanya direpresentasikan dengan nilai selain 0 , biasanya dengan nilai 1) dan salah (direpresentasikan dengan nilai 0).
Character
salah satu tipe data sembarang huruf, angka dan tanda baca tunggal. Dalam C++, tipe karakter dinyatakan dalam "char". Sedangkan untuk karakter Unicode (wide character) dinyatakan dalam wchar_t.
Valueless
salah satu tipe data yang berarti “tidak ada” atau “tidak mempunyai tipe data”. Void masih di dalam katagori tipe data tetapi kita tidak bisa menggunakanya pada variabel biasa, void biasanya digunakan pada function yang tidak mempunyai return value “void myFunction()”, pada function parameter yang tidak mempunyai parameter “void myfunction(void)” dan pada pointer “void *myPointer;”.
String
Tipe ini digunakan untuk merepresentasikan data yang berupa teks (kumpulan karakter), tipe data string biasa disebut array of character / array dari tipe data char / kumpulan dari char. Contoh data string adalah "Andi" , "Belajar C++" , dan sebagainya.


225.  Sebut dan jelaskan operator dalam c++
Jawab :
1.      Operator Aritmatika
Operator aritmatika sama fungsinya dengan oprator matematika sederhana, yang membedakan ada beberapa tanda yang tidak sama dari operator matematika yang biasa kita gunakan pada pelajaran matematika.
2.      Operator Pemberi Nilai
Operator Pemberi nilai ini mirip seperti Operator aritmetika hanya saja berbeda cara penulisannya (Lebih singkat).
3.      Operator Penambah dan Pengurang
Operator penambahan menggunakan tanda " ++ ", artinya variabel yang digunakan akan bertambah 1 dan operator pengurangan menggunakan tanda " -- " artinya variabel yang digunakan akan berkurang 1.
4.      Operator Relasi
Operator relasi digunakan untuk membandingkan dua buah nilai dan hasil dari perbandingan menghasilkan nilai 1 jika benar dan 0 jika salah. Kegunaan dari opertor relasi ini sangat penting dalam membuat program apalagi ketika kita membuat program percabangan atau perulangan, dalam hal lain pun ini sangat penting. Ada 6 operator relasi yaitu " == " , " != " , " > " , " < " , " >= " , " <= ". Sebagai contoh kita gunakan variabel x dan y.
5.      Operator Logika
Operator logika masih berhubungan dengan operator relasi, yaitu untuk menghubungkan dua buah atau lebih operasi relasi menjadi sebuah ungkapan kondisi. Operator logika ini juga menghasilkan nilai 1 jika benar dan 0 jika salah. Operator logika berkaitan erat dengan tabel kebenaran dalam menentukan nilai benar atau salah.
6.      Operator Bitwise
Operator Bitwise adalah operasi matematika yang mengoperasikan pada level bilangan biner berbasis 2. Operator bitwise berfungsi untuk mengoperasi sebuah data angka bilangan biasa yang akan diubah menjadi bilangan biner terlebih dahulu dan dioperasikan sesuai operasi yang diperintahkan, untuk hasil akhirnya akan diubah kembali menjadi bilangan biasa.



                  http://www.belajarcpp.com/2016/01/operator.html

0 comments:

Post a Comment

Copyright © 2018 Andhik Website All Right Reserved | Website Resmi Andhik Prastiarto
Redesign by Andhik Prastiarto
Back To Top