Skip to content

Commit f2da527

Browse files
committed
docs: menambahkan dokumentasi format doxygen
1 parent e98fadf commit f2da527

File tree

2 files changed

+114
-25
lines changed

2 files changed

+114
-25
lines changed
Lines changed: 59 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,42 @@
1+
/**
2+
* @file insertion_sort.cpp
3+
*
4+
* @author Muh Yusuf
5+
*
6+
* @date July 2025
7+
*
8+
* @brief Program untuk mengurutkan data menggunakan algoritma Insertion Sort (naik dan turun).
9+
*
10+
* Program ini meminta pengguna memasukkan sejumlah bilangan bulat, lalu mengurutkan data
11+
* tersebut dua kali: pertama secara menaik (ascending), lalu secara menurun (descending).
12+
* Hasilnya akan ditampilkan di terminal.
13+
*/
114
#include <iostream>
215
#include <vector>
316
using namespace std;
4-
//fungsi untuk menampilkan vector setelah sort secara Ascending(terkecil)
5-
void tampilkanAscending(vector<int>& value){
6-
for(int i = 0; i < value.size(); i++){
7-
cout << value[i] << " ";
17+
/**
18+
* @brief Menampilkan elemen-elemen vector.
19+
*
20+
* @param value Vector integer yang sudah di sort.
21+
*
22+
* Menggunakan range-based loop dan `const reference` agar efisien.
23+
*/
24+
void tampilkan(const vector<int>& value){
25+
for(const auto x: value){
26+
cout << x << " ";
827
}
928
}
10-
//fungsi untuk menampilkan vector setelah sort secara Descending(terbesar)
11-
void tampilkanDescending(vector<int>& value){
12-
for(int i = 0; i < value.size(); i++){
13-
cout << value[i] << " ";
14-
}
15-
}
16-
void InsertionSortAscending(vector<int>& value, int &key){ //insertion sort menaik
29+
/**
30+
* @brief Mengurutkan elemen vector secara menaik (terkecil ke terbesar).
31+
*
32+
* @param value Vector integer yang akan diurutkan.
33+
* @param key Variabel untuk menyimpan nilai sementara (key).
34+
*
35+
* Menggunakan algoritma Insertion Sort. Setiap iterasi menyisipkan `key` ke posisi yang tepat
36+
* dengan menggeser elemen-elemen yang lebih besar ke kanan.
37+
*/
38+
void InsertionSortAscending(vector<int>& value){ //insertion sort menaik
39+
int key;
1740
for(int i = 1;i < value.size(); i++){
1841
key = value[i]; //inialisasi bilangan kedua merupakan key(kunci)
1942
int j = i - 1; //inialisasi j adalah bilangan pertama
@@ -25,6 +48,14 @@ void InsertionSortAscending(vector<int>& value, int &key){ //insertion sort men
2548
value[j + 1] = key; // Masukkan key pada posisi yang benar
2649
}
2750
}
51+
/**
52+
* @brief Mengurutkan elemen vector secara menurun (terbesar ke terkecil).
53+
*
54+
* @param value Vector integer yang akan diurutkan.
55+
*
56+
* Insertion Sort dalam urutan descending: menyisipkan `key` di posisi yang benar
57+
* dengan menggeser elemen yang lebih kecil ke kanan.
58+
*/
2859
void InsertionSortDescending(vector<int>& value) { //insertion sort menurun
2960
for(int i = 1; i < value.size(); i++) {
3061
int key = value[i]; // key adalah elemen yang akan disisipkan
@@ -37,24 +68,35 @@ void InsertionSortDescending(vector<int>& value) { //insertion sort menurun
3768
value[j + 1] = key; // Masukkan key pada posisi yang benar
3869
}
3970
}
71+
/**
72+
* @brief Fungsi utama program.
73+
*
74+
* @return int Status keluar dari program.
75+
*
76+
* Alur program:
77+
* - Meminta input jumlah elemen
78+
* - Input data elemen
79+
* - Melakukan sorting ascending dan menampilkan hasilnya
80+
* - Melakukan sorting descending dan menampilkan hasilnya
81+
*/
4082
int main(){
4183
int count,input,key;
42-
vector<int> value;
4384
//meminta user untuk memasukkan panjang data(vector)
4485
cout << "Masukkan panjang data: ";
4586
cin >> count;
87+
vector<int> value(count);
4688
for(int i = 0;i <= count - 1 ; i++){
4789
cout << "Masukkan data ke " << i + 1 << ": ";
48-
cin >> input;
49-
value.push_back(input);
90+
cin >> value[i];
91+
5092
}
5193
//menampilkan vector setelah sorting
52-
InsertionSortAscending(value,key);
94+
InsertionSortAscending(value);
5395
cout << "Data setelah di urut mulai dari terkecil ";
54-
tampilkanAscending(value);
96+
tampilkan(value);
5597
InsertionSortDescending(value);
5698
cout << "\ndata setelah di urut mulai terbesar ";
57-
tampilkanDescending(value);
99+
tampilkan(value);
58100
cin.get();
59101
return 0;
60102
}

algorithm/sorting/selection_sort.cpp

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,58 @@
1+
/**
2+
* @file insertion_sort.cpp
3+
*
4+
* @authors Muh Yusuf
5+
*
6+
* @date July 2025
7+
*
8+
* @brief Program untuk mengurutkan array menggunakan algoritma Selection Sort.
9+
*
10+
* Program ini meminta pengguna untuk memasukkan sejumlah elemen integer,
11+
* lalu mengurutkannya dengan algoritma Selection Sort dan menampilkannya.
12+
*
13+
* ### Detail Fitur:
14+
* - Input panjang array dari pengguna
15+
* - Input elemen-elemen array
16+
* - Sorting dengan algoritma Selection Sort
17+
* - Output array yang sudah diurutkan
18+
*
19+
* ### Catatan:
20+
* - Sorting dilakukan **in-place** menggunakan referencing
21+
* - Penukaran elemen menggunakan fungsi `swap()`
22+
* - Output dilakukan lewat fungsi `PrintVec()` untuk modularitas
23+
*/
24+
125
#include <iostream>
226
#include <vector>
3-
#include <array>
427
using namespace std;
528
// Fungsi untuk menukar posisi dua elemen
629
void swap(int *a, int *b) {
730
int temp = *a;
831
*a = *b;
932
*b = temp;
1033
}
11-
void PrintVec(vector<int>& val){ //gunakan referencing
12-
for(int print = 0; print < val.size(); print++){
13-
cout << val[print] << " ";
34+
/**
35+
* @brief Menampilkan elemen-elemen dari vector.
36+
*
37+
* @param val Vector integer yang akan ditampilkan elemennya.
38+
*
39+
* Fungsi ini menggunakan reference agar efisien dan tidak melakukan copy data.
40+
*/
41+
void PrintVec(const vector<int>& val){ //gunakan referencing
42+
for(const auto x: val){
43+
std::cout << x << " ";
1444
}
1545
}
46+
/**
47+
* @brief Mengurutkan elemen-elemen dalam vector menggunakan algoritma Selection Sort.
48+
*
49+
* @param val Vector integer yang akan diurutkan (secara ascending).
50+
*
51+
* Selection Sort bekerja dengan mencari elemen terkecil dari sisa elemen yang belum
52+
* terurut, lalu menukarnya dengan elemen pada posisi saat ini.
53+
*
54+
* Kompleksitas waktu: O(n^2)
55+
*/
1656
void SelectionSort(vector<int>& val){ //gunakan referencing untuk menghindari banyak penggunaan variabel
1757
/*
1858
Lakukan iterasi untuk setiap elemen vector dengan i sebagai indeks elemen pertama.
@@ -38,17 +78,24 @@ void SelectionSort(vector<int>& val){ //gunakan referencing untuk menghindari b
3878
}
3979
}
4080
}
81+
/**
82+
* @brief Fungsi utama program.
83+
*
84+
* Mengatur alur eksekusi: meminta input dari user, memanggil fungsi sorting,
85+
* dan menampilkan hasilnya.
86+
*
87+
* @return int Status keluar dari program (0 berarti sukses).
88+
*/
4189
int main(){
4290
int value;
4391
int count;
44-
vector<int> val;
4592
// meminta user untuk memasukkan panjang data vector
4693
cout << "Masukkan panjang data: ";
4794
cin >> count;
48-
for(int i = 0; i <= count - 1 ; i++){
95+
vector<int> val(count);
96+
for(int i = 0; i < count; i++){
4997
cout << "Masukkan data ke " << i + 1 << ": ";
50-
cin >> value;
51-
val.push_back(value); //memasukkan nilai yg dimasukkan(value) ke vector val
98+
std::cin >> val[i]; //memasukkan nilai yg dimasukkan(value) ke vector val
5299
}
53100
SelectionSort(val);
54101
cout << "sesudah sorting " << endl;

0 commit comments

Comments
 (0)