21
STRUKTUR DATA STRUKTUR DATA RAMADHANI,S.KOM

Materi 1

Embed Size (px)

Citation preview

Page 1: Materi 1

STRUKTUR DATASTRUKTUR DATA

RAMADHANI,S.KOM

Page 2: Materi 1

array

• Array adalah suatu tipe data terstruktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu.

• Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi.

Page 3: Materi 1

DEKLARASI • tipe_data nama_var_array [ukuran];• tipe_data : menyatakan jenis

tipe data elemen larik (int, char, float, dll)

• nama_var_array : menyatakan nama variabel yang dipakai.

• ukuran : menunjukkan jumlah maksimal elemen larik.

• Contoh :• Int nilai[6];

Page 4: Materi 1

INISIALISASI • Menginisialisasi array sama dengan

memberikan nilai awal array pada saat didefinisikan.

• int nilai[6] = {8,7,5,6,4,3}; • Contoh diatas berarti berarti anda

memesan tempat di memori komputer sebanyak 6 tempat dengan indeks dari 0-5, dimana indeks ke-0 bernilai 8, ke-1 bernilai 7, dst, dan dimana semua elemennya bertipe data integer.

Page 5: Materi 1

PENGAKSESAN

nama_var_array [indeks]; • Pengisian dan pengambilan nilai pada

indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilkan nilai pada indeks yang dimaksud. Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung.

Page 6: Materi 1

Contoh pengisian langsung saat deklarasi:

#include <stdio.h> void main (){ int billy [] = {16, 2, 77, 40, 12071}; int n, result=0; for ( n=0 ; n<5 ; n++ ) { result += billy[n]; } printf("%d",result);}

Page 7: Materi 1

Contoh pengaksesan dan pengisian langsung ke tiap elemen dari array:

#include <stdio.h>#include <conio.h>void main (){ int A [5]={20,9,1986,200,13},n,edit; clrscr(); printf("Data yang lama\n"); for (n=0;n<5;n++) { printf("%i ",A[n]); } printf("\nData yang baru : \n"); A[0]=4; A[1]=2; A[2]=1; A[3]=3; A[4]=5; for (n=0;n<5;n++) { printf("%i ",A[n]); } }

Page 8: Materi 1

Contoh penghapusan data(elemen) pada array:

#include <stdio.h>#include <conio.h> void main (){ int A [5]={20,9,1986,200,13},n,hapus; clrscr(); printf("Data yang lama\n"); for (n=0;n<5;n++) { printf("%i ",A[n]); } printf("data yang ingin dihapus : "); scanf("%i",&hapus); printf("\nData yang baru : \n"); for (n=hapus-1;n<5-1;n++) { A[n]=A[n+1]; } for (n=0;n<4;n++) { printf("%i ",A[n]); }}

Page 9: Materi 1

Stuct

• Struct adalah tipe data yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain.

• Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri.

• Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.

Page 10: Materi 1

Bentuk Umum

• Bentuk umum:• typedef struct <nama_struct> {• tipe_data <nama_var>;• tipe_data <nama_var>;• ....• }

Page 11: Materi 1

Ada 2 cara pendeklarasian struct, yaitu :

• Deklarasi 1:

• typedef struct Mahasiswa {

• char NIM[8];• char nama[50];• float ipk;• };

• Deklarasi 2 :• Struct• {• char NIM[8];• char nama[50];• float ipk;• } • mhs;

Page 12: Materi 1

Pendeklarasian dan penggunaan Struct (1) (menggunakan typedef)

• typedef struct Mahasiswa {• char NIM[8];• char nama[50];• float ipk;• };• untuk menggunakan struct Mahasiswa

dengan membuat variabel mhs dan mhs2• Mahasiswa mhs,mhs2;• untuk menggunakan struct Mahasiswa

dengan membuat variabel array m;• Mahasiswa m[100];

Page 13: Materi 1

Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan typedef)

• struct {• char NIM[8];• char nama[50];• float ipk;• } mhs;

• Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.

Page 14: Materi 1

Cara penggunaan struct dan pengaksesan elemen-elemennya

• Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut

• Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.)

• Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:

Page 15: Materi 1

Program• Contoh 1

• #include <stdio.h>• #include <conio.h>• //Pendeklarasian tipe data baru struct Mahasiswa• typedef struct Mahasiswa{• char NIM[9];• char nama[30];• float ipk;• };• void main(){• //Buat variabel mhs bertipe data Mahasiswa• Mahasiswa mhs;• clrscr();• printf("NIM = ");scanf("%s",mhs.NIM);• printf("Nama = ");scanf("%s",mhs.nama);• printf("IPK = ");scanf("%f",&mhs.ipk);• • printf("Data Anda : \n");• printf("NIM : %s\n",mhs.NIM); • printf("Nama : %s\n",mhs.nama);• printf("IPK : %f\n",mhs.ipk);• getch();• }

Page 16: Materi 1

Hasil

Page 17: Materi 1

Program• #include <stdio.h>• #include <conio.h>• #define phi 3.14• //langsung dianggap variabel 'lingkaran'• struct {• float jari2;• float keliling;• float luas;• } lingkaran;• //fungsi void untuk menghitung luas ingkaran• void luasLingkaran(){• //langsung menggunakan luas lingkaran asli• lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi;• printf("\nLuas lingkaran = %f",lingkaran.luas);• }• //fungsi yang mengembalikan nilai float untuk menghitung keliling lingkaran• float kelLingkaran(float j){• return 2*phi*lingkaran.jari2;• }• int main(){• clrscr();• printf("Jari-jari = ");scanf("%f",&lingkaran.jari2);• //panggil fungsi luasLingkaran• luasLingkaran();• //panggil fungsi keliling, nilai kembaliannya dikirim ke keliling lingkaran asli• lingkaran.keliling = kelLingkaran(lingkaran.jari2);• //tampilkan keliling lingkaran asli• printf("\nKeliling lingkaran = %f",lingkaran.keliling);• getch(); }

Page 18: Materi 1

Hasil

Page 19: Materi 1

Struct yang berisi struct lain • #include <stdio.h>• #include <conio.h>• typedef struct Date{• int dd;• int mm;• int yyyy;• }; • typedef struct Time{• int h;• int m;• int s;• }; • typedef struct Login{• int ID;• Date tglLogin;• Time waktuLogin;• };• int main(){• Login user1;• • printf("USER 1\n");• printf("ID : ");scanf("%d",&user1.ID);• printf("Tanggal Login\n");• printf("Hari : ");scanf("%d",&user1.tglLogin.dd);• printf("Bulan : ");scanf("%d",&user1.tglLogin.mm);• printf("Tahun : ");scanf("%d",&user1.tglLogin.yyyy); • printf("Waktu Login\n");• printf("Jam : ");scanf("%d",&user1.waktuLogin.h);• printf("Menit : ");scanf("%d",&user1.waktuLogin.m);• printf("Detik : ");scanf("%d",&user1.waktuLogin.s); • printf("Terimakasih\n");• • printf("Data Anda :\n");• printf("ID : %d\n",user1.ID);• printf("Date : %d - %d - %d\n",user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy);• printf("ID : %d:%d:%d\n",user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s);• • getch();• }

Page 20: Materi 1

Hasil

Page 21: Materi 1

LATIHAN• Buatlah program menu yang berisi data-data

KTP penduduk yang disimpan dalam array struct 1 dimensi dan dapat dilakukan penambahan data, pencarian data, penampilan data dan penghapusan data.

• Buatlah struct untuk data lagu yang berisi tentang judul lagu, penyanyi, tahun produksi, nomor track dan kode album. Ketentuan :

• Jumlah data yang diinputkan dinamis (maks. 20 lagu)