Saturday, October 29, 2016

Algoritma dan Program Mengurutkan Data dengan Metode Bubble Sort dalam Bahasa C

Ada banyak sekali algoritma pengurutan data. Bubble sort adalah algoritma pengurutan data paling mudah. Meski demikian bukan berarti Bubble Sort ini adalah metode pengurutan paling efektif. Sebab cenderung membutuhkan banyak sekali perulangan.

Dalam Algoritma Pengurutan Data menggunakan Bubble Sort, dua buah data dibandingkan. Jika data awal lebih besar, maka kedua data tersebut dibalik.

Untuk lebih jelasnya lihat gambar berikut,



Implementasi dalam Bahasa C

#include <stdio.h>
#include <stdlib.h>

#define MAX_DATA 10

int main() {
    int i;
    int item[MAX_DATA];
    int temp;
    int buff;

    int nochange;
    int counter = 0;

    for (i=0; i<MAX_DATA; i++) {
        printf("Masukkan item ke-%d: ", i+1);
        scanf("%d", &temp);
        getchar();
        item[i] = temp;
    }

    do {
        nochange = 0;
        for (i=0; i<MAX_DATA-1; i++) {
            buff = item[i];

            if (buff > item[i+1]) {
                item[i] = item[i+1];
                item[i+1] = buff;

                nochange = 1;
            }

            counter++;
        }
    } while (nochange == 1);

    printf("Data setelah diurutkan:\n");
    for (i=0; i<MAX_DATA; i++) {
        printf("%d\n", item[i]);   
    }

    printf("Membutuhkan %d iterasi\n", counter);
    return 0;
}

Friday, October 28, 2016

Algoritma dan Program Mengitung Volume Balok

Langsung saja

Implementasi algoritma
1) Masukkan panjang
2) Masukkan lebar
3) Masukkan tinggi
4) volume = panjang * lebar * tinggi
5) Selesai

Implementasi dalam bahasa Java

// nama file: VolumeBalok.java

import java.util.Scanner;

public class VolumeBalok {
    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);
        double panjang, lebar, tinggi, volume;

        System.out.print("Masukkan panjang: ");
        panjang = scanner.nextDouble();

        System.out.print("Masukkan lebar: ");
        lebar = scanner.nextDouble();

        System.out.print("Maskkan tinggi: ");
        tinggi = scanner.nextDouble();

        volume = panjang * lebar * tinggi;

        System.out.format("Volume = %.2f\n", volume);
    }
}


Implementasi dalam Bahasa C

#include <stdio.h>
#include <stdlib.h>

int main() {
    float panjang, lebar, tinggi, volume;

    printf("Masukkan panjang: ");
    scanf("%f", &panjang);

    printf("Masukkan lebar: ");
    scanf("%f", &lebar);

    printf("Masukkan tinggi: ");
    scanf("%f", &tinggi);

    volume = panjang * lebar * tinggi;

    printf("Volume = %.2f\n", volume);

    return 0;
}

Algoritma dan Program Menghitung Volume Kerucut

Langsung saja

Implementasi algoritma
1) Masukkan jari-jari alas
2) Masukkan tinggi kerucut
3) volume = (1/3) * (PI * r * r) * t
4) Selesai

Implementasi dalam bahasa Java

// nama file: VolumeKerucut.java

import java.util.Scanner;

public class VolumeKerucut {
    public static void main(String args[]) {
        final double PI = 3.14;
        Scanner scanner = new Scanner(System.in);
        double r, tinggi, volume;

        System.out.print("Masukkan jari-jari alas: ");
        r = scanner.nextDouble();

        System.out.print("Maskkan tinggi: ");
        tinggi = scanner.nextDouble();

        volume = (1.0 / 3.0) * (PI * r * r) * tinggi;

        System.out.format("Volume = %.2f\n", volume);
    }
}


Implementasi dalam bahasa C

#include <stdio.h>
#include <stdlib.h>

#define PI 3.14

int main() {
    float r, tinggi, volume;

    printf("Masukkan jari-jari alas: ");
    scanf("%f", &r);

    printf("Masukkan tinggi: ");
    scanf("%f", &tinggi);

    volume = (1.0 / 3.0) * (PI * r * r) * tinggi;

    printf("Volume = %.2f\n", volume);

    return 0;
}




Algoritma dan Program Menghitung Volume Tabung

Langsung saja

Implementasi algoritma
1) Definisikan PI = 3.14
2) Masukkan jari-jari alas
3) Masukkan tinggi tabung
4) volume = (PI * r * r) * tinggi
5) Selesai

Implementasi dalam bahasa Java

// nama file: VolumeTabung.java

import java.util.Scanner;

public class VolumeTabung {
    public static void main(String args[]) {
        final double PI = 3.14;
        Scanner scanner = new Scanner(System.in);
        double r, tinggi, volume;

        System.out.print("Masukkan jari-jari alas: ");
        r = scanner.nextDouble();

        System.out.print("Maskkan tinggi: ");
        tinggi = scanner.nextDouble();

        volume = (PI * r * r) * tinggi;

        System.out.format("Volume = %.2f\n", volume);
    }
}


Implementasi dalam bahasa C

#include <stdio.h>
#include <stdlib.h>

#define PI 3.14

int main() {
    float r, tinggi, volume;

    printf("Masukkan jari-jari alas: ");
    scanf("%f", &r);

    printf("Masukkan tinggi: ");
    scanf("%f", &tinggi);

    volume = (PI * r * r) * tinggi;

    printf("Volume = %.2f\n", volume);

    return 0;
}

Algoritma dan Program Menghitung Luas dan Keliling Persegi Panjang

Langsung ya

Implementasi algoritma
1) Masukkan panjang
2) Masukkan lebar
3) luas = panjang * lebar
4) keliling = (2 * panjang) + (2 * lebar)
5) Selesai

Implementasi dalam Bahasa Java

// name file LuasKelilingPersegiPanjang.java

import java.util.Scanner;

public class LuasKelilingPersegiPanjang {
    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);
        double panjang, lebar, luas, keliling;

        System.out.print("Masukkan panjang = ");
        panjang = scanner.nextDouble();

        System.out.print("Masukkan lebar = ");
        lebar = scanner.nextDouble();

        luas = panjang * lebar;
        keliling = (2 * panjang)  + (2 * lebar);

        System.out.format("Luas = %.2f\n", luas);
        System.out.format("Keliling = %.2f\n", keliling);
    }
}



Implementasi dalam Bahasa C

#include <stdio.h>
#include <stdlib.h>

int main() {
    float panjang, lebar, luas, keliling;

    printf("Masukkan panjang: ");
    scanf("%f", &panjang);

    printf("Maskkan lebar: ");
    scanf("%f", &lebar);

    luas = panjang * lebar;
    keliling = (2 * panjang) + (2 * lebar);

    printf("Luas = %.2f\n", luas);
    printf("Keliling = %.2f\n", keliling);

    return 0;
}


Algoritma dan Program Menghitung Luas Segitiga

Langsung saja

Implementasi algoritma
1) Masukkan alas
2) Masukkan tinggi
3) luas = 0.5 * alas * tinggi
4) Selesai

Implementasi dalam Bahasa Java
// nama file: LuasSegitiga.java

import java.util.Scanner;

public class LuasSegitiga {
    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);

        double alas, tinggi, luas;

        System.out.print("Masukkan alas: ");
        alas = scanner.nextDouble();

        System.out.print("Maskkan tinggi: ");
        tinggi = scanner.nextDouble();

        luas = 0.5 * alas * tinggi;

        System.out.format("Luas = %.2f\n", luas);
    }
}


Implementasi dalam Bahasa C

#include <stdio.h>
#include <stdlib.h>

int main() {
    float alas, tinggi, luas;

    printf("Masukkan alas: ");
    scanf("%f", &alas);

    printf("Masukkan tinggi: ");
    scanf("%f", &tinggi);

    luas = 0.5 * alas * tinggi;

    printf("Luas = %.2f\n", luas);

    return 0;
}

Algoritma dan Program Pemisah Ribuan

Hai pemuda dan pemudi. Lama tak jumlah di halo algoritma. Kali ini saya akan membagikan algoritma dan program pemisah ribuan.

Penjelasan
Berawal dari teman-teman yang kesusahan bagaimana membuat sebuah deretan angka menjadi terpisah tiap tiga digit.

Misalnya, mengubah "75000" menjadi "75.000". Secara sederhana langkahnya sangat mudah. Cukup dengan memberikan pemisah ribuan setelah tiga karakter dari belakang dan seterusnya.

Tapi bagaimana mengimplementasikannya dalam algoritma dan pemrograman? Horoh kono... Nggak usah dipikir susah-susah guys! Kalau kita sudah tahu cara sederhananya, ya sudah pake cara itu saja.


Implementasi Algoritma:
1) Masukkan deretan angka (simpan dalam variabel string angka)
2) Hitung panjang deretan, simpan sebagai panjang_karakter
3) Inisiasi sebuah variabel untuk menelusuri angka, i = panjang_karakter - 1
4) Inisiasi sebuah karakter untuk menghitung setiap tiga iterasi, counter = 0
5) Inisiasi hasilnya dengan string kosong hasil = ""
6) Ambil karakter ke-i dari angka dan masukkan ke bagian belakang hasil hasil = angka[i] + hasil
7) Tambahkan nilai counter menjadi counter++
8) Jika counter = 3 maka beri "." pada hasil dengan hasil = "." + hasil dan isi counter = 0

9) Kurangi nilai i. Jika i>=0 maka ulangi langkah 6
10) Selesai

Implementasi dalam Bahasa Java
Gimana? Bingung nggak dengan implementasi algoritmanya? Gampang kok sebenarnya. Lebih jelasnya akan dicontohkan implementasi algoritma di atas ke dalam bahasa Java. Cekidot!

// nama file: PemisahRibuan.java

import java.util.Scanner;

public class PemisahRibuan {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String angka;
        int panjang_karakter;
        int counter = 0;
        String hasil = "";

        System.out.print("Masukkan deretan angka: ");
        angka = scanner.nextLine();
        panjang_karakter = angka.length();

        for (int i=panjang_karakter-1; i>=0; i--) {
            hasil = angka.charAt(i) + hasil;
            counter++;

            if (counter == 3) {
                hasil = "." + hasil;
                counter = 0;
            }
        }

        System.out.println("Hasilnya = " + hasil);

    }
}


Nah, gampang kan!