Anda di halaman 1dari 34

Algoritma & Pemrograman 2

Variable and Memory


Indah Permatasari, M.Kom.
3rd meeting
Outline
• Implementasi Algoritma
• Variable
• Jenis-jenis variable
• Memori & Penggambaran Memori
• Pointer & Memori
• Human vs Machine Programs
• Assembly vs Machine Language
• Matriks dalam Array Dua Dimensi
• Pengertian Matriks
• Tipe Matriks
• Contoh Penggunaan Matriks

Indah Permatasari, M.Kom. 2


Implementasi Algoritma
Review

Indah Permatasari, M.Kom. 3


Tipe Implementasi Algoritma
• Deskriptif
• Flowchart (Last topic)
• Pseudocode

Indah Permatasari, M.Kom. 4


Tipe Deskriptif Algoritma Luas_Lingkaran
{Menghitung luas lingkaran untuk ukuran
jari-jari tertentu. Algoritma menerima
• Tipe ini disebut juga dengan tipe masukan jari-jari lingkaran, menghitung
data yang bersifat sequential luasnya, lalu mencetak luasnya ke piranti
keluaran}
(terurut), terstruktur, dan jelas.
Deklarasi:
• Disusun untuk menyelesaikan Jari_jari = real {tipe data bilangan
masalah dengan notasi alami. pecahan}
Luas = real {tipe data bilangan pecahan}
• Dijelaskan dalam bentuk uraian PHI = 3.14
kalimat dengan menggunakan
Deskripsi:
Bahasa yang jelas. 1. Baca jari
2. Hitung luas = PHI*jari_jari*jari_jari
3. Tampilkan luas ke layar
4. Selesai

Indah Permatasari, M.Kom. 5


Tipe Flowchart
• Memperlihatkan tahapan dari suatu program
dan hubungan antar proses beserta
pernyataan.
• Disusun untuk menyelesaikan masalah
dengan notasi grafis.
• Dijelaskan dalam ilustrasi symbol-symbol
(dibahas pada topik akhir semester)

Indah Permatasari, M.Kom. 6


Tipe Pseudocode
START
• Menuliskan dengan menggunakan Bahasa
pemrograman tingkat tinggi. READ alas, tinggi

• Hampir menyerupai pemprograman yang Luas = 0,5 * alas * tinggi


akan dibuat namun hanya ditujukan untuk
PRINT Luas
dapat dibaca oleh manusia.
END

Indah Permatasari, M.Kom. 7


Langkah Implementasi Algoritma
• Mendefinisikan masalah

• Merancang Algoritma

Indah Permatasari, M.Kom. 8


Cont.
• Implementasi Solusi (misal dengan Python)
• Algoritma ke logic dan pemrograman • Eksekusi

• Scripting

Indah Permatasari, M.Kom. 9


Variable & Memori

Indah Permatasari, M.Kom. 10


Variable
• Digunakan dalam program untuk menyimpan suatu nilai.
• Nilai yang tersimpan dapat dirubah selama eksekusi program
berlangsung.
• Jika suatu variable diisi dengan nilai di luar jangkauan maka nilai yang
disimpan akan diubah sesuai dengan jangkauannya.
• Contohnya pada speedometer kendaraan. Bila nilai maksimumnya
telah tercapai maka akan dimulai dari nilai rendahnya, yaitu nol.

Indah Permatasari, M.Kom. 11


Variable
• Pendefinisian variable:
• Diletakkan dimana saja, contoh Basic, C++,Dbase, dll
• Sudah didefinisikan, contoh: Pascal, Cobol, dll
• Umumnya dideklarasikan dengan format:
• type var_name
• type menandakan jenis variable

Indah Permatasari, M.Kom. 12


Ciri Variable
• Made up of letters, digits and underscore.
• Must start with a non-digit.
• Case sensitive.

Indah Permatasari, M.Kom. 13


Scope Variable
• Jenis variable berdasarkan kelas penyimpanan:
• Variable Otomatis
• Variable Eksternal
• Variable Statis

Indah Permatasari, M.Kom. 14


Variable Otomatis
• Didefinisikan di dalam suatu fungsi.
• Berlaku sebagai variable lokal bagi fungsi.
• Bersifat:
• Variabel hanya akan diciptakan pada saat fungsi dipanggil.
• Saat fungsi berakhir, variabel otomatis akan hilang.
• Tidak perlu ada inisialisasi pada variabel.
• Hanya dapat diakses dalam fungsi saja.

Indah Permatasari, M.Kom. 15


Variabel Eksternal
• Didefinisikan di luar fungsi manapun.
• Dikenal juga sebagai variable global sebab variable ini dikenal oleh
semua fungsi.
• Bentuknya deklarasi karena tidak ada pengalokasian memori.
• Catatan:
• Usahakan menggunakan seminim mungkin suatu variabel global.
• Variabel ini mudah sekali berubah oleh pernyataan penugasaan yang letaknya
bisa dimana saja. Ini bisa menimbulkan efek samping yang sulit untuk
melacaknya, terutama untuk program yang besar.
• Variabel global mempunyai durasi selama program dieksekusi atau, memori
yg digunakan untuk variabel ini dipertahankan selama program dieksekusi.

Indah Permatasari, M.Kom. 16


Variable statis
• Variabel ini dapat berupa variabel lokal atau global.
• Bersifat:
• Jika berupa variabel lokal maka variabel tetap hanya dapat diakses pada
fungsi yg mendefinisikannya.
• Variabel tidak hilang saat eksekusi berakhir.
• Inisialisasi hanya dilakukan sekali.
• Jika berupa var global dapat diakses dari semua file yg didefinisikan (hati hati
dalam menggunakannya).
• Caranya dengan menambah kata
static type-data var-name

Indah Permatasari, M.Kom. 17


Variable Lokal vs Variable Global
• Variable yang hanya dikenali dan • Variable yang dapat diakses oleh
dipanggil pada wilayah kode semua blok kode program karena
program terntentu dimana variable variable global dibuat di memori
dibuat. mulai dari program dijalankan
void polakotak (int n){ sampai program selesai.
int i, j; #ifndef pola_H
for(i=0;i<n;i++){ #define pola_H
…}
} #include<studio.h>
int a, b;
void polakotak(int);
void polasegitiga(int);
void polajajargenjang(int);
endif

Indah Permatasari, M.Kom. 18


Memori
• Memori dapat menyimpan program dan data.
• Setiap data merupakan kumpulan dari beberapa bit.
• Umumnya memori diatur dalam kumpulan 8 bit.
• Setiap byte memiliki address.

Indah Permatasari, M.Kom. 19


Penggambaran Memori
MEMORY
Address
0
1
2
CPU 3
4
5

81345
81346
81347

Indah Permatasari, M.Kom. 20


Pointer & Alokasi Memori
• Pointer digunakan untuk menyimpan alamat suatu variabel dengan
type data tertentu.
• Operator yang bisa digunakan pada variabel pointer adalah
penjumlahan dan pengurangan.
• Pointer dideklarasikan dengan menambahkan "*" sebelum nama
variabel saat deklarasi variabel.
• Pointer tidak menyimpan nilai variabel tetapi pointer menyimpan
alamat dari variabel.

Indah Permatasari, M.Kom. 21


#include <studio.h>

int main(){
unsigned int angka, *penunjuk;
angka=8;
petunjuk=&angka;
printf("nilai variable angka = %u\n", angka);
printf("nilai variable yang ditunjuk oleh penunjuk = %u\n", *penunjuk);
return 0;
}
/**
* Output:
*
* nilai variable angka = 8
* alamat variable yang ditunjuk oleh penunjuk = 1474529716
*
*/

Indah Permatasari, M.Kom. 22


Alokasi Memori
• Pointer tidak hanya digunakan untuk menunjuk alamat dari suatu
variabel yang sudah dideklarasikan dalam program.
• Pointer juga bisa digunakan untuk menunjuk alamat tertentu di dalam
memori yang belum digunakan oleh variabel ataupun program lain.
• Untuk menggunakan memori tertentu di komputer, kita akan
membutuhkan malloc.
• Function malloc akan membantu kita untuk meminta komputer
mengalokasikan memori yang dibutuhkan program dengan ukuran
tertentu.

Indah Permatasari, M.Kom. 23


#include <stdio.h>
#include <stdlib.h>

int main(){
int jumlah_bilangan;
int *data_bilangan;
printf("Masukkan Jumlah data : ");
scanf("%d", &jumlah_bilangan);
data_bilangan=(int*)malloc(sizeof(int)*jumlah_bilangan);

*data_bilangan=jumlah_bilangan;

jumlah_bilangan=10;

printf("Jumlah data : %d", *data_bilangan);


free(data_bilangan);
return 0;
}

Indah Permatasari, M.Kom. 24


Kondisi Malloc
• Malloc dibutuhkan jika pointer akan digunakan untuk menunjuk
alamat tertentu yang ada di dalam memori komputer.
• Malloc bisa meminta alamat sebagai "titik awal" dari array berukuran
tertentu (dalam memori komputer) sesuai keinginan.

Indah Permatasari, M.Kom. 25


Human vs Machine Programs
• The computer can only understand the bits (the encoded program)
• Machine Language
• Humans don't like to deal with bits, so they developed English-like
abbreviations for programs.
• Assembly Language

Indah Permatasari, M.Kom. 26


Assembly vs Machine Language

ST 1,[801] 00100101 11010011


ST 0,[802] 00100100 11010100
10001010 01001001 11110000
TOP: BEQ [802],10,BOT
01000100 01010100
INCR [802]
01001000 10100111 10100011
MUL [801],2,[803] 11100101 10101011 00000010
ST [803],[801] 00101001
JMP TOP 11010101
BOT: LD A,[801] 11010100 10101000
CALL PRINT 10010001 01000100

Indah Permatasari, M.Kom. 27


Matriks dalam Array Dua Dimensi

Indah Permatasari, M.Kom. 28


Pengertian Matriks
• (Matematika) sebagai sekumpulan bilangan yang disusun dalam baris
dan kolom
• (Pemrograman) direpresentasikan ke dalam array dua dimensi.
• Array dua dimensi adalah array yang memiliki dua atau lebih kolom
dengan banyak baris, atau dua atau lebbih baris dengan banyak
kolom, tergantung pada bagaimana mengilustrasikan.
• A[3][4];
• A[3][4]={{3,4,8,0},{3,9,2,1},{6,3,0,2}};

Indah Permatasari, M.Kom. 29


Indah Permatasari, M.Kom. 30
Tipe Matriks
• Matriks dideklarasikan akan berisi data seperti apa.
• Bentuk dekralasi tipe:
• tipe_data nama_array[jumlah elemen baris][jumlah elemen
kolom];
• int A[3][4];
• int A[3][4]={{3,4,8,0},{3,9,2,1},{6,3,0,2}};
• Cara akses matriks:
• nama_array[baris][kolom] = nilai;
• A[0][0] = 3

Indah Permatasari, M.Kom. 31


Contoh Penggunaan
#include <stdio.h>
int main(void)
{
int a[2][2];
a[0][0] = 3;
a[0][1] = 4;
a[1][0] = 5;
a[1][1] = 6;
printf("Isi array a: \n"); //Isis array a:
printf("%d, %d \n",a[0][0],a[0][1]); //3,4
printf("%d, %d \n",a[1][0],a[1][1]); //5,6
return 0;
}

Indah Permatasari, M.Kom. 32


output?
#include <stdio.h>

int main(void)
{
int matrix[2][3] = {{1,2,3},{7,8,9}};

printf("Isi array matrix: \n");


printf("%d %d %d \n", matrix[0][0], matrix[0][1], matrix[0][2]);
printf("%d %d %d \n", matrix[1][0], matrix[1][1], matrix[1][2]);

return 0;
}

Indah Permatasari, M.Kom. 33


Terima kasih.

Indah Permatasari, M.Kom. 34

Anda mungkin juga menyukai