# hylmithecoder/logika_dan_algoritma architecture

> Architecture diagram of the GitHub repository hylmithecoder/logika_dan_algoritma, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/hylmithecoder/logika_dan_algoritma
- Repository: https://github.com/hylmithecoder/logika_dan_algoritma

## Overview

This repository is a C++ teaching application for introductory logic and algorithms, offering console exercises and a GLFW/ImGui interface. The user selects a lesson or GUI mode, enters values, and sees computed or instructional results; GUI modules also include school-data exercises, study cases, assessments, and PDF course material. The graph groups the curriculum by role. Some lesson modules are mapped to their shared source directory because their individual implementations were not excerpted; their internal links are therefore omitted where unverified.

Main entry points: [`src/scripts/main.cpp`](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/main.cpp) (Program entry), [`src/scripts/HandleWindow.cpp`](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/HandleWindow.cpp) (GUI shell), [`src/scripts/pertemuan13.cpp`](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/pertemuan13.cpp) (Search and sorting), [`src/scripts/samplelogic.cpp`](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/samplelogic.cpp) (Logic exercises)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_app["Program entry<br/>[main.cpp]"]
end

subgraph group_console["Console curriculum"]
  node_logic["Logic exercises<br/>[samplelogic.cpp]"]
  node_fuel["Fuel pricing"]
  node_other_lessons["Other lessons"]
end

subgraph group_gui["GUI and materials"]
  node_window["GUI shell<br/>[HandleWindow.cpp]"]
  node_pdf["PDF rendering<br/>[HandleWindow.cpp]"]
end

subgraph group_practice["GUI exercises"]
  node_functions["Function lessons<br/>[pertemuan6.cpp]"]
  node_sorting["Search and sorting<br/>[pertemuan13.cpp]"]
  node_school["School data tables<br/>[materiarray.cpp]"]
end

subgraph group_assessment["Cases and assessments"]
  node_study["Study cases<br/>[studicase.cpp]"]
  node_uas["Final assessment<br/>[uas.cpp]"]
end

node_learner(("Learner"))

node_learner -->|"starts"| node_app
node_app -->|"runs exercises"| node_logic
node_app -->|"runs pricing"| node_fuel
node_app -->|"opens GUI"| node_window
node_window -->|"renders pages"| node_pdf
node_sorting -->|"renders pages"| node_pdf

click node_app "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/main.cpp"
click node_logic "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/samplelogic.cpp"
click node_fuel "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/algoritmabensin.cpp"
click node_other_lessons "https://github.com/hylmithecoder/logika_dan_algoritma/tree/main/src/scripts"
click node_window "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/HandleWindow.cpp"
click node_pdf "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/HandleWindow.cpp"
click node_functions "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/pertemuan6.cpp"
click node_sorting "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/pertemuan13.cpp"
click node_school "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/materiarray.cpp"
click node_study "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/studicase.cpp"
click node_uas "https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/uas.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app toneBlue
class node_logic,node_fuel,node_other_lessons toneAmber
class node_window,node_pdf toneMint
class node_functions,node_sorting,node_school toneRose
class node_study,node_uas,node_learner toneIndigo
```

## Components

### Application entry

- [Program entry](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/main.cpp): `src/scripts/main.cpp`

### Console curriculum

- [Logic exercises](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/samplelogic.cpp): `src/scripts/samplelogic.cpp`
- [Fuel pricing](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/algoritmabensin.cpp): `src/scripts/algoritmabensin.cpp`
- [Other lessons](https://github.com/hylmithecoder/logika_dan_algoritma/tree/main/src/scripts): `src/scripts`

### GUI and materials

- [GUI shell](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/HandleWindow.cpp): `src/scripts/HandleWindow.cpp`
- [PDF rendering](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/HandleWindow.cpp): `src/scripts/HandleWindow.cpp`

### GUI exercises

- [Function lessons](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/pertemuan6.cpp): `src/scripts/pertemuan6.cpp`
- [Search and sorting](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/pertemuan13.cpp): `src/scripts/pertemuan13.cpp`
- [School data tables](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/materiarray.cpp): `src/scripts/materiarray.cpp`

### Cases and assessments

- [Study cases](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/studicase.cpp): `src/scripts/studicase.cpp`
- [Final assessment](https://github.com/hylmithecoder/logika_dan_algoritma/blob/main/src/scripts/uas.cpp): `src/scripts/uas.cpp`

### Other components

- **Learner**

## Connections

- Learner → Program entry: starts
- Program entry → Logic exercises: runs exercises (evidence: `src/scripts/main.cpp`)
- Program entry → Fuel pricing: runs pricing (evidence: `src/scripts/main.cpp`)
- Program entry → GUI shell: opens GUI (evidence: `src/scripts/main.cpp`)
- GUI shell → PDF rendering: renders pages (evidence: `src/scripts/HandleWindow.cpp`)
- Search and sorting → PDF rendering: renders pages (evidence: `src/scripts/pertemuan13.cpp`)
