Anda di halaman 1dari 30
BAB1 ARRAY ‘Array adalah sekelompok variabel. Susunan jenis apa pun dapat dibuat dan mungkin memilki satu atau beberapa dimensi. Elemen spesifik Salam array diakses olen indeksnya. Array menawarkan cara yang nyaman untuk mengelompokkan informasi terkait 4. Array satu dimens! Bentuk umum satu dimensi adalah type var-namef ]; contoh int month_daysf]; Bentuk umum baru yang berlaku untuk array satu dimensi sebagai berikut: array-var = new type [size]; contoh month_days = new int[12]; ex program : class Array { public static void main(String argsf]) { int month_days[]; month_days = new int[12]; month_days[0] = 31; month_days[1] = 28; month_days[2] = 31; month_days[3] = 30; month_days[4] = 31; month_days[5] = 30; month_days[6] = 31; month_days{7] = 31; month_days(8] = 30; month_days(9] = 31; month_days(10] = 30; month_days{11] = ih; ‘System. out printin("April has " + month_days[3] +" days."); 2, Array dua dimensi berikut ini mendeklarasikan variabel array dua dimensi : int twoD II] = new int(4]{5}; ex program class TwoDArray { public static void main(String argsf]) { int twoD[][I= new int[4]{5}; inti, j, k = 0; for(i=0; i<4; i++) forl)=0; j arr) Iiswap elements for(int j= temp = arr[j-1]; arrj-1] = arr{j]; arr{j] = temp; } public static void main(String{] args) { int arr{] ={3,60,35,2,45,320,5}; System.out printin("Array Before Bubble Sort"); for(int i=0; |< arr.tength; i++){ System out print(arr{i] +"); } System. out printin(); bubbleSort(arn);//sorting array elements using bubble sort System.out printin(‘Array After Bubble Sort’); for(int i= ; 1 < arrlength; i++) System.out print(arr{i] + " 2. Selection sort Selection Sort ialah metode algoritma untuk mencari nilai yang paling kecil(Jika Ascending) atau nilai yang paling besar(Jika Descending) di urutan Data berikutnya Ex program public class SelectionSontExample { public static void selectionSort(int{] arr) for (int i = 0; i < arr.length - 1; i+) int index = i; for (int j =i + 1; j < arr.length; j++){ if (arr{j) < arrfindex)){ index = j;//searching for lowest index } int smallerNumber = arrindex}; arrfindex] = arr{i]: arr{i] = smallerNumber; public static void main(String af]){ int] arr1 = {9,14,3,2,43,11,58,22}; System.out.printin("Before Selection Sort"), for(int i:arr1){ System. out. print(i+" "); } System.out.printin(); selectionSort(arr1);//sorting array using selection sort System.out.printin("After Selection Sort’), for(int i:arr1){ System.out.print(i+" "); 3. Insertion Sort Insertion Sort adalah salah satu algoritma sederhana untuk pengurutan data yang acak agar menjadi data yang terurut. Ex program : public class InsertionSortExample { public static void insertionSort(int array(]) { int n = array.length; for (int j= 4; j -1) && ( array [i] > key )) { array [i#1] = array [i]; in } array[i+ 1] = key; public static void main(String al]}{ int{] arrt = {9,14,3,2,43,11,58,22}; System.out printin("Before Insertion Sort’); for(int i:arrt){ System.out print(i+" } System.out.printin(); Struktur Data Struktur Data insertionSort(arr1);//sorting array using insertion sort System, out.printin("After Insertion Sort"); for(int iarrt){ System.out.print(i+" "); 1" secara descending dengan Urutkan bilangan “7,4,9,2,8,-3, menggunakan Selection sort ! Urutkan bilangan "7,4,9,2,8,-3,5,-1" secara ascending dengan menggunakan bubble sort ! BAB III Searching Pencarian (searching) merupakan suatu pekerjaan yang sering dikerjakan dalam kehidupan sehari — hari.Dalam ilmu komputer terdapat bermacam - macam algoritma untuk metoda pencarian (searching) Beberapa metoda pencarian adalah metoda pencarian linier (Linear / Sequential Search), pencarian biner (Binary Search) dan pencarian interpolasi (Interpolation Search) 1. Linear Search Pencarian Linier atau Pencarian Sekuensial adalah pencarian data secara linier (garis lurus), artinya adalah pencarian dilakukan secara teratur (secara sekuensial) dari awal sampai akhir data (atau bisa juga dari akhir ke awal data). Ex program public class LinearSearchExample{ public static int linearSearch(int{] arr, int key) for(int i=O;i(); for(Integer i : intArr){ stack.push(i); } ‘System.out-printin("Non-Empty stack :" + stack); 2. Queue Queue adalah bentuk lain dari konsep implementasi linked list. Berbeda dengan Stack, yang menerapkan konsep LIFO (Last In First Out), Queue justru mempunyai konsep yang berbeda yakni FIFO (First In First Out). Setiap data yang pertama kali masuk, dialah yang akan keluar duluan. Ex program import java. util.*; Sn | | iruktur Data 11 public class ArrayToQueue { public static void main(Stringl] args) { String numsf] = {“one", "two", "three", "four", "five"}; Queue queue = new LinkedList<>(); Collections. addAll(queue, nums); System.out.printin(queue); Struktur Data | BABV Linked list linear dari data, yang disebut kan menunjuk pada node lain didefinisikan pula sebagai Linked List merupakan koleksi sebagai nodes, dimana setiap node al melalui sebuah pointer. Linked List dapat kumpulan nodes yang merepresentasikan sebuah sequence. 4. Simple linked list Ex program: import java.util ArrayList; import java.util LinkedList; import java.util.List; public class CreateLinkedListExample { public static void main(Stringl] args) { 1! Creating a LinkedList LinkedList friends = new LinkedList<>(); 1 Adding new elements to the end of the LinkedList using add() method, friends.add("Rajeev’) friends.add("John"); friends.add("David"); friends.add("Chris"); System.out.printin("Initial LinkedList : " + friends); Struktur Data ais 11 Adding an element at the specified position in the LinkedList friends.add(3, "Lisa; ystem.out printin("After add(3, \'Lisal") :" + friends); I Adding an element at the beginning of the LinkedList friends.addFirst(’Steve"); system out printin(’After addFirst(V'Steve\’) :" + friends); I Adding an element at the end of the LinkedList (This method is equivalent to the add() method) friends.addLast("Jennifer"); ‘System.out printin("After addLast(\"Jennifen”) : "+ friends); 11 Adding all the elements from an existing collection to the end of the LinkedList List familyFriends = new ArrayList<>(), familyFriends.add("Jesse"); familyFriends.add("Walt’); friends.addAll(familyFriends); System.out.printin("After addAll(familyFriends) : " + friends); 2. Circular Linked List. Ex program public class CircularLinkedList { Struktur Data [14] public int size =0; public Node head=null; public Node tail=null; Madd a new node at the start of the linked list public void addNodeatstart(int data){ ‘System.out printin("Adding node " + data +" at start’); Node n = new Node(data); n.next = head; Jelse{ Node temp = head; n.next = temp; head = n; tail. next = head: } size++; public void addNodeAtEnd(int data){ if(size==0){ addNodeatStart(data); jelset Node n = new Node(data); tail. next =n; uktur Data [15] tail=n, tail next = head; size++; } System.out.printin("\nNode " + data + list"); } "is added at the end of the public void deleteNodeFromStart(){ if(size==0){ System. out.printin("\nList is Empty"); Jelsef System.out printin("\ndeleting node " + head.data +" from start’); head = head.next; tail.next=head; size; public int elementAt(int index){ if(index>sizey{ return -1; a) Node n = head; while(index-1!=0){ n=n.next; index--; Struktur Data e. 16 Struktur Data } return n.data; print the linked list public void print(){ System.out.print("Circular Linked List:"); Node temp = head; if(size<=0){ System.out print(’List is empty”); Jelsef do{ System. out.print(” " + temp.data); temp = temp.next; } while(temp!=head); } System.out.printin); liget Size public int getSize({ return size; public static void main(String[] args) { CircularLinkedList c = new CircularLinkedList(); c.addNodeatstart(3); c.addNodeatstart(2); c.addNodeAtStart(1); c.print(); c.deleteNodeFromStart(); e.print(); c.addNodeAtEnd(4); coprint(); ‘System. out printin(’Size of linked list: "+ c.getSize()); System.out printin(’Element at 2nd position: "+ c.elementAt(2)); class Node{ int data; Node next Public Node(int data){ this.data = data; Struktur Data fal BAB VI Iterator Iterator adalah salah satu interface yang tersedia di dalam library Java, yang berlokasi di java.util package. Iterator digunakan untuk mengakses dan menampilkan nilai beserta tambahan method lain yang didefinisikan di dalam interface Iterator. Ex program : import java.util. ArrayList; import java.util. Iterator; import java.util List; public class latinan_java { public static void main(Stringf] args) J/Membuat Instance/Objek hewan Dari ArrayList List hewan = new ArrayList<>(), 1]Menambahkan Data atau Nilai pada Objek hewan hewan.add("Kucing"); hewan.add("Kambing"). hewan.add("Domba’); hewan.add("Ayam"); hewan.add("Sapi"); hewan.add("Unta"); hewan.add("Komodo"); hewan.add("Singa"); hewan.add("Macan"); Struktur Data hewan.add("Jerapah") r *Menginisialisasi Method Iterator yang Terdapat *Pada Objek hewan dari Collection ArrayList ql Iterator iterator = hewan .iterator(); iMengecek Iterator Apakah Mempunyai Elemen Selanjutnya atau Tidak while(iterator. hasNext()){ idika lyalTrue Maka Iterator Akan Mengambil Nilai Selanjutnya ‘System.out.printin(iterator.next()); } Memodifikasi Nilai Menggunakan Interface ListIterator. Ex program 1/Package Yang Digunakan Untuk Membuat List/ArrayList import java.util. ArrayList; import java.util List; 11Package Yang Digunakan Untuk Membuat Iterator/Listlterator import java.util. Iterator, import java.util Listlterator; ruktur Data aca public class latihan_java2 { public static void main(String[] args){ iMembuat Instance/Objek angka Dari ArrayList List angka = new ArrayList<>(); Menambahkan Data atau Nilai pada Objek angka angka.add(672); angka.add(324); angka.add(902); angka.add(160); angka.add(238); angka.add(539); angka.add(357); //Menginisialisasi Listlterator pada objek angka Listlterator listlterator = angka listlterator(); JIMengecek Listlterator Apakah Mempunyai Elemen Selanjutnya atau Tidak while(listlterator.hasNext()){ int element = listlterator. next(); HMemodifikasi Nilai, Sebelum di Iterasi listIterator.set(element+1000); Struktuy Data | a i = NILAI Yang SUDAH DIMODIFIKASI IMenginisialisasi Iterator Pada objek angka Iterator iterator = angka iterator(): while(iterator. hasNext())_ /Melakukan Iterasi atau Perulangan Object element = iterator: next(); System.out, Printin("Nilai: “+element) HMencetak Nilai Yang Sudah Dimodifikasi System.out printin("==== MENGURUTKAN NILAI TERBALIK ")s SECARA WMengurutkan Nilai Cecara Terbalik while listIterator hasPrevious()){ Object element = listiterator previous(); System. out.printin("Nilai: "+element); BAB Vil Binary Tree adalah sebuah pohon struktur data di pohon biner (binary tree) banyak dua anak mana setiap simpul memiliki paling 4, Mencari Maximum nila Catatan : menggunakan 2 class. Ex program class Node { int data; Node left, right; public Node(int data) { this.data = data, left = right = null; de class BinaryTree { Node root; i Returns the max value in a binary tree static int findMax(Node node) { if (node == null) retum Integer. MIN_VALUE; Struktur Data _ a int res = node.data; int res = findMax(node.left); int rres = findMax(node. right); if (Ires > res) res = Ires; if (Tres > res) res = rres; return res; I" Driver program to test above functions */ public static void main(String args{]) it BinaryTree tree = new BinaryTree(); tree.root = new Node(2); tree.root left = new Node(7); tree.root right = new Node(5); tree.root left right = new Node(6); tree.root.left right left = new Node(1); tree.root.left.right right = new Node(11); tree.root.right right = new Node(9); tree.root.right.right.left = new Node(4); System.out printin("Maximum element is " + tree.findMax(tree.root)); 2. Mencari minmum nilai Ex program : Ex program Note : Class pertama class Node { int data, Node left, right: public Node(int data) { this.data = data; left = right = null; } Note : Class kedua class BinaryTree { Node root; 11 Retumns the max value in a binary tree static int findMin(Node node) { if (node == null) return Integer. MAX_VALUE; int res = node.data; int Ires = findMin(node. left); Struktur Data int res = findMin(node. right); if (Ires < res) res =Ires; if (res < res) res = res; retum res; >* Driver program to test above functions “7 public static void main(String rast) { .¢ tree = new BinaryTree(); BinaryTre tree.root = new Node(2); tree root left = new Node(7); tree root right = new Node(5); tree.root left.right = new Node(6); tree.root left right.left = new Node(1); tree root left-right right = new Node(11); tree.root right right = new Node(9); tree.root right right left = new Node(4); System.out printin(’Minimum element is " + tree findMin(tree.root)); Struktur D J altur Data BAB VIII Binary Tree Traversals binary tree traversal adalah proses mengunjung) node tepat cat kali dan tiap node hanya boleh memiliki maksimal 2 subtree yang diseb sebagai sub pohon Kir (left subtree) dan sub pohon kanan (right subtree). 4. Postorder bilaksanakan dengan jalan melakukan kunjungan ke subtree Kin, lalu ke subtree Kanan, dan selanjutnya mencetak isi node yang dikunjung! Catatan : menggunakan 2 class. Ex program class Node { int key; Node leff, right; public Node(int item) { key = iter; left = right = null; } class BinaryTree if 1/ Root of Binary Tree Node root; BinaryTree() 5 kur Data -up" postorder traversal. void prinPostorder Node node) 4 itinode == 90") return IN first recur ON left subtree orintPostorder(node eR: 11then recur on right subtree printPostorder(node.ight); 1/now deal with the node ‘System.out print(node.key +"), } // Wrappers over above recursive functions void printPostorder() { _ printPostorder(root); a public static void main(String[] args) { BinaryTree tree = new BinaryTree(); tree.root = new Node(1); tree.root.left = new Node(2); {ree root right = new Node(3): tree root left.left = new Node(4): tree,root.left.right = new Node(5), binary tree is"); System.out. printin("\nPostorder traversal of tree.printPostorder(); 2. Inorder alan melakuken kunjungan ke subtree kiri, ke subtree Dilaksanakan dengan j melakukan kunjungan mencetak isi node yang dikunjungi, lalu kanan Catatan : menggunakan 2 class. Ex program class Node { int key: Node left, right; public Node(int item) { key = item, left = right = null; } class BinaryTree i 1! Root of Binary Tree 2s Node root; BinaryTree() { root = null; } I Given a binary tree, print its nodes in inorder“! void printinorder(Node node) { if (node == null) return; I" first recur on left child */ printinorder(node. left); i then print the data of node */ ‘System.out print(node.key +"); /* now recur on right child */ printInorder(node. right); y void printinorder() { — printInorder(root); } 1 Driver method public static void main(Stringl] args) { BinaryTree tree = new BinaryTree(); tree.root = new Node(1); Sruktur Data

Anda mungkin juga menyukai