Java Matif = Relasi

Assalamualaikum..
Saya kembali lagi nih untuk kembali berbagi ilmu dengan kawan-kawan.Kali ini sedikit berhubungan dengan pelajaran kampus dan agak sedikit berbau matematika (pelajaran yang bikin otak meleleh…hehehe).Sedikit ilmu yg akan saya share pada kesempatan kali ini yaitu sub bab dari pelajaran mata kuliah Matematika Informatika yaitu Relasi. Tidak tanggung-tanggung karena saya orang nya baik hati, rajin mengaji, gemar menabung..*halahapacoba* akan saya share listing program lengkap dengan penjelasan logika nya tiap masing-masing blog biar kawan-kawan tidak usah pusing-pusing memikirkan logika nya lagi tiap statement nya (soalnya pengalaman pribadi nih jadinya curcol dikiiit hehe..)
Oke deh kawan-kawan, sepertinya kalian sudah tidak sabar untuk melihat share-an saya, ini dia langsung saja kawan-kawan cekidot di bawah ini dan dijamin bisa langsung running loohh…bimsalabimmmm…

Listing:

import java.io.*;
import java.util.Scanner;
public class relasi
{
public static void main ( String [] args ) throws Exception {
{
Scanner input = new Scanner(System.in);
int anggotaA;
int anggotaB;

//masukkan banyaknya Anggota dan Elemennya
System.out.print(“\nmasukan Banyaknya AnggotaA : “);
anggotaA = input.nextInt();
int [] a = new int [anggotaA];
System.out.println(“Masukkan AnggotaA : “);
for(int i=0 ; i <= anggotaA – 1 ; i++)
{
int L = i + 1;
System.out.print(“Elemen ke-[“+L+”] :”);
a[i] = input.nextInt();
}

//masukkan elemen AnggotaB
System.out.print(“\nmasukkan banyaknya AnggotaB : “);
anggotaB = input.nextInt();
int [] b = new int [anggotaB];
System.out.println(“Masukkan AnggotaB : “);
for(int i=0 ; i <= anggotaB – 1 ; i++)
{
int L = i + 1;
System.out.print(“Elemen ke-[“+L+”] :”);
b[i] = input.nextInt();
}
System.out.println(“\n”);
//tampil anggotaA
System.out.print(“Anggota Himpunan A = { “);
for(int i=0;i<=anggotaA – 1;i++){
System.out.print(a[i]+” “);
}
System.out.println(“}”);
//tampil anggotaB
System.out.print(“Anggota Himpunan B = { “);
for(int i=0;i<=anggotaB – 1 ;i++){
System.out.print(b[i]+ ” “);
}
System.out.println(“}”);

//jumlah kedua anggota
int jumlahAB = anggotaA + anggotaB;
//inputkan relasi Antara Anggota A dan B
/*String[] c = new String[jumlahAB];
String[] d = new String[jumlahAB];*/
String[] e = new String[jumlahAB];
System.out.print(“masukkan banyaknya relasi [ <= “+jumlahAB+” ] : ” );
int banyak = input.nextInt();
char[] f = new char[banyak];
char[] g = new char[banyak];
System.out.println(“inputkan dengan cara A,B “);
DataInputStream bl = new DataInputStream(System.in);
for(int i=0;i<=banyak-1;i++)
{
e[i] = bl.readLine();
}

//mengambil karakter
try{
for(int i=0;i<=banyak-1;i++)
{
e[i].getChars(0,1,f,i);
e[i].getChars(2,3,g,i);
}

boolean cek = true;
for(int i=0;i<=banyak-1;i++)
{
for(int x=0;x<=i;x++)
{
if(f[i]!=a[x])
{
cek = false;
}
else
if(g[i]!=b[x])
{
cek= false;
}
}
}

if(cek==false)
{System.out.println(“Out Of Range”);}
else
{System.out.println(“\n”);}
}
catch(Exception ex){ System.out.println(“\n”);}

//Range
System.out.print(“\nRange = { “);
for(int i=0;i<=banyak-1;i++)
{
System.out.print(g[i]+” “);
}
System.out.println(“}”);

//domain
System.out.print(“Domain = { “);
for(int i=0;i<=anggotaA-1;i++){
System.out.print(a[i]+” “);
}
System.out.println(“}”);

//invers
System.out.print(“Invers = { “);
for(int n=0;n<=banyak-1;n++)
{
System.out.print(“{“+g[n] +”,”+ f[n]+”}”);
}
System.out.print(” }\n\n”);
}

}

}

Dan berikut adalah penjelasan logika nya.Sengaja saya bikin per blog agar tidak memakan banyak tempat dan tidak menghabiskan banyak waktu untuk mencari logika dari masing2 keyword..

Logika:

Berikut adalah penjelasan logika dari program diatas…..

import java.io.*;

import java.util.Scanner;

public class relasi

{

public static void main ( String [] args ) throws Exception {

{

Scanner input = new Scanner(System.in);

int anggotaA;

int anggotaB;

Maksud dari perintah pertama diatas adalah untuk ‘import.java.io.*;’…maksud nya ialah mendaftarkan nama lengkap dari kelas-kelas yang kita import agar didalam kelas ini  nantinya kita tidak lagi perlu menuliskan nama lengkap sebuah kelas. Artinya semua kelas yang berada didalam package ‘java.io’ dapat kita panggil/digunakan dalam kelas kita langsung dengan nama kelas, tanpa nama package. Kemudian kode selanjutnya  ‘import.java.util.Scaner, fungsinya ialah untuk menambahkan fungsi java.util yang diantaranya fungsi scanner. Lalu public class relasi  ialah keyword yang fungsinya sebagai header dan awalan dalam setiap kita membuat program dan class tersebut nantinya yang akan kita gunakan dalam penyimpanan nama file.

Lalu ada keyword ‘public static void main[]args’.Maksudnya ialah pernyataan pembuka sebuah metode.Maksud metode ialah kumpulan pernyataan untuk melakukan suatu tugas tertentu dalam kelas.Dalam setiap aplikasi harus ada metode yang bernama ’main’ yang akan dieksekusi pertama kali saat program tersebut dieksekusi.Kata ‘main’ pun mempunyai fungsi yang sama dengan kata ‘public’.Ini juga merupakan ciri utama suatu program java yakni didalamnya ada definisi method main.

Dalam metode ‘main’ dalam aplikasi parameternya adalah selalu String[]args, dimana args hanyalah sebuah nama dari obyek array dari String.Kalau symbol [] berarti pilihan.Boleh ada atau tidak.Scaner input = new Scanner (System.in) ialah berfungsi untuk pembuatan sebuah objek baru bernama input untuk menggantikan fungsi scanner, bisa juga untuk menjalankan objek scanner (input) dengan nama alias input.Lalu ada disajikan dua pilihan yang akan kita input masing-masing nilai variabelnya yaitu int A & B.

//masukkan banyaknya Anggota dan Elemennya

            System.out.print(“\nmasukan Banyaknya AnggotaA : “);

            anggotaA = input.nextInt();

            int [] a = new int [anggotaA];

            System.out.println(“Masukkan AnggotaA : “);

            for(int i=0 ; i <= anggotaA – 1 ; i++)

                        {

         int L = i + 1;

                         System.out.print(“Elemen ke-[“+L+”] :”);

                         a[i] = input.nextInt();

                        }

Kemudian kita disuruh memasukan inputan angka menjadi banyaknya Anggota masing-masing ketika nanti program dijalankan.Inputan yang dimasukan pun berupa tipe data integer, yaitu berupa angka-angka, tidak bisa kita memasukan variabel huruf. Kemudian akan tercetak output seperti diatas yaitu jumlah banyaknya anggota A.Cetak ke samping.Itu baru menginput kemungkinan banyaknya jumlah anggota dalam himpunan A.Selanjutnya setelah memasukan kemungkinan banyaknya jumlah inputan pada jumlah anggota A, kemudian pada perintahnya selanjutnya, kita akan menjabarkan satu persatu banyaknya isi anggota yang jumlah inputan integer nya telah dimasukan tadi.Baru ariabel i diberi nilai 0, kemudian, nilai i lebih besar dari anggotaA – 1 dan nilai i akan bertambah, misalnya jumlah anggota A adalah 2, maka nilai dari i adalah 1 karena anggotaA-1 yaitu 2-1, tapi jumlahnya tetap sama yaitu 2, karena variabel 1 dimulai dengan 0, dan nilai i akan bertambah 1 yaitu i++. Maka I akan terus melakukan proses looping dan I++ akan melakukan proses looping secara bertahap yakni pertambahan looping 1 . jika nilai int jumlah anggota didalam himpunan B sama dengan A.Untuk selanjunya ada perintah yang nantinya akan sebagai penanda penjabaran anggota himpunan A dan karena i=0, maka hasilnya akan dimulai dari satu yaitu ‘Elemen ke-[]’, karena ditambah 1.Dan cetak kesamping.

//masukkan elemen AnggotaB

System.out.print(“\nmasukkan banyaknya AnggotaB : “);

anggotaB = input.nextInt();

int [] b = new int [anggotaB];

System.out.println(“Masukkan AnggotaB : “);

for(int i=0 ; i <= anggotaB – 1 ; i++) {

int L = i + 1;

 System.out.print(“Elemen ke-[“+L+”] :”);

 b[i] = input.nextInt(); }

System.out.println(“\n”);

Selanjutnya, perintah yang disajikan tidak jauh berbeda maksudnya dengan perintah sebelumnya.Menginput kemungkinan jumlah dari himpunan B, kemudian menginput kembali anggota-anggota nya dari himpunan B yang sudah diinputkan sebelumnya.Lalu dijabarkan tiap-tiap elemen dari jumlah yang telah diinput sebelumnya.

//tampil anggotaA

System.out.print(“Anggota Himpunan A = { “);

for(int i=0;i<=anggotaA – 1;i++){

System.out.print(a[i]+”   “); }

System.out.println(“}”);

//tampil anggotaB

System.out.print(“Anggota Himpunan B = { “);

for(int i=0;i<=anggotaB – 1 ;i++){

System.out.print(b[i]+ ”  “); }

System.out.println(“}”);

//jumlah kedua anggota

int jumlahAB = anggotaA + anggotaB;

Selanjutnya akan ditampilkan anggota dari masing-masing himpunan.Pencetakannya pun kesamping dengan penyusunan pencetakan masing-masing anggota himpunan secara berurutan sesuai dengan pencetakan masing-masing elemen dari tiap himpunan, namun kali ini di cetak kesamping dan dibuat dalam format set tabular form.

//inputkan relasi Antara Anggota A dan B

/*String[] c = new String[jumlahAB];

String[] d = new String[jumlahAB];*/

String[] e = new String[jumlahAB];

System.out.print(“masukkan banyaknya relasi [ <= “+jumlahAB+” ] : ” );

int banyak = input.nextInt();

char[] f = new char[banyak];

char[] g = new char[banyak];

System.out.println(“inputkan dengan cara  A,B “);

DataInputStream bl = new DataInputStream(System.in);

for(int i=0;i<=banyak-1;i++) {

e[i] = bl.readLine(); }

Kemudian akan diperintahkan untuk menginput banyaknya relasi yang bisa tercipta dari kedua himpunan A & B.Dan nantinya jika hendak diinputkan kemungkinan relasi yang ada, di listing program ada perintah get char yang maksudnya adalah masing-masing char dari anggota dari tiap-tipa himpunan akan diambil satu persatu sesuai dengan anggota yang ada, jadi tidak keseluruhan.Dan polanya menggunakan pemisahan koma sesuai dengan perintah cetakan output diatas.Cetak nya kebawah dan akan dicetak sesuai banyaknya kemungkinan jumlah relasi yang telah diinput sebelumnya, tidak bisa lebih ataupun kurang.

//Range

System.out.print(“\nRange = { “);

for(int i=0;i<=banyak-1;i++) {

System.out.print(g[i]+”  “); }

System.out.println(“}”);

//domain

System.out.print(“Domain = { “);

for(int i=0;i<=anggotaA-1;i++){

 System.out.print(a[i]+”   “); }

System.out.println(“}”);

//invers

System.out.print(“Invers = { “);

for(int n=0;n<=banyak-1;n++) {

System.out.print(“{“+g[n] +”,”+ f[n]+”}”); }

System.out.print(” }\n\n”); }

Dan terakhir akan dicetak  hasil (range).Cetakan hasil ini didapat dari hasil yang sudah anggota-anggota dari masing-masing himpunan yang telah di relasikan.Kemudian akan di cetak pula hasil daerah asal (domain). Hasil cetakan yang tersaji disini adalah char dari anggota-anggota yang ada di himpunan A.Kalau untuk daerah lawan (kodomain) itu sendiri merupakan anggota-anggota yang ada di himpunan B.Lalu ada perintah cetakan selanjutnya yaitu invers (kebalikan).Dan yang akan tersaji untuk invers adalah kebalikan dari relasi yang telah diinput.Polanya yang awalnya domain,kodomain, untuk invers dibalik menjadi kodomain,domain.Atau nama lainnya bisa kita sebut peta dan pra peta dari masing himpunan.Dan selesai…

 

About halojack

i'm a simple guy

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: