Hello, World!

Hello, there!

This blog was originally made in purpose of fulfilling the Data Structure class' assignment. Despite the primary purpose, this blog is also meant to be a personal place for me to upload tasks or materials while tracking the improvement of my programming skills.

Once again, I welcome you to a bit inane but breathtaking world, My Personal World.

Evaluasi Tengah Semester

 Evaluasi Tengah Semester


1. Jelaskan perbedaan struktur data primitif dengan Non Primitif, berikan contohnya dalam program sederhana.



Tipe struktur data pada Java dan pada bahasa pemrograman lainnya, pada umumnya dibagi menjadi 2 kategori. Kedua kategori tersebut, antara lain tipe struktur data primitif dan non primitif.

1. Struktur Data Primitif

  • Struktur data primitif merupakan sebuah tipe struktur data yang sudah didefinisikan oleh sebuah bahasa pemrograman. Ukuran dan tipe datanya sudah terspesifikasi dan ditentukan oleh program, sehingga tidak memungkinkan adanya penambahan metode baru. Struktur data primitif juga beroperasi secara langsung sesuai dengan perintah mesin. Biasanya, struktur data primitif memiliki representasi yang berbeda di setiap komputer.
  • Contoh struktur data primitif, yaitu integer, float, char, boolean
  • Berikut merupakan contoh implementasi struktur data primitif dalam Java beserta dokumentasinya

2. Struktur Data Non Primitif

  • Struktur data non primitif merupakan sebuah tipe struktur data yang lebih kompleks dan merupakan turunan dari struktur data primitif. Tipe struktur data ini tidak serta-merta tersedia dan terdefinisi oleh program, melainkan diciptakan dan didefinisikan oleh si pembuat program. Tipe struktur data ini juga sering disebut "referensi variabel" atau "referensi objek" mengingat fakta bahwa mereka meruujuk pada lokasi memori penyimpanan data.
  • Contoh struktur data non primitif, yaitu array, stack, queue, graphs, dan lain-lain.
  • Berikut merupakan contoh implementasi salah satu struktur data non primitif dalam Java, yaitu Array, beserta dokumentasinya.


Ada beberapa perbedaan utama antara struktur data primitif dengan struktur data non primitif. Perbedaan tersebut akan dijelaskan lebih lanjut sebagai berikut.
  • Struktur data primitif sudah dijelaskan atau sudah terdefinsi dalam sebuah bahasa pemrograman, termasuk Java.Hal ini berbeda dengan struktur data non primtif dimana pembuat program harus terlebih dahulu mendefinisikan struktur datanya sendiri.
  • Struktur data non primitif dapat digunakan untuk memanggil metode atau perintah baru untuk melakukan operasi tertentu sedangkan struktur data primitif tidak bisa karena sifatnya yang pre-defined.
  • Struktur data primitif selalu mempunyai nilai, sedangkan struktur data non primitif dapat berisi null.
  • Dalam hal syntax atau penulisannya, struktur data primitif selalu dimulai dengan huruf kecil (contoh : int, boolean, char)  sedangkan penulisan struktur data non primitif dimulai dengan huruf kapital (contoh : String, Stack, Queue)
  • Ukuran dari struktur data primitif bergantung pada tipe data nya, sehingga ukuran struktur data integer akan berbeda dengan ukuran struktur data float. Namun, hal ini berbeda dengan struktur data non primitif. Pada struktur data non primitif, ukuran struktur datanya akan sama untuk semua jenis.
3. Video Demo Program


2. Jika diketahui notasi infiks = "A + B * C ^ D - E / F" bagaimana bentuk postfiks dari notasi infiks tersebut jika menggunakan stack? Tuliskan dalam bentuk program dan tampilkan screenshootnya. 

Sebelum dapat melakukan proses translasi notasi infiks tersebut ke dalam postfix, maka kita terlebih dahulu perlu mengerti bagaimana aturan penerjemahan infiks ke postfiks menggunakan operasi Stack.

1. Aturan Penerjemahan Infiks ke Postfiks menggunakan Stack
  • Sebuah program akan membaca inputan yang berupa string dari kiri ke kanan. Apabila yang dibaca merupakan operand atau variable, maka variabel tersebut akan langsung dituliskan pada output yang berupa postfiks tanpa harus menyimpannya terlebih dahulu dalam Stack.
  • Apabila yang ditemukan berupa operator atau tanda kurung, maka mereka akan terlebih dahulu disimpan ke dalam Stack.
  • Program akan melanjutkan pembacaan input String sampai menemukan operator selanjutnya. Apabila operator yang ditemukan memiliki derajat yang lebih rendah daripada operator yang terdapat pada top atau bagian paling atas Stack, maka operasi pop pada Stak akan dijalankan dan operasi yang berada pada bagian paling atas Stack akan tertulis pada output postfix.
  • Namun, apabila operator selanjutnya tersebut memiliki derajat yang lebih tinggi, maka program akan menyimpan operator tersebut ke dalam stack dengan operasi push.
  • Hal ini akan terus berlanjut hingga akhir String sehingga operator akan tercetak dalam urutan yang terbalik pada notasi postfiks.\
2.  Penerjemahan Infiks "A + B *C ^ D - E / F" ke Postfiks menggunakan Stack

Maka, bentuk notasi infiks "A+B*C^D-E/F" bila diterjemahkan ke bentuk notasi postfix akan menjadi 
"ABCD^*+EF/-"

3.  Implementasi Infiks ke Postfiks menggunakan Stack dalam Java

4.  Dokumentasi Output Program

4.  Video Demo Program




3. Pada sebuah Bank, setiap nasabah yang datang diminta untuk mengambil antrian. Antrian tersebut memuat urutan layanan nasabah, dan jenis layanan yang dibutuhkan, apakah CS atau Teller

a. Untuk membuat aplikasinya, struktur data apa yang tepat?
    Struktur data yang tepat untuk membuat aplikasi tersebut adalah Queue. Queue merupakan pilihan struktur data yang paling tepat karena  sistem penggunaan Queue sama dengan sistem antrian, yaitu FIFO (First in First Out). Sistem ini memungkinkan untuk mengeluarkan atau melakukan operasi popping pada data yang pertama kali diinput. Struktur data ini juga memasukkan data yang baru di urutan yang paling belakang.   Hal ini sesuai dengan sistem yang bekerja pada antrian Bank. Seseorang yang baru mengambil nomor antrian, maka akan diletakkan di paling belakang antrian. Dengan begitu, ia akan dilayani paling terakhir.

b. Tuliskan dan gambarkan struktur data untuk memuat informasinya!



Penjelasan algoritma antrian pada bank : 
1. Untuk mengolah data kita memerlukan input senilai antara 1 hingga 7 yang masing-masing memiliki perintah yang berbeda-beda.
2. Input perintah=1akan mengantarkan user untuk mengambil nomor antrian pada teller.
3. Input perintah=2akan mengarahkan user untuk mengambil nomor antrian pada CS.
4. Input perintah=3 berarti seorang user ingin melakukan pelayanan di teller.
5. Input perintah =4 berarti seorang user ingin melakukan pelayanan di CS.
6. Bila kita memasukkan perintah =5, maka program menampilkan queue yang tersedia/terdata.
7. Bila kita memasukkan perintah =6, maka programakan menghapus/clear semua queue yang ada.
8. Bila kita memasukkan perintah=7, maka program akan berakhir atau keluar
9. Bila ada input diluar angka 1-7, maka akan diminta untuk kita input perintah yang benar.

c. Implementasikan aplikasi antrian tersebut!
  • Class yang berisi fungsi pada Queue

  • Class yang digunakan untuk membuat Tiket bagi Pelanggan

  • Class Aplikasi Sistem Bank secara keseluruhan

d. Dokumentasi Output Program





e. Video Demo Program







Comments

Popular Posts