Nyoba PR Pertemuan 4 Coba PR-nya di Console Application MonoDevelopnya dulu. Kalau sukses tampil hasilnya, baru coba di Unity Script-nya. Di unity script.

Slides:



Advertisements
Presentasi serupa
Pemrograman Berorientasi Objek (Project)
Advertisements

Pemrogramman Terstruktur
Pemrograman Berorientasi Objek (2)
Membuat class sendiri.
Fungsi Friend Dalam bahasa C++ kita dapat membuat suatu fungsi yang berada di luar kelas (class) dan dapat meng-ak-ses bagian private suatu kelas. Fungsi.
Dasar-Dasar Pemrograman
INSTRUKSI MASUKAN DAN KELUARAN
Fungsi Lecture 7. Motivation Complexity of programming problem  more difficult to consider the solution as a whole  clue: dividing the problem into.
Mendapatkan input dari keyboard
Elemen Dasar Program C++
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
Pengembangan Web Java Script Ramos Somya.
Class.
Operasi String.
STRUKTUR DATA (5) Pointer dan Function
Bekerja dengan Java class library
FUNGSI Teknik Informatika Universitas Muhammadiyah Malang 2011 Pemrogramman Terstruktur.
STRUKTUR DATA Pointer dan Function
Pertemuan 1 Dasar Pemrograman Triana Elizabeth S. Kom Dibuat o/ : Renni Angreni, S.Kom.
Algoritma & Pemrograman 1
Fungsi Fungsi.
Class and Object Introduction Specifying a Class Defining Member Function A C++ Program with Class Nesting of Member Functions Private Member Functions.
Structure Data - Array Pertemuan 7 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Fungsi, Array dan String
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
Pertemuan 10 Constructor dan Destructor
Mengaktifkan Microsoft Visual C++ : Klik Start Klik All Program, Microsoft Visual Studio 2008 Klik File, New, Project Klik Visual C++, Win32 Console Application.
VARIABEL DAN JENISNYA A. Ridwan Siregar.
Elemen Dasar C++ Norma Amalia, ST.,M.Eng.
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
Komentar, identifier Dan Tipe Data
Prosedur dalam C++.
Algoritma dan Struktur Data 1 pertemuan 4
Dasar pemrograman java
Algoritma & pemrograman 1B
Method & Constructor METHOD.
Pertemuan 5 Tipe Data, Operator, Tata Bahasa
Pengenalan dan Struktur Java (Statement Output)
TYPE DATA ,VARIABEL &KONSTANTA Dalam C++
Dasar Pemrograman Renni Angreni, S.Kom.
FUNGSI (Method) Bag.1 Pertemuan 18 Dasar Pemrograman
Constructor dan Destructor Pertemuan 17
Struktur.
STRUKTUR DASAR PROGRAM
Class dan Objek Lanjutan Pertemuan 18
C++ static.
Tipe Data, Variabel, dan Operator
Pemrograman Berorientsi Objek Pertemuan 15
ARRAY Oleh : sgo.
Tipe Data Dasar Variabel dan Konstanta
As’ad Djamalilleil Array (Larik) As’ad Djamalilleil
Minggu 5 Imam Fahrur Rozi
As’ad Djamalilleil Akses File As’ad Djamalilleil
Tipe Data, Variabel, dan Operator
(Struktur Dasar, Variabel, Tipe Data, Input, Output, Komentar)
Class.
Pertemuan 7 pow, sqrt, break, continue
PERBEDAAN C DAN C++ Meriska Defriani, S
PEMROGRAMAN BERORIENTASI OBYEK PENDAHULUAN
Pertemuan 10 Logical operators && dan ||, string
Generic Data Type Pertemuan 25
PEMROGRAMAN JAVA.
Algoritma Struktur Data
Algoritma dan Struktur Data
Dasar-Dasar Pemrograman
C++ Polymorphism.
Pertemuan 3 (Struktur Bahasa C) .:: Erna Sri Hartatik ::.
Tipe Data, Variabel, dan Operator
PERTEMUAN V F U N G S I Tujuan membuat suatu fungsi
Transcript presentasi:

Nyoba PR Pertemuan 4 Coba PR-nya di Console Application MonoDevelopnya dulu. Kalau sukses tampil hasilnya, baru coba di Unity Script-nya. Di unity script : buat PR di project baru (project yang berbeda dengan Install Test).

Pertemuan 5 - 7 Class, String, set & get Function Mata Kuliah Algoritma & Pemrograman Program Studi Desain Teknologi Permainan Sekolah Tinggi Multi Media Yogyakarta Tri Anggraeni, S.Kom., M.Sc. Reference : Deitel, P. & Deitel, H. (2014). C++ How to Program 9th Edition. Massachusetts: Prentice Hall.

Class vs Object Contoh Class : mahasiswa, GradeBook Contoh Object : Dhipta, myGradeBook int panjang;  deklarasi variabel GradeBook myGradeBook;  deklarasi variabel / object

Class : user-defines type Data members Member functions Each class New type

1. Membuat class dengan 1 fungsi (Coba) /* GradeBook.cpp Membuat class GradeBook yang berisi member function displayMessage, membuat object GradeBook & menggunakannya untuk memanggil function displayMessage. */ #include <iostream> using namespace std;

// GradeBook class definition class GradeBook { public: / // GradeBook class definition class GradeBook { public: /* function that displays a welcome message to the GradeBook user */ void displayMessage() { cout << "Welcome to the Grade Book!" << endl << endl; } // end function displayMessage }; // end class GradeBook

Penjelasan program : class GradeBook { Untuk readibilitas : Nama kelas dimulai dengan huruf kapital Setiap kata dalam nama kelas diawali huruf kapital. Badan class diletakkan di antara tanda kurung buka kurawal { dan kurung tutup kurawal } Letakkan tanda titik koma ( ; ) setelah kurung tutup kurawal class.

public: Access specifier Harus diikuti tanda titik dua ( : ) Fungsi dibuat setelah mendeklarasikan access specifier untuk mengindikasikan bahwa fungsi yang akan dibuat dapat diakses oleh public atau : Fungsi yang lain dalam program (seperti fungsi main) Fungsi yang ada di class yang lain

void displayMessage()  function header Fungsi : Melakukan suatu fungsi Menghasilkan suatu nilai ketika selesai dieksekusi Contoh : fungsi perhitungan menghasilkan perhitungan Cara penulisan nama fungsi = variabel. Diawali dengan huruf kecil. Jika mengandung 2 kata/lebih, huruf awal kata ke-2 dst ditulis dengan huruf kapital. Contoh : displayMessage, calculatePoint, endScore Disebut dengan camel case  Karena pola naik turun huruf kecil dan besarnya seperti punggung unta.

void displayMessage()  function header Fungsi harus menentukan tipe return : Untuk mengindikasikan tipe dari nilai yang dihasilkan oleh function. void : salah satu tipe return/hasil fungsi displayMessage() Menandakan bahwa fungsi displayMessage() tidak akan menghasilkan suatu data yang dapat menjadi input pada fungsi lain.

void displayMessage()  function header Nama fungsi harus diikuti tanda kurung. void displayMessage()  tanda kurung tidak berisi apapun. Menandakan bahwa fungsi displayMessage tidak membutuhkan data tambahan untuk mengeksekusi baris-baris program di dalamnya. void displayMessage() { cout << "Welcome to the Grade Book!" << endl << endl; } Function body (Di dalam tanda kurung kurawal)

<< endl << Berfungsi sama dengan \n Agar karakter/kata/kalimat setelahnya tampil di bawah karakter/kata/kalimat sebelumnya. Contoh : Untuk menampilkan 2 baris kalimat : Hello World I’m Eni Di C# : Console.WriteLine("Hello World"); Console.WriteLine("I'm eni"); Bisa dibuat hanya dengan : Console.WriteLine("Hello World" + "\nI'm Eni"); \n ini di C++ bisa dibuat dengan << endl <<

Lanjutan program (ketikkan di bawah class GradeBook tadi) : // function main begins program execution int main() { GradeBook myGradeBook; /* membuat object GradeBook bernama myGradeBook (seperti membuat variabel bernama myGradeBook, tapi tipe datanya bernama GradeBook) */ myGradeBook.displayMessage(); /* call object's displayMessage function */ system("pause"); } // end main

GradeBook myGradeBook; Variabel yang bertipe GradeBook Name of class Object of the class User-defined type Object : komponen yang dapat digunakan berulang2 Member function of a class hanya dapat digunakan setelah object class-nya dibuat. Contoh : GradeBook myGradeBook; GradeBook tamaraGradeBook;

User-defined type Fundamental type : int, short, long, float, double, char, boolean. Otomatis diketahui oleh compiler. User-defines type (contoh) : GradeBook Hanya diketahui jika class definition GradeBook sudah dibuat dalam program. Jika tidak : program error

myGradeBook.displayMessage(); Variabel myGradeBook memanggil fungsi displayMessage. Dilakukan dengan menulis tanda titik setelah nama variabel & nama fungsi. Contoh lain : Jika nama variabel : pointTamara dan nama fungsi : calculatePoint() Cara memanggil fungsi : pointTamara.calculatePoint()

Hasil

2. Membuat Fungsi dengan 1 Parameter Parameter : informasi tambahan yang membantu berjalannya suatu fungsi. 1 fungsi dapat memiliki lebih dari 1 parameter. Coba program berikut : /* GradeBook2 _Class_Berparameter.cpp Membuat class GradeBook2 yang berisi member function displayMessage yang memiliki parameter, membuat object GradeBook2 & menggunakannya untuk memanggil function. */

#include <iostream> #include <string> // untuk menggunakan kelas standar string using namespace std; // GradeBook2 class definition class GradeBook2 { public: /* function that displays a welcome message to the GradeBook user */ void displayMessage(string courseName ) { cout << “Grade book2 for\n" << courseName << "!“ << endl; } // end function displayMessage }; // end class GradeBook2 Disebut parameter

void displayMessage(string courseName) Tipe Identifier Parameter Menunjukkan bahwa fungsi displayMessage memerlukan string untuk berjalan. String : Termasuk namespace std Jika tidak menggunakan using namespace harus diinisialisasikan dengan cara std::string

void displayMessage(string courseName) 1 fungsi dapat memiliki lebih dari 1 parameter. Cara penulisan : dipisahkan dengan tanda koma. Contoh : void displayMessage(string courseName, int jumlahPeserta) Jumlah, urutan, dan tipe argumen pada fungsi harus sama dengan jumlah, urutan, dan tipe pada parameternya.

string nameOfCourse; // string to store the course name // function main begins program execution int main() { string nameOfCourse; // string to store the course name GradeBook2 myGradeBook; /* create a GradeBook2 object named myGradeBook */ // prompt for and input course name cout << "Please enter the course name:" << endl; getline( cin, nameOfCourse ); // read a course name with blanks cout << endl; // output a blank line myGradeBook.displayMessage( nameOfCourse ); /* call myGradeBook's displayMessage function and pass nameOfCourse as an argument */ } // end main Disebut argument

Alternatif hasil User bisa memasukkan nama & pengajar mata kuliah Ditampilkan oleh program sesuai masukan user Please enter the lecture : Lecture : Tri Anggraeni

getline( cin, nameOfCourse ); Coba ganti menggunakan cin saja tanpa menggunakan getline. Jalankan program. Masukkan Algoritma Pemrograman ketika program meminta untuk memasukkan nama course. Tekan Enter. Apa yang terjadi? Hanya kata Algoritma yang kemudian muncul. Kata Pemrograman tidak muncul. cin hanya membaca & menyimpan karakter sampai spasi. getline menyimpan seluruh karakter termasuk spasi.

Kalau waktu sdh habis Kumpulkan PR Pertemuan 2, 3, & 4 Jika di buku terjilid, jangan disobek. Kumpulkan bukunya saja, saya kembalikan pukul 13.30. PR Pertemuan 2 : 1 flowchart yang dapat memiliki selection/decision dengan struktur if … else dan operator equality/relational. Topik bebas. PR Pertemuan 3 : flowchart tahun kabisat dll. Buka file Latihan & PR Pertemuan 4 Anda (InstallTest & LuasPersegiPanjang). Tulis nama Anda di file tersebut. Saya ceknya dengan cepat.

3. Data Members, set and get Functions

Data member Variabel yang dideklarasikan di dalam class, tetapi di luar fungsi. Keuntungan menggunakan data member : Semua fungsi yang ada pada kelas dapat menggunakannya. Sebagian besar data member dideklarasikan setelah access specifier private  disebut data hiding.

Member functions GradeBook3 class : Menyimpan course name pada data member GradeBook3 setCourseName Mendapatkan course name dari data member getCourseName Men-display (menampilkan) welcome message yang memuat nama mata kuliah (course name) displayMessage Dengan cara memanggil fungsi getCourseName

Coba /* 08_Class_Set_Get.cpp Membuat class GradeBook3 yang berisi data member courseName dan fungsi member untuk mengeset dan membaca nilainya */ #include <iostream> #include <string> /* untuk menggunakan kelas standar string */ using namespace std;

// GradeBook3 class definition class GradeBook3 { public: / // GradeBook3 class definition class GradeBook3 { public: /* fungsi yang menyimpan nama mata kuliah : */ void setCourseName(string name) { courseName = name; /* data member courseName. Diberi nilai name */ } // end function setCourseName /* fungsi yang memperoleh nama mata kuliah dari data member courseName di fungsi setCourseName : */ string getCourseName() { return courseName; /* menghasilkan courseName object */ } // end function getCourseName Fungsi yang tidak perlu menghasilkan apapun, sehingga tipenya cukup void Menyimpan course name pada data member GradeBook3 Mendapatkan course name dari data member

/* fungsi yang menampilkan welcome message */ void displayMessage() { /* statement untuk memanggil getCourseName untuk memperoleh nama mata kuliah */ cout << "Grade book for " << getCourseName() << ".\n" << endl; } // end function displayMessage private: string courseName; // data member }; // end class GradeBook3 Mendeklarasikan data member dengan private berarti menyembunyikan data member (data hiding)

// fungsi main memulai eksekusi program int main() { string nameOfCourse; // string to store the course name GradeBook3 myGradeBook; /* create a GradeBook3 object named myGradeBook */ // menampilkan nilai awal courseName cout << “Course name awal : ” << myGradeBook. getCourseName() << endl << endl; // prompt untuk menginput course name cout << "Please enter the course name:" << endl; Local string variable yang dibuat untuk menyimpan nama mata kuliah yang dimasukkan oleh user, yang didapat dari fungsi getline Menyembunyikan data member courseName yang dideklarasikan di class GradeBook Data member courseName digunakan di fungsi setCourseName & getCourseName.

// read a course name with blanks getline( cin, nameOfCourse ); // mengeset nama mata kuliah myGradeBook.setCourseName(nameOfCourse); cout << endl; // output a blank line // menampilkan pesan dengan nama mata kuliah yang baru myGradeBook.displayMessage(); system("pause"); } // end main

Local variable Variabel yang dideklarasikan di dalam suatu fungsi. Hanya dapat digunakan dari setelah dideklarasikan, sampai tanda kurung kurawal ( } ) penutup fungsi. Tidak dapat digunakan di luar fungsi yang mendeklarasikannya.

Seperti inikah hasilnya? Mengapa “Course name awal : ” tidak berisi apa2? Cek kode programnya :

Fungsi main program GradeBook : int main() { string nameOfCourse; // string to store the course name GradeBook3 myGradeBook; /* create a GradeBook3 object named myGradeBook */ // menampilkan nilai awal courseName cout << “Course name awal : ” << myGradeBook. getCourseName() << endl << endl; // prompt untuk menginput course name cout << "Please enter the course name:" << endl;

Di GradeBook3 class definition : class GradeBook3 { public: /* fungsi yang menyimpan nama mata kuliah : */ void setCourseName(string name) { courseName = name; } // end function setCourseName string getCourseName() { return courseName; } // end function getCourseName  Karena itulah nilai Course name awal kosong. Sebelum memanggil getCourseName, fungsi main TIDAK MEMANGGIL fungsi setCourseName, sehingga argumen name-nya kosong Memperoleh nama mata kuliah dari data member courseName di fungsi setCourseName

Hasil dari Latihan 2 : Membuat Fungsi dengan 1 Parameter Data Members, set and get Functions Berbedakah Lha trus kenapa pake fungsi get segala ya ?? ??

Bisakah fungsi setCourseName & getCourseName dijadikan 1 ??  Coba : Save as program Class_set_get menjadi Without_Get.cpp. Dari fungsi getCourseName : pindahkan baris “return CourseName;” ke fungsi setCourseName. Ubah tipe fungsi setCourseName menjadi string (karena fungsi getCourseName juga bertipe string) Dari fungsi displayMessage : pindahkan “cout << "Grade book for "” ke fungsi main, di baris ketika fungsi setCourseName dipanggil, sehingga barisnya menjadi : cout << "Grade book for " << myGradeBook.setCourseName(nameOfCourse); Di fungsi main : hapus semua baris yang memanggil fungsi displayMessage & getCourseName. Hapus seluruh definisi fungsi getCourseName & displayMessage agar tidak terbaca oleh compiler. Jalankan program. Betulkan error2 yang terjadi sampai hasilnya :

Alternatif hasil Bisa jalan tanpa beda dengan ketika ada fungsi getCourseName!! Once again :: Kenapa pake fungsi get segala ya ??

Di fungsi main Class_set_get ada myGradeBook.displayMessage(); Memanggil fungsi displayMessage : void displayMessage() { cout << "Grade book for " << getCourseName() << ".\n" << endl; } Memanggil fungsi getCourseName : string getCourseName() { return courseName; Data member Mengakses data member melalui fungsi get menjadikan class lebih mudah di-maintain & mengurangi kemungkinan kesalahan.

Other reasons why we need set & get functions Untuk memungkinkan class client mengeset dan memperoleh (get) suatu nilai dari data member private. Class/object client (klien dari suatu object) : statement yang memanggil fungsi public di object lain. Agar dapat diakses class client, access specifier fungsi set & get harus public  seperti pada contoh. Class sering menyediakan fungsi public untuk memungkinkan class client mengeset dan memperoleh (get) suatu nilai dari data member private.

Client tidak dapat memodifikasi dan memperoleh object data. Fungsi set & get memungkinkan client untuk berinteraksi dengan sebuah object, dengan tetap mengkapsulasi data private object dalam object itu. Mendeklarasikan data member dengan access specifier private merupakan data hiding  karena menjadikan data member hanya bisa diakses & digunakan oleh fungsi2 di dalam object dimana data member itu dideklarasikan. Fungsi public set & get memungkinkan class clients untuk dapat mengakses data yg di-hidden (yang dideklarasikan dengan access specifier private). Client tidak dapat memodifikasi dan memperoleh object data.

Nama fungsi set & get biasanya diawali oleh kata set atau get. Fungsi set sering disebut sebagai mutators (karena fungsi set me-mutate (mengubah) nilai). Fungsi get sering disebut sebagai accessors (karena fungsi get mengakses suatu nilai).

Perubahan pada data member courseName tidak perlu mengubah fungsi displayMessage Hanya fungsi get& set yang memanipulasi data member secara langsung yang harus diubah. Contoh : courseName ingin dibuat sehingga memuat 2 data member : courseNumber & courseTitle. Fungsi displayMessage tetap dapat memanggil fungsi getCourseName 1 kali & memperoleh courseName yang lengkap yang memuat courseNumber & courseTitle. Fungsi getCourseName dapat dibuat sehingga menghasilkan 1 string yang berisi courseNumber & courseTitle. Coba !!

/. Set_Get_2_data_member /* Set_Get_2_data_member.cpp Menampilkan courseName yang memuat 2 data member : courseNumber & courseTitle */ #include <iostream> #include <string> // untuk menggunakan kelas standar string using namespace std; // GradeBook3 class definition class GradeBook3 { public: /* fungsi yang mengeset nama mata kuliah */ void setCourseName(string nomor, string title) { courseNumber = nomor; /* menyimpan nama mata kuliah pada object */ courseTitle = title; courseTitle = courseNumber + " " + courseTitle; } // end function setCourseName

/. fungsi yang membaca nama mata kuliah /* fungsi yang membaca nama mata kuliah */ string getCourseName() { return courseTitle; } // end function getCourseName /* fungsi yang menampilkan welcome message */ void displayMessage() { /* statement untuk memanggil getCourseName untuk memperoleh nama mata kuliah */ cout << "Grade book for " << getCourseName() << ".\n" << endl; } // end function displayMessage private: string courseNumber, courseTitle; // data member }; // end class GradeBook3

// function main begins program execution int main() { string kodeMtKul, namaMtKul; // string to store the course name GradeBook3 myGradeBook; /* create a GradeBook3 object named myGradeBook */ // prompt untuk menginput course number cout << "\nEnter the course number : " << endl; // read a course number with blanks getline( cin, kodeMtKul ); // prompt untuk menginput course title cout << "\nEnter the course title : " << endl;

// read a course number with blanks getline( cin, namaMtKul ); // mengeset nama mata kuliah myGradeBook.setCourseName(kodeMtKul, namaMtKul); cout << endl; // output a blank line // menampilkan pesan dengan nama mata kuliah yang baru myGradeBook.displayMessage(); system("pause"); } // end main

Output

Di C#, function sering disebut sebagai method

Pelajari lagi