Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Empty file.
Binary file added .vs/Hands-On-OOP-2022/v17/.wsuo
Binary file not shown.
3 changes: 3 additions & 0 deletions .vs/ProjectSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}
6 changes: 6 additions & 0 deletions .vs/VSWorkspaceState.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"ExpandedNodes": [
""
],
"PreviewInSolutionExplorer": false
}
Binary file added .vs/slnx.sqlite
Binary file not shown.
68 changes: 10 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,17 @@
# Hands On OOP
# Hands On OOP: Database SiAkad Tevyat(unfinished)
## Deskripsi Program

## Deskripsi Tugas
Buatlah suatu program yang *perlu* mengimplementasikan konsep-konsep OOP, seminimalnya
- Inheritance
- Interface dan/atau abstract class
- Polimorfisme
- Mengimplementasikan (minimal 1) design pattern
- Mengimplementasikan (minimal 1) prinsip SOLID
Program ini menyimpan data dari profile mahasiswa dan dosen dengan beberapa kategori yang disimpan: NIM, IPS, Nama, Email, dan Departemen.

Tugas ini sangat membebaskan kalian untuk berkreasi. Konsep-konsep lain yang kalian gunakan dan keunikan program akan sangat dihargai dan dihitung sebagai bonus nilai (jangan lupa tulis di penjelasan program). Silakan berkreasi! :D
## Cara Menjalankan Program

### Beberapa Bonus yang Direkomendasikan
- Stream API dan/atau functional programming
- Multilevel inheritance
- Interactive program (Menerima input dan mengeluarkan output sesuai input)
File ```mainprogram.cpp``` dijalankan. Pengguna memilih di menu dengan menginput salah satu dari angka pilihan dari menu berikut : 1) input mahasiswa, 2) list mahasiswa, 3) input mahasiswa, 4) list mahasiswa. Lalu pengguna menginput NIM, IPS, Nama, Email, dan Departemen jika memilih mahasiswa dan menginput NIM, Nama, Email, dan Departemen jika memilih dosen. Jika pengguna memilih list mahasiswa maupun dosen, maka akan ditampilkan list dari data yang sudah diinput pengguna sebelumnya.

## Penjelasan Program
Selain membuat program, kalian perlu menuliskan penjelasan program kalian, dengan seminimalnya berisikan
- Deskripsi program
- Penjelasan design pattern yang dipilih
- Letak implementasi design pattern tersebut
- Alasan pemilihan design pattern tersebut
- Cara menjalankan program
- Versi bahasa dan dependency (jika ada) yang digunakan
- Konsep-konsep lain yang kalian gunakan dan keunikan program (jika ada)
## Versi Bahasa dan Dependency

## Pengumpulan
- Pengumpulan tugas ini mirip dengan tugas sebelumnya.
- Fork ke repository github kalian masing - masing
- Buka repository pada repo yang telah di fork sebelumnya
- Clone repository tersebut
- Buat program sesuai deskripsi di atas di dalam folder dengan format `Nama_Univ`
- Tulis penjelasan program kalian pada file `README.md` di dalam folder tersebut
- Add folder tersebut ke dalam staging
- Letakkan folder tersebut sejajar dengan file README.md
- Setelah itu push kembali ke repository kalian
- Pull request kedalam repository GDSC yang sudah anda fork tadi
- Isi judul pull request dengan "Hands on OOP submission by < Nama kalian >"
Bahasa menggunakan C++17. Program mungkin memerlukan ```mainprogram.exe``` agar dapat dijalankan.

## Bahasa Pemrograman
Tidak semua bahasa pemrograman dapat mengimplementasikan OOP. Untuk tugas ini, ada bahasa yang dapat digunakan dan tidak dapat digunakan.

### Bahasa yang dapat digunakan
Selain bahasa di bawah ini, kalian dapat me-request bahasa lain, dengan persetujuan tim kurikulum GDSC ITB

- C++
- Java
- Kotlin
- Typescript
- Go (Golang)
- C#

### Bahasa yang tidak dapat digunakan
Karena keterbatasan di bahasa-bahasa berikut, bahasa di bawah ini tidak digunakan di tugas ini
- Python
- PHP
- C

## Deliverable
- Kumpulkan link github fork repository dan link pull request kalian ke gform yang dibagikan

## Deadline
- Jumat, 27 Januari 2023, pukul 23.59
## Lain-lain
Saat ini Project belum selesai karena terkendala file handling agar program benar-benar bisa dijalankan, menulis dan membaca data dari suatu file.

Program ini memanfaatkan input dari pengguna (interactive program)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Empty file.
Binary file added SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/.suo
Binary file not shown.
Binary file added SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/Browse.VC.db
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
31 changes: 31 additions & 0 deletions SiAkad_Tevyat/SiAkad_Tevyat.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33213.308
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SiAkad_Tevyat", "SiAkad_Tevyat\SiAkad_Tevyat.vcxproj", "{D8E6B100-260D-416D-8387-8FE8673A40F7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D8E6B100-260D-416D-8387-8FE8673A40F7}.Debug|x64.ActiveCfg = Debug|x64
{D8E6B100-260D-416D-8387-8FE8673A40F7}.Debug|x64.Build.0 = Debug|x64
{D8E6B100-260D-416D-8387-8FE8673A40F7}.Debug|x86.ActiveCfg = Debug|Win32
{D8E6B100-260D-416D-8387-8FE8673A40F7}.Debug|x86.Build.0 = Debug|Win32
{D8E6B100-260D-416D-8387-8FE8673A40F7}.Release|x64.ActiveCfg = Release|x64
{D8E6B100-260D-416D-8387-8FE8673A40F7}.Release|x64.Build.0 = Release|x64
{D8E6B100-260D-416D-8387-8FE8673A40F7}.Release|x86.ActiveCfg = Release|Win32
{D8E6B100-260D-416D-8387-8FE8673A40F7}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {80373712-EE67-42C6-B2D6-A538827978AE}
EndGlobalSection
EndGlobal
44 changes: 44 additions & 0 deletions SiAkad_Tevyat/SiAkad_Tevyat/Header.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#ifndef Header_h
#define Header_h
#include <iostream>
using namespace std;
#include <string>

class ssw
{
protected:
int nim;
float ips;
string name[100];
string email[100];
string departemen[100];
public:
int getsswnim(){return nim;} void setsswnim(int i){nim = i;}
float getsswips(){return ips;} void setsswips(int i){ips = i;}
string getsswname(){return name[100];} void setsswname(string i){name[100] = i;}
string getsswname(){return email[100];} void setsswemail(string i){email[100] = i;}
string getsswname(){return departemen[100];} void setsswdepartemen(string i){departemen[100] = i;}

};

class dsn
{
protected:
int nim;
string name[21];
string email[21];
string departemen[21];
public:
int getdsnnim() { return nim; } void setdsnnim(int i) { nim = i; }
string getdsnname() { return name[100]; } void setdsnname(string i) { name[100] = i; }
string getdsnname() { return email[100]; } void setdsnemail(string i) { email[100] = i; }
string getdsnname() { return name[100]; } void setdsndepartemen(string i) { departemen[100] = i; }

};

void inp_siswa();
void data_siswa();
void inp_dosen();
void data_dosen();

#endif
142 changes: 142 additions & 0 deletions SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{d8e6b100-260d-416d-8387-8fe8673a40f7}</ProjectGuid>
<RootNamespace>SiAkadTevyat</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="Header.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="data_dosen.cpp" />
<ClCompile Include="inp_dosen.cpp" />
<ClCompile Include="inp_siswa.cpp" />
<ClCompile Include="mainprogram.cpp" />
<ClCompile Include="data_siswa.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
39 changes: 39 additions & 0 deletions SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj.filters
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Header.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="inp_dosen.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="inp_siswa.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="data_dosen.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="data_siswa.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mainprogram.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
4 changes: 4 additions & 0 deletions SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj.user
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
Loading