Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

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.

Presentasi serupa


Presentasi berjudul: "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."— Transcript presentasi:

1 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).

2 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.

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

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

5 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;

6 // 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

7 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.

8 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

9 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.

10 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.

11 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)

12 << 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 <<

13 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

14 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;

15 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

16 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()

17 Hasil

18 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. */

19 #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

20 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

21 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.

22 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

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

24 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.

25 Kalau waktu sdh habis Kumpulkan PR Pertemuan 2, 3, & 4
Jika di buku terjilid, jangan disobek. Kumpulkan bukunya saja, saya kembalikan pukul 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.

26 3. Data Members, set and get Functions

27 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.

28 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

29 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;

30 // 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

31 /* 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)

32 // 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.

33 // 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

34 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.

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

36 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;

37 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

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

39 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 :

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

41 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.

42 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.

43 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.

44 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).

45 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 !!

46 /. 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

47 /. 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

48 // 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;

49 // 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

50 Output

51 Di C#, function sering disebut sebagai method

52 Pelajari lagi


Download ppt "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."

Presentasi serupa


Iklan oleh Google