struct & pointer - · pdf filec++ struct & pointer ... isi procedure adalah...

Click here to load reader

Post on 27-Apr-2018

257 views

Category:

Documents

13 download

Embed Size (px)

TRANSCRIPT

  • AlgoritmaAlgoritma dandan PemrogramanPemrograman 11

    C++C++

    Struct & Pointer

    Agung Sasongko, M.Kom

  • PengertianPengertian structstruct / / strukturstruktur

    struct adalah statement yang berguna

    untuk mengkelompokkan sejumlah data

    dengan tipe yang berlainan.

  • BentukBentuk UmumUmum

    Pendeklarasian Struktur sebagai berikut:

    struct nama_struktur

    {

    tipe_data var_anggota_struktur;

    ...

    };

  • ContohContoh DeklarasiDeklarasi StrukturStruktur

    struct Mahasiswa

    {

    char nim[9];

    char nama[20];

    int thnmasuk;

    };

  • ContohContoh PenggunaanPenggunaan StrukturStruktur

    Nama_struktur nama_variabel;

    Contoh:

    Mahasiswa mhs;

    Cara Akses Anggota Struktur:Nama_variabel.nama_anggota

    Contoh:

    strcpy( mhs.nim, 18111234);

    mhs.thnmasuk = 2011;

    cin>>mhs.nim;

    cout

  • Kasus 1Kasus 1

    Buatlah sebuah struktur untuk bentuk

    data sebagai berikut:

    NIM Nama Gender Alamat

    char (9) char(30) char(1) char(255)

  • JawabJawab KasusKasus 11

    Bentuk struktur yaitu:

    struct data_mhs

    {

    char nim[9];

    char nama[30];

    char gender;

    char alamat[255]

    };

    NIM Nama Gender Alamat

    char (9) char(30) char(1) char(255)

  • Kasus 2Kasus 2

    Buatlah struktur sebagai berikut:

    Nama_matakuliah Nilai tugas Nilai_uts Nilai_uas

    char(20) float float float

  • Jawab Kasus 2Jawab Kasus 2

    Bentuk struktur nya yaitu:

    struct nilai_mk

    {

    char nm_mk[20];

    float nilai_tugas;

    float nilai_uts;

    float nilai_uas;

    };

    Nama_matakuliah Nilai tugas Nilai_uts Nilai_uas

    char(20) float float float

  • Kasus 3Kasus 3

    Buatlah struktur kombinasi seperti berikut:

    Struktur nilai_mk dependensi dengan

    struktur mahasiswa.

    NIM Nama Gender Alamat nilai

    char (9) char(30) char(1) char(255) nilai_mk

    Nama_matakuliah Nilai tugas Nilai_uts Nilai_uas

    char(20) float float float

    nilai_mk

  • Jawab Kasus 3Jawab Kasus 3struct nilai_mk

    {

    char nm_mk[20];

    float nilai_tugas;

    float nilai_uts;

    float nilai_uas;

    };

    struct mhs

    {

    char nim[9];

    char nama[30];

    char gender;

    char alamat[255];

    nilai_mk nilai;

    };

  • ContohContoh KasusKasus

    Buatlah Struct bernama Mahasiswa dengananggota elemen: Nim Nama Thnmasuk

    Struct yang dibuat digunakan di program utama dengan ketentuan NIM telah diisikan melalui koding berisikan nim

    anda masing2

    Bagian Nama meminta user untuk mengisikannya Tahun Masuk ditentukan melalui koding bernilai

    2012

    Tampilkan output dengan hasil:Mahasiswa NIM . bernama . masuk tahun .

  • #include

    #include

    struct Mahasiswa

    {

    char nim[9];

    char nama[20];

    int thnmasuk;

    };

    main()

    {

    Mahasiswa mhs;

    strcpy( mhs.nim, "18111234");

    cout

  • ContohContoh KasusKasus Buatlah structure bernama barang yang beriisikan anggotanya:

    Nobrg

    Nmbrg

    Hrgbarang

    Stok

    Buatlah procedure bernama isiData untuk mengisi struct diatas

    dengan parameter b bertipe struct barang

    Isi procedure adalah menampilkan pertanyaan untuk mengisikan masing-masingelemen struct parameter b.

    Buatlah procedure tampilData untuk menampilkan semua isi data

    dari parameter b bertipe struct barang

    Isi Procedure adalah menampilkan masing-masing anggota yang ada pada structparameter b.

    Gunakan struct dan kedua procedure dirangkai di program utama.

  • #include

    #include

    struct Barang

    {

    char nobrg[5];

    char nmbrg[30];

    long hrgbarang;

    int stok;

    };

  • void isiData(Barang b)

    {

    coutb.nobrg;

    cout

  • main()

    {

    Barang b;

    isiData(b);

    clrscr();

    cout

  • Lihat hasilnya????

    Sekarang coba pada bagian procedure isiData parameter di

    ubah menjadi seperti ini:

    void isiData(Barang &b)

    Lengkapnya:void isiData(Barang &b)

    {

    coutb.nobrg;

    cout

  • Pointer (Pointer (PenunjukPenunjuk))

    Merupakan variabel yang bertugas untuk

    menunjuk ke alamat memori suatu

    variabel.

    PembuatanVariabel Pointer:char *nama;

    int *a;

    float *x;

  • MenunjukMenunjuk AlamatAlamat MemoriMemoriVariabelVariabel

    Untuk memberi informasi mengenai

    alamat memori dari suatu variabel maka

    gunakan tanda reference (&).

    Contoh:

    char *x;

    char y[10] = BSI OKE;

    x = &y;

  • ApaApa yang yang bisabisa dilakukandilakukan pointer?pointer?

    Melalui pointer kita dapat mengendalikan isi nilaidari variabel yang telah ditunjuk alamatmemorinya oleh pointer.

    Sebagai contoh:

    int x = 10;

    int *y;

    y = &x;

    *y = 12;

    cout

  • ContohContoh PenerapanPenerapan Pointer 1:Pointer 1:#include

    #include

    main()

    {

    int nilai = 100;

    int *x = &nilai;

    *x = 9;

    cout

  • ContohContoh PenerapanPenerapan Pointer 2:Pointer 2:#include

    #include

    main()

    {

    int nilai[4] = {2,3,5,2};

    int *x = nilai;

    int index;

    x[0] = 9;

    x[1] = 9;

    for(index=0;index

  • Reference (&)Reference (&)

    Digunakan untuk menunjukkan alamatmemori suatu variabel.

    Biasanya digunakan untuk memberikanalamat variabel ke pointer

    Dapat pula digunakan pada parameter pembautan fungsi atau prosedur untukmenjadi parameter reference

    Parameter reference adalah parameter yang dapat digunakan untuk mengendalikan nilaivariabel pemasuknya

  • ContohContoh PenerapanPenerapan Reference:Reference:#include

    #include

    void proc(int &a)

    {

    a = a + 2;

    }

    main()

    {

    int x = 10;

    proc(x);

    cout

  • Parameter Reference Parameter Reference variabelvariabel

    Array???Array??? Untuk membuat parameter reference yang

    menerima variabel bertipe array maka lebihmudahnya dapat menggunakan pointer.

    Contoh:

    void namaproc(int *a)

    Procedure diatas memiliki parameter a sebagaipointer bertipe int. Parameter ini dapat sebagaireference untuk variabel array bertipe int.

    Penggunaannya sudah barang tentu variabel yang dimasukkan adalah variabel array. Sebagai contoh:

    int a[2] = {2,3};

    namaproc(a);

  • ContohContoh#include

    #include

    void proc(int *a)

    {

    a[0] = 100;

    a[1] = 200;

    }

    main()

    {

    int x[] = {2,4,2,1};

    proc(x);

    for(int i=0; i

  • ContohContoh KasusKasus Buatlah structure bernama barang yang beriisikan anggotanya:

    Nobrg

    Nmbrg

    Hrgbarang

    Stok

    Buatlah procedure bernama isiData untuk mengisi struct diatas

    dengan parameter pointer b bertipe struct barang, dan n bertipe

    int

    Isi procedure adalah melakukan perulang sebanyak nilai parameter n danmenanyakan user untuk mengisikan masing-masing elemen struct parameter b.

    Buatlah procedure tampilData untuk menampilkan semua isi data

    dari parameter pointer b bertipe struct barang, dan n bertipe int.

    Isi Procedure adalah melakukan perulangan sebanyak nilai parameter n danmenampilkan masing-masing anggota yang ada pada struct parameter b.

    Gunakan struct dan kedua procedure dirangkai di program utama.

  • #include

    #include

    struct Barang

    {

    char nobrg[5];

    char nmbrg[30];

    long hrgbarang;

    int stok;

    };

  • void isiData(Barang *b, int n)

    {

    int index;

    for(index=0; index < n; index++)

    {

    cout

  • void tampilData(Barang *b, int n)

    {

    int i;

    for(i=0;i

  • main()

    {

    Barang b[10];

    isiData(b, 3);

    clrscr();

    cout

  • LatihanLatihan:: Buatlah struktur data karyawan terdiri dari : nip, nama,

    jabatan, golongan

    Buatlah procedure isiData untuk mengisi data karyawansesuai masukkan jumlah karyawan

    Buatlah fungsi tunjanganJabatan untuk menghasilkan nilaitunjangan berdasarkan jabatan karyawan.

    Jika jabatan direktur maka tunjangan 5jt

    Jika jabatan manager maka tunjangan 2jt

    Jika jabatan staff maka tunjangan 200rb

    Buatlah fungsi gajiPokok untuk menghasilkan nilai gaji pokokkaryawan berdasarkan golongan karyawan

    Jika golongan 1 maka gaji pokok 2jtJika golongan II maka gaji pokok 2.5jt

    Jika golongan III maka gaji pokok 3.7jt

    Buatlah procedure tampilData untuk menampilkan seluruhdata karyawan yang telah terisi, beserta tunjangan jabatan, gajipokoknya serta total gaji yang diterima karyawan

    Buatlah program utamanya dan gunakan struktur sertaprocedure isiData dan tampilData