diff --git a/.vs/Hands-On-OOP-2022/FileContentIndex/4a9db9f2-6ea3-4329-92c2-151dca035908.vsidx b/.vs/Hands-On-OOP-2022/FileContentIndex/4a9db9f2-6ea3-4329-92c2-151dca035908.vsidx new file mode 100644 index 0000000..aa4d2b6 Binary files /dev/null and b/.vs/Hands-On-OOP-2022/FileContentIndex/4a9db9f2-6ea3-4329-92c2-151dca035908.vsidx differ diff --git a/.vs/Hands-On-OOP-2022/FileContentIndex/read.lock b/.vs/Hands-On-OOP-2022/FileContentIndex/read.lock new file mode 100644 index 0000000..e69de29 diff --git a/.vs/Hands-On-OOP-2022/v17/.wsuo b/.vs/Hands-On-OOP-2022/v17/.wsuo new file mode 100644 index 0000000..4883d2c Binary files /dev/null and b/.vs/Hands-On-OOP-2022/v17/.wsuo differ diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..6b61141 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000..04522be Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/README.md b/README.md index e54cdbd..4f7cfa2 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/55dcc060-03a2-450c-95d3-30e266e51085.vsidx b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/55dcc060-03a2-450c-95d3-30e266e51085.vsidx new file mode 100644 index 0000000..03ba72d Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/55dcc060-03a2-450c-95d3-30e266e51085.vsidx differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/8f55317e-72ba-4e0a-ae15-9c540c16aa4a.vsidx b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/8f55317e-72ba-4e0a-ae15-9c540c16aa4a.vsidx new file mode 100644 index 0000000..cbaac06 Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/8f55317e-72ba-4e0a-ae15-9c540c16aa4a.vsidx differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/9946f2ff-7003-4272-92a7-07a8b2048582.vsidx b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/9946f2ff-7003-4272-92a7-07a8b2048582.vsidx new file mode 100644 index 0000000..5ee2662 Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/9946f2ff-7003-4272-92a7-07a8b2048582.vsidx differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/a4966acd-bb79-4711-8489-50e485f88106.vsidx b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/a4966acd-bb79-4711-8489-50e485f88106.vsidx new file mode 100644 index 0000000..d0688f6 Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/a4966acd-bb79-4711-8489-50e485f88106.vsidx differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/read.lock b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/FileContentIndex/read.lock new file mode 100644 index 0000000..e69de29 diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/.suo b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/.suo new file mode 100644 index 0000000..f830981 Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/.suo differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/Browse.VC.db b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/Browse.VC.db new file mode 100644 index 0000000..088f494 Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/Browse.VC.db differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/625ba481af8cd550/DATA_DOSEN.ipch b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/625ba481af8cd550/DATA_DOSEN.ipch new file mode 100644 index 0000000..8c5d294 Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/625ba481af8cd550/DATA_DOSEN.ipch differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/6dcfb6f444e1a719/DOSEN.ipch b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/6dcfb6f444e1a719/DOSEN.ipch new file mode 100644 index 0000000..ace7e93 Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/6dcfb6f444e1a719/DOSEN.ipch differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/89663e8f67df9ddf/INP_SISWA.ipch b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/89663e8f67df9ddf/INP_SISWA.ipch new file mode 100644 index 0000000..db2959f Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/89663e8f67df9ddf/INP_SISWA.ipch differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/90d3bf1c00463b0b/INP_DOSEN.ipch b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/90d3bf1c00463b0b/INP_DOSEN.ipch new file mode 100644 index 0000000..503042b Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/90d3bf1c00463b0b/INP_DOSEN.ipch differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/9fdbacbcc9c46cbb/MAINPROGRAM.ipch b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/9fdbacbcc9c46cbb/MAINPROGRAM.ipch new file mode 100644 index 0000000..f0b11cf Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/9fdbacbcc9c46cbb/MAINPROGRAM.ipch differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/c190451fa0a51e4c/DATA_SISWA.ipch b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/c190451fa0a51e4c/DATA_SISWA.ipch new file mode 100644 index 0000000..a0dc0ff Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/c190451fa0a51e4c/DATA_SISWA.ipch differ diff --git a/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/f5276ef3c6b7ffea/HEADER.ipch b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/f5276ef3c6b7ffea/HEADER.ipch new file mode 100644 index 0000000..4dc1f0f Binary files /dev/null and b/SiAkad_Tevyat/.vs/SiAkad_Tevyat/v17/ipch/AutoPCH/f5276ef3c6b7ffea/HEADER.ipch differ diff --git a/SiAkad_Tevyat/SiAkad_Tevyat.sln b/SiAkad_Tevyat/SiAkad_Tevyat.sln new file mode 100644 index 0000000..258cdeb --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat.sln @@ -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 diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/Header.h b/SiAkad_Tevyat/SiAkad_Tevyat/Header.h new file mode 100644 index 0000000..feb5185 --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/Header.h @@ -0,0 +1,44 @@ +#ifndef Header_h +#define Header_h +#include +using namespace std; +#include + +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 \ No newline at end of file diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj b/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj new file mode 100644 index 0000000..f272e1e --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj @@ -0,0 +1,142 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {d8e6b100-260d-416d-8387-8fe8673a40f7} + SiAkadTevyat + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj.filters b/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj.filters new file mode 100644 index 0000000..2311c2e --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj.user b/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/SiAkad_Tevyat.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/data_dosen.cpp b/SiAkad_Tevyat/SiAkad_Tevyat/data_dosen.cpp new file mode 100644 index 0000000..654c596 --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/data_dosen.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +#include "Header.h" + +using namespace std; + + + +void data_dosen() +{ + // Creation of fstream class object + fstream fio; + string line; + + + + fio.open("dosen.dat", ios::trunc | ios::out | ios::in); + + printf("\n\n Nama\t\t\tNIM\t\tEmail\t\t\t\tDepartemen\t\\\\\n"); + + + + // Execute a loop If file successfully Opened + while (fio) + { + + printf("%s\t\t%d\t\t%s\t\t%s\t\t\n"); + + // Read a Line from standard input + getline(cin, line); + + + fio << line << endl; + } + + // Execute a loop until EOF (End of File) + // point read pointer at beginning of file + fio.seekg(0, ios::beg); + + while (fio) { + + // Read a Line from File + getline(fio, line); + + // Print line in Console + cout << line << endl; + } + + // Close the file + fio.close(); + +} diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/data_siswa.cpp b/SiAkad_Tevyat/SiAkad_Tevyat/data_siswa.cpp new file mode 100644 index 0000000..90cffa0 --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/data_siswa.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +#include "Header.h" + +using namespace std; + + + +void siswa() +{ + // Creation of fstream class object + fstream fio; + string line; + + + + fio.open("siswa.dat", ios::trunc | ios::out | ios::in); + + printf("\n\n Nama\t\t\tNIM\t\tEmail\t\t\t\tDepartemen\t\\\\\n"); + + + + // Execute a loop If file successfully Opened + while (fio) + { + + printf("%s\t\t%d\t\t%s\t\t%s\t\t\n"); + + // Read a Line from standard input + getline(cin, line); + + + fio << line << endl; + } + + // Execute a loop until EOF (End of File) + // point read pointer at beginning of file + fio.seekg(0, ios::beg); + + while (fio) { + + // Read a Line from File + getline(fio, line); + + // Print line in Console + cout << line << endl; + } + + // Close the file + fio.close(); + +} diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/inp_dosen.cpp b/SiAkad_Tevyat/SiAkad_Tevyat/inp_dosen.cpp new file mode 100644 index 0000000..5c1969a --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/inp_dosen.cpp @@ -0,0 +1,25 @@ +#include +#include +#include +#include "Header.h" + +using namespace std; + +void inp_dosen() +{ + + ofstream fout("dosen.dat"); + + + + fout.close(); + + ifstream fin("dosen.dat"); + + + fin.close(); + + + + +} \ No newline at end of file diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/inp_siswa.cpp b/SiAkad_Tevyat/SiAkad_Tevyat/inp_siswa.cpp new file mode 100644 index 0000000..ed6f9ee --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/inp_siswa.cpp @@ -0,0 +1,25 @@ +#include +#include +#include +#include "Header.h" + +using namespace std; + +void inp_siswa() +{ + + ofstream fout("siswa.dat"); + + + + fout.close(); + + ifstream fin("siswa.dat"); + + + fin.close(); + + + + +} \ No newline at end of file diff --git a/SiAkad_Tevyat/SiAkad_Tevyat/mainprogram.cpp b/SiAkad_Tevyat/SiAkad_Tevyat/mainprogram.cpp new file mode 100644 index 0000000..435feb3 --- /dev/null +++ b/SiAkad_Tevyat/SiAkad_Tevyat/mainprogram.cpp @@ -0,0 +1,64 @@ +#include +#include +#include +#include "Header.h" +#include +using namespace std; + +void menu() +{ + printf("\t\t\t\t\t Menu\n"); + printf("\t\t\t|1.Input Mahasiswa\n"); + printf("\t\t\t|2.List Mahasiswa\n"); + printf("\t\t\t|3.Input Dosen\n"); + printf("\t\t\t|4.List Dosen\t\t\t\n"); + printf("\t\t\t|10.Exit\n\n"); + + + printf("Tolong Masukkan angka sesuai Menu:\n"); +} + +int main() +{ + ofstream fout; + string line; + int pilihmenu; + menu(); + + scanf("%d", &pilihmenu); + + while (pilihmenu != 10) + { + if (pilihmenu == 1) + { + inp_siswa(); + } + else if (pilihmenu == 2) + { + data_siswa(); + } + else if (pilihmenu == 3) + { + inp_dosen(); + } + else if (pilihmenu == 4) + { + data_dosen(); + } + else + { + printf("Pilihan anda tidak ada di Menu, tolong masukkan pilihan anda lagi: "); + } + + menu(); + + printf("Masukkan Pilihan anda:\n"); + + scanf("%d", &pilihmenu); + + + + } + return 0; + return 0; +} \ No newline at end of file