LAPORAN
PRAKTIKUMSTRUKTUR DATA
MODUL 2
Oleh :
TRI WIJAYANTO
115410126 / TI
LABORATORIUM TERPADU
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AKAKOM YOGYAKARATA
2012
PEMBAHASAN MODUL 2
PRAKTIKUM 1 (Ascending)
public class BubbleSort àSintaksdisampingmerupakan suatu nama kelas yang dibuat dan nama kelasnya adalah BubbleSort.
{
public static void tampilkanData (String nama[], int indeksTerakhir){ àDengan perintah ini atau public static void tampilkanData, akan menghasilkan atau akan menampilkkan nama dengan tipe data string dengan pilihan, dan menggunakan integer pada indeks terakhir dalam prosesnya.
for (int i = 0; i <= indeksTerakhir; i++) àSintaksdisampingadalahsuatu perulangan for, yang mana menggunakan tipe data integer dengan nama variabelnya adalah i, yaitu nilai dari variabel i sama dengan nol (0), dan i harus lebih kecil dari indeks terakhir yang ada pada perintah diatas, setelah mengalami proses i++ (nilai i ditambah satu, namun nilai i harus masuk sebagai nilai kurang dari sama dengan indeks terakhirnya).
System.out.println(nama[i]); àMerupakan suatu keluaran yang akan menampilkan atau memanggil hasil dari nama atau dengan parameternya i.
}
public static void urutkanBubble (String nama[], int indeksTerakhir){ àPerintah ini akan menghasilkan nama dengan tipe data string dan integer sebagai indeks terakhir, yang mana menggunakan perintah ini, merupakan perintah untuk mengurutkan data dengan cara BubbleSort.
String sementara = ""; àMerupakan tipe data string, dengan nama variabelnya adalah sementara, yaitu data yang dipakai adalah data yang berada diantara petik dua.
for (int j = 0; j <= indeksTerakhir - 1; j++){ àSintaks di sampingmerupakan perulangan for, yang mana menggunakan tipe data integer, dengan nama variabelnya adalah j, dan nilai j harus kurang dari sama dengan indeks terakhir yang telah dikurangi satu, dan setelah menggalami proses j yang ditambah satu.
for (int i = 0; i <= indeksTerakhir - 1 - j; i++){ àSama dengan variabel j pada perulangan diatas, nilai variabel i pada tipe data integer, yang mana nilai i sama dengan nol, kemudian nilai i akan ditambah satu, setelah itu nilai i harus kurang dari sama dengan indeks terakhir yang dikurangi satu dan dikurangi nilai j.
if (nama[i].compareTo(nama[i+1]) > 0){ à Perintah ini menggunakan penyataan if, yaitu jika nama dengan variabel i dibandingkan dengan nama yang mana nama bervariabel i ditambahkan satu, maka lebih besar dari 0, atau dengan kata lain, jika nama tersebut lebih besar, sama halnya mengurutkan data dengan cara ASCENDING,
sementara = nama[i]; à Perintah ini, memberitahukan bahwa nilai sementara sama denagn nama dengan variabel i.
System.out.println("i = "+i); à sistemakanmencetakvariabel ikarenai dipanggil dengan objek i.
System.out.println("Sementara = "+sementara); à sistemakanmencetakkarakter / tulisansementarakarenakaraktersementara dipanggil dengan objek sementara.
nama[i] = nama[i+1]; àSedangkan nama yang bervariabel i sama dengan nama variabel i yang ditambahkan nilai satu.
System.out.println("Nama[i] = "+nama[i]); à Merupakan suatu keluaran yang akan menampilkan atau memanggil hasil dari nama atau dengan parameternya i.
nama[i+1] = sementara; àSehingga nama yang bervariabel ditambahkan satu tersebut merupakan nilai dari sementara.
System.out.println("nama[i+1] = "+nama[i+1]); à Sistemakanmencetak nama yang berparameter iditambahkan.
System.out.println(""); à Merupakan perintah yang berfungsi memberikan jarak antara data sebelum diurut dengan data setelah menggalami pengurutan data.
}
}
}
}
public static void main (String args []){ àSintaks di samping merupakan permulaan fungsi utama dalam java, atau lebih dikenal dengan program method main dan kata void merupakan keharusan dalam bahasa pemrograman java.
String nama[] = {"gina", "cici", "beni", "heru", "dedi", "eko", "feri", "janu", "abud", "iwan"}; àMerupakan data sebelum diurut atau perintah yang menampilkan nama-nama, yang mana data yang dtampilkan adalah nama dengan tipe data string sehingga dapat dilihat nama hanya menggunakan tipe data string. Dan pada perintah ini menggunakan variabel nama.
int indeksTerakhir = nama.length - 1; àSintak di samping menunjukkan bahwa nilai integer dari indeks terakhir adalah nama.length atau nama yang ada pada jarak/panjang dikurangi satu.
System.out.println("nama.length "+nama.length);
System.out.println("Data sebelum diurutkan :"); àSuatu perintah yang berfungsi sebagai keluaran dan menampilkan kalimat diantara petik dua.
tampilkanData(nama, indeksTerakhir) ; àPerintah ini berhubungan dengan perintah sebelumnya. Pada perintah ini, akan menampilkan data sebelum diurutkan dari data yang telah ada.
urutkanBubble(nama, indeksTerakhir); àPerintah yang akan mengurutkan data yang sebelum diurut, dan akan menjadikan data tersebut menjadi data yang urut dengan cara bubble sort.
System.out.println(""); àMerupakan perintah yang berfungsi memberikan jarak antara data sebelum diurut dengan data setelah menggalami pengurutan data.
System.out.println("Data setelah diurutkan:"); àPerintah ini berhubungan dengan perintahurutkanBubble(nama, indeksTerakhir), yang mana perintah inilah yang akan memanggil atau mengeluarkan hasil data setelah diurutkan, dan manampilkkan kalimat yang berada diantara tanda petik.
tampilkanData(nama, indeksTerakhir); àPerintah ini akan menampilkkan data setelah menggalami pengurutan dengan cara BubbleSort, dari data yang ada.
}
}
OUTPUT
PRAKTIKUM 2 (Descending)
public class BubbleSort àSintaksdisampingmerupakan suatu nama kelas yang dibuat dan nama kelasnya adalah BubbleSort.
{
public static void tampilkanData (String nama[], int indeksTerakhir){ àDengan perintah ini atau public static void tampilkanData, akan menghasilkan atau akan menampilkkan nama dengan tipe data string dengan pilihan, dan menggunakan integer pada indeks terakhir dalam prosesnya.
for (int i = 0; i <= indeksTerakhir; i++) àSintaksdisampingadalahsuatu perulangan for, yang mana menggunakan tipe data integer dengan nama variabelnya adalah i, yaitu nilai dari variabel i sama dengan nol (0), dan i harus lebih kecil dari indeks terakhir yang ada pada perintah diatas, setelah mengalami proses i++ (nilai i ditambah satu, namun nilai i harus masuk sebagai nilai kurang dari sama dengan indeks terakhirnya).
System.out.println(nama[i]); àMerupakan suatu keluaran yang akan menampilkan atau memanggil hasil dari nama atau dengan parameternya i.
}
public static void urutkanBubble (String nama[], int indeksTerakhir){ àPerintah ini akan menghasilkan nama dengan tipe data string dan integer sebagai indeks terakhir, yang mana menggunakan perintah ini, merupakan perintah untuk mengurutkan data dengan cara BubbleSort.
String sementara = ""; àMerupakan tipe data string, dengan nama variabelnya adalah sementara, yaitu data yang dipakai adalah data yang berada diantara petik dua.
for (int j = 0; j <= indeksTerakhir - 1; j++){ àSintaks di sampingmerupakan perulangan for, yang mana menggunakan tipe data integer, dengan nama variabelnya adalah j, dan nilai j harus kurang dari sama dengan indeks terakhir yang telah dikurangi satu, dan setelah menggalami proses j yang ditambah satu.
for (int i = 0; i <= indeksTerakhir - 1 - j; i++){ àSama dengan variabel j pada perulangan diatas, nilai variabel i pada tipe data integer, yang mana nilai i sama dengan nol, kemudian nilai i akan ditambah satu, setelah itu nilai i harus kurang dari sama dengan indeks terakhir yang dikurangi satu dan dikurangi nilai j.
if (nama[i].compareTo(nama[i+1]) < 0){ àPerintah ini, merupakan kebalikan dari perintah diatas, dalam arti pada perintah ini data atau nama yang telah ada akan dibaca secara DESCENDING, yaitu data atau nama yang ada yang didahulukan saat data setelah diurutkan adalah huruf kecil, huruf besar, angka-angka, setelah itu baru akan menampilkan tanda baca. Perintah ini dapat dibaca, jika nama bervariabel i dibandingkan dnegan nama bervariabel i ditambahkan satu, maka hasilnya kurang dari 0, maka akan terjadi data pengurutan secara descending. (hasil output untuk perintah ini, ada pada listing, dengan penggurutan secara DESCENDING).
sementara = nama[i]; àPerintah ini, memberitahukan bahwa nilai sementara sama dengan nama dengan parameter i.
System.out.println("i = "+i); à Sistemakanmencetakisidarivariabel i.
System.out.println("Sementara = "+sementara); à sistemakanmencetakkarakter / tulisansementarakarenakaraktersementara dipanggil dengan objek sementara.
nama[i] = nama[i+1]; àSedangkan nama yang bervariabel i sama dengan nama variabel i yang ditambahkan nilai satu.
System.out.println("Nama[i] = "+nama[i]);
nama[i+1] = sementara; àSehingga nama yang bervariabel ditambahkan satu tersebut merupakan nilai dari sementara.
System.out.println("nama[i+1] = "+nama[i+1]); à Sistemakanmencetak nama yang berparameter iditambahkan.
System.out.println(""); àMerupakan perintah yang berfungsi memberikan jarak antara data sebelum diurut dengan data setelah menggalami pengurutan data.
}
}
}
}
public static void main (String args []){ àSintaks di samping merupakan permulaan fungsi utama dalam java, atau lebih dikenal dengan program method main dan kata void merupakan keharusan dalam bahasa pemrograman java.
String nama[] = {"gina", "cici", "beni", "heru", "dedi", "eko", "feri", "janu", "abud", "iwan"}; àMerupakan data sebelum diurut atau perintah yang menampilkan nama-nama, yang mana data yang dtampilkan adalah nama dengan tipe data string sehingga dapat dilihat nama hanya menggunakan tipe data string. Dan pada perintah ini menggunakan variabel nama.
int indeksTerakhir = nama.length - 1; àSintak di samping menunjukkan bahwa nilai integer dari indeks terakhir adalah nama.length atau nama yang ada pada jarak/panjang dikurangi satu.
System.out.println("nama.length "+nama.length); à Menunjukkan bahwa sistemakanmencetakvariabelnamadengannamakelas .
System.out.println("Data sebelum diurutkan :"); àSuatu perintah yang berfungsi sebagai keluaran dan menampilkan kalimat diantara petik dua.
tampilkanData(nama, indeksTerakhir) ; àPerintah ini berhubungan dengan perintah sebelumnya. Pada perintah ini, akan menampilkan data sebelum diurutkan dari data yang telah ada.
urutkanBubble(nama, indeksTerakhir); àPerintah yang akan mengurutkan data yang sebelum diurut, dan akan menjadikan data tersebut menjadi data yang urut dengan cara bubble sort.
System.out.println(""); àMerupakan perintah yang berfungsi memberikan jarak antara data sebelum diurut dengan data setelah menggalami pengurutan data.
System.out.println("Data setelah diurutkan:"); àPerintah ini berhubungan dengan perintahurutkanBubble(nama, indeksTerakhir), yang mana perintah inilah yang akan memanggil atau mengeluarkan hasil data setelah diurutkan, dan manampilkkan kalimat yang berada diantara tanda petik.
tampilkanData(nama, indeksTerakhir); àPerintah ini akan menampilkkan data setelah menggalami pengurutan dengan cara BubbleSort, dari data yang ada.
}
}
Output
PRAKTIKUM 4
import java.util.Scanner; àMenunjukkan nama program tertuju pada kelas scanner di dalam kelas java.util.
public class Larik àSebuah nama kelas dari program yang ada, dan pada program ini menggunkan nama kelas Larik.
{
public static void tampilkanData (String nama[], int indeksTerakhir) àPerintah ini akan menghasilkan nama dengan tipe data string dan integer sebagai indeks terakhir, yang mana menggunakan perintah ini, merupakan perintah untuk menampilkan data yang ada.
{
for (int i = 0; i <= indeksTerakhir; i++) àSuatu perulangan for, yaitu nilai integer yang bervariabel i sama dengan nol (0), nilai tersebut tidak melebihi batas dari data yang ada atau sebagai indeks terakhit, setelah variabel i nya ditambahkan nilai satu.
System.out.println(i+ "."+nama[i]); àperintah yang akan mengeluarkan atau menampilkan perintah yang ada diantara du tanda petik yang mana perinthanya i + . + nama yang ada.
}
public static void cariBiner (String nama[], int indeksTerakhir) àPerintah ini akan menghasilkan nama dengan tipe data string dan integer sebagai indeks terakhir, yang mana menggunakan perintah ini, merupakan perintah dengan cara cariBiner.
{
String namaCari = ""; àTipe data String dengan nama variabel namaCari yaitu sama dengan “” (petik dua), maksudnya nama yang dicari atau daftar nama yang ada dari data akan dikerjakan, adalah nama yang berada diantara petik dua.
boolean ketemu = false; à Suatu tipe data boolean, bervariabel ketemu, seperti yang diketahui, bahwa nilai boolean ada dua yaitu true dan false. Dan perintah disamping adalah perintah yang menyatakan tipe data boolean yang bervariabel ketemu akan sama dengan false atau salah.
int posisi=0; àSehingga, berdasarkan perintah diatas, karena bernilai salah atau false, maka posisi untuk integernya adalah nol (0).
Scanner masukan = new Scanner(System.in); àPerintah ini menjelaskan dengan adanya objek yang diberi nama “masukan”, dan akan mengacu pada kelas Scanner, yaitu suatu pembuatan suatu objek masuk dengan nama masukkan dengan system.in.
System.out.print("Silakan masukkan nama yang anda cari: "); àPerintah yang akan memanggil serta menampilkan kalimat yang berada diantara petik dua, yaitu dengan perintah ini, dapat kita dapat mengetahui, bahwa lewat menu diatas, bisa masukkan data yang dicari.
namaCari = masukan.nextLine(); àSedangkan perintah disamping, masih berhubungan dengan perintah di atas, yaitu dengan menggunakan perintah ini lah dapat dimasukkan atau dapat mengetik data taua nama yang sedang dicari. Yaitu dapat dibaca, nama yang dicari sama dengan masukan atau objek yang dicari akan berada pada garis berikutnya atau bersamabungan dengan perinta diatas.
int atas, bawah, tengah; à Tipe data integer yang terdiri dari variabel atas, bawah dan tengah.
int sama = 0; àVariabeldengan tipe data integerdimanavariabelsamatelahdidefinisikansamadengan 0
atas=0; à Dari pernyataan diatas, yang mana tipe data integer, terdiri dari beberapa variabel, salah satunya adalah atas, dan pada perintah ini menyatakaan bahwa nilai untuk a sama dengan nol (0).
bawah = indeksTerakhir + 1; àSedangkan untuk variabel bawah pada perintah disamping adalah nilai bawah sama dengan indeks terakhir atau data terakhir ditambahkan satu.
while ((ketemu == false) && (atas <= bawah-1)) àPada perintah disamping dapat dilakukan dengan perulangan while mau pun dengan perulangan for (untuk perulangan for dapat dilakukan dengan perintah dibawah, dengan mengabaikan perulangan while. Begitu juga sebaliknya, jika menggunakan perulangan while, maka perulangan for dapat diabaikan keberadaannya). Perulangan while ini menyataakan bahwa selama (while) data yang ketemu sama dengan bernilai false atau salah dan nilai variabel atas kurang dari sama dengan bawah yang dikurangi satu.
{
tengah = (atas + bawah) / 2; àDari penyataan disamping, menyatakan bahwa nilai dari variabel tengah sama dengan nilai variabel atas yang ditambah dengan varaibel bawah, kemudian hasil tersebut dibagikan dengan dua.
if (namaCari.compareTo(nama[tengah])<0) àPerulangan if, yaitu jika nama yang dicari dibandingkan dengan nama tengah maka akan kurang dari 0.
bawah = tengah; àMaka hasil dari penyataan diatas adalah, hasil dari variabel bawah sama dengan variabel tengah.
else if (namaCari.compareTo(nama[tengah])>0) àPenyataan if ...else... jika tidak.Makapenyataan disamping merupakan kebalikan dari pernyataan sebelumnya, maksudnya jika penyataan diatas salah, maka pernyataan di samping akan berlaku atau diproses, dengan penyataan bahwa jika tidak nama yang dicari dibandingkan dengan nama tengah maka akan memperoleh nilai yang lebih besar dar nol (0).
atas = tengah; àNilai tersebut sama dengan variabel atas sama dengan tengah
else àJikatidak
{
ketemu = true; àMaka nilai tersebut sama dengan variabel ketemu sama dengan true
posisi = tengah; àMaka nilai tersebut sama dengan variabel posisisama dengan tengah
}
sama = tengah; àNilai darisintakdisampingsama dengan variabel samaidentik dengan tengah
}
if ((ketemu == true) && (namaCari.equals(nama[sama]))) àMerupakan penyataan if yang menyatakan jika ketemu sama dengan true atau benar, maka keluarannya sebagi berikut atau perintah dibawahnya.
{
System.out.println("Data ketemu di posisi ke "+posisi); àJika data yang dicari ketemu, maka akan bernilai sama dengan benar atau true. Maka keluarannya akan ditampilkan pada perintah ini, yaitu akan menampilkan kalimat yang berada diantara petik dua, yaitu memberitahukan posisi serta ditambah dengan pencarian posisi data atau nama yang dicari.
}
else if ((ketemu == false) || !(namaCari.equals(nama[sama]))) à
{
System.out.println("Maap mas, data yang anda cari tidak ada"); àPerintah ini merupakan perintah kebalikan dari perintah sebelumnya, yaitu, jika data yang dcari tidak ketemu, maka akan keluar atau ditampilkan peintah yang berada pada petik dua. Yang menyatakan data tidak ada pada data yang telah ada.
}
}
public static void main (String args []) àMerupakan permulaan fungsi utama dalam java, atau lebih dikenal dengan program method main dan kata void merupakan keharusan dalam bahasa pemrograman java.
{
String nama[] = {"abud", "bambang", "cecep", "dedi", "eko", "feri", "gunawan", "hasan", "iwan", "jumeno", "karti", "lina", "murni"}; àMerupakan data String dengan variabel nama, pada pernyataan string nama ini terkait dengan perintah dari String namaCari = "";yaitu nama string atau data nama berada diantara petik dua. Pada string nama inilah yang mendaftarkan nama-nama yang ada dari data pencarian.
int indeksTerakhir = nama.length - 1; àSintak di sampingberartitipe data integer yanitu data yang ada atau indeks terakhir sama dengan panjang/jarak nama dikurangi satu.
System.out.println("Data yang ada :"); àKeluaran yang akan menampilkan perintah diantara dua tanda petik.
tampilkanData(nama, indeksTerakhir); àDari perintah diatas, pada perintah inilah yang akan menampilkan daftar nama-nama yang ada dari data yang telah ada.
System.out.println(""); àKeluaran yang memberikan jarak anatar data yang ditampilkan dengan pencarian biner.
cariBiner(nama, indeksTerakhir); àAkan menampilkan pencarian biner dari daftar nama atau indeks terakhir dari data yang telah ada.
}
}
OUTPUT
TUGAS
public class InsertSort {
public static void tampilkanData(String nama[],intindeksTerakhir) {
for(int i=0; i <= indeksTerakhir; i++)
System.out.println(nama[i]); }
public static void urutkanInsertionSort(String nama[], intindeksTerakhir) {
String sementara = "";
for (int j=0; j <=indeksTerakhir - 1; j++) {
int i = 0;
while((i>0) && (i<=indeksTerakhir-1-j))
i++; {
if (nama[i].compareTo(nama[i+1])> 0)
{ sementara = nama[i];
nama[i] = nama [i+1];
nama[i+1] = sementara; }
}
}
}
{ String nama [] = {"ani" , "joni" , "keni" , "lila" ,
"eka" , "arif" , "danu" , "abas" , "rivan" , "dera"};
intindeksTerakhir = nama.length - 1;
System.out.println("Data SebelumDiurutkan : ");
tampilkanData(nama,indeksTerakhir);
urutkanInsertionSort(nama, indeksTerakhir);
System.out.println("");
System.out.println("Data SetelahDiurutkan : ");
tampilkanData(nama, indeksTerakhir);
}
}
Hasil
0 komentar:
Posting Komentar