Skip to content
71 changes: 42 additions & 29 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,22 @@ RM=rm $(RMFLAGS)

SRC=src
BUILD=build
MAINDIR=$(SRC)/main
ARGDIR=$(SRC)/args
FUNCDIR=$(SRC)/functions
DTDIR=$(SRC)/data-types
NMSPCDIR=$(SRC)/namespace

EXE=

# =====
# daftar aplikasi dan name `make`
# =====

EPS=ep_inparr ep_cashier
FUNCS=func_void func_basic func_inline
DTS=dt_native dt_native dt_enum dt_class
MAINS=argc argv envp
FUNCS=fbasic void inline auto
DTS=dbasic array1d enum class struct
ARGS=argc argv envp
NMSPCS=nbasic

# =====
# koleksi aplikasi
Expand All @@ -41,48 +45,57 @@ MAINS=argc argv envp
EP=ep
FUNC=func
DT=dt
MA=ma
AR=ar
NMS=nms

all: $(DT) $(FUNC) $(EP) $(MA)
all: $(DT) $(FUNC) $(EP) $(AR)

$(MA): $(MAINS)
$(AR): $(ARGS)

argc: $(BUILD) $(MAINDIR)/argc/src/argc.cpp
$(CPP) $(CPPFLAGS) $(MAINDIR)/argc/src/argc.cpp -o $(BUILD)/argc
argc: $(BUILD) $(ARGDIR)/argc/src/argc.cpp
$(CPP) $(CPPFLAGS) $(ARGDIR)/argc/src/argc.cpp -o $(BUILD)/argc${EXE}

argv: $(BUILD) $(MAINDIR)/argv/src/argv.cpp
$(CPP) $(CPPFLAGS) $(MAINDIR)/argv/src/argv.cpp -o $(BUILD)/argv
argv: $(BUILD) $(ARGDIR)/argv/src/argv.cpp
$(CPP) $(CPPFLAGS) $(ARGDIR)/argv/src/argv.cpp -o $(BUILD)/argv${EXE}

envp: $(BUILD) $(MAINDIR)/envp/src/envp.cpp
$(CPP) $(CPPFLAGS) $(MAINDIR)/envp/src/envp.cpp -o $(BUILD)/envp
envp: $(BUILD) $(ARGDIR)/envp/src/envp.cpp
$(CPP) $(CPPFLAGS) $(ARGDIR)/envp/src/envp.cpp -o $(BUILD)/envp${EXE}

$(FUNC): $(FUNCS)

func_void:
$(CD) $(FUNCDIR)/void && make
fbasic: $(BUILD) $(FUNCDIR)/basic/src/basic.cpp
$(CPP) $(CPPFLAGS) $(FUNCDIR)/basic/src/basic.cpp -o $(BUILD)/$@${EXE}

void: $(BUILD) $(FUNCDIR)/void/src/void.cpp
$(CPP) $(CPPFLAGS) $(FUNCDIR)/void/src/void.cpp -o $(BUILD)/$@${EXE}

func_basic: $(BUILD) $(FUNCDIR)/basic/src/func_basic.cpp
$(CPP) $(CPPFLAGS) $(FUNCDIR)/basic/src/$@.cpp -o $(BUILD)/$@
inline: $(BUILD) $(FUNCDIR)/inline/src/inline.cpp
$(CPP) $(CPPFLAGS) $(FUNCDIR)/inline/src/inline.cpp -o $(BUILD)/$@${EXE}

func_inline: $(BUILD) $(FUNCDIR)/inline/src/func_inline.cpp
$(CPP) $(CPPFLAGS) $(FUNCDIR)/inline/src/$@.cpp -o $(BUILD)/$@
auto: $(BUILD) $(FUNCDIR)/auto/src/auto.cpp
$(CPP) $(CPPFLAGS) $(FUNCDIR)/auto/src/auto.cpp -o $(BUILD)/$@${EXE}

$(DT): $(DTS)

dt_native:
$(CD) $(DTDIR)/native && make
dbasic: $(BUILD) $(DTDIR)/basic/src/basic.cpp
$(CPP) $(CPPFLAGS) $(DTDIR)/basic/src/basic.cpp -o $(BUILD)/$@${EXE}

struct: $(BUILD) $(DTDIR)/struct/src/struct.cpp
$(CPP) $(CPPFLAGS) $(DTDIR)/struct/src/struct.cpp -o $(BUILD)/$@${EXE}

enum: $(BUILD) $(DTDIR)/enum/src/enum.cpp
$(CPP) $(CPPFLAGS) $(DTDIR)/enum/src/enum.cpp -o $(BUILD)/$@${EXE}

dt_struct: $(BUILD) $(DTDIR)/struct/src/struct.cpp
$(CPP) $(CPPFLAGS) $(DTDIR)/struct/src/struct.cpp -o $(BUILD)/$@
class: $(BUILD) $(DTDIR)/class/src/class.cpp
$(CPP) $(CPPFLAGS) $(DTDIR)/class/src/class.cpp -o $(BUILD)/$@${EXE}

dt_enum: $(BUILD) $(DTDIR)/enum/src/enum.cpp
$(CPP) $(CPPFLAGS) $(DTDIR)/enum/src/enum.cpp -o $(BUILD)/$@
array1d: $(BUILD) $(DTDIR)/array/array1d/src/array1d.cpp
$(CPP) $(CPPFLAGS) $(DTDIR)/array/array1d/src/array1d.cpp -o $(BUILD)/$@${EXE}

dt_class: $(BUILD) $(DTDIR)/class/src/class.cpp
$(CD) $(DTDIR)/class/ && make
$(NMS): $(NMSPCS)

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

$(EP): $(EPS)

Expand Down
63 changes: 45 additions & 18 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,59 @@

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

## Daftar Isi

* [Menjalankan](#menjalankan)
* [Daftar Materi](#daftar-materi)
* [Dukungan](#didukung-oleh)
* [Rekomendasi](#rekomendasi-code-editor)
* [Sumber](#sumber)

### Menjalankan

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:
```
make
```
atau bisa jalankan berdasarkan tipe-tipe kode tertentu, misalnya:

* `func` - untuk semua kode yang ada didalam [src/functions](src/functions)
* `dt` - untuk semua kode yang ada didalam [src/data-types](src/data-types)
* `ar` - untuk semua kode yang ada didalam [src/args](src/args)
* `nms` - untuk semua kode yang ada didalam [src/namespace](src/namespace)
* `ep` - untuk semua kode yang ada didalam [src/namespace](src/example-programs)

contohnya gunakan `make func` atau `make ep`, kemudian `./build/<namafile>` - untuk menjalankan aplikasi dari [daftar materi](#daftar-materi)

### Daftar Materi

Source code untuk dasar-dasar tentang bahasa pemrograman C++. Adapun materi yang termuat pada repository ini antara lain:
- [Tipe Data](src/data-types)
- [Native](src/data-types/native)
- [Struct](src/data-types/struct)
- [Enumeration](src/data-types/enum)
- [Class](src/data-types/class)
- [Array](src/data-types/array)
- [Array1d](src/data-types/array/array1d/)
- [Basic](src/data-types/basic)
- [Class](src/data-types/class)
- [Enumeration](src/data-types/enum)
- [Struct](src/data-types/struct)
- [Pengenalan Fungsi](src/functions)
- [Biasa](src/functions/basic)
- [Void](src/functions/void)
- [Inline](src/functions/inline)
- [Auto](src/functions/auto)
- [Basic](src/functions/basic)
- [Inline](src/functions/inline)
- [Void](src/functions/void)
- [Pengenalan Namespace](src/namespace)
- [Biasa](src/namespace/basic)
- [Pengenalan Parameter Fungsi Utama](src/main)
- [Argc](src/main/argc)
- [Argv](src/main/argv)
- [Envp](src/main/envp)
- [Basic](src/namespace/basic)
- [Pengenalan Parameter Fungsi Utama](src/args)
- [Argc](src/args/argc)
- [Argv](src/args/argv)
- [Envp](src/args/envp)

## Didukung oleh
### Dukungan

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

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

## Rekomendasi Code Editor
### Rekomendasi Code Editor

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

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

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

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

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

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

**CPPReference**: https://en.cppreference.com/w/
**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.
71 changes: 71 additions & 0 deletions src/data-types/array/array1d/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
## Barisan

Tipe data barisan merupakan gabungan beberapa data yang dimasukan kedalam barisan dengan tipe data tertentu.

Adapun cara deklarasi sebuah array dapat dilakukan sebagai berikut:
- `tipedata nama[ukurandata]`
- `tipedata nama = new tipedata(ukurandata)`

```cpp
#include <iostream>
/* makro untuk ukuran baris */
#define MAKS_BARIS 20
```

Membuat prototipe fungsi yang akan dideklarasi nanti.

```cpp
void tunjukanbaris(unsigned int*);
void buatbaris3nomor(unsigned int*);
void buatbaris(unsigned int*);
```

```cpp
int main() {
/* mendeklarasi baris dengan ukuran berdasarkan MAKS_BARIS */
unsigned int baris[MAKS_BARIS], baris3num[MAKS_BARIS];

buatbaris3nomor(baris3num);
buatbaris(baris);

tunjukanbaris(baris3num);
tunjukanbaris(baris);

return 0;
}
```

`fungsi tunjukanbaris` akan menampilkan nilai yang ada pada baris tersebut berdasarkan barisan yang diberikan pada `@param data`

```cpp
void tunjukanbaris(unsigned int* data) {
std::cout << "Ukuran dari baris: " << sizeof(data) << std::endl;
std::cout << "Dengan panjang dari baris: " << MAKS_BARIS << std::endl;
for(int i = 0; i < MAKS_BARIS; i++) {
std::cout << data[i] << std::endl;
}
}
```

`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.

```cpp
void buatbaris3nomor(unsigned int* data) {
std::cout << "--buatBaris3Nomor--" << std::endl;
for(int i = 0; i < MAKS_BARIS; i++) {
if(i == 0) data[i] = i + 3;
else data[i] = data[i - 1] + 3;
}
}
```

`fungsi buatbaris` akan membuat sebuah baris normal, dimana anggotanya dimulai dari 1, dan akan menerima `@param data` sebagai tempat penyimpanan data tersebut.

```cpp
void buatbaris(unsigned int* data) {
std::cout << "--buatbaris--" << std::endl;
for(int i = 0; i < MAKS_BARIS; i++) {
data[i] = i + 1;
}
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@ int main() {
}

void tunjukanbaris(unsigned int* data) {
// masih `buggy` - tidak menunjukan ukuran sebenarnya dari array[baris]
std::cout << "The size of the array is: " << sizeof(data) << std::endl;
std::cout << "With the length of the array is: " << MAKS_BARIS << std::endl;
std::cout << "Ukuran dari baris: " << sizeof(data) << std::endl;
std::cout << "Dengan panjang dari baris: " << MAKS_BARIS << std::endl;
for(int i = 0; i < MAKS_BARIS; i++) {
std::cout << data[i] << std::endl;
}
Expand Down
60 changes: 0 additions & 60 deletions src/data-types/array/array_comment.cpp

This file was deleted.

Loading