Thanks to visit codestin.com
Credit goes to github.com

Skip to content

turahe/cpp-qt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

C++ dan Qt Programming Guide

Build PDF Markdown Validation Test Build

πŸ“š Buku panduan lengkap untuk belajar C++ dan Qt Framework

🎯 Tentang Buku Ini

Buku ini dirancang khusus untuk pemula yang ingin menguasai pemrograman C++ dan pengembangan aplikasi dengan Qt Framework. Dengan pendekatan pembelajaran bertahap dan contoh kode yang lengkap, Anda akan belajar dari dasar hingga mahir.

πŸš€ Fitur Utama

  • πŸ“– Pembelajaran Bertahap - Dari dasar hingga lanjutan
  • πŸ’» 333+ Contoh Kode - Siap jalankan dengan Qt Creator
  • 🎨 GUI Programming - Membuat aplikasi dengan antarmuka grafis
  • πŸ—„οΈ Database Integration - SQLite dan MySQL
  • 🌐 Web Integration - Qt WebKit untuk browser
  • πŸ› Debugging Guide - Teknik debugging yang efektif
  • πŸ—οΈ Design Patterns - Singleton, Observer, MVC
  • πŸ“± Cross-Platform - Windows, macOS, Linux

πŸ“– Struktur Buku

Part I: Dasar Pemrograman C++

  • Pengenalan C++ dan Qt Creator - Sejarah dan setup
  • Tipe Data dan Operator - Fondasi programming
  • Control Statement - Struktur kontrol (if, switch, loop)
  • Array dan String - Koleksi data dan manipulasi teks
  • Fungsi - Modularisasi program
  • Pointer dan References - Memory management
  • Debugging - Teknik debugging

Part II: Object-Oriented Programming

  • Class dan Object - OOP fundamentals
  • Inheritance - Pewarisan sifat
  • Operator Overloading - Custom operators
  • Polymorphism - Fleksibilitas objek
  • Design Patterns - Solusi terbukti
  • Casting dan Database - Konversi dan data

Part III: Qt Library dan Komponen

  • Qt Library - Library fundamentals
  • File, Stream, dan XML - Data handling
  • Qt WebKit - Web integration

Part IV: Antarmuka Pengguna

  • GUI dengan Qt - Antarmuka grafis

πŸ› οΈ Cara Menggunakan

πŸ“– Membaca Buku

Format LaTeX (PDF)

# Build PDF locally
cd latex
pdflatex book.tex
# PDF akan tersedia di latex/book.pdf

Format Markdown

# Baca file Markdown di folder manuscript/
open manuscript/book.md

πŸ’» Menjalankan Contoh Kode

  1. Install Qt Creator

    # Download dari https://www.qt.io/download
    # Atau gunakan package manager
  2. Clone repository

    git clone https://github.com/your-username/cpp-qt.git
    cd cpp-qt
  3. Buka contoh kode

    # Contoh kode tersedia di folder code/
    # Buka dengan Qt Creator

πŸ”§ Development

πŸ“‹ Requirements

  • Qt Creator 5.15+ atau Qt 6.x
  • C++ compiler (GCC, MSVC, Clang)
  • Python 3.9+ (untuk script konversi)
  • TeX Live (untuk build PDF)

πŸš€ Setup Development

# Clone repository
git clone https://github.com/your-username/cpp-qt.git
cd cpp-qt

# Install Python dependencies
pip install pathlib

# Sync LaTeX to Markdown
python latex_to_markdown_enhanced.py
python embed_code_final.py

πŸ“ Menambah Konten

  1. Edit file LaTeX di folder latex/
  2. Jalankan sync script untuk update Markdown
  3. Commit perubahan
  4. Push ke repository
# Edit LaTeX file
vim latex/01-pengenalan.tex

# Sync to Markdown
python latex_to_markdown_enhanced.py
python embed_code_final.py

# Commit changes
git add .
git commit -m "Update chapter 1"
git push

πŸ”„ CI/CD Pipeline

πŸ“Š GitHub Actions Workflows

1. Build PDF (build-pdf.yml)

  • Trigger: Push tags (v*)
  • Action: Build PDF from LaTeX
  • Output: Create GitHub release with PDF attachment

2. Markdown Validation (build-markdown.yml)

  • Trigger: Push to main/master
  • Action: Validate Markdown files
  • Output: Generate documentation

3. LaTeX to Markdown Sync (sync-latex-markdown.yml)

  • Trigger: Changes in latex/ or code/
  • Action: Auto-sync LaTeX to Markdown
  • Output: Updated Markdown files

4. Test Build (test-build.yml)

  • Trigger: Push/PR to main/master
  • Action: Validate project structure
  • Output: Test report

🏷️ Creating Releases

Automatic Release (Recommended)

# Create and push tag
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0

# GitHub Actions will automatically:
# 1. Build PDF
# 2. Create release
# 3. Attach PDF to release

Manual Release

# Use the release script
chmod +x scripts/create-release.sh
./scripts/create-release.sh v1.0.0 "Initial release"

πŸ“‹ Release Process

  1. Update version in LaTeX files
  2. Create git tag with version
  3. Push tag to trigger workflow
  4. GitHub Actions builds PDF
  5. Release created with PDF attachment
  6. Share release with community

πŸ“ Project Structure

cpp-qt/
β”œβ”€β”€ πŸ“„ latex/                 # LaTeX source files
β”‚   β”œβ”€β”€ book.tex             # Main book file
β”‚   β”œβ”€β”€ 01-pengenalan.tex   # Chapter files
β”‚   └── ...
β”œβ”€β”€ πŸ“ manuscript/           # Markdown files
β”‚   β”œβ”€β”€ README.md           # Book documentation
β”‚   β”œβ”€β”€ book.md             # Main book structure
β”‚   β”œβ”€β”€ 01-pengenalan.md    # Chapter files
β”‚   └── ...
β”œβ”€β”€ πŸ’» code/                # Code examples
β”‚   β”œβ”€β”€ contoh-a.cpp        # Example files
β”‚   β”œβ”€β”€ contoh-b.cpp
β”‚   └── ...
β”œβ”€β”€ πŸ”§ .github/workflows/   # CI/CD workflows
β”‚   β”œβ”€β”€ build-pdf.yml       # PDF build workflow
β”‚   β”œβ”€β”€ build-markdown.yml  # Markdown validation
β”‚   └── ...
β”œβ”€β”€ πŸ“œ scripts/             # Utility scripts
β”‚   └── create-release.sh   # Release script
└── πŸ“‹ README.md            # This file

🎯 Learning Path

πŸš€ Untuk Pemula

  1. Baca Prakata - manuscript/00-prakata.md
  2. Install Qt Creator - Setup development environment
  3. Ikuti Bab 1 - Pengenalan C++ dan Qt Creator
  4. Praktik Kode - Jalankan contoh di setiap bab

🎯 Untuk Intermediate

  1. Review OOP - Part II chapters
  2. Praktik Design Patterns - Bab 11
  3. Buat Project GUI - Part IV
  4. Integrasi Database - Bab 10

πŸ† Untuk Advanced

  1. Custom Qt Components - Extend Qt
  2. Performance Optimization - Advanced C++
  3. Cross-Platform Development - Multi-platform apps
  4. Contribute to Qt - Open source contribution

πŸ“š Referensi

πŸ”— Link Penting

πŸ“– Buku Pendukung

  • "The C++ Programming Language" - Bjarne Stroustrup
  • "Qt 5.9 C++ Development Guide" - The Qt Company
  • "Effective C++" - Scott Meyers

πŸ‘¨β€πŸ’» Tentang Penulis

Nur Wachid - Head of Software Engineering di PT. Lingkar Kreasi Teknologi

  • 🌐 Website: https://www.wach.id
  • πŸ“§ Email: [email protected]
  • πŸ’Ό LinkedIn: [LinkedIn Profile]

🀝 Kontribusi

πŸ“ Cara Berkontribusi

  1. Fork repository ini
  2. Buat branch untuk fitur baru
  3. Edit LaTeX files untuk konten
  4. Jalankan sync script untuk update Markdown
  5. Commit dan push perubahan
  6. Buat Pull Request

πŸ› Melaporkan Bug

  • Buat issue baru di repository
  • Jelaskan masalah dengan detail
  • Sertakan screenshot jika diperlukan

πŸ’‘ Saran Fitur

  • Buat issue dengan label "enhancement"
  • Jelaskan fitur yang diinginkan
  • Berikan contoh use case

πŸ“„ Lisensi

Buku ini menggunakan lisensi Creative Commons Attribution-NonCommercial 4.0 International License.

πŸ“‹ Lisensi Detail

  • βœ… Boleh: Copy, distribute, adapt, remix
  • ❌ Tidak boleh: Commercial use
  • πŸ“ Wajib: Attribution to author

πŸŽ‰ Acknowledgments

  • Qt Company - Untuk framework yang luar biasa
  • C++ Community - Untuk bahasa pemrograman yang powerful
  • Open Source Contributors - Untuk kontribusi dan feedback
  • Readers - Untuk dukungan dan semangat belajar

πŸš€ Quick Start

# Clone repository
git clone https://github.com/your-username/cpp-qt.git
cd cpp-qt

# Install Qt Creator
# Download dari https://www.qt.io/download

# Baca buku
open manuscript/book.md

# Jalankan contoh
# Buka code/contoh-a.cpp di Qt Creator

Selamat belajar dan happy coding! πŸŽ‰


"Programming is not about typing, it's about thinking." - Rich Hickey

About

Buku panduan lengkap untuk belajar C++ dan Qt Framework

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published