Archive for May 2017
Laporan Tugas Besar Struktur Data Algoritma[SISTEM PENDATAAN MAHASISWA]
Sunday, 14 May 2017
Posted by okta
BAB I
PENDAHULUAN
Sorting
adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses
tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada
aplikasi perbankan. Aplikasi tersebut mampu menampilkan daftar account yang
aktif. Hampir seluruh pengguna pada sistem akan memilih tampilan daftar
berurutan secara ascending demi kenyamanan dalam penelusuran data. Dalam artian
sorting digunakan untuk mengurutkan sesuatu ( misalnya : kata, buku telepon ,
dll ). Sorting yang kita terapkan menggunakan tipe data array agar pemahaman
serta pengimplementasiannya lebih mudah. Pada umumnya terdapat dua jenis
pengurutan :
– Ascending (Naik).
– Descending (Turun).
Contoh :
Data : Array [1..6] of Byte = (22, 10, 15, 3, 8, 2);
Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2
Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara/metode.
Macam-macam sorting yaitu :
1. Bubble Sorting
merupakan salah satu jenis sorting. Bubble sort ada metode sorting termudah. Diberikan nama “bubble” karena konsep dari algoritmanya diibaratkan seperti gelembung air untuk elemen struktur data yang seharusnya pada posisi awal. Bubble sort mengurut data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. Dimana cara kerjanya adalah dengan berulang-ulang melakukan proses looping ( perulangan) terhadap elemen-elemen struktur data yang belum diurutkan. Nilai dari masing-masing elemen akan dibandingkan selama proses looping tersebut .jika selama proses looping tersebut ditemukan ada urutannya tidak sesuai dengan permintaan, maka akan dilakukan proses penukaran (swap). Secara tidak langsung, algoritma dari program ini seolah-olah menggeser satu demi satu elemen dari kanan ke kiri atau dari kiri ke kanan tergantung pada jenis pengurutannya. Jenis pengurutan sorting ada 2 yaitu asscending dan descending. Dimana asscending itu mengurut data dari kecil ke besar dan descending itu mengurut data dari besar ke kecil. Jika semua elemen sudah diperiksa oleh fungsi bubble sort, dan tidak ada pertukaran lagi atau semua nilai sudah sesuai, maka saat itu program bubble sort akan berhenti bekerja. Pola Bubble sort yaitu bertukar dengan data sebelahnya.
2. Insertion Sort
– Ascending (Naik).
– Descending (Turun).
Contoh :
Data : Array [1..6] of Byte = (22, 10, 15, 3, 8, 2);
Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2
Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara/metode.
Macam-macam sorting yaitu :
1. Bubble Sorting
merupakan salah satu jenis sorting. Bubble sort ada metode sorting termudah. Diberikan nama “bubble” karena konsep dari algoritmanya diibaratkan seperti gelembung air untuk elemen struktur data yang seharusnya pada posisi awal. Bubble sort mengurut data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. Dimana cara kerjanya adalah dengan berulang-ulang melakukan proses looping ( perulangan) terhadap elemen-elemen struktur data yang belum diurutkan. Nilai dari masing-masing elemen akan dibandingkan selama proses looping tersebut .jika selama proses looping tersebut ditemukan ada urutannya tidak sesuai dengan permintaan, maka akan dilakukan proses penukaran (swap). Secara tidak langsung, algoritma dari program ini seolah-olah menggeser satu demi satu elemen dari kanan ke kiri atau dari kiri ke kanan tergantung pada jenis pengurutannya. Jenis pengurutan sorting ada 2 yaitu asscending dan descending. Dimana asscending itu mengurut data dari kecil ke besar dan descending itu mengurut data dari besar ke kecil. Jika semua elemen sudah diperiksa oleh fungsi bubble sort, dan tidak ada pertukaran lagi atau semua nilai sudah sesuai, maka saat itu program bubble sort akan berhenti bekerja. Pola Bubble sort yaitu bertukar dengan data sebelahnya.
2. Insertion Sort
Algoritma
insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua
bagian, yang belum diurutkan (meja pertama), dan yang telah diurutkan (meja
kedua). Elemen pertama yang diambil dari bagian array yang belum diurutkan dan
kemudian diletakkan pada posisinya sesuai dengan bagian lain dari array yang
telah diurutkan. langkah ini dilakukan secara berulang hingga tidak ada lagi
elemen yang tersisa pada bagian array yang belum diurutkan. Pola dari Insertion
Sort menggurutkan n atau 2 elemen dari terdepan dst.
3. Selection sort
Merupakan Kombinasi antara sorting dan searching. Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1. Selama proses, perbandingan dan pengubahan, hanya dilakukan pada indeks permbandingnya saja, pertukaran data secara fisik terjadi pada akhir proses.sesuai dengan itu maka algoritma pengurutan data secara Selection adalah sebagai berikut :
Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
Jika pada posisi pos ditemukan data yang terkecil, maka tukarkan data diposisi pos dengan data di posisi i jika k.
Ulangi langkah 1
4. Marge Sort
Pengurutan algoritma Merge Sort membuat pengurutan dengan membagi 2 dan menggabungkannya. Metoda ini cukup efisien untuk diterapkan. Sama dengan Quick Sort, algoritma Merge Sort adalah dasar pembagian dan penyelesaiannya. Pertama urutan atau elemen data awal diurutkan dengan membaginya menjadi 2 bagian (Devide). Setengahnya diurutkan dengan bebas (Conquer). Kemudian 2 bagian itu digabungkan dengan cara diurut sesuai dengan urutan (Combine).
1. Devide, yakni memilih masalah menjadi sub-masalah.
2. Conquer, yakni menyelesaikan sub-masalah tersebut secara rekursi.
3. Kombinasi/Penggabungan, menggabungkan solusi dari sub-masalah
5. Quick Sort
Pengerian Quick Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknyadaftar yang diurutkan, dengan menghasilkan lebih banyak daftar yang diurutkan sebagai output. Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data. Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel.
Merupakan Kombinasi antara sorting dan searching. Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1. Selama proses, perbandingan dan pengubahan, hanya dilakukan pada indeks permbandingnya saja, pertukaran data secara fisik terjadi pada akhir proses.sesuai dengan itu maka algoritma pengurutan data secara Selection adalah sebagai berikut :
Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
Jika pada posisi pos ditemukan data yang terkecil, maka tukarkan data diposisi pos dengan data di posisi i jika k.
Ulangi langkah 1
4. Marge Sort
Pengurutan algoritma Merge Sort membuat pengurutan dengan membagi 2 dan menggabungkannya. Metoda ini cukup efisien untuk diterapkan. Sama dengan Quick Sort, algoritma Merge Sort adalah dasar pembagian dan penyelesaiannya. Pertama urutan atau elemen data awal diurutkan dengan membaginya menjadi 2 bagian (Devide). Setengahnya diurutkan dengan bebas (Conquer). Kemudian 2 bagian itu digabungkan dengan cara diurut sesuai dengan urutan (Combine).
1. Devide, yakni memilih masalah menjadi sub-masalah.
2. Conquer, yakni menyelesaikan sub-masalah tersebut secara rekursi.
3. Kombinasi/Penggabungan, menggabungkan solusi dari sub-masalah
5. Quick Sort
Pengerian Quick Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknyadaftar yang diurutkan, dengan menghasilkan lebih banyak daftar yang diurutkan sebagai output. Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data. Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel.
BAB II
PEMBAHASAN
·
Desain
Pertama
pembuatan aplikasi Pendataan Mahasiswa berbasis Java dengan membuka aplikasi
Netbean IDE versi 8.0.2 :
Gambar 2.1 Membuka aplikasi Netbean
IDE 8.0.2
Gambar 2.2 Membuat Project Baru
Untuk
Membuat Project baru pada saat Netbean dijalankan maka Klik folder dngan tanda tambah lalu pilih categori
dengan FILE JAVA lalu pilih project dengan nama JAVA APLICATION lalu
pilih Next maka lanjut kebagian seanjutnya
Gambar 2.3 Penamaan pada file
project
Lalu Pada Project Name diganti dengan nama tugas
Gambar 2.4 Pergantian nama pada
file project
Maka setelah dirubah Project Namenya
maka klik Tombol Finish maka akanmuncul langkah selanjutnya
Gambar 2.5 Membuat JFrame baru
Pada project File tugas - >
Source pakages - > tugas maka klik kanan pada mouse / mousepad anda lalu
pilih new -> Jframe From lalu ada tampilan seperti diatas untuk menapilkan
sebuah from baru.
Gambar 2.6 Penamaan Pada JFrame
From
Ubah nama New JFrame dengan file data
lalu klik finish maka file data ditambahkan pada file tugas di samping.
Gambar 2.7 Desain Frame
Maka akan dialihkan pada tampian
diatas maka siap kita untuk mendesain sebuah frame pada Netbean terlebih dahulu
Gambar 2.8 Desain Tombol pada Frame
Untuk tombol atau fungsi digunakannya
yaitu:
1.
JBottom (6 fungsi)
2.
JLabel (2 fungsi)
3.
JTextField (1 fungsi)
4.
Tabel (1 fungsi)
Maka
siap Kita Desai sesuka hati kita bagai mana desai yang kita inginkan.
·
Kodingan
·
Memasukan Pendataan Mahasiswa
Gambar 2.9 Source code inputan data
Mahasiswa
package tugas;//penamaan pada project
yang dibuat
import
java.util.ArrayList;//library pada programing java
import
javax.swing.JOptionPane; ;//library pada programing java
import
javax.swing.table.DefaultTableModel; ;//library pada programing java
public class data
extends javax.swing.JFrame {//class data di pangil ke JOption
private static
ArrayList<ArrayList<String>> dataMahasiswa = new
ArrayList<ArrayList<String>>();// Pemanggilan program tipe Array List
private final
DefaultTableModel tabel1;//Variabel tabel1
public data() {//source code data
mahasiswa
initComponents();//pemanilan komponen
source
this.setLocationRelativeTo(null);
tabel1 = new DefaultTableModel();//buat insialisasi tabel1
TableShow.setModel(tabel1);//Menampilkan data dari
penamaan tabel1
tabel1.addColumn("Nomor");//Membuat column Nomor
pada Tabel atas
tabel1.addColumn("NPM");// Membuat column NPM
pada Tabel atas
tabel1.addColumn("Nama");// Membuat column Nama
pada Tabel atas
}
public void masukan(){//Source code Masukan
Data Mahasiswa
ArrayList<String> data_masukan =
new ArrayList<String>();//Pemanilan Array List
String NPM =
JOptionPane.showInputDialog(null,"Silahkan Masukan Data NPM");//Penampilkan JOption NPM
Mahasiswa
String Nama =
JOptionPane.showInputDialog(null,"Silahkan Masukan Data Nama");//Penampilkan JOption
Nama Mahasiswa
data_masukan.add(NPM);//Menambah data NPM yang
dimasukan
data_masukan.add(Nama);// Menambah data Nama
yang dimasukan
dataMahasiswa.add(data_masukan);// Menambah data yang telah dimasukan
}
·
Penjelasan dari Source kode
Gambar 2.10 Memasukan fungsi pada
tombol memasukan data
Selanjutnya kita memasukan Fungsi
dari tombol data agar tombol tersebut membaca code dari data dan masukan.
·
Menampilkan data yang dimasukan
kedalam Tabel
Gambar
2.11 Menampilkan data pada tabel
private void tabel(){//source code tabel
tabel1.getDataVector().removeAllElements();//memangil data yang
masuk pada penamaan tabel1
tabel1.fireTableDataChanged();//Bahawa tabel bisa di
hapuskan
ArrayList<String> data_tabel = new
ArrayList<String>();//pemangilan ArrayList degan nama data_tabel
for(int a=0; a<dataMahasiswa.size();a++){//perulangan apabila
nilai data mulai dari 0 maka a++ bertambah terus menerus datanya
data_tabel=dataMahasiswa.get(a);//mengambil data
mahasiswa ke data_tabel
String[]b = new String[3];//Menyimpan 3 data
Nomor,NPM,Nama
b[0]=String.valueOf(a+1);//Nomor mendata mulai
dari nomor 1
b[1]=data_tabel.get(0);//Mengambil data dari
data_tabel
b[2]=data_tabel.get(1);//Mengambil data dari
data_tabel
tabel1.addRow(b);//menambah data rowspand
atau baris
}
}
·
Penjelasan dari Source kode
Gambar 2.12
memngil fungsi tabel
Memasukan
kodingan tabel(); pada kodingan agar data yang
dimasukan dapat disimpan pada tabel yang kita isi pada tombol memasukkan data
Mahasiswa.
Gambar 2.13 Source code Ascending
private void ascending () {//Source code Ascending
for (int
a=0;a<dataMahasiswa.size()-1;a++){//perulangan data mahasiswa yang masuk
ArrayList<String>data=new ArrayList<>();//memangil nama data
ArrayList<String>data1=new ArrayList<>();//memangil nama data1
ArrayList<String>data2=new ArrayList<>();//memangil nama data2
data=dataMahasiswa.get(a);//mengambil data pertama
int K = a;//memasukan variabel
for(int
b=a+1;b<dataMahasiswa.size();b++){//melakukan perulangan variable b
data1=dataMahasiswa.get(b);// mengambil variable b
int
akhirNpm = Integer.parseInt(data.get(0).substring(3));//memasukan variable NPM
int
akhirNpm2 = Integer.parseInt(data1.get(0).substring(3));//memasukan variable Npm
ke 2
if(akhirNpm2<akhirNpm){//jika nilai Npm kurang dari maka urutkan dari NPM
K = b;//memangil variable b
}
}
data2 =
dataMahasiswa.get(K);//Memangil data 2 dan membaca variable K
dataMahasiswa.set(a,data2);//membaca data2 kedua dan variale a
dataMahasiswa.set(K,data);//membaca data dan membaca variable K
}
tabel();//mengembalikan fungsi
dari tabel sebelumnya
}
·
Penjelasan
Source Code
Gambar 2.14 memangil fungsi
Ascending
Pemanggilan data fungsi Ascending
pada pada tombol ascending yang
terdapat
pada desai.
Gambar 2.15 Source Code Descending
private void descending(){//Source code desceding
for(int a=0;
a<dataMahasiswa.size()-1;a++){//perulangan data yang telah diinputkan
ArrayList<String>data1=new ArrayList<String>();//Membuat penamaan data1
ArrayList<String>data2=new ArrayList<String>();//Membuat penamaan data2
ArrayList<String>data3=new ArrayList<String>();//Membuat penamaan data3
data1=dataMahasiswa.get(a);//data1 mengambil data variable a
int K = a;//variable data K
for(int b=a+1;
b<dataMahasiswa.size();b++){//perulangan data menambah nilai variable mulai dari 1
data2=dataMahasiswa.get(b);//mengembil data2 variabel b
int akhirNpm =
Integer.parseInt(data1.get(0).substring(6));//mengambil data Npm pada data tabel Npm 1
int akhirNpm2 =
Integer.parseInt(data2.get(0).substring(6));// mengambil data Npm pada data tabel Npm 2
if(akhirNpm2>akhirNpm){//jika npm2 lebih besar maka npm yang nilai kecil akan di urutkan
K = b;//memangil variable K
}
}
data3=dataMahasiswa.get(K);//memangil variable K
dataMahasiswa.set(a, data3);//menyimpan variable a dan data 3
dataMahasiswa.set(K,data1);//menyimpan variable K dan data 1
}
}
·
Penjelasan
source code
Gambar 2.16 Fungsi pemanggilan
descending
Pemanggilan fungsi tombol dari
descending ke source code yang telah
dibuat
pada coddingan diatas.
Gambar 2.15
Source code Mengubah data
private void ubah(){//Source code Ubah data
String ganti = JOptionPane.showInputDialog(null,"Data
Nomor Berapa Yang Ingin Andah Ubah");//memasukan data dengan data nomor yangdiinginkan
int nomor = Integer.parseInt(ganti);//memasukan data nomor
dengan memasukan integer nomor
String NPMbaru = JOptionPane.showInputDialog(null,"Silahkan
Masukan Data NPM Baru");//menampilkan JOption memasukan NPM Mahasiswa
String Namabaru =
JOptionPane.showInputDialog(null,"Silahkan Masukan Data Nama Baru");//Menampilkan JOption
memasukan Nama Mahasiswa
ArrayList<String>data_ubah=
new ArrayList<>();//Nama Array List dengan data_ubah
data_ubah.add(NPMbaru);//Menambah data ubah
dengan NPM baru
data_ubah.add(Namabaru);//Menambah data ubah
dengan Nama baru
dataMahasiswa.set(nomor-1,data_ubah);//mengurang tabel nomor
-1 dengan data_ubah yang masuk
tabel();//mengembalikan fungsi
tabel
}
·
Penjelasan
source code
Gambar 2.16
memasukan fungsi tombol ubah
Memasukan fungsi ubah dengan ubah(); dan tabel();
untuk mengaktifkan fungsi dari source code yang telah di buat sebelumnya.
BAB III
PENUTUP
Sorting
adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses
tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada
aplikasi perbankan. Aplikasi tersebut mampu menampilkan daftar account yang
aktif. Hampir seluruh pengguna pada sistem akan memilih tampilan daftar
berurutan secara ascending demi kenyamanan dalam penelusuran data. Dalam artian
sorting digunakan untuk mengurutkan sesuatu ( misalnya : kata, buku telepon ,
dll ). Sorting yang kita terapkan menggunakan tipe data array agar pemahaman
serta pengimplementasiannya lebih mudah. Pada umumnya terdapat dua jenis
pengurutan :
– Ascending (Naik).
– Descending (Turun).
– Ascending (Naik).
– Descending (Turun).
Pada
program yang kami buat, kami menginputkan data mahasiswa beserta npm lalu
nantinya data yang ada dapat di urutkan
dengan cara ascending dan descending. Demikianlah program yang kami buat. Apabila
ada salah kata penulis mohon maaf. Diharapkan pembaca dapat mengerti program yang
kami buat. Semoga bisa bermanfaat bagi siapa saja yang membacanya.