Monthly Archives: March 2012

Sorting pada matriks (array 2D)

Metode yang digunakan sama dengan bubble sort pada array 1D. Untuk postingan selanjutnya, akan menggunakan metode yang lebih baik.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.Scanner;
 
class SortingMatriks {
    public static void main(String args[]) {
        Scanner skener = new Scanner(System.in);
        
        int ordo = skener.nextInt();
        
        int matrix[][] = new int[ordo][ordo];
        
        for (int i=0; i<ordo; i++) {
            for (int j=0; j<ordo; j++) {
                matrix[i][j] = skener.nextInt();
            }
        }
        
        for (int i=0; i<ordo; i++) {
            for (int j=0; j<ordo; j++) {
                for (int k=ordo-1; k>=i; k--) {
                    for (int l=ordo-1; l>=0; l--) {
                        if (matrix[k][l] < matrix[i][j]) {
                            int temp = matrix[i][j];
                            matrix[i][j] = matrix[k][l];
                            matrix[k][l] = temp;
                        }
 
                        if (k == i && l<=j) break;
                    }
                }
            }
        }
        
        System.out.println();
        for (int i=0; i<ordo; i++) {
            for (int j=0; j<ordo; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
}
import java.util.Scanner;

class SortingMatriks {
	public static void main(String args[]) {
		Scanner skener = new Scanner(System.in);
		
		int ordo = skener.nextInt();
		
		int matrix[][] = new int[ordo][ordo];
		
		for (int i=0; i<ordo; i++) {
			for (int j=0; j<ordo; j++) {
				matrix[i][j] = skener.nextInt();
			}
		}
		
		for (int i=0; i<ordo; i++) {
			for (int j=0; j<ordo; j++) {
				for (int k=ordo-1; k>=i; k--) {
					for (int l=ordo-1; l>=0; l--) {
						if (matrix[k][l] < matrix[i][j]) {
							int temp = matrix[i][j];
							matrix[i][j] = matrix[k][l];
							matrix[k][l] = temp;
						}

						if (k == i && l<=j) break;
					}
				}
			}
		}
		
		System.out.println();
		for (int i=0; i<ordo; i++) {
			for (int j=0; j<ordo; j++) {
				System.out.print(matrix[i][j] + " ");
			}
			System.out.println();
		}
	}
}

Mencari modus pada Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Modus {
    public static void main(String[] args) {
        // inisialisasi nilai-nilai yang akan dicari modusnya
        int[] nilai = {10, 19, 200, 19, 4, 3, 7, 10, 19, 25, 19, 32, 10, 19, 200, 200, 10, 10};
        
        /* deklarasi tabel frekuensi
           asumsi rentang nilai yang akan dicari
           modusnya adalah antara 0 sampai 255
         */
        int[] tabelFrekuensi = new int[255];
        
        // seluruh tabelFrekuensi nilai awalnya adalah 0 (nol)
        for (int i=0; i<255; i++) {
            tabelFrekuensi[i] = 0;
        }
        
        // tampung 
        for (int i=0; i<nilai.length; i++) {
            tabelFrekuensi[nilai[i]]++;
        }
        
        // cari nilai modus
        int nilaiModus = 0;
        for (int i=0; i<255; i++) {
            if (tabelFrekuensi[i] > nilaiModus) {
                nilaiModus = i;
            }
        }
        
        System.out.println("\nModusnya : " + nilaiModus);
        System.out.println("Nilai " + nilaiModus + " muncul sebanyak " + tabelFrekuensi[nilaiModus] + " kali");
    }
}
class Modus {
	public static void main(String[] args) {
		// inisialisasi nilai-nilai yang akan dicari modusnya
		int[] nilai = {10, 19, 200, 19, 4, 3, 7, 10, 19, 25, 19, 32, 10, 19, 200, 200, 10, 10};
		
		/* deklarasi tabel frekuensi
		   asumsi rentang nilai yang akan dicari
		   modusnya adalah antara 0 sampai 255
		 */
		int[] tabelFrekuensi = new int[255];
		
		// seluruh tabelFrekuensi nilai awalnya adalah 0 (nol)
		for (int i=0; i<255; i++) {
			tabelFrekuensi[i] = 0;
		}
		
		// tampung 
		for (int i=0; i<nilai.length; i++) {
			tabelFrekuensi[nilai[i]]++;
		}
		
		// cari nilai modus
		int nilaiModus = 0;
		for (int i=0; i<255; i++) {
			if (tabelFrekuensi[i] > nilaiModus) {
				nilaiModus = i;
			}
		}
		
		System.out.println("\nModusnya : " + nilaiModus);
		System.out.println("Nilai " + nilaiModus + " muncul sebanyak " + tabelFrekuensi[nilaiModus] + " kali");
	}
}

How to write a simple Java Program in 15 minutes

Ok, disini saya akan membagikan sebuah tips yang mudah-mudahan dapat membantu.

Bagaimana untuk membuat program java sederhana dalam waktu 15 menit ?

Didalam ujian/test praktikum mata kuliah pemrograman, mungkin kita diharuskan membuat sebuah program dalam waktu yang sudah ditentukan. Untuk itu, kita membutuhkan sebuah strategi untuk mengerjakannya.

Sebenarnya waktu 15 menit sudah lebih dari cukup untuk mengerjakan sebuah program sederhana, seperti input-output sederhana, operasi matriks (pertambahan, pengurangan), tetapi disini saya akan membagikan sebuah tips untuk dapat mengerjakan program sederhana tersebut dalam waktu 15 menit.

Bubble Sort dan Binary Search pada Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import java.util.Random;
import java.util.Scanner;
 
class SortingSearching {
 
    static int[] BubbleSort(int[] A) {
        int temp;
 
        // bubble sort
        for (int i=0; i<A>i; j--) {
                // jika nilai A[j] lebih kecil dari A[i]
                if (A[j] < A[i]) {
                    // lakukan pertukaran
                    temp = A[i];
                    A[i] = A[j];
                    A[j] = temp;
                }
            }
        }
 
        return A;
 
    }
 
    static void BinarySearch(int[] A) {
        Scanner sekener = new Scanner(System.in);
        int cari, tengah = 0, awal, akhir;
        boolean ketemu;
 
        System.out.print("\n\n\nMasukan angka yang ingin dicari : ");
        cari = sekener.nextInt();
 
        // binary search (pencarian biner)
        awal = 0;
        akhir = A.length;
        ketemu = false;
        while (!ketemu && awal = A.length) break;
 
            if (A[tengah] == cari) {
                ketemu = true;
            } else {
                if (cari < A[tengah]) {
                    akhir = tengah-1;
                } else {
                    awal = tengah+1;
                }
            }
 
        }
 
        if (ketemu == true) {
            System.out.println("\n\nAngka " + cari + " ditemukan pada index ke-" + tengah);
        } else {
            System.out.println("\n\nAngka " + cari + " tidak ditemukan");
        }
    }
 
    public static void main(String args[]) {
        int[] A = new int[50];
        Random randomGenerator = new Random();
 
        // generate 50 angka acak
        for (int i=0; i<50 ;i++) {
            int randomInt = randomGenerator.nextInt(100);
            A[i] = randomInt;
        }
 
        // tampilkan array A sebelum diurutkan
        System.out.println("\nSebelum diurutkan : ");
        for (int i=0; i<A.length; i++) {
            System.out.print(A[i] + " ");
        }
 
        A = BubbleSort(A);
 
        // tampilkan array A yang sudah diurutkan
        System.out.println("\n\n\nSetelah diurutkan : ");
        for (int i=0; i<A.length; i++) {
            System.out.print(A[i] + " ");
        }
 
        BinarySearch(A);
    }   
}
import java.util.Random;
import java.util.Scanner;

class SortingSearching {

	static int[] BubbleSort(int[] A) {
		int temp;

		// bubble sort
		for (int i=0; i<A>i; j--) {
				// jika nilai A[j] lebih kecil dari A[i]
				if (A[j] < A[i]) {
					// lakukan pertukaran
					temp = A[i];
					A[i] = A[j];
					A[j] = temp;
				}
			}
		}

		return A;

	}

	static void BinarySearch(int[] A) {
		Scanner sekener = new Scanner(System.in);
		int cari, tengah = 0, awal, akhir;
		boolean ketemu;

		System.out.print("\n\n\nMasukan angka yang ingin dicari : ");
		cari = sekener.nextInt();

		// binary search (pencarian biner)
		awal = 0;
		akhir = A.length;
		ketemu = false;
		while (!ketemu && awal = A.length) break;

			if (A[tengah] == cari) {
				ketemu = true;
			} else {
				if (cari < A[tengah]) {
					akhir = tengah-1;
				} else {
					awal = tengah+1;
				}
			}

		}

		if (ketemu == true) {
			System.out.println("\n\nAngka " + cari + " ditemukan pada index ke-" + tengah);
		} else {
			System.out.println("\n\nAngka " + cari + " tidak ditemukan");
		}
	}

	public static void main(String args[]) {
		int[] A = new int[50];
		Random randomGenerator = new Random();

		// generate 50 angka acak
		for (int i=0; i<50 ;i++) {
			int randomInt = randomGenerator.nextInt(100);
			A[i] = randomInt;
		}

		// tampilkan array A sebelum diurutkan
		System.out.println("\nSebelum diurutkan : ");
		for (int i=0; i<A.length; i++) {
			System.out.print(A[i] + " ");
		}

		A = BubbleSort(A);

		// tampilkan array A yang sudah diurutkan
		System.out.println("\n\n\nSetelah diurutkan : ");
		for (int i=0; i<A.length; i++) {
			System.out.print(A[i] + " ");
		}

		BinarySearch(A);
	}	
}

Kuis I Pengantar Multimedia

  1. Berapakah ukuran file yang akan dihasilkan jika anda merekam audio dengan menggunakan resolusi 16-bit stereo, dengan sampling rate 22.05 KHz, selama 5 menit ?
  2. Jelaskan apa  yang dimaksud dengan MIDI? Apa keuntungan penyimpanan data audio dalam bentuk MIDI?
  3. Jelaskan apa perbedaan antara tipe bitmap image dan vector image? Sertakan contoh gambar pada jawaban anda.
  4. Secara garis besar, image dapat dibagi menjadi monochrome,  gray-scale,  8-bit,  dan 24-bit Color Image.  Jelaskan maksud masing-masing image tersebut dan sertakan contoh gambarnya.
  5. Apa perbedaan antara color-depth dan resolution pada image ?
  6. Misalkan akan dibuat image dengan colour depth 24 Bit, dengan resolusi 800×600, hitunglah berapa kira-kira ukuran file yang akan dihasilkan oleh image tersebut.
  7. Jelaskan apa yang dimaksud dengan anti-aliasing pada image?
  8. Jelaskan model warna yang digunakan pada peralatan printer.
  9. Jelaskan perbedaan antara model  warna RGB, HSV dan HSL.
  10. Sebutkan fitur pada software yang biasanya menggunakan model warna HSV dan HSL.

Jawaban :

1.      sampling rate = 22.05 KHz = 22050 Hz

seconds = 5 * 60 = 300

Bit per sampling = 16 (stereo)

Ukuran File = sampling rate * jumlah channel * (bit per sampling /  8.0) * seconds

Ukuran File = 22050 * 2 * (16/8) * 300 = 26460000 Byte  = 25,234 MB (kurang lebih)