{"id":22158381,"url":"https://github.com/andr3w03/kgv_uas_turing-a","last_synced_at":"2026-01-24T22:03:58.707Z","repository":{"id":37859323,"uuid":"503457929","full_name":"aNdr3W03/KGV_UAS_Turing-A","owner":"aNdr3W03","description":"Ujian Akhir Semester Mata Kuliah Komputer Grafik dan Visualisasi ","archived":false,"fork":false,"pushed_at":"2022-06-21T23:20:59.000Z","size":30807,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-26T12:44:13.194Z","etag":null,"topics":["c","cpp","desktop-application","glew","glfw","glm","glsl","object-oriented-programming","oop","opengl","visual-studio"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aNdr3W03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-14T17:29:35.000Z","updated_at":"2022-11-08T22:01:10.000Z","dependencies_parsed_at":"2022-08-18T04:55:23.666Z","dependency_job_id":null,"html_url":"https://github.com/aNdr3W03/KGV_UAS_Turing-A","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aNdr3W03/KGV_UAS_Turing-A","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FKGV_UAS_Turing-A","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FKGV_UAS_Turing-A/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FKGV_UAS_Turing-A/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FKGV_UAS_Turing-A/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aNdr3W03","download_url":"https://codeload.github.com/aNdr3W03/KGV_UAS_Turing-A/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FKGV_UAS_Turing-A/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28737857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T21:19:41.845Z","status":"ssl_error","status_checked_at":"2026-01-24T21:13:38.675Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cpp","desktop-application","glew","glfw","glm","glsl","object-oriented-programming","oop","opengl","visual-studio"],"created_at":"2024-12-02T03:32:27.484Z","updated_at":"2026-01-24T22:03:58.693Z","avatar_url":"https://github.com/aNdr3W03.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KGV_UAS_Turing-A\n#### Ujian Akhir Semester Mata Kuliah Komputer Grafik dan Visualisasi\n#### Dosen Pengampu: Jos Timanta Tarigan, S.Kom., M.Sc.\n#### Tahun Ajaran: Genap 2021/2022\n#### Ilmu Komputer - Universitas Sumatera Utara\n\n# \n**Kelompok Alan Turing Kom A**  \n**1. 201401032 - Al Imamul Luthfi**  \n**2. 201401035 - Andrew Benedictus Jamesie**  \n**3. 201401038 - Ariel Matius Surbakti**  \n**4. 201401040 - Avin Chaili Salim**  \n\n**YouTube Video**  \n[![YouTube Video](screenshot/YouTube.png)](https://youtu.be/ksXUJGiT_Z4)\n\n# \n# Deskripsi Tugas\n\u003e Anda ditugaskan untuk membangun sebuah aplikasi komputer grafis menggunakan [GLFW](https://www.glfw.org \"Graphics Library Framework\") dan [GLEW](http://glew.sourceforge.net \"OpenGL Extension Wrangler Library\") yang dapat menggambar sebuah gambar dengan menggunakan beberapa objek dari 4 jenis bentuk atau lebih. Adapun spesifikasi gambar yang harus ditampilkan adalah sebagai berikut:\n\u003e 1. Aplikasi yang dibangun menggunakan konsep OOP di mana setiap bentuk memiliki sebuah kelas dan proses penggambaran bentuk tersebut dilakukan dengan menggunakan objek dari kelas tersebut.\n\u003e 2. Anda dapat menggunakan 2 buah bentuk yang telah dijelaskan pada tutorial mata kuliah (segitiga dan persegi). Anda wajib mendefinisikan 2 buah bentuk lain (seperti oktagon, _hexagon_, bintang, huruf, atau simbol lainnya) dengan membuat 2 buah kelas lain. Setiap bentuk harus memiliki jumlah sudut yang berbeda (misal: tidak boleh menambahkan bentuk segitiga siku-siku atau segitiga sama sisi karena memiliki jumlah sudut yang sama dengan segitiga). Nilai bonus akan diberikan jika proses penentuan nilai _vertex_ pada kedua buah bentuk baru dilakukan secara prosedural (seperti pada UTS).\n\u003e 3. Tambahkan _input-handler_ pada program Anda yang dapat melakukan perubahan pada gambar seperti perubahan warna atau transformasi objek. Nilai bonus akan diberikan jika perubahan tersebut berupa animasi (relatif terhadap waktu).\n\u003e \n\u003e Untuk menghindari plagiarisme, Anda wajib mengirimkan hasil objek yang dibangun pada grup LINE mata kuliah. Tidak boleh ada 2 kelompok menggunakan objek dengan bentuk yang sama.\n\u003e \n\u003e Anda juga ditugaskan untuk membuat satu buah video tutorial yang menjelaskan aplikasi dan kode yang Anda bangun dengan durasi minimal 5 menit dan maksimal 7 menit. Video Anda harus memiliki spesifikasi sebagai berikut,\n\u003e 1. Video harus menampilkan logo USU/Fasilkom-TI di awal Video;\n\u003e 2. Video harus menampilkan nama dan NIM setiap anggota kelompok;\n\u003e 3. Video harus menampilkan orang yang sedang menjelaskan;\n\u003e 4. Suara yang dihasilkan oleh orang harus jelas;\n\u003e 5. Ukuran video minimal adalah 720p (1280 x 720) dan seluruh teks (presentasi, kode) harus dapat terbaca dengan jelas.\n\u003e \n\u003e Unggah _project_ Anda (yang dapat dijalankan pada Visual Studio) pada GitHub dan lampirkan _link_ GitHub pada deskripsi video Anda. **(10 poin)**\n\u003e \n\u003e **Metode dan Batas Waktu Pengumpulan**\n\u003e Video diunggah ke Youtube. Link dikumpulkan via e-Learning dengan menggunakan _activity_ yang telah ditentukan. Adapun batas waktu pengumpulan adalah **Selasa, 20 Juni 2022 pukul 23.59 WIB**.\n\n# \n# Tugas 3 KGV Kelompok Turing-A\n**UAS_OOPObject**\n\u003e - Project ini berupa program visual untuk menampilkan gambaran mobil, kincir angin, dan bintang yang dibentuk dari beberapa objek persegi, segitiga, segi dua belas (_dodecagon_), dan bintang (_star_). Objek-objek tersebut ditranslasi atau perpindahan, dirotasi, dan diskalasi atau dilatasi sehingga membentuk sebuah rumah.\n\u003e - Folder ini merupakan project/solution **Console Application** Visual Studio, sehingga bisa di-_compile_ dan dijalankan dengan menggunakan Microsoft Visual Studio.\n\u003e - Dalam folder ini terdapat file Program `.sln` yang dapat dibuka dengan menggunakan Visual Studio.\n\u003e - Sedangkan jika hanya ingin melihat _source code_-nya akan dijelaskan di bawah.\n\u003e \n\u003e **Multiple Objects OOP**  \n\u003e ![Screenshot UAS KGV](screenshot/UAS_OOPObject.png)\n\n# \n# Note:\n#### Dalam folder ini terdapat 14 file yang penting, yaitu:\n- **UAS_OOPObject.cpp**  \n  Ini adalah _file_ utama dari project/solution ini. Dalam _file_ ini dilakukan pembuatan _window_ untuk menampilkan gambar objek, perintah untuk melakukan translasi, rotasi, dan dilatasi, perintah untuk melakukan penggambaran objek, input handler dengan keyCallback untuk melakukan perpindahan objek mobil, serta animasi perputaran baling-baling kincir angin yang relatif terhadap waktu menggunakan glfwGetTime().\n- **Shape.cpp**  \n  Ini adalah _cpp file_ untuk _class_ Shape. _Class_ ini merupakan _parent class_ dari beberapa _class_ lainnya. Dalam _file_ ini terdapat isi dari _constructor_, serta _setter_ and _getter_ semua _method_ yang telah dideklarasikan terlebih dahulu di file `Shape.h`.\n- **Square.cpp**, **Triangle.cpp**, **Dodecagon.cpp**, **Star.cpp**  \n  Ini adalah _cpp file_ untuk _class_ Square, Triangle, Dodecagon, dan Star. _Class_ ini merupakan _child class_ yang merupakan inheritance dari _parent class_-nya yaitu `Class Shape`. Dalam _file_ ini terdapat isi dari _constructor_ dan _method_ Draw yang telah dideklarasikan terlebih dahulu di file `Square.h`, `Triangle.h`, `Dodecagon.h`, dan `Star.h`.  \n  _Class_ ini berfungsi untuk melakukan _link_ dan _binding data_ `vertexArray` dan `vertexBuffer` serta `indexBuffer` sehingga didapatkan penggambaran dasar dari setiap bangun datar yang dibentuk. Sedangkan pada masing-masing `header file`-nya berfungsi untuk menyimpan data `vertices` atau titik dari bangun datar tersebut, serta data `indexArr` untuk membentuk bangun datar tersebut yang terbentuk dari beberapa segitiga.\n- **Util.h**  \n  Ini adalah _file_ untuk menghubungkan _file_ utama `UAS_OOPObject.cpp` dengan _file_ vertex dan fragment, yaitu `vertex.vert` dan `fragment.frag`. _File_ ini juga berfungsi untuk melakukan _debugging_ yang akan ditampilkan pada console/terminal pada saat menjalankan (_run_) program.\n- **vertex.vert**  \n  Ini adalah _file_ untuk menentukan penggambaran posisi dari `vertices` dan `indexBuffer` yang akan dihubungkan dengan variabel uniform `transformationMat4x4` untuk melakukan pengubahan gambar bangun datar, baik translasi, rotasi, dan dilatasi. Pointer location 0 digunakan untuk pointer data posisi _vertices_, sedangkan pointer location 2 untuk menentukan _texture_ objek.\n- **fragment.frag**  \n  Ini adalah _file_ untuk menentukan pewarnaan fragment color, yaitu `uColor` yang diambil dari `color` untuk menghasilkan warna yang telah diatur dalam _method setter_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandr3w03%2Fkgv_uas_turing-a","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandr3w03%2Fkgv_uas_turing-a","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandr3w03%2Fkgv_uas_turing-a/lists"}