Rabu, 21 Oktober 2015

Pertemuan Minggu [07] Structur Data [20 October 2015]

Pertemuan Ketujuh kali ini membahas tentang Jenis-jenis Link List & Operator Overloadi.

Operator Overloading :

istream&operator>>(istream&inArray1D&x)//operator overloading{
         int posisi;//deklarasi posisi
         cout<<"Mengisi Array Pada Posisi ke :";
         in>>posisi;//input posisi
         if(posisi>0&&posisi<=maks)//perulangan memasukan element array{
         cout<<"Masukan Element Arraynya";
         in.A[posisi];
           }
         else{
                cout<<"Anda Memasukan Posisi diluar range";//output ketika memasukan posisi diluar range
                return in;
            }

Jenis-Jenis Link List :

1)Link List biasa merupakan link list yang memiliki konstruktor dengan di akhiri dengan NULL
perhatikan gambar berikut: 

gambar di atas merupakan link list biasa gambar kotak besar merupakan data dari list tsb dan yang kecil merupakan akhir konstraktor yang berakhiran NULL , karna gambar di atas link list di sambung menjadi 3 dan yang terakhir NULL yang merupakan hasil akhirnya.

2. Link List Maju Mundur  merupakan link list yang bisa melakukan pergantian arah ke list sebelumnya. perhatikan gambar berikut

gambar di atas merupakan contoh link list maju mundur, list pada gambar di atas terdapat 3 kolom yaitu kolom 1 dan 3 merupakan konstruktor NULL dan yang di tengah merupakan nilai dari list tsb. 2 konstruktor NULL inilah yang di gunakan untuk menunjuk link maju atau mundurnya.

3. Circular Link List merupakan link list yang bisa menggunakan proses dari ke dua link list sebelumnya, bedanya adalah proses akhir bukan berakhir NULL tetapi bila sudah di akhir maka akan menuju ke list awal seperti pada gambar berikut:

ini merupakan contoh circular linklist dengan menggunakan link maju mundur.

Ya sekian untuk pembahasan minggu ini terima kasih..

Senin, 19 Oktober 2015

Pertemuan Minggu [06] Structur Data [13 October 2015]

Pertemuan Keenam kali ini membahas tentang Link List.

Link List

#include <iostream>
using namespace std;

class Link{
public :
int data;
Link *next;
Link *back;

};



int main(int argc, char** argv) {
Link *a = new Link;
Link *b = new Link;
Link *c = new Link;
a->data = 1;
a->next = b;
b->data = 2;
b->next = c;
c->data = 3;
c->next= NULL;
cout<<a->next->data;
return 0;

}

Ya sekian pembahasan tentang Link List kali ini, semoga membantu... Terima Kasih.

Kamis, 08 Oktober 2015

Pertemuan Minggu [05] Structur Data [06 October 2015]

Pertemuan Kelima kali ini membahas tentang TDA(Tipe Data Abstrak).

A. Tipe Data Abstrak 1D Statis

# include <iostream.h>
# define maks 5
class Array1D {
friend ostream& operator<<(ostream&, const Array1D&);
friend istream& operator>>(istream&, Array1D&);
public :
            Array1D();
            void cetak();
            void geser_kiri();
            void geser_kanan();
private :
         char A[maks];

 };

void Array1D::cetak(){
          for (int i=0; i<maks; i++)
          cout << A[i] << " ";

  }

ostream& operator<<(ostream& out, const Array1D& x){
   for (int i=0; i<maks; i++){
          cout << x.A[i] << " ";
          cout << endl;
          return out;

   }

istream& operator>>(istream& in, Array1D& x){
    int posisi;
         cout << "Mengisi array pada posisi ke : ";
         in >> posisi;
         if (posisi > 0 && posisi <= maks) {
         cout << "Masukkan elemen array-nya : ";
         in >> x.A[posisi-1];
    }
      else
         cout << "Anda memasukkan posisi di luar range ... ";
      return in;
 }

voi d Array1D::geser_kanan(){
  int n = maks;
  int temp = A[n-1];
  f or (int i=n-1; i >= 0; i--)
  A[i+1] = A[i];
  A [0] = temp;
 }


void Array1D::geser_kiri(){
   int n = maks;
   int temp = A[0];
    for (int i=0; i < n; i++)
    A[i] = A[i+1];
    A[n-1] = temp;
 }


Main

main() {
   Array1D x;
   cout << "Array masih kosong : " << x;
   cin >> x;
   cout << "Isi Array saat ini : " << x;
   x.geser_kiri();
   cout << "Isi Array setelah digeser ke kiri : " << x;
   x.geser_kanan();
   cout << "Isi Array setelah digeser ke kanan : " << x;
   return 0;
}

Ya...Sekian Resume saya minggu ini..., semoga dapat membantu.

Minggu, 04 Oktober 2015

Belajar Java Menggunakan Netbean

1. Menghitung Jam kerja karyawan.

Class main
package waktu;
/**
 *
 * @author Makends Akechi
 */
public class Waktu {

    public static void main(String[] args) {
     
        System.out.println("Nama : Mackands Leonardo Octano");
        System.out.println("NIM : 1400018012");
     
        WaktuClass Datang = new WaktuClass();
        Datang.setDetik(0);
        Datang.setMenit(30);
        Datang.setJam(7);
        System.out.print("Datang ");
        System.out.print(Datang.getWaktutampil());
        System.out.println();
     
        WaktuClass Pulang = new WaktuClass();
        Pulang.setDetik(0);
        Pulang.setMenit(0);
        Pulang.setJam(15);
        System.out.print("Pulang ");
        System.out.print(Pulang.getWaktutampil());
        System.out.println();
     
     
        WaktuClass Jamkerja = new WaktuClass(Pulang,Datang);
        System.out.println("Total Waktu Berkerja : "+Jamkerja.jam+":"+Jamkerja.menit+":"+Jamkerja.detik);
     
     
     
    }
 

}


Class Fungsi/Method
buat class baru didalam class waktu, class ini digunakan untuk memproses class diatas.

package waktu;

/**
 *
 * @author Makends Akechi
 */
public class WaktuClass {
    
    public int jam;
    public int menit;
    public int detik;
    private int selisih;
    
    public WaktuClass(){
        
    }

    
    
    
    public int getJam() {
        return jam;
    }

    public void setJam(int jam) {
        this.jam = jam;
    }

    public int getMenit() {
        return menit;
    }

    public void setMenit(int menit) {
        this.menit = menit;
    }

    public int getDetik() {
        return detik;
    }

    public void setDetik(int detik) {
        this.detik = detik;
    }
    
    public String getWaktutampil(){
        return "Jam : "+jam+":"+menit+":"+detik;
    }
    
    public WaktuClass(WaktuClass Datang, WaktuClass Pulang){
    
    selisih=60;
        
        
    jam = Datang.jam-Pulang.jam;
    if(menit>=menit){
        jam=jam-1;
        menit = ((Datang.menit-Pulang.menit)+selisih);
    }
    else if(detik>=detik){
        menit=menit-1;
        detik = ((Datang.detik-Pulang.detik)+selisih);
    }
    
}


yak sekian pembelajaran bagian pertama, jika ada salah silahkan comment :D.

Pertemuan Minggu [04] Structur Data [29 September 2015]

Pertemuan Keempat kali ini membahas Array.

1. Array [Input & Output]

#include <iostream>
using namespace std;

class Arrq{
private:
int arr[9];
int i;
public:
void input(int i,int b){
if (i<b){
cout<<"Masukkan Array ";
cin>>arr[i];
input(i+1,b);

}

}
void output(int i,int b){


//for (int i=0;i<9;i++){
if (i<b){

cout<<arr[i]<<" ";
cout<<endl;
output(i+1,b);
}


}


};



int main(int argc, char *argv[]) {
Arrq a;
a.input(0,9);
cout<<endl;
a.output(0,9);


return 0;

}


2. Array [Mengubah baris menjadi kolom]

#include <iostream>
using namespace std;

int main(int argc, char *argv[]) {
int arr[9]={1,2,3,4,5,6,7,8,9,};
int p=0;
cout<<"sebelum di tukar= \n";

for(int b=0;b<3;b++){
for(int h=0;h<3;h++){
cout<<arr[h+p]<<" ";

}cout<<endl;
p=p+3;
}
int q=0;
for (int c=0;c<9;c++){
if (arr [c]%3!=0){
int temp=arr[c];
arr[c]=arr[c+1];
arr[c+1]=temp;

}
}
cout<<"setelah di tukar = \n";
cout<<endl;
for(int i=0;i<3;i++){
for (int a=0;a<3;a++){
cout<<arr[a+q]<<" ";

}cout<<endl;
q=q+3;

}





return 0;

}

Sekian terima kasih pembahasan array kali ini, semoga membantu.