Anda di halaman 1dari 20

SISTEM PENITIPAN KUNCI KAMAR ASRAMA

Makalah
disusun untuk memenuhi tugas Mata Kuliah Algoritma dan
Pemrograman
Oleh:

Yasnita (NIM 1202164387)


SI-40-07

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.

Bandung, 28 April 2017

Penulis

ii
DAFTAR ISI

KATA PENGANTAR ............................................................................................ ii

DAFTAR ISI .......................................................................................................... iii

DAFTAR GAMBAR ............................................................................................. iv

BAB I PENDAHULUAN ....................................................................................... 1

A. Latar Belakang Permasalahan .................................................................. 1

B. Identifikasi Masalah ................................................................................. 1

C. Batasan Masalah ....................................................................................... 2

D. Sistematika Penulisan ............................................................................... 2

BAB II LANDASAN TEORI ................................................................................. 3

BAB III PEMBAHASAN ....................................................................................... 6

BAB IV PENUTUP .............................................................................................. 15

A. Kesimpulan ............................................................................................. 15

B. Saran ....................................................................................................... 15

DAFTAR PUSTAKA ........................................................................................... 16

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

A. Latar Belakang Permasalahan


Seperti kita ketahui, pada zaman sekarang hampir setiap kegiatan atau
aktivitas manusia dibantu oleh teknologi dan sistem informasi. Hal ini
bertujuan untuk mempermudah pekerjaan manusia, mengefisienkan waktu
yang terpakai. Selain itu dengan teknologi dan sistem informasi, memberikan
kemungkinan kesalahan lebih kecil dibanding jika tangan manusia yang
menangani (memberikan null human error).
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.
Namun, hal ini belum sepenuhnya ditemui pada fasilitas asrama yang
disediakan Telkom University. Utamanya pada sistem penitipan kunci asrama
yang masih berbasis kertas dan pulpen. Hal ini tidak memperkecil
kemungkinan terjadinya hal-hal yang tidak diinginkan, seperti kesalahan
dalam menulis di dalam tabel karena terburu-buru, bahkan lebih parah
besarnya kemungkinan orang luar dapat masuk ke suatu kamar.

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

Berisi penjelasan mengenai latar belakang dari permasalahan yang diambil.

BAB II

Berisi sejarah berdirinya Asrama Telkom University dan teori-teori yang


dipakai sebagai dasar penjelasan pada bab berikutnya.

BAB III

Berisi pembahasan mengenai program yang dibuat. Terdiri dari screenshoot-


an hasil pengerjaan dan output, serta source code.

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

A. Sejarah Berdirinya Asrama

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.

Pihak Yayasan kembali memutuskan untuk menambah jumlah asrama.


Asrama baru yang akan di bangun berjumlah lima gedung dengan 4 lantai
masing-masing gedungnya.

Pembangunan untuk gedung Asrama Putri yang baru di mulai sekitar


tahun 2010 dan akhirnya selesai pada tahun 2012, dan resmi digunakan untuk
mahasiswa baru pada tahun itu (tahun ajaran 2012/2013).

Dengan maksud melengkapi program belajar mengajar di Telkom


University, Telkom Foundation memberlakukan kebijakan dengan
menyediakan asrama bagi mahasiswa/i baru untuk tempat tinggal selama 1
(satu) tahun pertama. Dalam kehidupan asrama diberikan pembinaan dasar-
dasar kepribadian guna pembentukan karakter bagi mahasiswa/i baru yang
didasarkan pada semangat kebersamaan, nasionalisme, iman, dan taqwa.

B. Dasar-Dasar Logika yang Digunakan


1) File Processing (File Input / File Output)
a) OutputStream
Digunakan untuk menulis data ke tujuan.
b) InputStream
Digunakan untuk membaca data dari source.

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[];

Setelah mendeklarasikan Array, maka Arraynya harus dibuat terlebih


dahulu dengan menggunakan perintah new dan memasukkan jumlah data
yang dapat ditampung oleh array.

tipeData nama_array [];

nama_array [] = new tipeData [jumlah];

Cara yang sama dapat dilakukan pada array multidimensi.

nama_array [] [] = new tipeData [][];

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.

for (inisialisasi; kondisi; iterasi/penaikan/penurunan){


instruksi
}

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.

Source Code untuk 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)");

42. for ( i = 0; i <= 3; i++){


43. System.out.println("Anggota ke-" +(i+1)+ " : ");
44. Anggota[0]= keyboard.next();
45. outputStream.println(i + " " + Anggota[0]);
46. }
47. outputStream.close();
48. System.out.println("Those lines were written to "+fileKamar);
49. }
50. }

Source Code untuk File Input

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

Output dari FileOutput

Gambar 1. 6

Output dari File Input


Berikut output dari file Input, apabila kode kamar yang dimasukkan benar.

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.

Namun hal tersebut, belum sepenuhnya diterapkan, misalnya pada


sistem penitipan kunci kamar asrama. Gedung Asrama Putri sendiri sudah
berdiri sejak lima tahun yang lalu. Tepatnya, sudah mulai digunakan untuk
angkatan tahun ajaran 2012/2013, hingga sekarang.

Penulis menawarkan sebuah rancangan program java, dimana di


program itu sendiri 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. 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.

Tentunya ada beberapa keuntungan yang diperoleh, misalkan waktu


yang dipakai lebih efisien, mengurangi kemungkinan orang asing dapat
mengambil kunci suatu kamar.

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

Anda mungkin juga menyukai