diff --git a/Laporan.txt b/Laporan.txt
new file mode 100644
index 0000000000000000000000000000000000000000..760aba429e21e8b348f21087d0f9dc3e38f7a21a
--- /dev/null
+++ b/Laporan.txt
@@ -0,0 +1,22 @@
+Jumlah Processor | Jumlah Elemen  |   Waktu (s)
+------------------------------------------------
+	1     		|    	 50000     |   	4.459711
+	1	  		|    	100000     |   	17.478811
+	1	  		|    	200000     |   	68.887656
+	1	  		|    	400000     |   	265.848395
+	4	  		|    	 50000     |	1.900707
+	4 	  		|    	100000     |	7.498740
+	4 	  		|		200000     |	30.601998
+	4	  		|		400000     |	119.346230
+	8	  		|		 50000     |	0.950886
+	8	  		|		100000     |	3.859002
+	8	  		|		200000     |	15.401171
+	8	  		|		400000     |	61.539769
+	16	  		|		 50000     |	0.480937
+	16	  		|		100000     |	1.927204
+	16	  		| 	 	200000     |	7.757075
+	16	  		|		400000     |	30.912405
+	32			|		 50000	   |	0.240996
+	32 	  		|		100000     |	0.957297
+	32	  		|		200000     |	3.830962
+	32	  		|		400000	   |	15.425040
diff --git a/omp_bucketSort b/omp_bucketSort
index 40538c133d664a192acf04803d51ca38f0b6bf10..2356c590a7bf8b8ee19c517622eff45065f08a85 100755
Binary files a/omp_bucketSort and b/omp_bucketSort differ
diff --git a/omp_bucketSort.c b/omp_bucketSort.c
index 4a4baaa0e9617200917f6e53bbdfcb550b6b6ca8..28b921784cf55edee3152405c0957982fd98c978 100644
--- a/omp_bucketSort.c
+++ b/omp_bucketSort.c
@@ -28,24 +28,37 @@ int main(int argc, char* argv[]){
     fprintf(stderr, "usage: %s <number of threads> <number of elements>\n", argv[0]);
     exit(0);
   }
-
   thread_count = atoi(argv[1]);
   n = atoi(argv[2]);
 
   // randomize
   rand_nums = create_rand_nums(n, n);
 
+  // determine interval
+  int range = n/thread_count;
+
+  //find max num elements
+  int bucket_size[thread_count];
+  for(int i = 0; i <thread_count; i++){
+    bucket_size[i] = 0;
+  }
+  for (int i = 0; i < n; i++){
+    int temp = rand_nums[i];
+    bucket_size[temp/range] += 1;
+  }
+  int max_size = 0;
+  for (int i = 0; i < thread_count; i++){
+    if (max_size < bucket_size[i]) max_size = bucket_size[i];
+  }
+
   //max buckets
-  int buckets[thread_count][n];
+  int buckets[thread_count][max_size + 1];
 
   //assign initial buckets capacity to buckets
   for(int i = 0; i <thread_count; i++){
     buckets[i][0] = 0;
   }
-
-  // determine interval
-  int range = n/thread_count;
-
+  
   // assign to buckets
   for (int i = 0; i < n; i++){
     int temp = rand_nums[i];
diff --git a/omp_bucketSort.dSYM/Contents/Resources/DWARF/omp_bucketSort b/omp_bucketSort.dSYM/Contents/Resources/DWARF/omp_bucketSort
index 38133ddb6d823ea384d5b4280eb7048611255a44..8eeb163ed057eb68cacceaf0906b46604feb0e44 100644
Binary files a/omp_bucketSort.dSYM/Contents/Resources/DWARF/omp_bucketSort and b/omp_bucketSort.dSYM/Contents/Resources/DWARF/omp_bucketSort differ