Makalah
disusun untuk memenuhi tugas Mata Kuliah Algoritma dan
Pemrograman
Oleh:
SISTEM INFORMASI
FAKULTAS REKAYASA INDUSTRI
TELKOM UNIVERSITY
BANDUNG
2017
KATA PENGANTAR
Puji dan syukur penulis panjatkan kehadirat Allah swt. atas rahmat dan
karunia-Nya, penulis dapat menyelesaikan makalah yang membahas mengenai
“Sistem Penitipan Kunci Kamar Asrama” ini.
Salam serta shalawat penulis kirimkan kepada junjungan Nabiullah
Muhammad saw. Yang telah membawa manusia dari alam kegelapan menuju
alam terang benderang.
Tidak lupa penulis mengucapkan terima kasih kepada Bapak TEGUH
NURHADI SUHARSONO, S.T., M.T, selaku dosen mata kuliah Algoritma dan
Pemrograman kelas SI-40-07. Serta kepada beberapa pihak yang turut membantu
dalam pembuatan makalah maupun programnya.
Seiring berkembangnya zaman dan teknologi, hampir setiap aktivitas
manusia dibantu oleh teknologi, bahkan tidak pernah lepas dari teknologi. Hal ini
guna mengefisienkan dan mengefektifkan waktu, serta mengurangi hal-hal yang
tidak diinginkan. Untuk itu, penulis membuat sebuah program yang dapat
mempermudah para penghuni Asrama Telkom University, dalam hal pengambilan
maupun pengembalian kunci.
Demikian makalah yang telah penulis kerjakan untuk memenuhi tugas
Mata Kuliah Algoritma dan Pemrograman, dimohon saran serta kritik yang
membangun dari pembaca, guna menyempurnakan pembuatan makalah
selanjutnya.
Penulis
ii
DAFTAR ISI
A. Kesimpulan ............................................................................................. 15
B. Saran ....................................................................................................... 15
iii
DAFTAR GAMBAR
Gambar 1. 1 ........................................................................................................... 10
Gambar 1. 2 ........................................................................................................... 10
Gambar 1. 3 ........................................................................................................... 11
Gambar 1. 4 ........................................................................................................... 11
Gambar 1. 5 ........................................................................................................... 12
Gambar 1. 6 ........................................................................................................... 13
Gambar 1. 7 ........................................................................................................... 13
Gambar 1. 8 ........................................................................................................... 14
iv
BAB I
PENDAHULUAN
B. Identifikasi Masalah
Susahnya pencarian nama ataupun nomor kamar pada tabel di buku
penitipan kunci, peluang terjadinya salah mengisi kolom yang sangat besar,
ketidak-efektifan waktu untuk mengisi buku pengambilan dan pengembalian
kunci tersebut, dan tidak memperkecil kemungkinan orang asing dapat
mengambil kunci kamar begitu saja. Menjadi suatu permasalahan yang bisa
berdampak buruk apabila dibiarkan. Membuat penulis tergerak untuk
membuat sebuah program yang bertujuan memudahkan serta dapat
mengefisienkan waktu yang terpakai untuk pengambilan maupun
pengembalian kunci kamar asrama.
1
C. Batasan Masalah
Batasan masalah di dalam makalah ini akan berfokus pada Sistem
Penitipan Kunci Kamar Asrama. Baik itu pengambilan kunci ataupun
pengembalian.
D. Sistematika Penulisan
BAB I
BAB II
BAB III
BAB IV
Terdiri dari kesimpulan yang didapat dari bab-bab sebelumnya. Serta saran
bagi pembaca agar kedepannya, program ini dapat dikembangkan.
2
BAB II
LANDASAN TEORI
Pada tahun 1990 Telkom University yang berawal dari Sekolah Tinggi
Teknologi (STT) di resmikan, semakin berkembangnya sekolah tinggi
teknologi tersebut pihak yayasan pun memutuskan untuk membangun sebuah
asrama yang dikhususkan untuk mahasiswa / mahasiswinya. Asrama Gedung
L merupakan asrama pertama yang dibangun telkom, didirikan sekitar tahun
2008/2009.
3
2) Array
Array merupakan objek yang dapat digunakan untuk menyimpan
sejumlah data. Data yang dapat ditampung pada array dapat berupa tipe
data ataupun kelas (objek).
Terdapat 2 cara untuk mendeklarasikan sebuah array:
1. Cara pertama: int[] nama_array; Format: tipeData [] namaArray;
2. Cara kedua: int nama_array[]; Format: tipeData namaArray[];
3) Looping For
Perulangan for merupakan perulangan yang memiliki variabel untuk
melakukan pengkondisian, berbeda dengan while dan do-while, pada
perulangan for, ditempatkan sebuah blok untuk membuat variabel dan
melakukan proses pengkondisian.
4) Looping While
Pengulangan (looping) adalah suatu bagian yang bertugas melakukan
kegiatan mengulang suatu proses sesuai dengan yang diinginkan.
4
Pada pengulangan while, pengecekan terhadap pengulangan
dilakukan di bagian awal (sebelum tubuh loop). Lebih jelasnya, bentuk
struktur pengulangan while adalah sebagai berikut:
Inisialisasi
while(Terminasi){
Proses
Iterasi
5
BAB III
PEMBAHASAN
Dalam Program yang penulis buat, terdapat dua kelas, yakni; kelas untuk
File Output dan kelas untuk File Input. Dimana kelas File Output ini digunakan
sebagai wadah untuk menyimpan data-data tentang anggota masing-masing kamar
di asrama dan kode kamar yang dipakai.
Di mana kode kamar ini merupakan sebuah kode rahasia yang hanya
diketahui oleh anggota suatu kamar. Hal ini dibuat untuk mengurangi
kemungkinan masuknya orang asing ke dalam suatu kamar (Pengambilan kunci di
tangan yang tepat).
Kedepannya, data-data tersebut akan digunakan pada kelas File Input untuk
memastikan bahwa baik itu nomor kamar ataupun kode kamarnya, cocok dengan
yang telah tersimpan di kelas File Output.
1. package sistemPenitipanKunciAsrama;
2. import java.io.FileNotFoundException;
3. import java.io.PrintWriter;
4. import java.util.Scanner;
5.
6. public class FileOutput {
7. private static Scanner input;
8. // Semangatttt!!! Berdoa dan Berusaha
9.
10. public static void main(String[] args) {
11. input = new Scanner(System.in);
12. System.out.println("Masukkan Nomor Kamar: ");
13. Scanner keyboard = new Scanner (System.in);
14. String fileKamar = keyboard.next();
15. System.out.println("Masukkan Code Kamar: ");
16. Scanner code = new Scanner (System.in);
17. String fileCode = code.next();
18.
19.
20. PrintWriter outputStream= null;
21. //Untuk code kamar
22. try{
23. outputStream= new PrintWriter (fileCode);
24. }catch (FileNotFoundException e){
25. System.out.println("Error opening the code" +fileCode);
26. System.exit(0);
6
27. }
28. //Untuk fileKamar
29. try{
30. outputStream = new PrintWriter (fileKamar);
31. }catch (FileNotFoundException e){
32. System.out.println("Error opening the file" +fileKamar);
33. System.exit(0);
34.
35. }
36.
37.
38. String Anggota[]=new String[4];
39. int i;
40. System.out.println("Silahkan Ketik Nama-Nama Anggota Kamar: ");
41. System.out.println("Gunakan (_) sebagai spasi, cth (Alfa_Mart)");
1. package sistempenitipankunciasrama;
2. import java.io.File;
3. import java.io.FileNotFoundException;
4. import java.util.Scanner;
5.
6. public class PengambilanKunci {
7. public static Scanner input;
8.
9. public static void main(String[] args) {
10.
11. input = new Scanner (System.in);
12. String jam;
13. String garis = "__________________________________________________
________________________________________";
14. String garis2= "==================================================
========================================";
15. String pertanyaan= "\n 1. Pengambilan Kunci \n 2. Pengembalian Kun
ci \n Masukkan Pilihan Anda: ";
16.
17. System.out.println(garis);
18. System.out.println("SISTEM PENITIPAN KUNCI KAMAR ASRAMA");
19. System.out.println(garis2);
20.
21.
7
22. System.out.println("No Kamar: ");
23. Scanner keyboard = new Scanner (System.in);
24. String fileKamar= keyboard.next();
25. System.out.println("Masukkan Nama Anda: ");
26. Scanner name= new Scanner (System.in);
27. String fileName = keyboard.next();
28. System.out.println("Masukkan Code Kamar: ");
29. Scanner code = new Scanner (System.in);
30. String fileCode = code.next();
31.
32.
33.
34. Scanner inputStream= null;
35. try{
36. inputStream= new Scanner (new File (fileCode));
37. System.out.println("Kode yang anda masukkan benar, anda adalah
anggota kamar");
38. }catch (FileNotFoundException e){
39. System.out.println("Kode yang anda masukkan salah. Anda bukan
anggota dari kamar " +fileKamar+ " dengan code " +fileCode);
40. System.exit(0);
41. }
42. System.out.println("Kamar " +fileKamar+ ", anggota kamar: ");
43. try{
44. inputStream = new Scanner (new File (fileKamar));
45. }catch(FileNotFoundException e){
46. System.out.println("Error opening the file " +fileKamar);
47. System.exit(0);
48.
49. }while (inputStream.hasNextLine()){
50. String line = inputStream.nextLine();
51. System.out.println(line);
52. }
53.
54. System.out.println(garis);
55. System.out.println("Jam: ");
56. jam=keyboard.next();
57. System.out.println(garis);
58. System.out.println(pertanyaan);
59. int pilihan= input.nextInt();
60. if(pilihan==1){
61. System.out.println(fileName+ " mengambil kunci pada pukul " +j
am);
62. }else if (pilihan==2){
63. System.out.println(fileName+ " mengembalikan kunci pada pukul
" +jam);
64. }else{
65. System.out.println("Pilihan tidak tersedia");
66. }
Pada codingan di atas, ada beberapa dasar logika yang digunakan penulis.
Seperti else-if, yang berfungsi sebagai pengkondisian yang akan memunculkan
8
suatu statement. Apabila user menekan 1, hal tersebut berarti bahwa user memilih
untuk mengembalikan kunci, dan akan muncul statement bahwa user mengambil
kunci pada jam sekian. Apabila menekan 2, maka akan keluar statement bahwa
user mengembalikan kunci pada jam sekian. Dan apabila user menekan selain 1
dan 2, maka akan keluar statement bahwa pilihan tersebut tidak tersedia.
Pada kelas File Output dan File Input-nya, penulis menggunakan
perulangan for dan while.
Penulis juga menggunakan try and catch. Berbeda dengan else-if, dimana
try and catch ini berfungsi untuk menangkap eksepsi atau kesalahan. Eksepsi
(Exception) dapat berupa kesalahan penulisan kode.
Misalkan, pada kodingan di atas, penulis menggunakan try and catch ini
untuk menangkap kesalahan dalam penulisan nomor kamar. Apabila tidak sesuai
dengan yang telah tersimpan, maka data tersebut tidak akan dimunculkan (error).
Penulis juga menggunakan try and catch ini untuk menangkap kesalahan apabila
user memasukkan kode kamar yang tidak sesuai dengan yang telah tersimpan
pada data kelas File Outputnya
Untuk importnya sendiri, penulis menggunakan beberapa import pada
kelas File Output-nya seperti java.io.FileNotFoundException, java.io.Printwriter
yang berfungsi untuk mencetak data yang telah kita tuliskan, dan
java.util.Scanner yang berfungsi agar user dapat memasukkan data yang diminta.
Untuk kelas File Inputnya, penulis menggunakan beberapa import seperti
java.io.File, java.io.FileNotFoundException, java.util.Scanner.
9
Screenshoot Hasil Pengerjaan (Code)
a. File Ouput
Gambar 1. 1
Gambar 1. 2
10
b. File Input
Gambar 1. 3
Gambar 1. 4
11
Gambar 1. 5
12
Screenshoot Output
Gambar 1. 6
Gambar 1. 7
13
Berikut output apabila kode kamar yang dimasukkan salah.
Gambar 1. 8
14
BAB IV
PENUTUP
A. Kesimpulan
Telkom University merupakan salah satu kampus swasta di Indonesia
berbasis teknologi, hal ini bisa dilihat dari penerapannya mulai dari registrasi
calon mahasiswa baru hingga aktivitas di perkuliahan yang sebagian besar
dibantu dengan teknologi dan sistem informasi.
B. Saran
Diharapkan kedepannya, program ini dapat dikembangkan, mengingat
Telkom University merupakan salah satu universitas swasta berbasis
teknologi. Mengingat pula bahwa sebuah program dirancang untuk
mempermudah kegiatan dan pekerjaan manusia, selain itu juga dapat
mengefisienkan waktu, dan menghindari hal-hal yang tidak diinginkan.
15
DAFTAR PUSTAKA
http://onestringlab.com/pengulangan-pada-java/
https://ryanazhr.wordpress.com/2015/04/07/sejarah-asrama/
http://telkomuniversity.ac.id/id/campus/dormitory
16