Pages

MATERI POINTER ALGORITMA DAN PEMROGRAMAN 2

POINTER

      Variabel pointer merupakan variabel yang memungkinkan kita untuk menyimpan alamat memori. Pada pointer kita dimungkinkan untuk menggunakan operator aritmetika pada nilai pointer. Maksudnya bukanlah nilai dari variabel yang ditunjuk oleh pointer tapi nilai pointer itu sendiri, nilai yang berbentuk alamat memori.
      Di dalam C/C++ kita dimungkinkan untuk mengoperasi nilai dari pointer, tapi operator yang dimungkinkan hanyalah penambahan dan pengurangan (+/-/++/–) nilai dari pointer.

1. Pengertian pointer

      Pointer adalah penunjuk suatu variabel. Karena menunjuk suatu variabel, maka pointer wajib memiliki alamat dari variabel yang ditunjuknya. Terkadang, dalam program yang besar, penghematan memori wajib untuk dilakukan. Dengan mekanisme copy dan paste nilai variabel satu kedalam variabel lain, akan sangat memboroskan memori. Dengan mekanisme pointer, suatu variabel dalam suatu fungsi dapat diakses oleh fungsi yang lain.
      Pointer adalah variabel yang menunjuk pada variabel lainnya. Variabel merupakan sebuah memori perwakilan dari alamat memori pada komputer. Hal yang sebenarnya terjadi adalah pointer itu menyimpan alamat memori yang dia tunjuk. Pada pointer kita dimungkinkan untuk menunjuk suatu memori, mengubah nilai dan menyalin nilai memori tersebut secara tidak langsung (perantara melalui variabel pointer). Dalam pointer terdapat dua macam operator yang akan kita gunakan, yaitu Address-of (&) dan Dereference operator (*).

2. Alamat, variabel serta pendeklarasian variabel

      Misalkan seseorang memiliki variabel x dan terletak di memori 0x000001. Jika kamu ingin memasukkan nilai 100 kedalam variabel x, maka processor harus membawa nilai 100 tersebut kedalam variabel x yang terletak di alamat memori 0x000001. Hal yang perlu kamu ketahui adalah, setiap variabel ternyata memiliki ukuran byte yang berbeda-beda dalam memori. Sebagai contoh suatu variabel bertipe int memiliki ukuran 4 byte dalam memori. Maka variabel tersebut akan menempati 4 kapling lokasi dalam memori, misalkan 0x000001, 0x000002, 0x000003, dan 0x000004. Jika terdapat dua buah variabel bertipe int yang bersebelahan, maka alamat variabel pertama terletak di 0x000001 dan variabel kedua terletak dialamat 0x000005. Memori menggunakan bilangan heksadesimal yang ditandai dengan awalan ‘0x’, sehingga jika suatu variabel menempati blok kesepuluh dalam memori, maka alamatnya adalah 0x00000a.


      Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut :

 tipe *nama_variabel 

      Adapun nama_variabel di atas adalah nama dari variabel pointer. Sebagai contoh :

int *px; / *contoh 1 */

char *pch1, *pch2; / *contoh 2 */


      Contoh di atas menyatakan bahwa px adalah variabel pointer yang menunjuk ke suatu data bertipe int, sedangkan contoh kedua masing pch1 dan pch2 adalah variabel pointer yang menunjuk ke data bertipe char.

      Agar suatu pointer menunjuk ke variabel lain, mula-mula pointer harus diisi dengan alamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari suatu variabel, operator & (operator alamat, bersifat unary) bisa dipergunakan dengan menempatkannya di depan nama variabel. Sebagai contoh, bila x dideklarasikan sebagai variabel bertipe int, maka

&x

berarti “alamat dari variabel x”. Adapun contoh pemberian alamat x ke suatu variabel
pointer px (yang dideklarasikan sebagai pointer yang menunjuk ke data bertipe int) yaitu : 

px = &x;

      Pernyataan di atas berarti bahwa px diberi nilai berupa alamat dari variabel x. Setelah pernyataan tersebut dieksekusi barulah dapat dikatakan bahwa px menunjuk ke variabel x.
      Jika suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh pointer tersebut dapat diakses melalui variabel itu sendiri (pengaksesan langsung) ataupun melalui pointer (pengaksesan tak langsung). Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection (tak langsung) berupa simbol * (bersifat unary). Contoh penerapan operator * yaitu :

*px

yang menyatakan “isi atau nilai variabel/data yang ditunjuk oleh pointer px” . Sebagai contoh jika y bertipe int, maka sesudah dua pernyataan berikut, y akan berisi nilai yang sama dengan nilai x.

px = &x;
y = *px;

3. Macam-macam operator pada pointer

a. Deference (&)
      Merupakan operator yang memungkinkan kita untuk mendapatkan dan melihat alamat memori yang dimiliki oleh variabel tersebut. Cara menggunakanya adalah dengan meletakan tanda di depan identitas saat pemanggilan variabel. Hal itu akan membuat compiler memberikan alamat memori bukan isi atau nilai dari memori tersebut.
      Deference (&) merupakan suatu operator yang berfungsi untuk menanyakan alamat dari suatu variabel. Apabila kamu memberikan simbol & pada awal variabel dan mencetak hasilnya pada jendela CLI, maka yang akan tercetak adalah alamat dari variabel tersebut bukan nilai yang ditampung oleh variabel tersebut. Contoh :

#include <iostream>
using namespace std;

int main()
{
    int var = 2;

    cout<<&var<<" memiliki nilai "<<var<<endl;

    return 0;
}

b. Reference Operator (*)
      Reference (*) merupakan suatu operator yang berfungsi menyatakan suatu variabel adalah variabel pointer. Sama halnya dengan operator deference, peletakan simbol operator reference diletakan diawal variabel. Operator reference ini akan membuat suatu variabel pointer untuk menampung alamat. reference Operator (*), adalah operator yang memungkinkan mendapatkan isi atau nilai dari sebuah memori berdasarkan alamat memori.

#include <iostream>
using namespace std;

int main()
{
    int var = 2;

    cout<<var<<endl;
    cout<<&var<<endl;
    cout<<*&var<<endl;

    return 0;
}

4. Mendirikan pointer

      Mendirikan pointer dengan menggunakan dua operator yang telah dijelaskan di atas. Pada umumnya pointer sebenarnya adalah variabel, peraturan yang dimiliki variabel juga berlaku pada pointer, jadi tidak jauh beda dengan variabel. Pointer hanya mendapatkan beberapa perbedaan yaitu penambahan dua operator yang akan membuat variabel menjadi variabel pointer.
      Untuk mendirikan sebuah variabel pointer kita hanya menambahkan dereference operator sebelum identitas. Operator dereference tidak harus melekat pada identitas, operator tersebut juga bisa di letakan setelah tipe data atau di antara tipe data dan identitas. dari berbagai cara penulisan tersebut memiliki makna yang sama yaitu satu operator dereference hanya akan berlaku pada saru variabel.

      Pointer tidak hanya berlaku pada variabel, kita juga dapat melakukanya pada function, objek dan lain-lain. Dan cara implementasi pointer selain pada variabel, caranya masih sama seperti kita melakukanya pada variabel.

Bentuk penulisannya sebagai berikut.

tipeData *identitas;
//atau
tipeData *identitas = &var;

Contoh penulisan adalah sebagai berikut.

int *pInt;
double *pDouble = &myVar;

5. Cara mengakses pointer

      Variabel pointer adalah variabel yang memiliki alamat memori sebagai nilai dari variabel pointer tersebut. Dan pada pointer kita dimungkinkan untuk mengakses nilai dari pointer itu sendiri dan mengakses nilai dari alamat memori yang dimiliki(ditunjuk) oleh pointer.
      Pointer merupakan variabel, untuk mengakses pointer tidak jauh beda dengan cara mengakses variabel. Untuk mengakses nilai dari pointer kita hanya cukup memanggil identiatas dari pointer tersebut.

pInt

      Pemanggilan itu akan menghasilkan nilai dari pointer yang berupa alamat memori dari variabel yang ditunjuk oleh pointer tersebut. Karena pointer hanya dapat mememiliki nilai berupa alamat memori, untuk mengubah nilai dari pointer atau mengubah tujuan dari pointer kita membutuhkan operator address-of (&) pada operand sumber. Contoh program :

#include <iostream>
using namespace std;

int main()
{
    int var1 = 2, var2 = 5;
    int *pVar = &var1;

    cout<<"var1 = "<<&var1<<endl;
    cout<<"pVar = "<<pVar<<endl;
    cout<<"====="<<endl<<endl;
    pVar=&var2;
    cout<<"var2 = "<<&var2<<endl;
    cout<<"pVar = "<<pVar<<endl;

    return 0;
}

6. Ukuran pointer

      Setiap kita medirikan pointer, pointer itu akan membutuhkan memori. Dan besar memori itu sama pada setiap tipe data yang digunakan. Besar memori dari pointer tergantung pada mesin kompiler. Jika kompiler merupakan 32bit maka pointer akan memakan memori sebanyak 4 bytes, jika menggunakan 64bit maka pointer memakan memori sebanyak 8 bytes. Contoh program :

#include <iostream>
using namespace std;

int main()
{
    int var = 2;
    int *pVar = &var;

    cout<<sizeof(pVar)<<endl;

    return 0;
}

7. Pointer dan array

      Jika kita menuliskan sebuah array tanpa tanda kurung kotak ([]) maupun indeksnya, maka array tersebut menunjuk atau bersi alamat elemen pertama dari array tersebut. Misalkan kita membuat sebuah pointer bertipe int dengan nama pointerArray dan sebuah array dengan tipe yang sama yaitu int dengan nama nilaiArray. Variabel pointer dengan nama pointrArray akan menunjuk pada alamat memori elemen pertama array dengan nama nilaiArray. Suatu pointer bertipe int hanya dapat digunakan untuk menunjuk pada variabel int. Sebab, tipe data tersebut akan menentukan sifat pointer ketika alamat pointer tersebut dilakukan increment. Begitu juga untuk tipe data yang lain.
      Hubungan antara pointer dan array pada C sangatlah erat. Sebab array secara internal akan diterjemahkan dalam bentuk pointer. Pembahasan ini akan memberikan gambaran hubungan antara pointer dan array. Misalnya dideklarasikan di dalam suatu fungsi

static int tgl_lahir[3] = { 01, 09, 64 };

dan

int *ptgl;

Kemudian diberikan instruksi

ptgl = &tgl_lahir[0]; //pointer to array of integer

Maka ptgl akan berisi alamat dari elemen array tgl_lahir yang berindeks nol. Instruksi di atas bisa juga ditulis menjadi

ptgl = tgl_lahir;

sebab nama array tanpa tanda kurung menyatakan alamat awal dari array. Sesudah penugasan seperti di atas,

*ptgl

dengan sendirinya menyatakan elemen pertama (berindeks sama dengan nol) dari array tgl_lahir. Hal ini bisa dilihat melalui pembuktian program berikut.

8. Pointer sebagai parameter suatu fungsi

      Penerapan pointer sebagai parameter yaitu jika diinginkan agar nilai suatu variabel internal dapat diubah oleh fungsi yang dipanggil. Sebagai contoh dapat dilihat pada fungsi berikut.

void naikkan_nilai (int *x, int *y)
{
 *x = *x + 2;
 *y = *y + 2;
}

Fungsi di atas dimaksudkan agar kalau dipanggil, variabel yang berkenaan dengan parameter aktual dapat diubah nilainya, masing-masing dinaikkan sebesar 2. Contoh pemanggilan :

naikkan_nilai(&a, &b);

      Dalam hal ini variabel a dan b harus ditulis diawali operator alamat (&)
yang berarti menyatakan alamat variabel, sebab parameter fungsi dalam pendefinisian berupa pointer.

9. Pointer sebagai keluaran fungsi

      Suatu fungsi dapat dibuat agar keluarannya berupa pointer. Misalnya, suatu fungsi menghasilkan keluaran berupa pointer yang menunjuk ke string nama_bulan, seperti pada contoh berikut.

char *nama_bulan(int n)
{
 static char *bulan[]=
 {“Kode bulan salah”, “Januari”, “Februari”, Maret”,
“April”, “Mei”, “Juni”, “Juli”, "Agustus”,
“September”, “Oktober”, “Nopember”,“Desember”
 };
 return ( (n<1 | | n>12) ? bulan[0] : bulan[n] );
}

Pada definisi fungsi di atas,

char *nama_bulan()

Menyatakan bahwa keluaran fungsi nama_bulan() berupa pointer yang menunjuk ke obyek char (atau string).

      Dalam fungsi nama_bulan(), mula-mula array bernama bulan dideklarasikan dan sekaligus diinisialisasi agar menunjuk sejumlah string yang menyatakan nama bulan. Di bagian akhir fungsi, pernyataan

return ( (n<1 || n>12) ? bulan[0] : bulan[n] );

menyatakan bahwa hasil fungsi berupa pointer yang menunjuk ke string “Kode bulan salah” (bulan[0]) jika masukan fungsi n<1 atau n>12. Bulan[n] untuk n yang terletak antara 1 sampai dengan 12.























Referensi :

https://www.sinauarduino.com/artikel/pointer-pada-pemrograman-cpp/
http://unsri.ac.id/upload/arsip/struktur&pointer.pdf
http://yuliana.lecturer.pens.ac.id/Konsep%20Pemrograman/Teori/T12-Pointer(1).pdf
https://www.slideshare.net/dhanjunkie/ix-struktur-pointer
https://www.belajarcpp.com/tutorial/cpp/pointer/

MATERI STRUCT DENGAN ARRAY ALGORITMA DAN PEMROGRAMAN 2

1. Struct

      Struktur yaitu pengelompokan variabel-variabel atau sejumlah data dengan tipe yang berlainan dan bernaung dalam satu nama yang sama. Struktur biasa digunakan untuk mengelompokkan beberapa informasi yang berkaitan dengan sebuah kesatuan data, atau biasanya disebut dengan record.
      Struktur data adalah cara penyimpanan, pengorganisasian dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Struktur data dapat diartikan sebagai tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna maupun kolom yang hanya digunakan untuk keperluan pemrograman dan tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan data dari pengguna, dan ada kolom yang lebarnya tetap.
      Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (keperluan data keuangan atau untuk pengolahan kata) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada file-file spreadsheet, database, pengolahan kata, dan gambar yang dikompres. Struktur bisa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan (pada bahasa pascal, struktur disebut dengan record).

2. Pendeklarasian struct

      Dalam mendeklarasikan struct dapat dituliskan sebagai berikut.

      struct nama_struct {

tipe_data_1 nama_var_1;

tipe_data_2 nama_var_2;

tipe_data_3 nama_var_3;

……
};

      Untuk mengakses anggota dari struktur digunakan salah satu dari dua operator, yaitu operator titik (.), atau operator panah (->) tergantung tipe variabel yang dideklarasikan. Jika variabelnya tunggal, maka menggunakan operator titik, sedangkan jika variabelnya pointer menggunakan operator panah.

          cout<<nama_struct_variabel;

          cout<<nama_struct->variabel;

3. Array

      Biasa disebut larik, dimana terdapat koleksi data yang mempunyai elemen sama dan tipe yang sama, cara mengaksesnya hanya dengan memanggil indeksnya. Syarat dalam array ialah struktur data dan tipe data dari elemen-elemennya harus sama (homogen) dan elemen-elemennya diakses atau diidentifikasi menggunakan indeks.
      Nilai suatu data dalam array ditentukan oleh nama dan indeksnya. Array banyak digunakan pada operasi yang melibatkan indeks seperti pada statistik. Tipe data array dapat berupa array satu dimensi(1D), dua dimensi (2D), tiga dimensi (3D) atau banyak dimensi.
      Array dalam bahasa C++ tidak dimulai dari indeks satu, tetapi dimulai dari indeks 0 (nol). Misalnya dideklarasikan suatu array satu dimensi : int x[3] berarti array yang terjadi adalah : x[0], x[1], x[2]. Memberi nilai pada array juga dapat dilakukan dengan menggunakan struktur perulangan for yang mana jumlah perulangan yang terjadi disesuaikan dengan ukuran array.

4. Pendeklarasian array

      contoh pendeklarasian array pada sebuah program yaitu sebagai berikut.

      #include "iostream.h"
      #include "conio.h"
      void main()
{
      int data[5]; //input data ke array
      for (int k=0; k<5; k++)
      {
         cout<<"Masukkan data]"<<k<<"] = ";
         cin>>data[k];
      }
      for (int j=0; j<5; j++)
      {
         cout<<"data["<<j<<"] = "<<data[j]<<endl;
      }
getch();
}

      Cara pendeklarasiannya dalam bahasa C++, yaitu:
      a). Array satu dimensi :
           Tipe_Array nama_Array[ukuran] Contoh: double Array_1[10]
      b). Array dua dimensi :
           Tipe_Array nama_Array[ukuran1] [ukuran2] Contoh:int Array_2[10][10]
      c). Array tiga dimensi :
           Tipe_Array nama_Array[ukuran1] [ukuran2][ukuran3] Contoh: float
           Array_3[10][10][10]

5. Array struct

      Penggunaan struktur sering dikaitkan dengan array, atau dalam program disebut membentuk array dari struktur. Sehingga muncul sistem baru pada program. Contoh dari array struktur adalah array yang dipakai untuk menyimpan data rekan.
      Berikut contoh program yang menggunakan kombinasi array struct.

#include<iostream>

using namespace std;

struct mahasiswa
{
    string nama;
    int nim;
    string prodi;
    string kelas;
};

int main()
{
    mahasiswa mhs[3];
    int n;
    cout<<"Jum mhs : ";
    cin>>n; //untuk jumlah array yang akan di inputkan

    for(int i=1; i<=n; i++)
    {
    cout<<"NAMA : ";
    cin>>mhs[i].nama;
    cout<<"NIM : ";
    cin>>mhs[i].nim;
    cout<<"PRODI : ";
    cin>>mhs[i].prodi;
    cout<<"KELAS : ";
    cin>>mhs[i].kelas;
    cout<<endl<<endl;
    }

    for(int i=1; i<=n; i++)
    {
    cout<<"Mahasiswa"<<i<<endl;
    cout<<"Mahasiswa bernama    : "<<mhs[i].nama<<endl;
    cout<<"Dengan nim                 : "<<mhs[i].nim<<endl;
    cout<<"Prodi                            : "<<mhs[i].prodi<<endl;
    cout<<"Kelas                            : "<<mhs[i].kelas<<endl;
    }
    return 0;
}






















Referensi :

https://yunitaarfiani.blogspot.com/2019/02/materi-struct-algoritma-dan-pemrograman.html?view=timeslide
http://wonkcristian.blogspot.com/2012/06/array-dan-structure.html
http://docplayer.info/35807342-Modul-6-record-struct-struktur.html



MATERI STRUCT ALGORITMA DAN PEMROGRAMAN 2

ALGORITMA DAN PEMROGRAMAN 2

MATERI STRUCT

A. Pengertian struct

      Struktur yaitu pengelompokan variabel-variabel atau sejumlah data dengan tipe yang berlainan dan bernaung dalam satu nama yang sama. Struktur biasa digunakan untuk mengelompokkan beberapa informasi yang berkaitan dengan sebuah kesatuan data, atau biasanya disebut dengan record .

      Struktur data adalah cara penyimpanan, pengorganisasian dan pengaturan data didalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Struktur data dapat diartikan sebagai tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna maupun kolom yang hanya digunakan untuk keperluan pemrograman dan tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan data dari pengguna, dan ada kolom yang lebarnya tetap.

      Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (keperluan data keuangan atau untuk pengolahan kata) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada file-file spreadsheet, database, pengolahan kata, dan gambar yang dikompres.
      Dalam deklarasi struktur data, terdapat 2 type data, yaitu :

      1. Array
          Biasa disebut larik, dimana terdapat koleksi data yang mempunyai elemen sama dan tipe yang sama, cara mengaksesnya hanya dengan memanggil indeksnya.
          Contoh :

          int Y [4]

          Artinya dalam pemrograman C++ akan otomatis mendeklarasikan data sesuai jumlah yang telah di tentukan di atas, urutan dimulai dari nol.

      2. Record
          Di dalam record juga terdapat beberapa data, namun di dalamnya tidak harus mempunyai tipe data yang sama. Record adalah tipe data terstuktur yang dapat menampung data field bertipe berbeda.
          Contoh :

          struct struktur _brg
                                         {
                                           char barang [5];
                                           char nama [30];
                                           int jumlah;
                                           float harga;
                                         };
          struct struktur_brg album_kpop, lightstick_kpop;

          Struktur tersebut diberi nama struktur_brg, mempunyai lima buah elemen. Yaitu barang [5] dan nama [30] yang bertipe char, sedangkan jumlah bertipe int dan harga bertipe float.
          Struktur_brg adalah nama tipe data struktur darilima elemen tersebut, bukan nama dari suatu "ariabel struktur. Sedangkan album_kpop dan lightstick_kpop merupakan variabel-variabel yang mempunyai tipe data struktur_brg.

      3. Cara mengakses anggota struktur
          Untuk mengakses anggota dari struktur digunakan salah satu dari dua operator, yaitu operator titik (.), atau operator panah (->) tergantung tipe variabel yang dideklarasikan. Jika variabelnya tunggal, maka menggunakan operator titik, sedangkan jika variabelnya pointer menggunakan operator panah.

          cout<<nama_struct_variabel;

          cout<<nama_struct->variabel;

B. Perbedaan Array dan Struct

      1. Array
          Array adalah struktur data yang tipe data dari elemen-elemennya harus sama (homogen) dan elemen-elemennya diakses atau diidentifikasi menggunakan indeks.
      2. Struct
          Struct adalah struktur data yang tipe data dari elemen-elemennya tidak harus sama (heterogen) dan elemen-elemennya diakses atau diidentifikasi menggunakan identifier atau nama variabel.

C. Pendeklarasian struct

      Dalam mendeklarasikan struct, ada beberapa cara penulisan yang biasa digunakan.
      Pertama :

      struct nama_struct {

tipe_data_1 nama_var_1;

tipe_data_2 nama_var_2;

tipe_data_3 nama_var_3;

……

};

      Yang kedua adalah dengan deklarasi menggunakan typedef.

      typedef struct {

tipe_data_1 nama_var_1;

.

.

tipe_data_n nama_var_n;

} nama_struct;

      Nested struct, di dalam sebuah struct dapat dimungkinkan terdapat sebuah struct lagi. Jadi hal ini dapat diartikan struct di dalam struct. Hampir mirip nested loop, yaitu for di dalam for.
      Contoh :

struct tanggal {

int hari;

int bulan;

int tahun;

};

struct karyawan {

char NIP [10];

char nama [20];

struct tanggal tgl_masuk;

float gaji;

};

      Struct of array, sebuah struct yang di dalamnya tedapat variable dengan tipe data array.
      Contoh :

struct data {

char nama[20];

char alamat[100];

};

      Array of struct, sebuah array yang setiap data elemennya bertipe struct. Umumnya dipakai untuk menyimpan objek data yang terstruktur, misal : data mahasiswa, karyawan, buku, barang, dsb.
      Contoh :

typedef struct {

char npm [10];

char nama [20];

char alamat [30];

unsigned angkatan;

float ipk;

} mahasiswa ;

mahasiswa data[100];





















Referensi : 

http://ferisapto.blogspot.com/2016/02/struct-record-algoritma-dan-struktur.html
http://www.academia.edu/26254131/Laporan_Praktikum_Algoritma_and_Pemrograman_Struct_
http://unsri.ac.id/upload/arsip/struktur&pointer.pdf
https://gakpaketelor.wordpress.com/2009/03/06/struct-dalam-c/
 

Copyright © Yunitaa's Creations. Template created by Volverene from Templates Block
WP by Simply WP | Solitaire Online