Skip to content

Commit c69c3c1

Browse files
authored
Menambahkan beberapa kode dan restruktur repository (#1)
Restruktur repository dan menghapus beberapa file
2 parents 690ccb6 + 34a6a3b commit c69c3c1

33 files changed

+272
-570
lines changed

Makefile

Lines changed: 42 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,22 @@ RM=rm $(RMFLAGS)
2121

2222
SRC=src
2323
BUILD=build
24-
MAINDIR=$(SRC)/main
24+
ARGDIR=$(SRC)/args
2525
FUNCDIR=$(SRC)/functions
2626
DTDIR=$(SRC)/data-types
27+
NMSPCDIR=$(SRC)/namespace
28+
29+
EXE=
2730

2831
# =====
2932
# daftar aplikasi dan name `make`
3033
# =====
3134

3235
EPS=ep_inparr ep_cashier
33-
FUNCS=func_void func_basic func_inline
34-
DTS=dt_native dt_native dt_enum dt_class
35-
MAINS=argc argv envp
36+
FUNCS=fbasic void inline auto
37+
DTS=dbasic array1d enum class struct
38+
ARGS=argc argv envp
39+
NMSPCS=nbasic
3640

3741
# =====
3842
# koleksi aplikasi
@@ -41,48 +45,57 @@ MAINS=argc argv envp
4145
EP=ep
4246
FUNC=func
4347
DT=dt
44-
MA=ma
48+
AR=ar
49+
NMS=nms
4550

46-
all: $(DT) $(FUNC) $(EP) $(MA)
51+
all: $(DT) $(FUNC) $(EP) $(AR)
4752

48-
$(MA): $(MAINS)
53+
$(AR): $(ARGS)
4954

50-
argc: $(BUILD) $(MAINDIR)/argc/src/argc.cpp
51-
$(CPP) $(CPPFLAGS) $(MAINDIR)/argc/src/argc.cpp -o $(BUILD)/argc
55+
argc: $(BUILD) $(ARGDIR)/argc/src/argc.cpp
56+
$(CPP) $(CPPFLAGS) $(ARGDIR)/argc/src/argc.cpp -o $(BUILD)/argc${EXE}
5257

53-
argv: $(BUILD) $(MAINDIR)/argv/src/argv.cpp
54-
$(CPP) $(CPPFLAGS) $(MAINDIR)/argv/src/argv.cpp -o $(BUILD)/argv
58+
argv: $(BUILD) $(ARGDIR)/argv/src/argv.cpp
59+
$(CPP) $(CPPFLAGS) $(ARGDIR)/argv/src/argv.cpp -o $(BUILD)/argv${EXE}
5560

56-
envp: $(BUILD) $(MAINDIR)/envp/src/envp.cpp
57-
$(CPP) $(CPPFLAGS) $(MAINDIR)/envp/src/envp.cpp -o $(BUILD)/envp
61+
envp: $(BUILD) $(ARGDIR)/envp/src/envp.cpp
62+
$(CPP) $(CPPFLAGS) $(ARGDIR)/envp/src/envp.cpp -o $(BUILD)/envp${EXE}
5863

5964
$(FUNC): $(FUNCS)
6065

61-
func_void:
62-
$(CD) $(FUNCDIR)/void && make
66+
fbasic: $(BUILD) $(FUNCDIR)/basic/src/basic.cpp
67+
$(CPP) $(CPPFLAGS) $(FUNCDIR)/basic/src/basic.cpp -o $(BUILD)/$@${EXE}
68+
69+
void: $(BUILD) $(FUNCDIR)/void/src/void.cpp
70+
$(CPP) $(CPPFLAGS) $(FUNCDIR)/void/src/void.cpp -o $(BUILD)/$@${EXE}
6371

64-
func_basic: $(BUILD) $(FUNCDIR)/basic/src/func_basic.cpp
65-
$(CPP) $(CPPFLAGS) $(FUNCDIR)/basic/src/$@.cpp -o $(BUILD)/$@
72+
inline: $(BUILD) $(FUNCDIR)/inline/src/inline.cpp
73+
$(CPP) $(CPPFLAGS) $(FUNCDIR)/inline/src/inline.cpp -o $(BUILD)/$@${EXE}
6674

67-
func_inline: $(BUILD) $(FUNCDIR)/inline/src/func_inline.cpp
68-
$(CPP) $(CPPFLAGS) $(FUNCDIR)/inline/src/$@.cpp -o $(BUILD)/$@
75+
auto: $(BUILD) $(FUNCDIR)/auto/src/auto.cpp
76+
$(CPP) $(CPPFLAGS) $(FUNCDIR)/auto/src/auto.cpp -o $(BUILD)/$@${EXE}
6977

7078
$(DT): $(DTS)
7179

72-
dt_native:
73-
$(CD) $(DTDIR)/native && make
80+
dbasic: $(BUILD) $(DTDIR)/basic/src/basic.cpp
81+
$(CPP) $(CPPFLAGS) $(DTDIR)/basic/src/basic.cpp -o $(BUILD)/$@${EXE}
82+
83+
struct: $(BUILD) $(DTDIR)/struct/src/struct.cpp
84+
$(CPP) $(CPPFLAGS) $(DTDIR)/struct/src/struct.cpp -o $(BUILD)/$@${EXE}
85+
86+
enum: $(BUILD) $(DTDIR)/enum/src/enum.cpp
87+
$(CPP) $(CPPFLAGS) $(DTDIR)/enum/src/enum.cpp -o $(BUILD)/$@${EXE}
7488

75-
dt_struct: $(BUILD) $(DTDIR)/struct/src/struct.cpp
76-
$(CPP) $(CPPFLAGS) $(DTDIR)/struct/src/struct.cpp -o $(BUILD)/$@
89+
class: $(BUILD) $(DTDIR)/class/src/class.cpp
90+
$(CPP) $(CPPFLAGS) $(DTDIR)/class/src/class.cpp -o $(BUILD)/$@${EXE}
7791

78-
dt_enum: $(BUILD) $(DTDIR)/enum/src/enum.cpp
79-
$(CPP) $(CPPFLAGS) $(DTDIR)/enum/src/enum.cpp -o $(BUILD)/$@
92+
array1d: $(BUILD) $(DTDIR)/array/array1d/src/array1d.cpp
93+
$(CPP) $(CPPFLAGS) $(DTDIR)/array/array1d/src/array1d.cpp -o $(BUILD)/$@${EXE}
8094

81-
dt_class: $(BUILD) $(DTDIR)/class/src/class.cpp
82-
$(CD) $(DTDIR)/class/ && make
95+
$(NMS): $(NMSPCS)
8396

84-
dt_array: $(BUILD) $(DTDIR)/array/src/array.cpp
85-
$(CD) $(DTDIR)/array/ && make && ./build/main
97+
nbasic: $(BUILD) $(NMSPCDIR)/basic/src/basic.cpp
98+
$(CPP) $(CPPFLAGS) $(NMSPCDIR)/basic/src/basic.cpp -o $(BUILD)/$@${EXE}
8699

87100
$(EP): $(EPS)
88101

readme.md

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,59 @@
22

33
![Pembelajaran tentang C++/CPlusPlus](/assets/cpp-teaching-readme.png)
44

5+
## Daftar Isi
6+
7+
* [Menjalankan](#menjalankan)
8+
* [Daftar Materi](#daftar-materi)
9+
* [Dukungan](#didukung-oleh)
10+
* [Rekomendasi](#rekomendasi-code-editor)
11+
* [Sumber](#sumber)
12+
13+
### Menjalankan
14+
15+
Untuk `menjalankan kode-kode` disini pastikan kalian menggunakan [Linux](https://id.wikipedia.org/wiki/Linux)/[Unix-like OS](https://id.wikipedia.org/wiki/Mirip_Unix), kemudian jalankan:
16+
```
17+
make
18+
```
19+
atau bisa jalankan berdasarkan tipe-tipe kode tertentu, misalnya:
20+
21+
* `func` - untuk semua kode yang ada didalam [src/functions](src/functions)
22+
* `dt` - untuk semua kode yang ada didalam [src/data-types](src/data-types)
23+
* `ar` - untuk semua kode yang ada didalam [src/args](src/args)
24+
* `nms` - untuk semua kode yang ada didalam [src/namespace](src/namespace)
25+
* `ep` - untuk semua kode yang ada didalam [src/namespace](src/example-programs)
26+
27+
contohnya gunakan `make func` atau `make ep`, kemudian `./build/<namafile>` - untuk menjalankan aplikasi dari [daftar materi](#daftar-materi)
28+
29+
### Daftar Materi
30+
531
Source code untuk dasar-dasar tentang bahasa pemrograman C++. Adapun materi yang termuat pada repository ini antara lain:
632
- [Tipe Data](src/data-types)
7-
- [Native](src/data-types/native)
8-
- [Struct](src/data-types/struct)
9-
- [Enumeration](src/data-types/enum)
10-
- [Class](src/data-types/class)
1133
- [Array](src/data-types/array)
34+
- [Array1d](src/data-types/array/array1d/)
35+
- [Basic](src/data-types/basic)
36+
- [Class](src/data-types/class)
37+
- [Enumeration](src/data-types/enum)
38+
- [Struct](src/data-types/struct)
1239
- [Pengenalan Fungsi](src/functions)
13-
- [Biasa](src/functions/basic)
14-
- [Void](src/functions/void)
15-
- [Inline](src/functions/inline)
1640
- [Auto](src/functions/auto)
41+
- [Basic](src/functions/basic)
42+
- [Inline](src/functions/inline)
43+
- [Void](src/functions/void)
1744
- [Pengenalan Namespace](src/namespace)
18-
- [Biasa](src/namespace/basic)
19-
- [Pengenalan Parameter Fungsi Utama](src/main)
20-
- [Argc](src/main/argc)
21-
- [Argv](src/main/argv)
22-
- [Envp](src/main/envp)
45+
- [Basic](src/namespace/basic)
46+
- [Pengenalan Parameter Fungsi Utama](src/args)
47+
- [Argc](src/args/argc)
48+
- [Argv](src/args/argv)
49+
- [Envp](src/args/envp)
2350

24-
## Didukung oleh
51+
### Dukungan
2552

26-
[Filkom UKIM](https://filkom.ukim.ac.id) | [UKIM](https://ukim.ac.id)
53+
[Filkom UKIM](https://filkom.ukim.ac.id) | [UKIM](https://ukim.ac.id) | [SCC UKIM](https://github.com/scc-ukim)
2754

2855
[![EmptyWork](/assets/active.svg)](https://emptywork.netlify.app)
2956

30-
## Rekomendasi Code Editor
57+
### Rekomendasi Code Editor
3158

3259
**Visual Studio C++** : https://visualstudio.microsoft.com/vs/features/cplusplus/
3360

@@ -36,12 +63,12 @@ Source code untuk dasar-dasar tentang bahasa pemrograman C++. Adapun materi yang
3663
- **Visual Studio Code Windows**: https://code.visualstudio.com/docs/cpp/config-mingw
3764

3865
**Online Code Editor**: [Riju.codes](https://riju.codes/cpp)
39-
## Sumber
4066

41-
**Naming Convetion**: https://chaste.cs.ox.ac.uk/trac/raw-attachment/wiki/CodingStandardsStrategy/codingStandards.pdf
67+
### Sumber
4268

43-
**CPPReference**: https://en.cppreference.com/w/
69+
**Naming Convetion**: https://chaste.cs.ox.ac.uk/trac/raw-attachment/wiki/CodingStandardsStrategy/codingStandards.pdf
4470

4571
**CPlusPlus**: https://www.cplusplus.com/
4672

73+
**CPPReference**: https://en.cppreference.com/w/
4774
**Namespace-CPPReference**: https://en.cppreference.com/w/cpp/language/namespace
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
## Barisan
2+
3+
Tipe data barisan merupakan gabungan beberapa data yang dimasukan kedalam barisan dengan tipe data tertentu.
4+
5+
Adapun cara deklarasi sebuah array dapat dilakukan sebagai berikut:
6+
- `tipedata nama[ukurandata]`
7+
- `tipedata nama = new tipedata(ukurandata)`
8+
9+
```cpp
10+
#include <iostream>
11+
/* makro untuk ukuran baris */
12+
#define MAKS_BARIS 20
13+
```
14+
15+
Membuat prototipe fungsi yang akan dideklarasi nanti.
16+
17+
```cpp
18+
void tunjukanbaris(unsigned int*);
19+
void buatbaris3nomor(unsigned int*);
20+
void buatbaris(unsigned int*);
21+
```
22+
23+
```cpp
24+
int main() {
25+
/* mendeklarasi baris dengan ukuran berdasarkan MAKS_BARIS */
26+
unsigned int baris[MAKS_BARIS], baris3num[MAKS_BARIS];
27+
28+
buatbaris3nomor(baris3num);
29+
buatbaris(baris);
30+
31+
tunjukanbaris(baris3num);
32+
tunjukanbaris(baris);
33+
34+
return 0;
35+
}
36+
```
37+
38+
`fungsi tunjukanbaris` akan menampilkan nilai yang ada pada baris tersebut berdasarkan barisan yang diberikan pada `@param data`
39+
40+
```cpp
41+
void tunjukanbaris(unsigned int* data) {
42+
std::cout << "Ukuran dari baris: " << sizeof(data) << std::endl;
43+
std::cout << "Dengan panjang dari baris: " << MAKS_BARIS << std::endl;
44+
for(int i = 0; i < MAKS_BARIS; i++) {
45+
std::cout << data[i] << std::endl;
46+
}
47+
}
48+
```
49+
50+
`fungsi buatbaris3nomor` akan membuat sebuah baris dimana anggotanya, sebagai berikut: jika n == 0 -> 3 | n += 3, dan akan menerima `@param data` sebagai tempat penyimpanan data tersebut.
51+
52+
```cpp
53+
void buatbaris3nomor(unsigned int* data) {
54+
std::cout << "--buatBaris3Nomor--" << std::endl;
55+
for(int i = 0; i < MAKS_BARIS; i++) {
56+
if(i == 0) data[i] = i + 3;
57+
else data[i] = data[i - 1] + 3;
58+
}
59+
}
60+
```
61+
62+
`fungsi buatbaris` akan membuat sebuah baris normal, dimana anggotanya dimulai dari 1, dan akan menerima `@param data` sebagai tempat penyimpanan data tersebut.
63+
64+
```cpp
65+
void buatbaris(unsigned int* data) {
66+
std::cout << "--buatbaris--" << std::endl;
67+
for(int i = 0; i < MAKS_BARIS; i++) {
68+
data[i] = i + 1;
69+
}
70+
}
71+
```

src/data-types/array/src/array.cpp renamed to src/data-types/array/array1d/src/array1d.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ int main() {
1919
}
2020

2121
void tunjukanbaris(unsigned int* data) {
22-
// masih `buggy` - tidak menunjukan ukuran sebenarnya dari array[baris]
23-
std::cout << "The size of the array is: " << sizeof(data) << std::endl;
24-
std::cout << "With the length of the array is: " << MAKS_BARIS << std::endl;
22+
std::cout << "Ukuran dari baris: " << sizeof(data) << std::endl;
23+
std::cout << "Dengan panjang dari baris: " << MAKS_BARIS << std::endl;
2524
for(int i = 0; i < MAKS_BARIS; i++) {
2625
std::cout << data[i] << std::endl;
2726
}

src/data-types/array/array_comment.cpp

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)