BAB III ANALISA KEBUTUHAN DAN RANCANGAN
|
|
- Sudomo Johan
- 6 tahun lalu
- Tontonan:
Transkripsi
1 BAB III ANALISA KEBUTUHAN DAN RANCANGAN 3.1 Kebutuhan Program Hitung Dalam bab ini akan dibahas tentang perancangan algoritma yang dibagi menjadi perancangan tampilan dan perancangan program yang terdiri dari perancangan input dan output. 3.2 Perancangan Tampilan Masukan (Input) Program Dalam program ini hanya menggunakan 2 macam tampilan. Tampilan pertama yaitu tampilan input, tampilan yang kedua adalah tampilan output. Rancangan tampilan pertama adalah tampilan input yang ditunjukkan pada gambar 3.1. Masukan nilai : Gambar 3.1 Rancangan Tampilan input program Gambar 3.1 Rancangan tampilan input program Gambar 3.1 Rancangan tampilan program Masukan nilai adalah nilai dari ordo matriks persegi. Nilai ini digunakan untuk mencari hasil perhitungan matriks. Contoh: 26
2 27 Masukan nilai : 3 Gambar 3.2 Contoh tampilan input program Gambar 3.2 Tampilan input program 3.3 Perancangan Tampilan Keluaran (Output) Program Rancangan tampilan kedua adalah tampilan output. Tampilan ini menampilkan nilai input dan nilai output dari proses penghitungan. Nilai output terdiri dari bilangan matriks, ordo matriks, menampilkan hasil perkalian matriks, processor yang mengerjakan serta waktu yang dibutuhkan untuk melakukan perkalian matriks. Kordinat hasil adalah hasil perhitungan bilangan matriks dari 1 ordo dengan ordo yang lainnya. Memerlukan waktu adalah waktu yang dibutuhkan untuk melakukan penghitungan pada program matriks. Tampilan ketiga seperti yang ditunjukkan pada gambar 3.3
3 28 Gambar 3.3 Rancangan Tampilan output pada program 3.4 Alur Program Pada program ini yang pertama kali dijalankan adalah id = 0 memeriksa id prosesor yang digunakan. Kondisi ini digunakan untuk meminta masukan, melakukan proses perhitungan, dan menampilkan hasil penghitungan. Kondisi id = 0 hanya dimiliki oleh prosesor yang memulai menjalankan program hitung. Kondisi id = 0 tidak harus terjadi pada prosesor 1 atau prosesor yang memiliki id terkecil. Hal ini dapat terjadi pada prosesor manapun. Nilai yang dimasukan tadi adalah variabel m ( nilai ordo matriks) setelah itu maka dilakukan perhitungan terhadap variabel m dimana terjadi perkalian bilangan m dengan bilangan m itu sendiri karena melakukan perhitungan matriks persegi selanjutnya menuju proses MPI_Broadcast.
4 29 Kemudian proses selanjutnya adalah melakukan proses random elemenelemen matriks pada id = 0, kemudian dilakukan proses MPI_REDUCE mengumpulkan hasil penghitungan random dari tiap-tiap prosesor, mereduksi data-data tersebut ke sebuah nilai dan menyimpan hasil reduksi tersebut ke prosesor induk untuk dilakukan perhitungan matriks. Kemudian melakukan proses random elemen-elemen matriks pada masing masing id, setelah proses tersebut dilaksanakan selanjutnya proses memasukan array random kedalam array elemen matriks pada masing-masing id dan selanjutnya proses perulangan kordinat elemen-elemen matriks pada masing-masing id. Setelah itu terjadi proses perulangan untuk perkalian elemen-elemen matriks ordo pertama dan ordo ke dua kemudian dilakukan proses MPI_REDUCE. Proses selanjutnya adalah tampilan akhir program dimana masing-masing prosesor menampilkan hasil perkalian elemen-elemen matriks serta waktu yang dibutuhkan untuk melakukan proses tersebut. 3.5 Rangkaian Komputer Kluster Untuk membuat komputer kluster pada tugas akhir ini menggunakan PC yang heterogen yang mempunyai kapasitas memori dan RAM yang berbeda-beda. Alasan menggunakan PC yang heterogen bila dibandingkan dengan PC yang homogen adalah berikut kekurangan dan kelebihannya: 1. PC Homogen: Kelebihan: - waktu pemprosesan untuk komunikasi antar prosesor pada jaringan komputer homogen lebih stabil karena mempunyai kecepatan prosesor yang sama. - waktu eksekusi untuk menyelesaikan program cenderung lebih stabil karena memiliki kapasitas memori dan RAM yang sama.
5 30 Kekurangan: - jaringan komputer homogen memungkinkan waktu pemrosesan yang tidak lebih cepat atau stabil dari pada heterogen dikarenakan pada jaringan komputer homogen mempunyai spesifikasi prosesor yang sama pada masing-masing komputernya. 2. PC Heterogen: Kekurangan : - Memiliki kapasitas RAM dan memori yang berbeda sehingga kecepatan dalam pemrosesan data cenderung tidak stabil. - Waktu pemrosesan untuk mengeksekusi program yang cenderung tidak stabil terkadang menghasilkan waktu yang tidak lebih cepat dibandingkan homogen karena waktu komunikasi antar prosesor yang berbeda dalam membuat komunikasi antara prosesor yang lebih cepat berkomunikasi ke prosesor yang lebih lambat, perbedaan ini yang terkadang menimbulkan waktu yang tidak lebih cepat. Kelebihan : - Pada jaringan komputer heterogen dengan spesifikasi prosesor yang berbeda memungkinkan prosesor yang lebih tinggi mengcover proses perhitungan yang lebih besar yang menghasilkan kecepatan yang lebih tinggi dibandingkan dengan prosesor yang spesifikasi prosesornya sama karena akan diperhitungkan dengan memilih metode yang menyeimbangkan beban komputasi pada seluruh komputer yang tersedia dalam kluster (load balancing) yang digunakan untuk mendistribusikan komputasi kesemua prosesor guna mencapai kecepatan eksekusi setinggi mungkin
6 31 Secara garis besar alur programnya sebagai berikut: mulai If id = 0 Tidak Ya Masukan nilai (m) MPI_BROADCAST n=m+1 & zz=m*n For c=1 to zz step c First[c]=-1 Second[c]=-1 Firstbuf[c]=-1 Secondbuf[c]=-1 Tidak If id = 0 Ya for c=1 to zz step c first [c] = rand%5 + 1 second[c]= rand%5 + 1 firstbuf [c] = first[c] secondbuf [c] = second[c] If w ==2 Tidak If w ==3 Tidak Ya Ya MPI_REDUCE FIRST MPI_REDUCE FIRST MPI_REDUCE SECOND MPI_REDUCE SECOND MPI_REDUCE FIRST MPI_REDUCE SECOND 1
7 32
8 33
9 34 6 If id = 0 Tidak Ya durasi=waktu_akhir-waktu_awal Tampilan Hasil Selesai Gambar 3.4 Flowchart program matriks 3.6 Pseudo Code Dari diagram alur atau yang disebut flowchart, dapat dibuat pseudo code sebagai berikut: IF id=0 Input : Nilai ordo matriks ENDIF MPI_Init() Waktu_awal : waktu dimulainya perhitungan MPI_Bcast : mengirim data keseluruh prosesor n=m+1 zz=m*n FOR c=1 first [c]=-1 second[c]=-1 firstbuf[c]=-1 secondbuf[c]=-1
10 35 IF id==0 FOR c=1 :Melakukan proses random elemen matriks first[c]=rand()%5+1 second[c]=rand()%5+1 firstbuf[c]=first[c] secondbuf[c]=second[c] ENDIF IF (w==2) THEN MPI_Reduce : Mengumpulkan hasil dari tiap-tiap prosesor MPI_Reduce : Mengumpulkan hasil dari tiap-tiap prosesor ENDIF IF (w==3) THEN MPI_Reduce : Mengumpulkan hasil dari tiap-tiap prosesor MPI_Reduce : Mengumpulkan hasil dari tiap-tiap prosesor MPI_Reduce : Mengumpulkan hasil dari tiap-tiap prosesor MPI_Reduce : Mengumpulkan hasil dari tiap-tiap prosesor ENDIF IF id=0 THEN PRINT id 0 first FOR c=1 : Melakukan proses perulangan untuk id 0 PRINT id = 0 kordinat first ENDIF IF id=0 THEN PRINT id 0 second FOR c=1 : Melakukan proses perulangan untuk id 0 PRINT id = 0 kordinat second ENDIF IF id=1 THEN PRINT id 1 first
11 36 FOR c=1 : Melakukan proses perulangan untuk id 1 PRINT id = 1 kordinat first ENDIF IF id=1 THEN PRINT id 1 second FOR c=1 : Melakukan proses perulangan untuk id 1 PRINT id = 1 kordinat second ENDIF IF id=2 THEN PRINT id 2 first FOR c=1 : Melakukan proses perulangan untuk id 2 PRINT id = 2 kordinat first ENDIF IF id=2 THEN PRINT id 2 second FOR c=1 : Melakukan proses perulangan untuk id 2 PRINT id = 2 kordinat second ENDIF IF id=0 THEN FOR c=1 : Melakukan proses perulangan untuk id 0 FOR d=1 : Melakukan proses perulangan untuk id 0 rr=rr + 1 PRINT rr id 0 satu[c][d]=first[rr] dua[c][d]=second[rr] ENDIF
12 37 IF id=1 THEN FOR c=1 :Melakukan proses perulangan untuk id 1 FOR d=1 : Melakukan proses perulangan untuk id 1 rr=rr+1 PRINT rr id 1 satu[c][d]=first[rr] dua[c][d]=second[rr] ENDIF IF id=2 THEN FOR c=1 :Melakukan proses perulangan untuk id 2 FOR d=1 : Melakukan proses perulangan untuk id 2 rr=rr+1 PRINT rr id 2 satu[c][d]=first[rr] dua[c][d]=second[rr] ENDIF IF id=0 THEN FOR c=1 : Melakukan proses perulangan untuk id 0 FOR d=1 : Melakukan proses perulangan untuk id 0 print kordinat satu print kordinat dua ENDIF IF id=1 THEN FOR c=1 : Melakukan proses perulangan untuk id 1 FOR d=1 : Melakukan proses perulangan untuk id 1 print kordinat satu
13 38 print kordinat dua ENDIF IF id=2 THEN FOR c=1 : Melakukan proses perulangan untuk id 2 FOR d=1 : Melakukan proses perulangan untuk id 2 print kordinat satu print kordinat dua ENDIF FOR c=1 : Melakukan proses perulangan untuk perkalian matriks FOR d=1 : Melakukan proses perulangan untuk perkalian matriks FOR k=1 : Melakukan proses perulangan untuk perkalian matriks Sum =sum+satu[c][k]*dua[k][d]: Menghitung nilai variabel sum Multiplay[c][d]=sum : Mengisi variabel multiplay [c][d] dengan variabel sum Multiplaybuf[c][d]=sum : Mengisi variabel multiplaybuf [c][d] dengan variabel sum Sum = 0 : Mengisi variabel sum =0 IF w=2 THEN MPI_Reduce : Mengumpulkan hasil dari tiap-tiap prosesor ENDIF IF w=3 THEN MPI_Reduce : Mengumpulkan hasil dari tiap-tiap prosesor ENDIF FOR c=1 : Melakukan proses perulangan FOR d=id+1 : Melakukan proses perulangan
14 39 print kordinat hasil print nama prosesor Waktu_akhir : waktu akhir perhitungan IF id=0 THEN durasi = waktu_akhir waktu_awal print lama waktu yang dibutuhkan ENDIF MPI_Finalize (); 3.7 Kode Program Pada kode program ini, program melakukan proses random, perulangan, dan melakukan penghitungan matriks ordo 3 x 3, dan waktu yang diperlukan untuk menyelesaikan proses penghitungan, serta nama prosesor yang mengerjakan Proses utama MPI #include <mpi.h> /*Definisi header MPI*/ #include <stdio.h> /*Definisi printf, scanf*/ #include <stdlib.h> /*Standar library*/ #include <math.h> /*Definisi perhitungan matematika*/
15 40 #include <time.h> /*Definisi waktu*/ int main ( int argc, char *argv[] ) /*Program utama*/ int id, m, n, w, rr = 0, c, d, k; /*Deklarasi variabel integer*/ int first[300], second[300], firstbuf[300], secondbuf[300], satu[300][300], dua[300][300], multiplay[300][300], multiplaybuf[300][300], sum = 0, zz; /*Deklarasi variabel integer*/ int np; /*Deklarasi variabel integer*/ int namelen; /*Deklarasi variabel integer*/ double waktu_awal = 0, waktu_akhir, durasi; /*Deklarasi variabel waktu*/ char processor_name[mpi_max_processor_name]; /*Dekalarasi variabel string*/ MPI_Init ( &argc, &argv ); /*Inisialisasi MPI*/ MPI_Comm_size ( MPI_COMM_WORLD, &w ); /*Mengambil nilai jumlah prosessor*/
16 41 MPI_Comm_rank ( MPI_COMM_WORLD, &id ); /*Mengambil nilai id prosessor*/ MPI_Get_processor_name(processor_name, &namelen); /*Mengambil panjang nama node*/ Proses random pada id 0 if (id==0) /*Memeriksa id prosesor*/ printf("masukan nilai \n"); /*Mencetak masukan nilai*/ scanf("%d", &m); /*Menyimpan masukan kedalam variabel m*/ waktu_awal=mpi_wtime(); /*Waktu dimulainya perhitungan*/ MPI_Bcast (&m, 1, MPI_INT, 0, MPI_COMM_WORLD); /*Mengirim data ke seluruh prosesor ( data yang akan dikirim, jumlah data, tipe data buffer, rank dari broadcast, communicator yang digunakan)*/ n = m+1; /*Menghitung variabel n = variabel m + 1*/
17 42 zz = m*n ; /*Menghitung variabel zz = variabel m + variabel n*/ srand (time(null)); /* Agar diperoleh nilai acak*/ for ( c = 1 ; c <= zz ; c++ ) /*Melakukan perulangan dari 1 sampai variabel zz*/ first[c]= -1; /*Mengisi variabel first[c] = -1*/ second[c]= -1; /*Mengisi variabel second[c] = -1*/ firstbuf[c]= -1; /*Mengisi variabel firstbuf[c] = -1*/ secondbuf[c]= -1; /*Mengisi variabel secondbuf[c] = -1*/ if (id==0) /*Memeriksa id prosesor*/ for (c = 1; c <= zz ; c++)
18 43 /*Melakukan perulangan dari 1 sampai variabel zz*/ first[c] = rand()%5 + 1; ; /*Mengisi variabel first [c] = rand()%5 + 1*/ second [c] = rand()%5 + 1; /*Mengisi variabel second [c] = rand()%5 + 1*/ firstbuf[c] = first[c]; /*Mengisi variabel firstbuf [c] = variabel first [c]*/ secondbuf[c] = second[c]; /*Mengisi variabel secondbuf [c] = variabel second [c]*/ Proses reduksi jika jumlah node yang digunakan 2 if ( w == 2) /*Memeriksa variabel w*/ MPI_Reduce(&firstbuf, &first, zz, MPI_INT, MPI_MAX, 1, MPI_COMM_WORLD); /*Mengumpulkan hasil dari tiap-tiap prosesor (buffer yang akan dikirim, buffer untuk menerima, jumlah data buffer,
19 44 tipe data buffer, operasi MPI, rank atau proses yang menerima data, communicator yang digunakan) */ MPI_Reduce(&secondbuf, &second, zz, MPI_INT, MPI_MAX, 1, MPI_COMM_WORLD); /*Mengumpulkan hasil dari tiap-tiap prosesor(buffer yang akan dikirim, buffer untuk menerima, jumlah data buffer, tipe data buffer, operasi MPI, rank atau proses yang menerima data, communicator yang digunakan) */ Proses reduksi jika jumlah node yang digunakan 3 if (w == 3) /*Memeriksa variabel w*/ MPI_Reduce(&firstbuf, &first, zz, MPI_INT, MPI_MAX, 1, MPI_COMM_WORLD); /*Mengumpulkan asil dari tiap-tiap prosesor(buffer yang akan dikirim, buffer untuk menerima, jumlah data buffer, tipe data buffer, operasi MPI, rank atau proses yang menerima data, communicator yang digunakan) */ MPI_Reduce(&secondbuf, &second, zz, MPI_INT, MPI_MAX, 1, MPI_COMM_WORLD); /*Mengumpulkan hasil dari tiap-tiap prosesor(buffer yang akan dikirim, buffer untuk menerima, jumlah data buffer, tipe data buffer, operasi MPI, rank atau proses yang menerima data, communicator yang digunakan)*/
20 45 MPI_Reduce(&firstbuf, &first, zz, MPI_INT, MPI_MAX, 2, MPI_COMM_WORLD); /*Mengumpulkan hasil dari tiap-tiap prosesor(buffer yang akan dikirim, buffer untuk menerima, jumlah data buffer, tipe data buffer, operasi MPI, rank atau proses yang menerima data, communicator yang digunakan) */ MPI_Reduce(&secondbuf, &second, zz, MPI_INT, MPI_MAX, 2, MPI_COMM_WORLD); /*Mengumpulkan hasil dari tiap-tiap prosesor(buffer yang akan dikirim, buffer untuk menerima, jumlah data buffer, tipe data buffer, operasi MPI, rank atau proses yang menerima data, communicator yang digunakan) */ Proses random pada id 0 if (id==0) /*Memeriksa id prosesor*/ printf("id 0 first \n"); /*Mencetak id 0*/ for ( c = 1 ; c <= zz ; c++ ) /*Melakukan perulangan dari 1 sampai variabel zz*/ printf("id = 0 kordinat first %d,,adalah %d \n", c, first[c]); /*Mencetak id = 0 kordinat first*/
21 46 if (id==0) /*Memeriksa id prosesor*/ printf("id 0 second \n"); /*Mencetak id 0*/ for ( c = 1 ; c <= zz; c++ ) /*Melakukan perulangan dari 1 sampai variabel zz*/ printf("id = 0 kordinat second %d,,adalah %d \n", c, second[c]); /*Mencetak id = 0 kordinat second*/ Output program: masukan nilai id 0 first id = 0 kordinat first 1,,adalah 5 id = 0 kordinat first 2,,adalah 3 id = 0 kordinat first 3,,adalah 1 id = 0 kordinat first 4,,adalah 3 id = 0 kordinat first 5,,adalah 4 id = 0 kordinat first 6,,adalah 4 id = 0 kordinat first 7,,adalah 1
22 47 id = 0 kordinat first 8,,adalah 2 id = 0 kordinat first 9,,adalah 2 id = 0 kordinat first 10,,adalah 2 id = 0 kordinat first 11,,adalah 4 id = 0 kordinat first 12,,adalah 5 id 0 second id = 0 kordinat second 1,,adalah 2 id = 0 kordinat second 2,,adalah 3 id = 0 kordinat second 3,,adalah 1 id = 0 kordinat second 4,,adalah 3 id = 0 kordinat second 5,,adalah 4 id = 0 kordinat second 6,,adalah 5 id = 0 kordinat second 7,,adalah 1 id = 0 kordinat second 8,,adalah 5 id = 0 kordinat second 9,,adalah 3 id = 0 kordinat second 10,,adalah 3 id = 0 kordinat second 11,,adalah 4 id = 0 kordinat second 12,,adalah Proses random pada id 1 if (id==1) /*Memeriksa id prosesor*/ printf("id 1 first \n"); /*Mencetak id 1*/
23 48 for ( c = 1 ; c <= zz ; c++ ) /*Melakukan perulangan dari 1 sampai variabel zz*/ printf("id = 1 kordinat first %d,,adalah %d \n", c, first[c]); /*Mencetak id = 1 kordinat first*/ if (id==1) /*Memeriksa id prosesor*/ printf("id 1 second \n"); /*Mencetak id 1*/ for ( c = 1 ; c <= zz; c++ ) /*Melakukan perulangan dari 1 sampai variabel zz*/ printf("id = 1 kordinat second %d,,adalah %d \n", c, second[c]); /*Mencetak id = 1 kordinat second*/ Output program: id 1 first id = 1 kordinat first 1,,adalah 5 id = 1 kordinat first 2,,adalah 3 id = 1 kordinat first 3,,adalah 1 id = 1 kordinat first 4,,adalah 3 id = 1 kordinat first 5,,adalah 4 id = 1 kordinat first 6,,adalah 4
24 49 id = 1 kordinat first 7,,adalah 1 id = 1 kordinat first 8,,adalah 2 id = 1 kordinat first 9,,adalah 2 id = 1 kordinat first 10,,adalah 2 id = 1 kordinat first 11,,adalah 4 id = 1 kordinat first 12,,adalah -1 id 1 second id = 1 kordinat second 1,,adalah 2 id = 1 kordinat second 2,,adalah 3 id = 1 kordinat second 3,,adalah 1 id = 1 kordinat second 4,,adalah 3 id = 1 kordinat second 5,,adalah 4 id = 1 kordinat second 6,,adalah 5 id = 1 kordinat second 7,,adalah 1 id = 1 kordinat second 8,,adalah 5 id = 1 kordinat second 9,,adalah 3 id = 1 kordinat second 10,,adalah 3 id = 1 kordinat second 11,,adalah 4 id = 1 kordinat second 12,,adalah Proses random pada id 2 if (id==2) /*Memeriksa id prosesor*/ printf("id 2 first \n"); /*Mencetak id 2*/
25 50 for ( c = 1 ; c <= zz ; c++ ) /*Melakukan perulangan dari 1 sampai variabel zz*/ printf("id = 2 kordinat first %d,,adalah %d \n", c, first[c]); /*Mencetak id = 2 kordinat first*/ if (id==2) /*Memeriksa id prosesor*/ printf("id 2 second \n"); /*Mencetak id 2*/ for ( c = 1 ; c <= zz; c++ ) /*Melakukan perulangan dari 1 sampai variabel zz*/ printf("id = 2 kordinat second %d,,adalah %d \n", c, second[c]); /*Mencetak id = 2 kordinat second*/ Output program: id 2 first id = 2 kordinat first 1,,adalah 5 id = 2 kordinat first 2,,adalah 3 id = 2 kordinat first 3,,adalah 1 id = 2 kordinat first 4,,adalah 3 id = 2 kordinat first 5,,adalah 4 id = 2 kordinat first 6,,adalah 4
26 51 id = 2 kordinat first 7,,adalah 1 id = 2 kordinat first 8,,adalah 2 id = 2 kordinat first 9,,adalah 2 id = 2 kordinat first 10,,adalah 2 id = 2 kordinat first 11,,adalah 4 id = 2 kordinat first 12,,adalah -1 id 2 second id = 2 kordinat second 1,,adalah 2 id = 2 kordinat second 2,,adalah 3 id = 2 kordinat second 3,,adalah 1 id = 2 kordinat second 4,,adalah 3 id = 2 kordinat second 5,,adalah 4 id = 2 kordinat second 6,,adalah 5 id = 2 kordinat second 7,,adalah 1 id = 2 kordinat second 8,,adalah 5 id = 2 kordinat second 9,,adalah 3 id = 2 kordinat second 10,,adalah 3 id = 2 kordinat second 11,,adalah 4 id = 2 kordinat second 12,,adalah Proses memasukan array random kedalam array elemen matriks pada id 0 if (id == 0) /*Memeriksa id prosesor*/ for ( c = 1 ; c <= m ; c++ ) /*Melakukan perulangan dari 1 sampai variabel m*/
27 52 for ( d = 1 ; d <= m ; d++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ rr = rr + 1; /*Menghitung variabel rr = variabel rr + 1*/ printf("rr id 0 = %d \n", rr); /*Mencetak variabel rr pada id 0*/ satu[c][d] = first[rr]; /*Mengisi variabel array satu [c][d] = variabel array first[rr]*/ dua[c][d] = second[rr]; /*Mengisi variabel array dua [c][d] = variabel array second[rr]*/ Output program: rr id 0 = 1 rr id 0 = 2 rr id 0 = 3 rr id 0 = 4
28 53 rr id 0 = 5 rr id 0 = 6 rr id 0 = 7 rr id 0 = 8 rr id 0 = Proses memasukan array random kedalam array elemen matriks pada id 1 if (id == 1) /*Memeriksa id prosesor*/ for ( c = 1 ; c <= m ; c++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ for ( d = 1 ; d <= m ; d++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ rr = rr + 1; /*Menghitung variabel rr = variabel rr + 1*/ printf("rr id 1 = %d \n", rr); /*Mencetak variabel rr pada id 1*/ satu[c][d] = first[rr]; /*Mengisi variabel array satu [c][d] = variabel array first[rr]*/
29 54 dua[c][d] = second[rr]; /*Mengisi variabel array dua [c][d] = variabel array second[rr]*/ Output program: rr id 1 = 1 rr id 1 = 2 rr id 1 = 3 rr id 1 = 4 rr id 1 = 5 rr id 1 = 6 rr id 1 = 7 rr id 1 = 8 rr id 1 = Proses memasukan array random kedalam array elemen matriks pada id 2 if (id == 2) /*Memeriksa id prosesor*/ for ( c = 1 ; c <= m ; c++ )
30 55 /*Melakukan perulangan dari 1 sampai variabel m*/ for ( d = 1 ; d <= m ; d++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ rr = rr + 1; /*Menghitung variabel rr = variabel rr + 1*/ printf("rr id 2 = %d \n", rr); /*Mencetak variabel rr pada id 2*/ satu[c][d] = first[rr]; /*Mengisi variabel satu [c][d] = variabel first[rr]*/ dua[c][d] = second[rr]; /*Mengisi variabel dua [c][d] = variabel second[rr]*/ Output program: rr id 2 = 1 rr id 2 = 2 rr id 2 = 3 rr id 2 = 4 rr id 2 = 5 rr id 2 = 6 rr id 2 = 7
31 56 rr id 2 = 8 rr id 2 = Proses perulangan elemen-elemen matriks pada id 0 if (id == 0) /*Memeriksa id prosesor*/ for ( c = 1 ; c <= m ; c++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ for ( d = 1 ; d <= m ; d++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ printf("kordinat satu %d,%d,adalah %d \n", c, d, satu[c][d]); /*Mencetak informasi kordinat satu dan nilai variabel array satu [c][d]*/ printf("kordinat dua %d,%d,adalah %d \n", c, d,dua[c][d]); /*Mencetak informasi kordinat dua dan nilai variabel array dua [c][d]*/ Output program: kordinat satu 1,1,adalah 5 kordinat dua 1,1,adalah 2
32 57 kordinat satu 1,2,adalah 3 kordinat dua 1,2,adalah 3 kordinat satu 1,3,adalah 1 kordinat dua 1,3,adalah 1 kordinat satu 2,1,adalah 3 kordinat dua 2,1,adalah 3 kordinat satu 2,2,adalah 4 kordinat dua 2,2,adalah 4 kordinat satu 2,3,adalah 4 kordinat dua 2,3,adalah 5 kordinat satu 3,1,adalah 1 kordinat dua 3,1,adalah 1 kordinat satu 3,2,adalah 2 kordinat dua 3,2,adalah 5 kordinat satu 3,3,adalah 2 kordinat dua 3,3,adalah Proses perulangan elemen-elemen matriks pada id 1 if (id == 1) /*Memeriksa id prosesor*/ for ( c = 1 ; c <= m ; c++ ) /*Melakukan perulangan dari 1 sampai variabel m*/
33 58 for ( d = 1 ; d <= m ; d++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ printf("kordinat satu %d,%d,adalah %d \n", c, d, satu[c][d]); /*Mencetak informasi kordinat satu dan nilai variabel array satu[c][d]*/ printf("kordinat dua %d,%d,adalah %d \n", c, d, dua[c][d]); /*Mencetak informasi kordinat dua dan nilai variabel array dua [c][d]*/ Output program: kordinat satu 1,1,adalah 5 kordinat dua 1,1,adalah 2 kordinat satu 1,2,adalah 3 kordinat dua 1,2,adalah 3 kordinat satu 1,3,adalah 1 kordinat dua 1,3,adalah 1 kordinat satu 2,1,adalah 3 kordinat dua 2,1,adalah 3 kordinat satu 2,2,adalah 4 kordinat dua 2,2,adalah 4 kordinat satu 2,3,adalah 4 kordinat dua 2,3,adalah 5 kordinat satu 3,1,adalah 1 kordinat dua 3,1,adalah 1 kordinat satu 3,2,adalah 2 kordinat dua 3,2,adalah 5 kordinat satu 3,3,adalah 2
34 59 kordinat dua 3,3,adalah Proses perulangan elemen-elemen matriks pada id 2 if (id == 2) /*Memeriksa id prosesor*/ for ( c = 1 ; c <= m ; c++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ for ( d = 1 ; d <= m ; d++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ printf("kordinat satu %d,%d,adalah %d \n", c, d, satu[c][d]); /*Mencetak informasi kordinat satu dan nilai variabel array satu[c][d]*/ printf("kordinat dua %d,%d,adalah %d \n", c, d,dua[c][d]); /*Mencetak informasi kordinat dua dan nilai variabel array dua [c][d]*/ Output program: kordinat satu 1,1,adalah 5 kordinat dua 1,1,adalah 2 kordinat satu 1,2,adalah 3
35 60 kordinat dua 1,2,adalah 3 kordinat satu 1,3,adalah 1 kordinat dua 1,3,adalah 1 kordinat satu 2,1,adalah 3 kordinat dua 2,1,adalah 3 kordinat satu 2,2,adalah 4 kordinat dua 2,2,adalah 4 kordinat satu 2,3,adalah 4 kordinat dua 2,3,adalah 5 kordinat satu 3,1,adalah 1 kordinat dua 3,1,adalah 1 kordinat satu 3,2,adalah 2 kordinat dua 3,2,adalah 5 kordinat satu 3,3,adalah 2 kordinat dua 3,3,adalah Proses perulangan untuk perkalian elemen-elemen matriks for (c = 1 ; c <= m ; c++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ for (d = id + 1 ; d <= m ; d+=w ) /*Melakukan perulangan dari id + 1 sampai variabel m dengan penambahan sebanyak variabel w*/
36 61 for (k = 1 ; k <= m ; k++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ sum = sum + satu[c][k]*dua[k][d]; /*Menghitung nilai variabel sum = variabel sum + variabel array satu[c][k] * variabel array dua [k][d]*/ multiplay [c][d] = sum ; /*Mengisi variabel array multiplay [c][d] = variabel sum*/ multiplaybuf [c][d] = sum ; /*Mengisi variabel array multiplaybuf [c][d]= variabel sum*/ sum = 0 ; /*Mengisi variabel sum = 0*/ Proses reduksi jika jumlah node 2 if (w == 2)
37 62 /*Memeriksa variabel w*/ MPI_Reduce(&multiplaybuf, &multiplay, zz, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD); /*Mengumpulkan data dari tiap tiap prosesor*/ Proses reduksi jika jumlah node 3 if (w == 3) /*Memeriksa variabel w*/ MPI_Reduce(&multiplaybuf, &multiplay, zz, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD); /*Mengumpulkan data dari tiap tiap prosesor*/ Proses perulangan dengan tampilan akhir program printf("=======================================\n"); /*Mencetak garis === */
38 63 for ( c = 1 ; c <= m ; c++ ) /*Melakukan perulangan dari 1 sampai variabel m*/ for ( d = id + 1 ; d <= m ; d+=w ) /*Melakukan perulangan dari 1 sampai variabel m dengan penambahan sebanyak variabel w*/ printf("kordinat hasil %d,%d,adalah %d \n", c, d, multiplay[c][d]); /*Mencetak informasi kordinat hasil dan nilai variabel multiplay [c][d]*/ printf("nama processor adalah %s\r\n", processor_name); /*Mencetak informasi nama prosesor dan node yang mengerjakannya*/ waktu_akhir = MPI_Wtime(); /*waktu akhir perhitungan*/ printf("=======================================\n"); /*Mencetak garis ===*/ if ( id == 0) /*Memeriksa id prosesor*/ durasi = waktu_akhir - waktu_awal;
39 64 /*Mengukur kecepatan hitung dengan mengurangi nilai variabel waktu_akhir variabel waktu_awal*/ printf("lama waktu yang dibutuhkan adalah %.20f\n", durasi); /*Mencetak lama waktu yang dibutuhkan dan nilai dari variabel durasi*/ MPI_Finalize ( ); /*keluar dari MPI atau membatalkan proses yang masih berjalan*/ Output program: ================================================ kordinat hasil 1,3,adalah 23 kordinat hasil 2,3,adalah 35 kordinat hasil 3,3,adalah 17 nama processor adalah fitria-pc ================================================ kordinat hasil 1,1,adalah 20 kordinat hasil 2,1,adalah 22 kordinat hasil 3,1,adalah 10 nama processor adalah acer-pc ================================================ lama waktu yang dibutuhkan adalah ================================================ kordinat hasil 1,2,adalah 32 kordinat hasil 2,2,adalah 45 kordinat hasil 3,2,adalah 21 nama processor adalah ningrum-pc ================================================
40 Structured Chart 3.9 Pengujian Program Secara Manual Untuk pengujian, dapat digunakan rumus matriks persegi dimana jumlah barisnya sama dengan jumlah kolomnya. Matriks A Matriks B
41 66 Contoh perhitungan manual : ((1*1)+(2*2)+(3*2)) ((1*2)+(2*2)+(3*3)) ((1*3)+(2*1)+(3*3)) Matriks A*B= ((1*1)+(2*2)+(3*2)) ((1*2)+(2*2)+(3*3)) ((1*3)+(2*1)+(3*3)) ((2*1)+(2*2)+(1*2)) ((2*2)+(2*2)+(1*3)) ((2*3)+(2*1)+(1*3)) Matriks A*B = Dari hasil penghitungan di atas maka didapat nilai matriks. Pada PC Cluster apabila menggunakan 2 node atau lebih dan memiliki task lebih dari satu maka PC Cluster secara otomatis akan membagi tasks tersebut ke node yang lain.
67
BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Kompilasi Program Bahasa pemrograman yang digunakan adalah bahasa C. Simpan program hitung matriks kedalam file C dan simpan di drive C kemudian ubah file menjadi
Lebih terperinciBAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Instalasi Windows 7 Ultimate Didalam manajemen perangkat lunak terdapat proses yang mendefiniskan sistem dan komponen-komponen yang menggambarkan bagaimana serangkaian
Lebih terperinciBAB III METODOLOGI PENELITIAN
BAB III METODOLOGI PENELITIAN Simulasi pemrograman paralel pada medan elektromagnetik berdimensi satu dengan metode Finite Difference Time Domain (FDTD) dilakukan untuk menampilkan secara grafis medan
Lebih terperinciBAB III PERANCANGAN SISTEM
BAB III PERANCANGAN SISTEM 3.1 Konfigurasi Cluster PC Multicore Penelitian ini bertujuan untuk mengetahui pengaruh algortima paralel pada kinerja komputasi paralel. Untuk itu konfigurasi hardware disusun
Lebih terperinciBAB III METODE PENELITIAN
BAB III METODE PENELITIAN Penelitian implementasi pemrograman paralel dalam deteksi tepi menggunakan metode operator Sobel dibuat dengan menggunakan bahasa pemrograman C++. Metode penelitian yang digunakan
Lebih terperinciAlgoritma Pemrograman. Fery Updi,M.Kom
Algoritma Pemrograman Fery Updi,M.Kom 1 Kompetensi Detail Mampu menjelaskan Prinsip-prinsip Algoritma Mampu menjelaskan Konsep Bahasa Pemrograman Mampu membuat Flowchart dan Pseudocode Mampu menjelaskan
Lebih terperinciBAB IV HASIL DAN UJI COBA
BAB IV HASIL DAN UJI COBA Dalam bab ini akan dibahas mengenai pemanfaatan cluster untuk melakukan komputasi paralel dengan OCTAVE MPITB. Program yang digunakan sebagai uji coba adalah program perkalian
Lebih terperinciPemrograman Dasar C. Minggu 6
Pemrograman Dasar C Minggu 6 Topik Bahasan Fungsi Menulis sekali digunakan berulang kali Tugas yang dikompartemenkan Variabel lokal dalam fungsi Teknik Mendesain Top-Down Kode Pseudo Struktur dan Diagram
Lebih terperinciPerulangan, Percabangan, dan Studi Kasus
Perulangan, Percabangan, dan Studi Kasus Perulangan dan percabangan merupakan hal yang sangat penting dalam menyusun suatu program Pada pertemuan kali ini akan dibahas secara detail tentang perulangan
Lebih terperinciPENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:
PENGENALAN BAHASA C A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini: Kebanyakan pemrogram jarang memberikan keterangan/
Lebih terperinciArray 1 A. TUJUAN PEMBELAJARAN
PRAKTIKUM 18 Array 1 A. TUJUAN PEMBELAJARAN 1. Memahami konsep array dan penyimpanannya dalam memori 2. Mempelajari pengunaan variabel array berdimensi satu 3. Memahami penggunaan variabel array berdimensi
Lebih terperinciBahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.
1 Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram. Program Utama SubProgram SubProgram SubProgram SubProgram
Lebih terperinciBAB III METODE PENELITIAN
BAB III METODE PENELITIAN Pada penelitian ini, dilakukan analisis pendahuluan dari waktu eksekusi algoritma Shell sort dan Quick sort untuk mengetahui titik perpotongan data antara kedua algoritma. Setelah
Lebih terperinciLAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III
LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III UNTUK MEMENUHI TUGAS MATAKULIAH PRAKTIKUM ALGORITMA DAN STRUKTUR DATA yang dibina oleh Bapak Didik Dwi Prasetya Oleh: Adhe
Lebih terperinci1. Mempelajari konsep dasar array, array ganda, pengiriman array ke fungsi dan string 2. Membuat program menggunakan array, array ganda
Pertemuan ke-8 Array TUJUAN 1. Mempelajari konsep dasar array, array ganda, pengiriman array ke fungsi dan string 2. Membuat program menggunakan array, array ganda 8. 1. PENDAHULUAN Array adalah sebuah
Lebih terperinciFungsi : Dasar Fungsi
PRAKTIKUM 13 Fungsi : Dasar Fungsi A. TUJUAN PEMBELAJARAN 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur. B. DASAR TEORI Fungsi adalah suatu bagian
Lebih terperinciPraktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:
Praktikum 7 Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: Konsep pengurutan dengan insertion sort dan selection sort Struktur data proses pengurutan Implementasi algoritma pengurutan
Lebih terperinciBAB I. LARIK (ARRAY) Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu identifier (pengenal).
BAB I. LARIK (ARRAY) Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu identifier (pengenal). Masing-masing elemen larik diakses menggunakan indeks (subscript) dari nol
Lebih terperinciAlgoritme dan Pemrograman
Algoritme dan Pemrograman Kuliah #7 dan #8 Array Program Menghitung Rataan 3 Nilai #include int nilai1, nilai2, nilai3; float rataan; void main() printf ( Masukkan nilai 1 );scanf( %d,&nilai1);
Lebih terperinciDIKTAT MATA KULIAH PEMROGRAMAN I BAB VII ARRAY
DIKTAT MATA KULIAH PEMROGRAMAN I BAB VII ARRAY IF Tujuan 1. Memahami array berdimensi satu 2. Memahami array berdimensi dua Pengertian Array Array merupakan kumpulan dari nilai-nilai data yang bertipe
Lebih terperinciPSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR
1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode
Lebih terperinciALGORITMA (2) Mengupas Kentang
Rosa Ariani Sukamto ROSA ARIANI SUKAMTO Blog: http://udinrosa.wordpress.com Website: http://www.gangsir.com Facebook: https://www.facebook.com/rosa.ariani.sukamto Email: rosa_if_itb_01@yahoo.com ALGORITMA
Lebih terperinciPengenalan Bahasa C. Yuli Sun Hariyani D3 Teknik Telekomunikasi Institut Teknologi Telkom
Pengenalan Bahasa C Yuli Sun Hariyani D3 Teknik Telekomunikasi Institut Teknologi Telkom Algoritma & Bahasa C Algoritma Program luaspersegi Kamus sisi : integer Luas : integer Algoritma output( Masukkan
Lebih terperinciPencarian (Searching)
Praktikum 11 Pencarian (Searching) POKOK BAHASAN: Konsep pencarian dengan sequential search dan binary search Struktur data proses pencarian Implementasi algoritma pencarian sequential search dan binary
Lebih terperinci3 sks (2,1) 1 sks: Lab Session. Course material: History Algorithm. Programming (C/C++):codeblock,gnu compiler
Algoritma & Programming 3 sks (2,1) 2 sks: Teori 1 sks: Lab Session Course material: History Algorithm Flowchart atau aliran proses Programming (C/C++):codeblock,gnu compiler Asal kata Algoritma berasal
Lebih terperinciARRAY DIMENSI SATU Setiap elemen array dapat diakses melalui indeks. Indeks array secara default dimulai dari 0.
Array SASARAN Memahami array berdimensi satu Memahami array berdimensi dua Memahami array berdimensi banyak Memahami inisialisasi array yang tak berukuran Melewatkan array sbg parameter ke suatu fungsi
Lebih terperinciBahasa C Array. Slide diambil dari MK Dasar-Dasar Pemrograman Fasilkom UI Dimodifikasi dan disesuaikan dngn kebutuhan pengajaran di PTI-Undiksha
Bahasa C Array Slide diambil dari MK Dasar-Dasar Pemrograman Fasilkom UI Dimodifikasi dan disesuaikan dngn kebutuhan pengajaran di PTI-Undiksha Pengenalan Array Array (larik) merupakan suatu struktur data
Lebih terperinciBAB 4 PENGENALAN BAHASA C
Bab 4 Pengenalan Bahasa C 35 BAB 4 PENGENALAN BAHASA C TUJUAN PRAKTIKUM 1. Mengetahui sejarah perkembangan bahasa C. 2. Mengerti struktur program bahasa C. 3. Mengerti konsep tipe data, variabel, & operator
Lebih terperinciPENGENALAN KOMPUTER. Sistem Komputer. Dian Palupi Rini, M.Kom
PENGENALAN KOMPUTER Dian Palupi Rini, M.Kom Sistem Komputer Komputer Definisi komputer adalah alat elektronik yang dapat menerima input data, mengolah data dan memberikan hasil dalam bentuk informasi dengan
Lebih terperinciAlgoritma dan Struktur Data. Ramos Somya
Algoritma dan Struktur Data Ramos Somya Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat banyak record,
Lebih terperincia[0] a[1] a[2] a[3] a[4] a[5] x
Array Algoritme dan Pemrograman Kuliah #8 Array Dalam matematika dikenal variabel berindeks x 0, x 1, x 2,, x n-1. Angka 0, 1, 2,, n-1 pada variabel x disebut sebagai indeks atau subscript. Variabel berindeks
Lebih terperinciP11 Array. A. Sidiq Purnomo Program Studi Teknik Informatika Universitas Mercu Buana Yogyakarta
P11 Array A. Sidiq Purnomo Program Studi Teknik Informatika Universitas Mercu Buana Yogyakarta Tujuan Mahasiswa mampu mengetahui dan memahami : Mengetahui Perintah Array Mengetahui dan Memahami Array Satu
Lebih terperinciLarik/ Array int a1, a2, a3, a4, a5;
Matakuliah : Struktur Data Versi : 1.0.0 Materi : Larik/ Array Penyaji : Zulkarnaen NS 1 Larik/ Array Variabel digunakan hanya untuk menyimpan 1 (satu) buah nilai dengan tipe data tertentu. Misalnya: int
Lebih terperinciPraktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort
Praktikum 8 Pengurutan (Sorting) Bubble Sort, Shell Sort POKOK BAHASAN: Konsep pengurutan dengan bubble sort dan shell sort Struktur data proses pengurutan Implementasi algoritma pengurutan bubble sort
Lebih terperinciALGORITMA & PEMROGRAMAN II ARRAY
ALGORITMA & PEMROGRAMAN II ARRAY I Gede Agus Suwartane Array 1 Array Koleksi data dimana setiap elemen memakai nama dan tipe yang sama dan setiap elemen diakses dengan membedakan indeks array-nya. Ciri
Lebih terperinciAlgoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C
TUGAS STRUKTUR DATA Shell Sort Ascending Dan Binary Sequential Search Menggunakan C IF-5 Nama Anggota : - Rohendi 10107193 - Andri Andriyan 10107210 - Yuli Yanti A 10107218 - Jajang Kusmita 10107227 JURUSAN
Lebih terperinciPRAKTIKUM 9 ARRAY. ARRAY BERDIMENSI SATU Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :
PRAKTIKUM 9 ARRAY A. Tujuan 1. Menjelaskan tentang array berdimensi satu 2. Menjelaskan tentang array berdimensi dua 3. Menjelaskan tentang array berdimensi banyak 4. Menjelaskan tentang inisialisasi array
Lebih terperinciPERULANGAN PROSES. Proses perulangan ditandai dengan mekanisme yang disebut loop. Proses Loop : Proses yang berulang-ulang
PERULANGAN PROSES Proses perulangan ditandai dengan mekanisme yang disebut loop Proses Loop : Proses yang berulang-ulang Perintah atau notasi dalam struktur pengulangan Melipiuti : Pernyataan for Pernyataan
Lebih terperinciP - 3 Bab 2 : Pengantar Pemrograman C
P - 3 Bab 2 : Pengantar Pemrograman C 2.1 Tujuan Mahasiswa dapat mengetahui dan memahami sejarah bahasa C, struktur program C dan alur eksekusi program C 2.2 Materi 1. Sejarah C 2. Interprenter dan Compiler
Lebih terperinciP3 Pengantar Pemrograman C
P3 Pengantar Pemrograman C A. Sidiq Purnomo Prodi Teknik Informatika & Prodi Sistem Informasi Universitas Mercu Buana Yogyakarta Tujuan Mahasiswa dapat mengetahui dan memahami sejarah bahasa C, struktur
Lebih terperinciTutorial 08 Pertemuan 12
Tutorial 08 Pertemuan 12 Tutorial Kuliah Pemrograman Terstruktur I TUJUAN & SASARAN Disusun oleh : Danang Junaedi Setelah mengerjakan tutorial ini mahasiswa diharapkan dapat : 1. Menjelaskan penggunaan
Lebih terperinciARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera
ARRAY PENGANTAR PROGRAM STUDI Institut Teknologi Sumatera TUJUAN PERKULIAHAN Mahasiswa memahami konsep dan cara kerja array Mahasiswa mampu membuat program sederhana menggunakan array satu dimensi PRE
Lebih terperinciAlgoritme dan Pemrograman
Algoritme dan Pemrograman Kuliah #8 Array Program Menghitung Rataan 3 Nilai int nilai1, nilai2, nilai3; float rataan; int main() { printf ("Masukkan nilai 1 :");scanf("%d",&nilai1); printf ("Masukkan nilai
Lebih terperinciPemrograman Dasar C. Minggu 6
Pemrograman Dasar C Minggu 6 Latihan Soal Buatlah program yang meminta seseorang untuk memasukkan angka bilangan riil sebanyak 3 kali, dan program akan menampilkan jumlah total dan rata-ratanya. Bilangan
Lebih terperinciAlgoritma dan Pemrograman. Loop control structures: WHILE. Loop control structures: WHILE Perhatikan potongan program berikut: 12/29/2011
Algoritma dan Pemrograman WHILE while (kondisi) statement; FALSE kondisi? TRUE statement Pernyataan (statements) di dalam struktur WHILE akan diproses minimum NOL kali. Mengapa? WHILE Perhatikan potongan
Lebih terperinciIT234 - Algoritma dan Struktur Data. Ramos Somya
IT234 - Algoritma dan Struktur Data Ramos Somya Pengertian Looping Beberapa instruksi diulang untuk suatu jumlah pengulangan yang tertentu. Jumlah pengulangan dapat diketahui sebelumnya atau ditentukan
Lebih terperinciPemrograman Dasar A R R A Y
Pemrograman Dasar A R R A Y Array Sebagian besar program komputer menangani data dalam jumlah yang suangat besar Taruhlah kalian menulis program yang membaca 100 angka. Apakah kalian akan mendeklarasikan
Lebih terperinciAlgoritme dan Pemrograman
Kuliah #2 Struktur program C Tipe data Input / Output Algoritme dan Pemrograman Beberapa Catatan Lakukan KRS B jika: Belum mendaftar di KRS A Mendaftar di KRS A, tapi nama tidak muncul di absen Pindah
Lebih terperinciPraktikum 9. Pengurutan (Sorting) Quick Sort, Merge Sort
Praktikum 9 Pengurutan (Sorting) Quick Sort, Merge Sort POKOK BAHASAN: Konsep pengurutan dengan quick sort dan merge sort Struktur data proses pengurutan Implementasi algoritma pengurutan quick sort dan
Lebih terperinciA. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual
Praktikum 7 FUNGSI 1 A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual B. DASAR TEORI Fungsi adalah suatu bagian dari program yang dirancang
Lebih terperinci5. Teknik Pengulangan
5. Teknik Pengulangan Counter Teknik kounter dipakai untuk mengontrol pengulangan proses. Pengontrolan ini dilakukan dengan memeriksa isi variabel yang digunakan sebagai kounter, sehingga junlah pengulangan
Lebih terperinciPRAKTIKUM KONSEP PEMROGRAMAN MATERI DECISION DWI SETIYA NINGSIH. November 16, Page 1 of 16 PRAKTIKUM KONSEP PEMROGRAMAN MATERI
DECISION DWI SETIYA NINGSIH 2103157025 November 16, 2015 Page 1 of 16 Decission : if & if else D. PERCOBAAN 1. Buat program yang membaca nilai integer dan menuliskan Nilai a positif jika a>= 0 dan Nilai
Lebih terperinciTipe Data, Variabel, Input/Output
Tipe Data, Variabel, Input/Output Pendahuluan Untuk membuat program dengan bahasa pemrograman C harus memperhatikan struktur dasarnya. Strukturnya diawali dengan bagian preprocessor directive yang biasanya
Lebih terperinciBAHASA PEMROGRAMAN 1 (PERTEMUAN 3)
BAHASA PEMROGRAMAN 1 (PERTEMUAN 3) ARRAY KUMPULAN SOAL LATIHAN PREPARED BY CHANDRA 092110187 05 06 2010 (REVISED) PENGENALAN ARRAY Array dari Pesawat Array dari Serangga Array dari Kartu Array dari Karakter
Lebih terperinciREVIEW ARRAY. Institut Teknologi Sumatera
REVIEW ARRAY DASAR PEMROGRAMAN Institut Teknologi Sumatera TUJUAN PERKULIAHAN Mahasiswa mengingat kembali konsep dan cara kerja array Mahasiswa mampu membuat program menggunakan array PRE TEST Tuliskan,
Lebih terperinciA. TUJUAN PEMBELAJARAN
Praktikum 13 Algoritma Pencarian (Searching) A. TUJUAN PEMBELAJARAN Setelah melakukan praktikum dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami konsep pencarian dengan metode sequential search dan
Lebih terperinciBAB III ANALISIS DAN PERANCANGAN. Dalam proses produksi terdapat beberapa faktor yang akan mempengaruhi
BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis Masalah Dalam proses produksi terdapat beberapa faktor yang akan mempengaruhi hasil keluaran produksi. Ada 4 faktor yang saling berhubungan satu dengan yang
Lebih terperinciAlgoritma Pemrograman 2B (Pemrograman C++)
Algoritma Pemrograman 2B (Pemrograman C++) Jurusan Sistem Komputer Dr. Lily Wulandari Materi 2 INPUT DAN OUTPUT PADA C++ 1 Outline Basic Input dan Output Fungsi Cin dan Cout Komentar Macam-macam manipulator
Lebih terperinci1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.
LAB SHEET ALGORITMA DAN STRUKTUR DATA Semester : 4 Percabangan Komplek dan case of 200 menit No. : LST/EKA/EKA 305/03 Revisi : Tgl. : Hal. 1 dari 3 hal. 1. Kompetensi Mengenal dan memahami algoritma percabangan
Lebih terperinciALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION
ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION POINTER POINTER ADALAH SUATU VARIABEL PENUNJUK, BERISI NILAI YANG MENUNJUK ALAMAT SUATU LOKASI MEMORI TERTENTU. JADI POINTER TIDAK BERISI NILAI DATA, MELAINKAN
Lebih terperinci04/03/2013. Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia
By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia Email: vilia.meyana@ftumj.ac.id Website: http://viliaekameyana.blogspot.com Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% 1
Lebih terperinciAlgoritma dan Pemrograman
Algoritma dan Pemrograman bagian 2 2009 Modul ini menjelaskan tentang bahasa C dan apa saja yang dibutuhkan bila kita akan menulis suatu program dengan bahasa C. Editor yang dipakai adalah Turbo C++ 4.5.
Lebih terperinciBAB III ANALISIS ALGORITMA
BAB III ANALISIS ALGORITMA III.1 Analisis Sistem Bab ini akan membahas tentang analisis dan perancangan sistem algoritma knapsack dengan data proyek yang digunakan bersumber dari PT. GITS Indonesia. Terdapat
Lebih terperinciMakalah. STRUKTUR DATA ( Array )
Makalah STRUKTUR DATA ( Array ) Wahyu Fajrin Mustafa 15.12.8627 STIMIK AMIKOM YOGYAKARTA INFORMATION SYSTEMS 2016/2017 KATA PENGANTAR Puji syukur kepada Tuhan yang Maha Esa kiranya telah diberikan kesehatan
Lebih terperinciJURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK Universitas Widyatama UJIAN TENGAH SEMESTER TA. 2009/2010
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK Universitas Widyatama UJIAN TENGAH SEMESTER TA. 2009/2010 Mata Kuliah/Jurusan : Algoritma & Pemrograman I / Teknik Informatika-S1 Hari/Tanggal : Senin, 25 Oktober
Lebih terperinciBAB III METODE PENELITIAN
BAB III METODE PENELITIAN Pada penelitian implementasi pemrograman paralel pada deteksi tepi dengan menggunakan metode Canny, program komputerdiprogram dengan bahasa pemrograman C++. Dalam penelitian ini,
Lebih terperinciDASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom
DASAR PEMROGRAMAN PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom https://www.facebook.com/groups/dasarpemrogramanc TUJUAN Mengenal sejarah, struktur, sintaks
Lebih terperinciLOGIKA ALGORITMA. Pertemuan 4. By: Augury
LOGIKA ALGORIMA Pertemuan 4 By: Augury augury@pribadiraharja.com Konstanta (Const) Konstanta adalah suatu nilai yang telah di definisikan dan nilainya tidak akan berubah selama progran tersebut di eksekusi.
Lebih terperinciVI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :
VI. FUNGSI 6.1. FUNGSI Fungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi. Hasil
Lebih terperinciTipe Data dan Operator
Tipe Data dan Operator Dasar Algoritma dan Pemrogrman Eka Maulana, ST, MT, MEng. Klasifikasi Tipe Data 1 Tipe Data Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam
Lebih terperinciStruct Lanjutan: Studi Kasus
Struktur Data Struct Lanjutan: Studi Kasus Bayu Setiaji, S.Kom STMIK AMIKOM YOGYAKARTA 1. Tujuan 1. Pendalaman struct 2. Review fungsi 3. Dapat mengaplikasikan konsep struct dalam kasus nyata 2. Penjelasan
Lebih terperinciModul Dasar dasar C. 1. Struktur Program di C++
Modul Dasar dasar C I 1. Struktur Program di C++ Dalam bahasa pemrograman C++ strukturnya adalah sebagai berikut: a. Header. Ex: #include b. Main adalah isi dari program diawali {. dan diakhiri
Lebih terperinciMODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman
I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman Jurusan Teknik Informatika Fakultas Teknik Universitas Maritim Raja Ali Haji ALGORITMA DAN PEMOGRAMAN I. ALGORITMA II. BAHASA
Lebih terperinciKonsep Dasar Struktur Data. Struktur Data
Konsep Dasar Struktur Data Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008 Struktur Data DATA: Bahan/fakta yang digunakan dalam perhitungan / operasi untuk menghasilkan informasi
Lebih terperinciAstika Ayuningtyas Sekolah Tinggi Teknologi Adisutjipto Yogyakarta, Jl Janti Blok R Lanud Adisutipto, Yogyakarta
Seminar SENATIK Nasional Vol. II, 26 Teknologi November Informasi 2016, ISSN: dan 2528-1666 Kedirgantaraan (SENATIK) Vol. II, 26 November 2016, ISSN: 2528-1666 PeP- 115 Pemrosesan Paralel pada Menggunakan
Lebih terperinciBAB III ANALISA MASALAH DAN RANCANGAN PROGRAM
30 BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM III.1. Analisa Pada bab ini akan dibahas mengenai analisis permainan, yaitu konsep aturan dan cara bermain pada game yang berhubungan dengan program yang
Lebih terperinciDasar-dasar Pemrograman C DASAR PEMROGRAMAN & ALGORITMA
Dasar-dasar Pemrograman C DASAR PEMROGRAMAN & ALGORITMA TUJUAN Menjelaskan tentang beberapa tipe data dasar Menjelaskan tentang Variabel Menjelaskan tentang konstanta Menjelaskan tentang berbagai jenis
Lebih terperinciBAB VI BAHASA C Pendahuluan
BAB VI BAHASA C2 6.1 Pendahuluan Bahasa C merupakan evolusi dari bahasa BCPL yang dibuat oleh Martin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan
Lebih terperinciKuliah III - Dasar Pemrograman
17 September 2013 Kuliah III - Dasar Pemrograman Struktur program dalam bahasa C Kompilasi Variabel Statement : Deklarasi & Assignment statement, Inisialisasi Masukan dan Keluaran Contoh 1. assign.c /*
Lebih terperinciRESUME ALGORITMA MERGE SORT DAN REKURENS
RESUME ALGORITMA MERGE SORT DAN REKURENS SRY WAHYUNI H12111292 Statistika Unhas ALGORITMA MERGE SORT Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk memenuhi kebutuhan
Lebih terperinciARSITEKTUR PROGRAM PARALEL BERBASIS MESSAGE-PASSING INTERFACE
ARSITEKTUR PROGRAM PARALEL BERBASIS MESSAGE-PASSING INTERFACE YUSTINA SRI SUHARINI yustina.ss@gmail.com 085779277771 Teknik Informatika Institut Teknologi Indonesia Abstrak. Komputer bekerja dengan cara
Lebih terperinciArray ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.
Array Linear Array (biasa disebut Array) adalah salah satu bentuk struktur data yang bersifat Linear (continue). Nilai data Array harus homogen (bertipe data sama). Array merupakan koleksi data dimana
Lebih terperinciALGORITMA & PEMROGRAMAN
ALGORITMA & PEMROGRAMAN Hadi Hermansyah, S.Si.,., M.Si. Algoritma Adalah inti dari ilmu komputer. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis.
Lebih terperinci1
BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Perkembangan teknologi komputer semakin hari terus meningkat sejalan dengan kebutuhan akan pemakaian komputer yang digunakan untuk menyelesaikan berbagai permasalahan
Lebih terperinciBAB V, VI ARRAY, STRING
1 BAB V, VI ARRAY, STRING V. String ( K a l i m a t ) Dalam bahasa C tidak ada tipe data khusus untuk menyimpan string. String biasanya disimpan sebagai larik dari karakter-karakter. Berbeda dengan bahasa
Lebih terperinciAlgoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.
Algoritma dan Struktur Data Ramos Somya, S.Kom., M.Cs. Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat
Lebih terperinciDosen : Dede Kurniadi, S.Kom.,M.Kom HP :
Dosen : Dede Kurniadi, S.Kom.,M.Kom http://dedekurniadi.com HP : 08977700266 Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards th.1967. Selanjutnya bahasa ini memberikan
Lebih terperinciI.1. MEMBUAT PROGRAM C DENGAN VISUAL C
MODUL I MEMULAI BAHASA C I.1. MEMBUAT PROGRAM C DENGAN VISUAL C++ 2008 Microsoft Visual C++ 2008 (MVC++ 2008) adalah IDE (Integrated Development Environtment) yang digunakan dalam kuliah ini. Ikuti langkah-langkah
Lebih terperinciMODUL III CONTROL FLOW & FLOWCHART
Modul III Control Flow & Flowchart MODUL III CONTROL FLOW & FLOWCHART III.1. III.1.1 CONTROL FLOW Pernyataan dengan if if (kondisi-dari ekspresi logika) if (a > b) //Jika ekspresi logika ++c; //bernilai
Lebih terperinciMODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN
MODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN A. TUJUAN Setelah mempelajari bab ini diharapkan mahasiswa akan mampu : 1. Mengenali dan menggunakan IDE C++ dengan baik. 2. Mengenal dan memahami
Lebih terperinciInstalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart
Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart Pertemuan ke-1 Praktikum Algoritma dan Pemrograman Laboratorium Pemrograman dan Informatika Teori Pengumuman
Lebih terperinciAlgoritma Pemrograman 2B (Pemrograman C++)
Algoritma Pemrograman 2B (Pemrograman C++) Jurusan Sistem Komputer Dr. Lily Wulandari Materi 4 FUNGSI (FUNCTION) PADA C++ 1 Outline Konsep Dasar Fungsi Standar File Header Definisi Fungsi Deklarasi Fungsi
Lebih terperinciBAB III ANALISIS DAN DESAIN SISTEM
BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis Penelitian bertujuan untuk merancang sebuah sistem yang dapat melakukan Perancangan Aplikasi Keamanan Data Dengan Metode End Of File (EOF) dan Algoritma
Lebih terperinciBAB 6 FUNGSI TUJUAN PRAKTIKUM
Bab 6 Fungsi 97 BAB 6 FUNGSI TUJUAN PRAKTIKUM 1. Praktikan mengerti dan dapat menggunakan fungsi dalam program sederhana. 2. Praktikan dapat membedakan antara variabel lokal, variabel global, register
Lebih terperinciKonsep Pemrograman. Bab 7. Fungsi1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah
Bab 7. Fungsi1 Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 Overview Pendahuluan Tujuan Fungsi Dasar Fungsi Jenis Fungsi : memiliki return value Integer Selain integer Tidak memiliki
Lebih terperinciBAHASA PEMROGRAMAN C
BAHASA PEMROGRAMAN C A. Pengenalan Bahasa C diciptakan oleh Dennis Ritchie tahun 1972 di Bell Laboratories. Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer. - Kode bahasa C sifatnya
Lebih terperinciFAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
No. EKA/EKA255 Revisi:01 30 Agu 2014 Hal 1 / 6 A. TUJUAN Setelah melakukan praktik mahasiswa diharapkan dapat: 1. Memahami operator kondisi (operator relasi dan logika) 2. Menguasai penggunaan pernyataan
Lebih terperinciBAB 5. KONDISI DAN ARRAY
BAB 5. KONDISI DAN ARRAY 5.1. Kondisi Penyeleksian Kondisi 1. statement if a. Bentuk sederhana BU : if (kondisi) statemen ; Tanpa Blok statemen if(jumlah > 2) Tunjangan = 0.3; Dengan blok statement : if(jumlah>2)
Lebih terperinciStruktur Kontrol Perulangan (Loop) Algoritme dan Pemrograman. Struktur Kontrol Perulangan: while. Struktur Kontrol Perulangan: while
Algoritme dan Pemrograman Kuliah #4 Struktur kontrol perulangan: while, do while, for Struktur Kontrol Perulangan (Loop) Program akan mengulang satu atau lebih pernyataan berdasarkan kondisi tertentu.
Lebih terperinciPRAKTIKUM 6 PENGULANGAN PROSES 2
PRAKTIKUM 6 PENGULANGAN PROSES 2 A. Tujuan 1. Menjelaskan loop di dalam loop (nested loop) dan contoh kasusnya 2. Menjelaskan penggunaan pernyataan break 3. Menjelaskan penggunaan pernyataan continue 4.
Lebih terperinci