• Tidak ada hasil yang ditemukan

MATERI UAS PEMROG ALGORITMA DAN STRUKTUR

N/A
N/A
Protected

Academic year: 2017

Membagikan "MATERI UAS PEMROG ALGORITMA DAN STRUKTUR"

Copied!
53
0
0

Teks penuh

(1)

MATERI UAS

ALGORITMA & STRUKTUR

DATA

(2)

ARRAY/LARIK

Array adalah kumpulan dari nilai-nilai data

yang bertipe sama dalam urutan tertentu

yang menggunakan nama yang sama.

Nilai-nilai data itu disebut dengan elemen.

Letak atau urutan dari suatu elemen array

ditunjukkan oleh suatu index/

subscript.

Untuk bahasa C, elemen pertama dari suatu array

dimulai dari indeks nol.

(3)

ARRAY 1 DIMENSI

Bentuk umum deklarasi array 1 dimensi:

tipe_data nama_variabel[n];

Dimana n adalah jumlah elemen atau ukuran

array

Contoh:

int x[3]={5,3,7};

Artinya

Array x bertipe integer, mempunyai 3 elemen yaitu

x[0], x[1] dan x[2]

(4)

Beda array dengan varibel biasa:

Sebuah larik/array dapat mempunyai sejumlah nilai,

sedang sebuah varibel biasa hanya dihubungkan dengan sebuah nilai saja

(5)

ARRAY 2 DIMENSI

Mempunyai elemen

BARIS & KOLOM

Dapat dipakai untuk representasi

sebuah

MATRIK

Struktur data untuk rekapitulasi

[image:5.720.40.679.134.461.2]

informasi berdasar baris dan kolom 

TABEL, misal: penjualan barang

Memakai

NESTED LOOPING

dalam

(6)

ARRAY 2 DIMENSI

Bentuk umum penulisan

tipe_data variabel[i] [j];

Dimana i dan j adalah ukuran dari array.

i menunjukkan jml baris, j menunjukkan jml kolom

Jumlah data yang bisa disimpan oleh array 2

dimensi adalah

i x j

.

Contoh:

int x[2][4]={8,5,9,8,8,2,1,0};

merepresentsikan matriks dengan 2 baris dan 4 kolom

(7)

Array Berdimensi Banyak

Bentuk umum deklarasi array

dimensi satu:

tipe_data nama_var[i][j]..[n];

dimana

i, j, n

adalah ukuran dari

array.

Contoh deklarasi:

(8)

Array Tak Berukuran

Array dapat dideklarasikan tanpa memberi

ukuran (jumlah data dalam array). Dengan

syarat:

Harus langsung diinisialisasi.

Hanya elemen pertama yang boleh tidak

berukuran.

Contoh:

int x[] = {32, 45, 67,21};

(9)
(10)

STRING

String merupakan bentuk data yang

digunakan untuk menampung dan

memanipulasi data teks.

Pada C, string bukan merupakan satu

tipe data tersendiri, melainkan

merupakan array dari karakter.

Contoh:

char mystring[35];

(11)

Konstanta String

Konstanta string ditulis dengan diawali dan

diakhiri tanda petik ganda.

Contoh:

#define abjad “ABeCe”

(12)

Penggunaan Memory

Komposisi penyimpanan string dalam

memori:

Setiap karakter akan menempati memori

sebesar 1 byte

(13)

Variable String

Variabel string adalah variabel yang dipakai

utuk menyimpan nilai string.

Variabel string sebenarnya merupakan

variabel array bertipe data

char.

string = array of char

Contoh:

(14)

Inisialisasi Variabel String

Seperti halnya variabel tipe lain, suatu

variabel string dapat diinisialisasi

dengan elemen terakhirnya berupa

karakter NULL.

Contoh:

char name[]={‘J',’o',‘y',’\0’};

char name[]= “Joy”;

Penugasan atau pemberian nilai ke

variabel string seperti dibawah ini tidak

diperkenankan

(15)

Array String

suatu string dapat dibentuk dari

array karakter berdimensi satu

Dengan cara yang sama, berarti

array string dimensi satu dapat

(16)

Array String

• Contoh berikut menunjukkan deklarasi suatu Array string dimensi satu yang dibentuk dari array karakter dimensi dua.

(17)

Output String

Untuk menampilkan isi variabel string ke layar monitor

bisa menggunakan perintah puts() atau printf().

Fungsi puts() akan menampilkan isi dari var_string

dan secara otomatis menambahkan karakter '\n' di

akhir string

Sedangkan fungsi printf() akan menampilkan isi

variabel string tanpa memberikan tambahan '\n‘.

Contoh:

puts(nama);

(18)

Input String

Untuk memberikan nilai string dari

keyboard dapat menggunakan

perintah

gets()

atau

scanf()

.

Contoh:

gets(nama);

scanf(“%s”, nama);

Keterangan:

nama

adalah variabel bertipe

array of char.

Didepan

nama

tidak perlu ada tanda

&

(operator alamat).

Kalau memakai

scanf()

, data string

(19)

Contoh #1

#include <stdio.h> main()

{

char nama[35], kota[15];

printf("Masukkan nama Anda : "); gets(nama);

printf("Masukkan kota Anda: "); scanf("%s", kota);

printf("\nHallo "); puts(nama);

printf("Rumahmu %s ya...\n“,kota); printf("Bye.. Bye..\n");

(20)

Mengakses String

Variabel string merupakan bentuk

khusus dari

array

bertipe

char

Elemen dari variabel string dapat

diakses seperti halnya pengaksesan

elemen pada array.

Contoh:

(21)

Fungsi-Fungsi Pada String

strcpy():

untuk menyalin nilai string.

strlen():

untuk mengetahui panjang

nilai string.

strcmp():

untuk membandingkan dua

nilai string.

strcat():

untuk menggabung nilai

string.

(22)

Contoh #2

#include <stdio.h>

main() {

char str01[] = "Piala"; char str02[] = "Pialang"; char str03[20];

printf("Panjang str01 = %d karakter.\n", strlen(str01));

strcpy(str03, "Ini string ke 3");

printf("Isi dari str03 = %s.\n", str03);

printf("str01 VS str02 = %d\n", strcmp(str01, str02));

strcat(str01, str02);

(23)

POINTER

Pointer (variabel penunjuk) adalah suatu

variabel yang berisi alamat me mo ri dari suatu

variabel lain.

Alamat ini merupakan lokasi dari obyek lain

(bia sanya variabel lain) di dalam memori.

(24)

Deklarasi Variabel dan Pointer

deklarasi variabel dalam bahasa C /

C++ adalah sebagai berikut:

tipe_data nama_variabel

Bentuk umum deklarasi pointer

adalah :

(25)

Dengan pointer kita dapat mengetahui nomor –

nomor memory dan sekaligus memanipulasi isi

dari variabel yang “ditunjuk” oleh pointer.

Agar suatu variabel pointer dapat menunjuk ke

variabel lain, variabel pointer ini harus diisi

dengan alamat dari variabel yang hendak

ditunjuk.

Sintaksis proses penunjukan pointer ke variabel

lain adalah:

tipe_data1 nama_variabel_biasa; tipe_data2 *nama_variabel_pointer;

(26)

Mengakses Variabel Dengan Pointer

Dalam bahasa C / C++ kita bisa mengakses variabel dengan dua cara yaitu :

Secara langsung

Syntax yang digunakan adalah :

tipe_data nama_variabel;

tipe_data nama_variabel = nilai variabel;

Secara tidak langsung dengan menggunakan pointer

Karena pointer adalah variabel yang menunjuk variabel lain, maka kita dapat

mengakses variabel lain dengan memanipulasi nilai yang ruangan memory-nya

ditunjuk oleh pointer tersebut. Dalam bahasan pointer ada dua operator yang

(27)

Operator &

Operator & merupakan operator alamat.

Pada saat pendeklarasian variabel, user tidak diharuskan

menentukan lokasi sesungguhnya pada memory,

hal ini akan dilakukan secara otomatis oleh kompiler dan

operating sysem pada saat run-time.

Jika ingin mengetahui dimana suatu variable akan

disimpan, dapat dilakukan dengan memberikan tanda

(28)

Operator *

Operator * merupakan operator reference.

Dengan menggunakan pointer, kita dapat

mengakses nilai yang tersimpan secara

langsung

dengan memberikan awalan operator

asterisk

(29)

Dalam teknis penggunaan pointer,

pengaksesan

variabel dilakukan dengan cara menggunakan

kedua operator tersebut.

Jika kita ingin melihat alamat dari variabel yang

ditunjuk kita gunakan operator &.

Sedangkan untuk mengetahui nilai variabel

yang

(30)

Contoh Program

(31)
(32)

LINKED LIST

Linked list (one way list) adalah suatu kumpulan elemen

data (yang disebut sebagai node) dimana urutannya

ditentukan oleh suatu pointer.

Setiap elemen (node) dari suatu linked list terdiri atas dua

bagian, yaitu :

-

INFO, berisi informasi tentang elemen data yang

bersangkutan.

-

NEXT (link field/next pointer field), berisi alamat dari

(33)

Berikut ini sebuah contoh linked list

yang terdiri

atas 4 node :

 

info next info next info next info next

start

(34)

Pada node ke-4 field NEXT-nya berisi NULL,

artinya node ke-4 tsb. adalah node

terakhir.

[image:34.720.49.654.30.503.2]

Node-node dalam linked list tidak harus

selalu digambarkan paralel seperti pada

gambar diatas.

Linked list pada contoh diatas dapat pula

digambarkan seperti berikut ini :

(35)

OPERASI DASAR PADA LINKED

LIST.

Ada beberapa aturan yang didefinisikan

pada operasi didalam linked list, yaitu :

- Jika P adalah suatu variabel pointer,

maka nilainya adalah alamat atau lokasi

dari variabel lain yang dituju.

- Operasi yang didefinisikan pada suatu

variabel pointer adalah :

1. Test apakah sama dengan NULL.

2. Test untuk kesamaan dengan variabel

pointer lain.

(36)

Notasi yang didefinisikan sehubungan

dengan operasi diatas adalah :

1. NODE(P), artinya node yang ditunjuk

oleh pointer P.

2. INFO(P), artinya nilai INFO dari node

yang ditunjuk pointer P.

(37)

Sebagai contoh, perhatikan linked list dibawah ini :

NODE(P) = node yang ditunjuk oleh P yaitu node pertama. INFO(P) = A

NEXT(P) = node ke-dua INFO(NEXT(NEXT(P))) = C

(38)

Linier Linked List

Setiap node yang mempunyai pointer dimana menunjuk ke simpul berikutnya sehingga membentuk suatu rantaian /

untaian, dengan demikian hanya diperlukan sebuah variable pointer.

Pembuatan single linked list dapat menggunakan 2 metode yaitu:

1. LIFO (LAST IN FIRST OUT)

(39)

Contoh Program

(40)
(41)
(42)
(43)

Penggalan program diatas merupakan

salah satu contoh penggunaan fungsi

linked list.

Program diatas merupakan program

(44)

2. #include <stdio.h>

#include <stdlib.h>

struct DATA {

int number;

struct DATA *next;

};

int cari(struct DATA *pList, int num);

void simpan(struct DATA *pList, int num);

void tampil(struct DATA *pList);

(45)

int main(void) {

int num = 0;

int i = 1;

int r = 0;

struct DATA *pList;

pList = (struct DATA *)malloc(sizeof(struct DATA));

pList->number = 0;

pList->next = NULL;

while(i != 0) {

(46)

printf("1 > Simpan\n");

printf("2 > Hapus\n");

printf("3 > Cari\n");

printf("4 > Tampil\n");

printf("0 > Exit\n");

printf("\nPilih menu ? ");

scanf("%d", &i);

switch(i) {

case 0:

default:

printf("Terima Kasih..\n");

i = 0;

(47)

case 1:

printf("== Simpan == \n"); printf("Masukan NIM : "); scanf("%d", &num);

simpan(pList, num); break;

case 2:

printf("== Hapus ==\n");

printf("NIM yang di hapus: "); scanf("%d", &num);

hapus(pList, num); break;

case 3:

printf("== Cari ==\n");

(48)

if((r = cari(pList, num)) == -1)

printf("NIM `%d' tidak ditemukan\n", num); else

printf("NIM `%d' barapa di posisi `%d'\n", num, r); break;

case 4:

(49)

void tampil(struct DATA *pList) { while(pList->next != NULL) { printf("%d \n", pList->number); pList = pList->next;

}

printf("%d \n", pList->number); }

void simpan(struct DATA *pList, int num) { while(pList->next != NULL)

pList = pList->next;

pList->next = (struct DATA *)malloc(sizeof(struct DATA)); pList->next->number = num;

(50)

void hapus(struct DATA *pList, int num) { struct DATA *temp;

temp = (struct DATA *)malloc(sizeof(struct DATA)); if(pList->number == num) {

temp = pList->next; free(pList);

pList = temp; } else {

while(pList->next->number != num) pList = pList->next;

temp = pList->next->next; free(pList->next);

pList->next = temp; }

(51)

int cari(struct DATA *pList, int num) { int r = -1;

int i = 1;

while(pList->next != NULL) {

if(pList->next->number == num) return i;

else i++;

pList = pList->next; }

(52)
(53)

Gambar

TABEL, misal: penjualan barang
gambar diatas.

Referensi

Dokumen terkait

Mengetahui hubungan antara kebiasaan berada di luar rumah pada malam hari dengan kejadian malaria diwilayah kerja Puskesmas Tarusan tahun 2011.. Mengetahui hubungan

Maka dari itu, penulis hendak melakukan penelitian yang berjudul “Pemodelan Arus Arcing Tegangan Rendah pada Kabel Fleksibel (Serabut) menggunakan Elman Neural

Halaman 6 LAMPIRAN II PENJABARAN PERTANGGUNGJAWABAN - PENJABARAN LAPORAN REALISASI ANGGARAN PENDAPATAN DAN

 Secara Nasional produksi padi Provinsi Sulawesi Tengah tahun 2015 mempunyai kontribusi sebesar 1,35 persen dari total produksi padi nasional sebesar 75,36 juta ton

Penentuan varians bersyarat dari sebuah peubah acak diberikan peubah acak lainnya, baik diskrit maupun kontinu dijelaskan dalam Definisi 7.12... 2 FUNGSI PEMBANGKIT

Pada Tabel 3 dapat dilihat buah yang berukuran besar dimana panjang buah dan diameter buahnya nilainya lebih tinggi dan daging buah tebal dan juga menghasilkan bobot per

Kelemahan dari Organisasi Pangan dan Pertanian yaitu FAO terlalu desentralisasi, dengan proporsi staf yang bertugas di pusat yang banyak, yang jauh dari pengamatan

Puji syukur saya ucapkan pada Allah SWT yang telah memberikan rahmat dan ridho-Nya hingga akhirnya penulis dapat menyelesaikan penelitian yang berjudul “Perbedaan Adversity