Bahasa pemrograman d3

Preview:

DESCRIPTION

 

Citation preview

Bahasa Pemrograman

C/C++

Bangun Wijayanto, ST.

Perkembangan Bahasa

Sebelum melangkah lebih jauh ada baiknya kita review perkembangan bahasa pemrograman

1. Bahasa Mesin (Mnemonic Code)

Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh mesin komputer. Bahasa ini merupakan bahasa level terendah dan berupa kode numerik 0 dan 1. Sekumpulan instruksi dalam bahasa

Keuntungan: Eksekusi cepat Kerugian: Sangant sulit dipelajari manusia

2. Bahasa Assembly

Bahasa assembly adalah bahasa simbol dari bahasa mesin. Setiap kode bahasa mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya ADD untuk penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain.

Kelebihan: Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file kecil

Kekurangan: Tetap sulit dipelajari, program sangat panjang.

3. Bahasa Tingkat Tinggi (High Level Language)

Bahasa tingkat tinggi adalah bahasa pemrograman yang lebih tinggi daripada bahasa assembly. Bahasa ini lebih dekat dengan bahasa manusia. Bahasa inilah yang akan dibahas pada matakuliah ini. Bahasa ini juga memberikan banyak sekali fasilitas kemudahan pembuatan program, misalnya: variabel, tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur dan lain-lain. Contoh: Pascal, Basic, C++, dan Java.

Keuntungan: Mudah dipelajari Mendekati permasalahan yang akan dipecahkan Kode program pendek

Kerugian: Eksekusi lambat Bahasa generasi ini disebut juga bahasa generasi ke-3 (3rd

Generation Programming Language). Bahasa inilah yang akan kita pelajari dalam Dasar Pemrograman

4. Bahasa yang berorientasi pada masalah spesifik (specific problem oriented).

Bahasa ini adalah bahasa yang digunakan langsung untuk memecahkan suatu

masalah tertentu. Misalnya SQL untuk database, Regex untuk mencocokkan pola

string tertentu. Bahasa ini juga masuk ke bahasa tingkat tinggi.

Bahasa ini disebut juga bahasa generasi ke-4 (4th Generation Programmming Language).

Mengenal C/C++

C/C++ adalah bahasa pemrograman tingkat menengah yang dirancang oleh Dennis M Ritchie di Bell Laboratories pada tahun 1972. Pada tahun 1978 Dennis dan Brian W. Kernighan mempublikasikan bahasa C melalui The C Programming Language.

Kemudian C distandarisasi ANSI tahun 1989. Bahasa C adalah bahasa yang general, tidak

dikhususkan untuk suatu bidang/aplikasi tertentu.

Contoh Program dalam C#include <stdio.h>#include <conio.h>void main(){clrscr();char nama[20];int umur;printf(“Hallo Selamat Belajar C”);printf(“Masukkan nama : “); scanf(“%s”,nama);printf(“Masukkan umur: “); scanf(“%d”,&umur);printf(“Anda bernama : %s dan berumur %d”,nama,umur);Preparation (Pemberian nilaiawal suatu variabel)Call (Memanggil suatuprosedur / fungsi)Titik connector yang beradadi halaman yang samaTitik konektor yang beradadi halaman lainif(umur < 20){for(int i=0;i<umur;i++) printf(“%d\n”,i);printf(“Anda masih muda\n”);} elseif(umur > 50){printf(“Anda sudah berumur!\n”);} else printf(“Lainnya\n”);getch();}

Tipe data yang didukung oleh C

Type Length Range unsigned char 8 bits 0 to 255 char 8 bits -128 to 127 short int 16 bits -32,768 to 32,767 unsigned int 32 bits 0 to 4,294,967,295 int 32 bits -2,147,483,648 to

2,147,483,647 unsigned long 32 bits 0 to 4,294,967,295 enum 16 bits -2,147,483,648 to 2,147,483,647 long 32 bits -2,147,483,648 to

2,147,483,647 float 32 bits 3.4 x 10-38 to 3.4 x 10+38 double 64 bits 1.7 x 10-308 to 1.7 x 10+308 long double 80 bits 3.4 x 10-4932 to 1.1 x 10+4932 near (pointer) 32 bits not applicable far (pointer) 32 bits not applicable

Deklarasi Tipe Data Variabel

Deklarasi tipe data variabel di C dan C# dalam bentuk umum:

<tipe data> <nama_variabel>;

Deklarasi Tipe Data Konstanta

Deklarasi konstanta di C:

#define <nama_konstanta> <nilai> Contoh : #define pi 3.14; #define nama “Anton”; Tanda # disebut sebagai Prepocessor

Directive, yaitu instruksi yang dilakukan sebelum eksekusi program utama dilakukan.

Sifat Data Karakter di C:

Karakter disimpan dalam memori berupa kode ASCII. ASCII berdasarkan English Alphabet. Dipublikasikan pada tahun 1967 dan diupdate tahun 1986. Terdiri dari 95 (32-space, 33-126) karakter yang printable dan 32 (0-31) karakter nonprintable/ control character. Contoh segment program C berikut:

char hrf;hrf = ‘A’;printf(“nilai desimal karakter %c adalah %d”,hrf,hrf);

Pada tipe data karakter dapat dilakukan operasi matematika.

Contoh

for(char hrf=’A’; hrf<’Z’;hrf++){

printf(“%c”,hrf);

}

Sifat Data String

C tidak memiliki tipe data String. Di dalam C string diperlakukan sebagai array of character (kumpulan karakter). Deklarasi string di C:char nama[20] = “anton”;

printf(“%s”,nama);

ATURAN PENULISAN IDENTIFIER 1. Tidak boleh sama dengan nama keyword

reserved, function, dan harus unik. 2. Maksimum 32 karakter. Bila lebih, maka karakter

selebihnya tidak akan diperhatikan oleh komputer. 3. Case sensitive : membedakan huruf besar dan

kecil 4. Karakter pertama harus huruf atau underscore

(_), selebihnya boleh angka. 5. Tidak boleh mengandung spasi / blank

OPERATOR ARITMATIKA

Contoh Increment

Operator Relasional

Operator Kondisional

STRUKTUR PROGRAM C

Struktur C ditulis dalam sub-sub atau blok yang digunakan untuk mengerjakan suatu instruksi tertentu. Blok tersebut disebut function.

Suatu program C minimal harus memiliki function main(), tanpa function itu maka program C tidak dapat dieksekusi

Gambaran umum program C

Contoh Program C

#include <stdio.h>//Kamusint jumlah;//algoritmavoid main(){

jumlah=5+2; printf(“Hasil jumlah adalah

%d”,jumlah);}

PERCABANGAN DENGAN IF

Percabangan di dalam pemrograman digunakan oleh komputer untuk menentukan langkah kerja instruksi. Percabangan menggunakan operator kondisional yang akan menghasilkan nilai boolean (benar atau salah).

Sintaks umum IF sederhana:

if (<kondisi>) <statement_jika_benar>;

Contoh

x = 100;Y = 10000;if (X > Y){

printf("X lebih besar dari Y");} else{ printf(“Y lebih besar dari X");

printf(“Y lebih besar dari X");y=x+1;

}

Sintaks umum IF dengan ELSE

if (<kondisi>) <statement_jika_benar>;

else <statement_jika_salah>;

Contoh:

x = 100;y = 10;if (x > y)

{printf (“%d lebih besar dari %d”,x,y);

}else

{printf (“%d tidak lebih besar dari %d,x,y);

}

Sintaks umum IF ELSE bertingkat

if (<kondisi>) {<blok statement if 1>

} else if (<kondisi2>) {<blok statement if 2>

} else if (<kondisi3>){<blok statement if 3>

} else{

<blok statement else>}

PERCABANGAN DENGAN SWITCH

Perintah ini digunakan sebagai alternatif pengganti dari sintaks if … else dengan else lebih dari satu.

Dengan perintah ini program percabangan akan semakin mudah dibuat dan dipelajari.

switch (<variabel>){

case <konstanta_1>:<pernyataan_1>;

break;case <konstanta_2>:

<pernyataan_2>;break;

case <konstanta_n>:<pernyataan_n>;

break;default :

<pernyataan_default>;}

void main(){ int hari = 3;

printf("Hari ini adalah hari ");switch(hari){

case 1:printf("Minggu");

break;case 2:

printf("Senin");break;

case 3:printf("Selasa");

break;case 4:

printf("Rabu");break;

default:printf("Tidak ada hari lebih dari 7");

}}

LOOPING (PERULANGAN)

Perulangan digunakan untuk mengerjakan suatu perintah secara berulang-ulang sesuai dengan yang diinginkan.

Perulangan dalam C terdiri dari 3 buah: 1. while() { .... } 2. do { .... } while() 3. for()

Struktur While()

Karakteristik while() adalah: Dilakukan pengecekan kondisi terlebih

dahulu sebelum dilakukan perulangan. Jika kondisi yang dicek bernilai benar (true)

maka perulangan akan dilakukan.

Bentuk Umum

Contoh

int i;i=1;while (i <= 5){

i++;}

Flow Chart

Struktur do ... while()

Karakteristik do ... while() adalah: 1. Perulangan akan dilakukan minimal 1x

terlebih dahulu, kemudian baru dilakukan pengecekan terhadap kondisi, jika kondisi benar maka perulangan masih akan tetap dilakukan.

2. Perulangan dengan do...while() akan dilakukan sampai kondisi false.

Bentuk umum:

do{

pernyataan yang akan dijalankan

}

while (kondisi)

Contoh

i = 1;

do

{

i++;

}while(i <= 5);

FLOW CHART

Struktur For()

Karakteristik: Digunakan untuk perulangan yang batasnya

sudah diketahui dengan jelas, misalnya dari 1 sampai 10.

Memerlukan 2 buah variabel awal dan akhir perulangan.

Nilai variabel penghitung akan secara otomatis bertambah atau berkurang tiap kali sebuah pengulangan dilaksanakan

Bentuk Umum

for (<nilai_awal>; <kondisi>; <penambahan/penurunan>)

{

<pernyataan yang akan dijalankan>

}

Contoh

for(i = 3; i <= 7; i++)

{

printf ( "Indonesia Tanah Airku" );

}

Array

Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan tipe data tertentu.

Misalnya :int a1, a2, a3, a4, a5;

Deklarasi variabel diatas digunakan untuk menyimpan 5 data integer dimana masingmasing variabel diberi nama a1, a2, a3, a4, dan a5.

Jika kita memiliki 10 data, 100 data integer bahkan mungkin data yang ingin kita proses tidak kita ketahui atau bersifat dinamis? Kita tidak mungkin menggunakan variabel seperti diatas.

Solusi C

Di dalam C dan pemrograman yang lain, terdapat suatu fasilitas untuk menyimpan data-data yang bertipe data sama dengan suatu nama tertentu.

Apakah itu? Itulah Array

Definisi Array

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

Elemen-elemen array tersusun secara sekuensial di dalam memori sehingga memiliki alamat yang berdekatan.

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

Elemen-elemen array bertipe data sama tapi bisa bernilai sama atau berbeda-beda.

Gambaran umum sebuah Array

Mengakses Array

Elemen-elemen array dapat diakses oleh program menggunakan suatu indeks tertentu

Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung.

Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilkan nilai pada indeks yang dimaksud.

DEKLARASI ARRAY 1 DIMENSI

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

PENJELASAN ARRAY 1 DIMENSI

Tanda [] disebut juga “elemen yang ke- „. Misalnya kondisi[0] berarti elemen yang ke nol.

Array yang sudah dipesan, misalnya 10 tempat tidak harus diisi semuanya, bisa saja hanya diisi 5 elemen saja, baik secara berurutan maupun tidak. Namun pada kondisi yang tidak sepenuhnya terisi tersebut, tempat pemesanan di memori tetap sebanyak 10 tempat, jadi tempat yang tidak terisi tetap akan terpesan dan dibiarkan kosong.

Contoh

//Dengan variabel biasa:

int x1=3,x2=5,x3=2,x4=7,x5=9;

//Dengan larik:

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

Contoh lengkap#include <stdio.h>#include <conio.h>void main(){ int nilai[5], x;clrscr();printf(“Memasukkan nilai :\n”);for(x=0;x<5;x++){printf(“Nilai Angka : “); scanf(“%d”,&nilai[x]);}printf(“\n”);printf(“Membaca nilai :\n”);for(x=0;x<5;x++){printf(“Nilai Angka : %d“,nilai[x]);}}

ADT

Bahasa C memiliki tipe data numerik dan karakter (seperti integer, float, char dan lainlain). Bagaimana jika kita ingin membuat tipe data baru?

ADT adalah tipe data yang dibuat oleh programmer sendiri yang memiliki suatu nama tertentu.

ADT dapat berupa tipe data dasar namun diberi nama baru atau berupa kumpulan tipe data berbeda yang diberi nama baru.

Untuk pembuatan ADT digunakan keyword typedef

Contoh#include <stdio.h>#include <conio.h>typedef int angka;typedef float pecahan;typedef char huruf;void main(){clrscr();angka umur;pecahan pecah;huruf h;huruf nama[10];printf("masukkan umur anda : ");scanf("%d",&umur);printf("Umur anda adalah %d",umur);printf("\nmasukkan bilangan pecahan : ");scanf("%f",&pecah);printf("Bilangan pecahan %f",pecah);printf("\nmasukkan huruf : ");h=getche();printf("\nHuruf anda %c",h);printf("\nmasukkan nama : ");scanf("%s",nama);printf("Nama anda %s",nama);getch();}

Struct

Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama.

Berbeda dengan array yang berisi kumpulan variabel yang bertipe data sama, struct dapat memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct

Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct

Ilustrasi

Struct bisa diumpamakan sebagai sebuahclass, misalnya: MahasiswaStruct Mahasiswa memiliki property atauatribut atau variabel yang melekatpadanya: - NIM yaitu karakter sejumlah 8 - Nama yaitu karakter - IPK yaitu bilangan pecahanStruct hampir mirip dengan class pada Java, namun

struct tidak memiliki method atau function.

Deklarasi Struct

typedef struct Mahasiswa {

char NIM[8];

char nama[50];

float ipk;

};//cara menggunakannya

Mahasiswa mhs,mhs2;

Cara penggunaan struct dan pengaksesan elemen-elemennya

- Penggunaan struct dilakukan dengan membuat suatu variabel yang bertipe 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 elemenelemennya seperti contoh berikut:

#include <stdio.h>#include <conio.h>//Pendeklarasian tipe data baru struct Mahasiswatypedef struct Mahasiswa{

char NIM[9];char nama[30];Float ipk;

};void main(){

//Buat variabel mhs bertipe data MahasiswaMahasiswa 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);

}

Recommended