Anda di halaman 1dari 6

Nama : Muhammad Rahmaddianto

Reynald Edwardo Rumengan


Mata Kuliah : Algoritma dan Pemrograman
Program Studi: Informatika

 TUGAS PRA UAS


Pertanyaan/Soal :

a) Buatlah sebuah program yang mampu melakukan input, update, delete sebuah data yang telah
di inputkan sebelumnya. Kemudian lakukan pencarian data (Searching array) dan buatlah menu
pilihan untuk 1. Input, 2. Update, 3. Delete, dan 4. Cari (Menggunakan Array, Seleksi Kondisi,
dan Switch Case).

Seluruh jawaban dikumpul dalam bentuk ;

1. Netbeans Project

2. Laporan sedikit Mengenai Penjelasan Program Yang dibuat


1. Netbeans Project
1. package prauas_package;  
2.   
3. /** 
4.  * 
5.  * @author1 REYNALD EDWARDO RUMENGAN 
6.  * @author2 MUHAMMAD RAHMADIANTO 
7.  */  
8. import java.io.File;    
9. import java.io.FileNotFoundException;    
10. import java.io.FileWriter;    
11. import java.io.IOException;    
12. import java.util.ArrayList;    
13. import java.util.Scanner;  
14.   
15. public class latihan_uas {   
16.     
17.     // deklarasi variabel global    
18.     static String fileName;    
19.     static ArrayList<String> todoLists;    
20.     static boolean isEditing = false;    
21.     static Scanner input;    
22.     
23.     public static void main(String[] args) {    
24.         // initialize    
25.         todoLists = new ArrayList<>();    
26.         input = new Scanner(System.in);    
27.     
28.         String filePath = System.console() == null ? "/src/todolist.txt" : "/todolis
t.txt";    
29.         fileName = System.getProperty("user.dir") + filePath;    
30.     
31.         System.out.println("FILE: " + fileName);    
32.     
33.         // run the program (main loop)    
34.         while (true) {    
35.         showMenu();    
36.     }    
37.             
38.     }    
39.         
40.     static void clearScreen(){    
41.       try {    
42.         final String os = System.getProperty("os.name");    
43.         if (os.contains("Windows")) {    
44.             // clear screen untuk windows    
45.             new ProcessBuilder("cmd", "/c", "cls")    
46.                     .inheritIO()    
47.                     .start()    
48.                     .waitFor();    
49.         } else {    
50.             // clear screen untuk Linux, Unix, Mac    
51.             Runtime.getRuntime().exec("clear");    
52.             System.out.print("\033[H\033[2J");    
53.             System.out.flush();    
54.         }    
55.     } catch (final Exception e) {    
56.         System.out.println("Error karena: " + e.getMessage());    
57.     }      
58.     }    
59.     
60.     static void showMenu() {    
61.     System.out.println("=== DAFTAR MAHASISWA IFB1K ===");    
62.     System.out.println("[1] Lihat Daftar Mahasiswa");    
63.     System.out.println("[2] Tambahkan Mahasiswa");    
64.     System.out.println("[3] Edit Nama Mahasiswa");    
65.     System.out.println("[4] Hapus Nama Mahasiswa");    
66.     System.out.println("[0] Keluar");    
67.     System.out.println("----------------------");    
68.     System.out.print("Pilih Menu > ");    
69.     
70.     String selectedMenu = input.nextLine();    
71.     
72.     if (selectedMenu.equals("1")) {    
73.         showTodoList();    
74.     } else if (selectedMenu.equals("2")) {    
75.         addTodoList();    
76.     } else if (selectedMenu.equals("3")) {    
77.         editTodoList();    
78.     } else if (selectedMenu.equals("4")) {    
79.         deleteTodoList();    
80.     } else if (selectedMenu.equals("0")) {    
81.         System.exit(0);    
82.     } else {    
83.         System.out.println("Menu yang dipilih salah! Silahkan coba lagi..");    
84.         backToMenu();    
85.     }    
86.     }    
87.     
88.     static void backToMenu() {    
89.         System.out.println("");    
90.         System.out.print("Tekan [Enter] untuk kembali..");    
91.         input.nextLine();    
92.         clearScreen();    
93.     }    
94.     
95.     static void readTodoList() {    
96.          try {    
97.         File file = new File(fileName);    
98.         Scanner fileReader = new Scanner(file);    
99.     
100.         // load isi file ke dalam array todoLists    
101.         todoLists.clear();    
102.         while (fileReader.hasNextLine()) {    
103.             String data = fileReader.nextLine();    
104.             todoLists.add(data);    
105.         }    
106.     
107.     } catch (FileNotFoundException e) {    
108.         System.out.println("Error karena: " + e.getMessage());    
109.     }    
110.     }    
111.     
112.     static void showTodoList() {    
113.         clearScreen();    
114.     readTodoList();    
115.     if (todoLists.size() > 0) {    
116.         System.out.println("Daftar Mahasiswa:");    
117.         int index = 0;    
118.         for (String data : todoLists) {    
119.             System.out.println(String.format("[%d] %s", index, data));    
120.             index++;    
121.         }    
122.     } else {    
123.         System.out.println("Tidak ada mahasiswa yang terdaftar");    
124.     }    
125.     
126.     if (!isEditing) {    
127.         backToMenu();    
128.     }    
129.     }    
130.     
131.     static void addTodoList() {    
132.         clearScreen();    
133.     
134.     System.out.println("Masukkan Nama Mahasiswa");    
135.     System.out.print("Jawab : ");    
136.     String newTodoList = input.nextLine();    
137.     
138.     try {    
139.         // tulis file    
140.         FileWriter fileWriter = new FileWriter(fileName, true);    
141.         fileWriter.append(String.format("%s%n", newTodoList));    
142.         fileWriter.close();    
143.         System.out.println("Berhasil ditambahkan!");    
144.     } catch (IOException e) {    
145.         System.out.println("Terjadi kesalahan karena : " + e.getMessage());   
 
146.     }    
147.     
148.     backToMenu();    
149.     }    
150.     
151.     static void editTodoList() {    
152.         isEditing = true;    
153.     showTodoList();    
154.     
155.     try {    
156.         System.out.println("----------------------");    
157.         System.out.print("Pilih No. Urut > ");    
158.         int index = Integer.parseInt(input.nextLine());    
159.     
160.         if (index > todoLists.size()) {    
161.             throw new IndexOutOfBoundsException("Data yang dimasukkan salah!"
);    
162.         } else {    
163.     
164.             System.out.print("Nama mahasiswa baru: ");    
165.             String newData = input.nextLine();    
166.     
167.             // update data    
168.             todoLists.set(index, newData);    
169.     
170.             System.out.println(todoLists.toString());    
171.     
172.             try {    
173.                 FileWriter fileWriter = new FileWriter(fileName, false);    
174.     
175.                 // write new data    
176.                 for (String data : todoLists) {    
177.                     fileWriter.append(String.format("%s%n", data));    
178.                 }    
179.                 fileWriter.close();    
180.     
181.                 System.out.println("Berhasil diubah!");    
182.             } catch (IOException e) {    
183.                 System.out.println("Terjadi kesalahan karena : " + e.getMessa
ge());    
184.             }    
185.         }    
186.     } catch (Exception e) {    
187.         System.out.println(e.getMessage());    
188.     }    
189.     
190.     isEditing = false;    
191.     backToMenu();    
192.     }    
193.     
194.     static void deleteTodoList() {    
195.         isEditing = true;    
196.     showTodoList();    
197.     
198.     System.out.println("----------------------");    
199.     System.out.print("Pilih Indeks > ");    
200.     int index = Integer.parseInt(input.nextLine());    
201.     
202.     try {    
203.         if (index > todoLists.size()) {    
204.             throw new IndexOutOfBoundsException("Kamu memasukan data yang sal
ah!");    
205.         } else {    
206.     
207.             System.out.println("Anda akan menghapus : ");    
208.             System.out.println(String.format("[%d] %s", index, todoLists.get(
index)));    
209.             System.out.println("Apa anda yakin?");    
210.             System.out.print("Jawab (y/t): ");    
211.             String jawab = input.nextLine();    
212.     
213.             if (jawab.equalsIgnoreCase("y")) {    
214.                 // hapus data    
215.                 todoLists.remove(index);    
216.     
217.                 // tulis ulang file    
218.                 try {    
219.                     FileWriter fileWriter = new FileWriter(fileName, false);  
  
220.     
221.                     // write new data    
222.                     for (String data : todoLists) {    
223.                         fileWriter.append(String.format("%s%n", data));    
224.                     }    
225.                     fileWriter.close();    
226.     
227.                     System.out.println("Berhasil dihapus!");    
228.                 } catch (IOException e) {    
229.                     System.out.println("Terjadi kesalahan karena : " + e.getM
essage());    
230.                 }    
231.             }    
232.         }    
233.     } catch (Exception e) {    
234.         System.out.println(e.getMessage());    
235.     }    
236.     
237.     isEditing = false;    
238.     backToMenu();    
239.     }    
240.     
241. } 

Anda mungkin juga menyukai