laporan04
DESCRIPTION
DasproTRANSCRIPT
-
Bagian 1 :
Tugas 1
Fungsi swap adalah fungsi yang digunakan untuk menukarkan dua buah nilai. Fungsi ini sangat
dibutuhkan ketika kita hendak membuat aplikasi pengurutan data (sorting). Pada pemrograman C++,
fungsi ini sudah tersedia dengan fleksibilitas yang tinggi. Artinya bisa digunakan untuk menukar dua
buah nilai dengan tipe data yang bermacam-macam. Fungsi ini terdapat dalam pustaka dan
termasuk dalam namespace standard.
Bagian 2
Tugas 2
Hasil tampilan ini didapatkan dari proses pengurutan (sorting) menggunakan fungsi swap, juga pencacah
yang akan menghitung berapa banyak subproses (proses menukar) yang dilakukan.
Bagian 3
Tugas 3
Untuk menghitung lama suatu proses, bisa ditambahkan #include , di awal proses yang akan
dihitung waktunya, tambahkan time_t t1 = clock() dan diakhir tambahkan time_t2 = clock().
Kegunaannya untuk mengambil waktu yang sekarang dari komputer kita. Hasil pemanggilan fungsi ini
berupa angka-angka yang belum diterjemahkan, kemudian akan disimpan dalam sebuah variabel yang
telah didefinisikan sebelumnya, di program ini hasilnya akan disimpan di variabel "waktu". Lalu selisih
dari t2 dan t1 harus dibagi dengan satuan clock, yaitu CLOCKS_PER_SEC sehingga didapat waktu dalam
satuan detik. Bisa jadi hasil perhitungan menunjukkan nilai nol, hal ini berarti waktu proses terlalu
singkat sehingga dibulatkan menjadi nol. Contohnya pada program ini :
-
Bagian 4
Tugas 4
Untuk menghitung dengan lebih teliti, dapat digunakan . Pertama tama deklarasikan t1 dan t2 dengan timeb t1,t2, di awal tuliskan ftime (&t1) dan di akhir tuliskan ftime (&t2), fungsi ftime
berguna untuk menyediakan jenis second maupun millisecond. Sehingga saat perhitungan waktu diakhir,
dapat disediakan variable baru misal a yang berisikan t1.millitm (t1 dalam milidetik) begitu juga dengan
t2. Bisa jadi hasil perhitungan menunjukkan nilai nol, hal ini berarti waktu proses terlalu singkat sehingga
dibulatkan menjadi nol. Berarti kecepatan prosessor < milidetik tiap siklus pengurutan. Berikut contoh
programnya :
Bagian 5
Tugas 5
Bagian program yang menunjukkan bahwa kode ditulis untuk C++ versi C++11 dalah using namespace
std::chrono, high_resolution_clock::time_point t1, high_resolution_clock::now(). Berikut adalah contoh
programnya :
Kecepatan proses CPU adalah = 0,12 s per subprosesnya.
Bagian 6
Tugas 6
Berikut adalah kode program hasil modifikasi untuk membaca file berisi data acak kemudian disusun
secara berurutan dan disalin dalam file baru : #include #include #include #include #include #include using namespace std; int main (int argc, char *argv[]){ int U[1000]; char *ifn = argv[1];
- ifstream fin; fin.open(ifn); if(fin.is_open()){ string line; int i=0; while (!fin.eof()){ getline (fin, line); if(line[0] != '#'){ stringstream ss; ss U[i]; i++;}} fin.close();} time_t t1 = clock(); int N = 1000; int k = 0; for (int j=0; j
- ifstream fin; fin.open(ifn); if(fin.is_open()){ string line; int i=0; while (!fin.eof()){ getline (fin, line); if(line[0] != '#'){ stringstream ss; ss U[i]; i++;}} fin.close();} timeb t1, t2; ftime(&t1); int N = 1000; int k = 0; for (int j=0; j
- using namespace std; int main (int argc, char *argv[]){ char *ifn = argv[1]; ifstream fin; fin.open(ifn); int i=0; if(fin.is_open()){ string line; while (!fin.eof()){ getline (fin, line); if(line[0] != '#'){ stringstream ss; ss
-
Bagian 9
Tugas 9
Berikut adalah kode program hasil modifikasi untuk membaca file berisi data acak kemudian disusun
secara berurutan dan disalin dalam file baru dengan metode yang dijelaskan di bagian 9, ketelitian
perhitungan waktu dalam orde mikrodetik : #include #include #include #include #include #include #include #include #include using namespace std; int main (int argc, char *argv[]){ //Baca file + periksa jumlah array char *ifn = argv[1]; ifstream fin; fin.open(ifn); int i=0; if(fin.is_open()){ string line; while (!fin.eof()){ getline (fin, line); if(line[0] != '#'){ stringstream ss; ss
- for (int i=0; i
-
Cara ini lebih efisien dari sebelumnya.
Bagian 10 dan tugas tambahan :
Menggunakan pustaka algoritma, maka dapat digunakan fungsi sort (+barisawal , +barisakhir) untuk mengurutkan array secara cepat, berikut adalah kode programnya :
#include #include #include #include #include #include #include #include #include #include using namespace std; int main (int argc, char *argv[]){ //Baca file + periksa jumlah array char *ifn = argv[1]; ifstream fin; fin.open(ifn); int i=0; if(fin.is_open()){ string line; while (!fin.eof()){ getline (fin, line); if(line[0] != '#'){ stringstream ss; ss
- //sorting using namespace std::chrono; high_resolution_clock::time_point t1 = high_resolution_clock::now(); sort (U, U+N); high_resolution_clock::time_point t2 = high_resolution_clock::now(); //Pengeluaran ke file char *ofn = argv[2]; ofstream fout; fout.open(ofn); if (fout.is_open()){ for (int i=0; i
-
Berikut adalah grafik waktu jumlah data :
Berikut adalah grafik jumlah subproses jumlah data :
-5000000
0
5000000
10000000
15000000
20000000
25000000
-20000 0 20000 40000 60000 80000 100000 120000
Metoda 1
Metoda 2
Metoda 3
-1000000
0
1000000
2000000
3000000
4000000
5000000
6000000
-20000 0 20000 40000 60000 80000 100000 120000
Metoda 1
Metoda 2
Metoda 3