Selasa, 17 April 2018

Unknown

Double Linked List


     Setelah Anda membaca tentang salah satu jenis link single linked list, sekarang saatnya saya menyajikan jenis linked list yang lain yaitu double linked list. Pada dasarnya, penggunaan Double Linked list hampir sama dengan penggunaan Single Linked List yang telah kita pelajari pada materi sebelumnya. Hanya saja Double Linked List menerapkan sebuah pointer baru, yaitu prev, yang digunakan untuk menggeser mundur selain tetap mempertahankan pointer next.
     
     Keberadaan 2 pointer penunjuk (next dan prev) menjadikan Double Linked List menjadi lebih fleksibel dibandingkan Single Linked List, namun membutuhkan memori tambahan dengan adanya pointer tambahan tersebut.

Double Linked list dibagi menjadi:
DLLNC (Double Linked List Non Circular)
DLLNC "Double linked list non circular" adalah Double Linked List yang memiliki 2 buah pointer yaitu pointer next dan prev.
- Pointer next menunjuk pada node setelahnya.
- Pointer prev menunjuk pada node sebelumnya.

Double : artinya field pointer-nya dua buah dan dua arah, ke node sebelum dan sesudahnya.
Linked List : artinya node-node tersebut saling terhubung satu sama lain.
Non Circular : artinya pointer prev dan next-nya akan menunjuk pada NULL.






Ilustrasi DLLNC



-          Setiap node pada linked list mempunyai field yang berisi data dan pointer ke node berikutnya & ke node sebelumnya. Untuk pembentukan node baru , mulanya pointer next dan prev akan menunjuk ke nilai NULL. Selanjutnya pointer prev akan menunjuk ke node sebelumnya , dan pointer next akan menunjuk ke node selanjutnya pada list.

DLLC (Double Linked List Circular)
-          Pengertian secara umumnya DLLC itu Linked list yang menggunakan pointer, dimana setiap node memiliki 3 field, yaitu:
1 field pointer yang menunjuk pointer berikutnya "next",
1 field menunjuk pointer sebelumnya " prev ",
1 field yang berisi data untuk node tersebut .

-          Double Linked List Circular pointer next dan prev nya menunjuk kedirinya sendiri secara circular. Bentuk Node DLLC

Double : artinya field pointer- nya terdiri dari dua buah dan dua arah , yaitu prev dan next
Linked List : artinya node-node tersebut saling terhubung satu sama lain.
Circular : artinya pointer next dan prev-nya menunjuk ke dirinya sendiri

contoh Program nya

Read More

Minggu, 18 Maret 2018

Unknown

Pointer Di Pemrograman C++

1. Pengertian Pointer

Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu lokasi memori tertentu. Jadi pointer tidak berisi nilai data, melainkan berisi suatu alamat memori. Lokasi memori tersebut bisa diwakili sebuah variabel atau juga berupa alamat memori secara langsung.

2. Operator Pointer

Ada dua operator yang digunakan pada tipe data pointer yaitu:

1. Operator Deference (&)
Operator ini biasanya disebut dengan address of atau operator alamat. Dengan menggunakan operator deference (&) ini, suatu variabel akan menghasilkan alamat memori.

Contoh:
int x = 45; 
cout << &x;

Pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.

2. Operator reference (*)
Operator ini biasanya disebut value pointed by. Dengan menggunakan operator ini, kita dapat mengakses secara langsung nilai yang terdapat pada suatu alamat memori.

Contoh:
int x = 45; 
cout <<*&x;

Pada program di atas, akan ditampilkan nilai dari alamt memori &x.

Contoh Program nya :
#include <iostream>

using namespace std;

int main () {
   int  var = 20;   
   int  *ip;        

   ip = &var;       

   cout << "Value of var variable: ";
   cout << var << endl;

   
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

3. Pointer Pada Array

Pada Array/Larik, pointer hanya perlu menunjukan alamat elemen pertama saja karena alamat array dalam memori sudah disusun secara berurutan.

Contoh:
int a[] = {76, 67, 88, 98}; 
int *pa; 
pa = a;

Pernyataan pa=a artinya pointer pa menyimpan alamat array a, yang alamatnya diwakili alamat elemen pertama, yaitu a[0]. Kita juga bisa mengganti perintah pa=a dengan pa=&a[0]. Untuk pembacaan semua elemen array dengan pointer, bisa menggunakan perulangan seperti pada penggalan program berikut.
for (int i=0; i < 4; i++) { 
cout << *pa << " "; 
pa++; 
}

Contoh Program:
#include <iostream.h> 
#include <conio.h> 
#define MAX 5 

void main() { 
int a[MAX]; 
int *pa; pa = a; //atau pa = &a[0]

for (int i = 0; i < MAX; i++) { 
cout << "Masukkan Nilai " << i+1 << " : "; 
cin >> a[i]; 
} 

cout << endl; 

for (int i = 0; i < MAX; i++) { 
cout << "Nilai a[" << i << "] = " << *pa << endl;
pa++; 
} 

getch(); 
}

Output:
Masukkan Nilai 1 : 100 
Masukkan Nilai 2 : 120 
Masukkan Nilai 3 : 50 
Masukkan Nilai 4 : 111 
Masukkan Nilai 5 : 47 

Nilai a[0] = 100 
Nilai a[1] = 120 
Nilai a[2] = 50 
Nilai a[3] = 111 

Nilai a[4] = 47

4. Pointer Pada Parameter Fungsi

Seperti halnya dengan array, pointer dapat digunakan sebagai parameter suatu fungsi. Karena sifat pointer yang hanya sebagai penunjuk, maka setiap perubahan yang terjadi pada parameter, sebenarnya terjadi pada variabel yang ditunjuk bukan pada variabel pointer. Berikut saya contohkan program sederhananya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
void tambah(int *angka){
*angka +=20;
}
int main(){
int nilai = 10;
cout<<"Nilai variabel nilai adalah = "<<nilai<<endl;
tambah(&nilai); //Memasukkan alamat variabel nilai pada fungsi tambah
cout<<"Nilai variabel nilai adalah = "<<nilai<<endl;
return 0;
}

Read More

Senin, 22 Januari 2018

Unknown

Membuat Program Klasemen Dengan C++

Assalamualaikum warahmatullahi wabarakatuh

Hari ini saya akan share ke temen-temen cara membuat aplikasi klasemen sepakbola menggunakan C++

Untuk gambaran aplikasinya, pertama menampilkan tabel klasemen , dan kita harus menginput nama club dan goal yang akan bertanding






Berikut adalah source code nya




Penjelasan

Jika temen-temen melihat kode pada baris pertama terdapat kode #include <iostream>. 

Line 1

Tanda ‘#’ adalah preprocessor directive. 

Preprocessor directive adalah perintah – perintah yang diberikan kepada compiler untuk melakukan definisi, memasukkan file library, dll.

Jadi kita akan memasukkan (include) library iostream ke dalam program. iostream adalah header yang dibutuhkan untuk “kegiatan” input dan output.

Line 3

using namespace std; berfungsi untuk memberitahukan kepada kompiler bahwa kita akan menggunakan semua fungsi, class atau file yang terdapat pada memori namespace std.

Line 7-13

Untuk pendeklarasian nama variabel yang dibutuhkan di program , 

Line 27-28

cout : perintah keluaran dasar berbentuk text
cin : perintah input dasar text


Line 40-54

Untuk pemilihan kedua tim

Line 56-61

Kondisi ketika jumlah goal tim pertama dan kedua sama, maka point nya 1

Line 62-66

Kondisi ketika tim pertama jumlah goal nya lebih banyak , maka 
-Untuk tim pertama : 
Point bertambah 3, menang bertambah 1
-Untuk tim kedua :

Kalah bertambah 1

dan untuk line 67-71


Kondisi ketika tim kedua jumlah goal nya lebih banyak , maka 
-Untuk tim kedua :
Point bertambah 3, menang bertambah 1
-Untuk tim pertama : 
Kalah bertambah 1
Read More

Sabtu, 07 Januari 2017

Unknown

PESANTREN MENGAJAR - SMK 1 MARGAHAYU, BANDUNG

Di awal tahun 2017 ini saya pergi ke bandung untuk program pesantren mengajar, saya berangkat dari tasik hari senin,  2 januari karena saya sebelum nya izin pulang dulu ke kampung halaman :)

Saya berangkat pukul 7 pagi diantar sama kakak saya ke terminal singaparna, sampe di bandung sekitar pukul 12 karena macet, sampe di bandung saya di jemput sama pak sobar guru di SMK 1 Margahayu . Dan besok nya langsung ngajar,

Dan saya sangat bahagia sekali ketika melihat banyak siswa yang sangat antusias mengikuti training ini, padahal masih libur semesteran .

Hari Pertama Ngajar
Sebelum mengajar seperti biasa ada pembukaan dulu sama pihak sekolah,



Setelah pembukaan langsung ke kelas untuk memulai training android,


Nah kalo liat foto ini kok saya agak gendutan yaa :( 




untuk peserta nya ada siswa dan ada guru,  dan melihat peserta peserta nya juga sangat semangat sekali, apa karena sekolah nya dari militer yaa ? hehee,  

untuk training nya ini berlangsung selama 5 hari dari jam 8 sampe jam 5, bahkan ada yang sampe nginep di sekolah saking semangat nya

ini suasana belajar sampe malem






dan selepas training kita ada foto foto lagi 



















Read More