Posted May 17th, 2015 by michaelwijaya96
![images](http://michaelwijaya96.blog.binusian.org/files/2015/05/images.jpg)
Kegiatan keempat di lakukan pada
Hari/tanggal : Rabu, 13 Mei 2015
Tempat kegiatan : Sekolah Dasar Negeri Palmerah 23 Pagi 24 Pagi. Jl Sandang Kemanggisan RT.006/10. Kecamatan Palmerah, Jakarta Barat
Hari terakhir, kami pada hari ini tidak mengajar tetapi hanya berfoto foto dan bermain dengan anak – anak sebagai kenangan terakhir kami dalam mengajar.
![05b9e4ab383741041cb50924e4f27bd5e52a2ec](http://michaelwijaya96.blog.binusian.org/files/2015/05/05b9e4ab383741041cb50924e4f27bd5e52a2ec-300x200.jpg)
![3d5aa3126ac9e2f374441c150f250fc65d64311](http://michaelwijaya96.blog.binusian.org/files/2015/05/3d5aa3126ac9e2f374441c150f250fc65d64311-300x200.jpg)
Banyak hal yang saya sendiri secara personal dapat, dimana saat saya mengajar dan di dengarkan serta bagaimana cara mengajar yang baik agar dapat didengar oleh anak – anak secara positif.
Sekian laporan dan kegiatan ini saya tutup.
Posted May 17th, 2015 by michaelwijaya96
![images](http://michaelwijaya96.blog.binusian.org/files/2015/05/images.jpg)
Kegiatan ketiga di lakukan pada
Hari/tanggal : Selasa, 12 Mei 2015
Tempat kegiatan : Sekolah Dasar Negeri Palmerah 23 Pagi 24 Pagi. Jl Sandang Kemanggisan RT.006/10. Kecamatan Palmerah, Jakarta Barat
Pukul : 07.30 -09.30 WIB
Hari ketiga ini kami mengajari anak – anak untuk ketiga kalinya. Saya mengajari mereka tentang bangun bangun datar dan pada hari ketiga mereka lebih tenang dan mengamati saya dengan baik baik. Mungkin karena ada gurunya yang mendampingi anak anak dibelakang.
Mereka saya berikan soal soal dan mengerjakannya dengan cepat . Anggota lain membantu anak – anak yang lain dalam pengerjaan agar anak – anak yang kesulitan dapat terbantu. Setelah selesai, saya bermain gitar dan mengajak anak – anak untuk bernyanyi untuk memperingati hari ibu yang tidak terlalu jauh lewat.
![a5a8d6bbbce10f22a51f82e9ca37b29e2966d66](http://michaelwijaya96.blog.binusian.org/files/2015/05/a5a8d6bbbce10f22a51f82e9ca37b29e2966d66-300x200.jpg)
Posted May 17th, 2015 by michaelwijaya96
![images](http://michaelwijaya96.blog.binusian.org/files/2015/05/images.jpg)
Kegiatan kedua di lakukan pada
Hari/tanggal : Senin, 11 Mei 2015
Tempat kegiatan : Sekolah Dasar Negeri Palmerah 23 Pagi 24 Pagi. Jl Sandang Kemanggisan RT.006/10. Kecamatan Palmerah, Jakarta Barat
Pukul : 07.30 -09.30 WIB
![fc1b63dab64a4ee54d6df60d1f102f28b9598bf](http://michaelwijaya96.blog.binusian.org/files/2015/05/fc1b63dab64a4ee54d6df60d1f102f28b9598bf-300x200.jpg)
Hari kedua , saya mengajari mereka tentang pecahan dan memberikan soal -soal yang cukup menguras logika mereka. Mereka sudah mulai terbiasa dengan pola mengajar saya , walaupun mereka masih bandel dan berlarian kemana mana.
Pengajaran ini berlangsung kurang lebih selama 1 jam setelah itu kami isi akhir acara dengan game dan tidak mengulangi kesalahan yang sama seperti di hari pertama. Game ini menggunakan bahasa Inggris yang sederhana hanya dengan menjawab bahasa Indonesia dari nama nama binatang dalam bahasa Inggris. Apabila di jawab dengan benar, anak anak akan mendapat permen walaupun akhirnya kami membagikan semua permen kepada anak anak. Saat game ini berlangsung saya kurang lebih duduk di belakang dan bercakap – cakap dengan anak – anak yang ternyata memang masih belum terbiasa dengan bahasa inggris.
Mereka berkata bahwa bahasa Inggris yang diajarkan cukup susah walaupun menurut kami game ini menggunakan bahasa Inggris yang hanya vocabulary saja yang mudah dimengerti. Mereka saya ajarkan pronouncation di belakang selama game ini berlangsung. Dan tidak terasa ternyata waktu sudah menunjukkan pukul 09.30 dan kami berpamitan pulang.
Posted May 17th, 2015 by michaelwijaya96
![images](http://michaelwijaya96.blog.binusian.org/files/2015/05/images.jpg)
Kegiatan pertama di lakukan pada
Hari/tanggal : Kamis, 7 Mei 2015
Tempat kegiatan : Sekolah Dasar Negeri Palmerah 23 Pagi 24 Pagi. Jl Sandang Kemanggisan RT.006/10. Kecamatan Palmerah, Jakarta Barat
Pukul : 07.30 -09.30 WIB
Kegiatan ini kami selenggarakan berkelompok dan saya sendiri yang mendapatkan tugas untuk mengajar didepan kelas untuk anak kelas 3 di sekolah sdn palmerah 23 pagi 24 pagi ini.
![2](http://michaelwijaya96.blog.binusian.org/files/2015/05/2-300x200.jpg)
Foto Pengajaran di dalam kelas
Kami mengawali kegiatan ini dengan perkenalan akan anggota kelompok kami di LI01. Saya sendiri bertugas sebagai sekretaris dalam kegiatan ini.
Saat berlangsungnya acara, saya mengajarkan didepan kelas mengenai matematika tentang perkalian. Anak – anak disini cukup bandel dan tidak menurut, akan tetapi mereka memiliki motivasi yang kuat untuk belajar sehingga saya tidak menyerah. Beberapa anak mengikuti dengan sungguh sungguh apa yang saya ajarkan dan saya cukup senang .
Setelah selesai mengajar saya memberikan soal untuk mereka mengerjakan, soal itu sejumlah 15 soal di papan tulis. Akan tetapi waktu yang saya perhitungkan salah sehingga acara game di akhir tidak dapat dilangsungkan dan kami harus meninggalkan murid murid tersebut pada pukul 09.30 tepat saat mereka istirahat.
Posted April 7th, 2014 by michaelwijaya96
TM 04 : Class Time
- Desain klas dengan nama Time yang mempunyai tiga data anggota yaitu hour, minute dan second dengan level akses adalah private. Selain fungsi anggota baku constructor dan destructor, class Time juga mempunyai tiga fungsi anggota lain yang prototipenya adalah sebagai berikut: void setData() , fungsi konstant void geData() dan fungsi konstant void printData(). Tugas ketiga fungsi terakhir ini adalah sebagai berikut: fungsi setData() untuk memberi nilai hour, minute dan second , fungsi getData() untuk mengambil nilai data yang diisi oleh fungsi setData(), sedangkan fungsi printData() untukmencetak ketiga data anggota tersebut.
#include<iostream>
#include<string>
using namespace std;
Class Time(){
private :
int hour;
int minute;
int second;
public :
Time(){
int hour=0;
int minute=0;
int second=0;
}
~Time(){
cout<<data deleted<<endl;
}
void setData(int hour,int minute,int second);
void getData()const;
void printData()const;
- Definisikan atau implementasikan constructor dan destructor di dalam klas sedangkan fungsi setData() , getData() dan printData() di luar klas Time. Untuk definisi fungsi yang ada di luar class jangan lupa untuk menggunakan scope resolution operator.
void Time :: setData(int hour,int minute,int second){
this->hour = hour;
this->minute=minute;
this->second=second;
}
int Time :: getData(int hour,int minute,int second){
return hour;
return minute;
return second;
}
void Time :: printData(){
getData();
cout<<hour<<endl;
cout<<minute<<endl;
cout<<second<<endl;
cin.get();
}
- Berikan alasan mengapa fungsi getData() dan printData() perlu dibuat konstant?
Karena didalam fungsi getData() dan printData() tidak terjadi pengubahan data, dan untuk menghindari pengubahan data secara tidak sengaja maka fungsi getData() dan printData() dibuat konstan.
- Selanjutnya tulis fungsi main() untuk mengetes klas yang Anda desain.
void main(){
Time obj;
int h,m,s;
obj.setData(12,12,12);
obj.getData(h,m,s);
cout<<h<<endl;
cout<<m<<endl;
cout<<s<<endl;
obj.printData;
}
I AM PROUD AS A BINUSIAN
Posted April 7th, 2014 by michaelwijaya96
TM 03 : ADT Array dan Struct
Array adalah suatu ADT. Seperti halnya ADT lain, array mempunyai data anggota dan operasi, metode atau fungsi anggota. Elemen array diakses berdasarkan posisinya di dalam array relatif terhadap elemen pertama. Operasi utama array adalah store dan retrieve. Operassi store untuk menyimpan elemen e di indeks i array A[] adalah A[i] = e sedangkan operasi retrieve untuk mengambil suatu elemen dari array A[] di indeks i dan disimpan di elemen e adalah e = A[i].
- Desain class Array berdasarkan uraian ADT Array di atas dengan ketentuan level akses data anggota adalah private dan level akses fungsi anggota adalah public. Selain itu jangan lupa untuk menambahkan constructor dan destructor pada class tersebut. Dalam desain ini, semua fungsi anggota kecuali constructor dan destructor, harus berbentuk prototype.
const int MAX =10;
class Array {
private :
int A[MAX};
int i, e;
public :
Array() { for ( i =0; i < MAX; i++) A[i] = 0; }
~Array();
void store( int, int );
int retrieve (int, int);
};
- Selanjutnya definisikan semua fungsi anggota di luar class Array. Ingat jangan lupa untuk menggunakan scope resolution operator ::
void Array :: store (int i, int e) { A[i] = e; }
int Array :: retrieve (int i, int e) { e = A[i]; }
- Terakhir, tulis fungsi main() sebagai driver untuk menguji desain kamu.
void main() {
int e;
Array a;
a.store(1,11);
a.store(2,22);
a.store(3,33);
cout << endl << a,retrieve (3,e);
cout << endi << a.retrieve(2,e);
cout << endl << a.retrieve(1,e);
}
Seperti halnya array, struct adalah suatu ADT yang mempunyai data anggota dan operasi, metode atau fungsi anggota. Elemen, member atau field struct diakses menggunakan operator dot atau pointer ->. Bentuk umumnya adalah sebagai berikut:
<structure_variabel>.<field_name>
<structure_pointer> ® <field_name>
Operasi utama di struct adalah store(e) dan retrieve(). Operassi store(e) untuk menyimpan elemen e di field i struct s adalah s.i = e sedangkan operasi retrieve() untuk mengambil suatu elemen dari struct s di field i dan disimpan di elemen e adalah e = s.i.
- Diketahui struktur dtMhs dengan tiga data anggota : nim, nama dan IPK serta fungsi anggota store() dan retrieve(). Desain class dtMhs berdasarkan uraian di atas dengan ketentuan level akses data anggota adalah private dan level akses fungsi anggota adalah public. Selain itu jangan lupa untuk menambahkan constructor dan destructor pada class tersebut. Dalam desain ini, semua fungsi anggota kecuali constructor dan destructor, harus berbentuk prototype.
Jawab :
#include<iostream>
#include<string>
using namespace std;
class dtMhs {
private :
string nim;
string nama;
float IPK;
public :
//ini constructor
dtMhs(){
nim = “Belum ada”;
nama = “Belum ada”;
IPK = “0.00”;
}
//ini destructor
~dtMhs(){
}
void store(string,string,float){};
void retrieve(){
string retrieveNim();
string retrieveNama();
float retrieveIPK();
};
- Selanjutnya definisikan semua fungsi anggota di luar class Struct Ingat jangan lupa untuk menggunakan scope resolution operator ::
Jawab :
void dtMhs::store(string nim,string nama,float IPK){
this->nim=nim;
this->nama=nama;
this->IPK=IPK;
}
string dtMhs::retrieveNim(string nim){
return nim;
}
string dtMhs::retrieveNama(string nama){
return nama;
}
float dtMhs::retrieveIPK(float IPK){
return IPK;
}
- Terakhir, tulis fungsi main() sebagai driver untuk menguji desain kamu.
void main(){
dtMhs obj;
obj.store(“1701293010”,”Michael Wijaya”,4.00);
cout<<obj.retrieveNim<<endl;
cout<<obj.retrieveNama<<endl;
cout<<obj.retrieveIPK<<endl;
}
cin.get();
I AM PROUD AS A BINUSIAN
Posted March 21st, 2014 by michaelwijaya96
#include<stdio.h>
#include<stdlib.h>
struct data{
int x;
struct data* next;
struct data* prev;
}*connector;
void print(){
if(connector!=0)
{
while(connector->next!=0)
{
printf(“%d”,connector->x);
connector = connector->next;
}
printf(“->%d”,connector->x);
}
printf(“\n”);
}
int main()
{
struct data *head;
struct data *tail;
struct data *insert;
//masukkan data 1 dan 3
head =(struct data*)malloc(sizeof(struct data));
tail =(struct data*)malloc(sizeof(struct data));
connector =(struct data*)malloc(sizeof(struct data));
head->x=1;
head->next=0;
head->prev=0;
connector = head;
tail = head;
connector->next =(struct data*)malloc(sizeof(struct data));
connector->prev =(struct data*)malloc(sizeof(struct data));
connector = connector->next;
connector->x=3;
connector->next=0;
connector->prev=head;
tail=connector;
connector = head;
print();
//masukkan data 2 diantara 1 dan 3
connector = head;
if(connector->next!=0){
while(connector->next!=0){
if(connector->x==1&&connector->next->x==3)
{
insert = (struct data*)malloc(sizeof(struct data));
insert->x=2;
insert->next=connector->next;
insert->prev=head->next;
connector->next = insert;
}
}
}
connector = head;
print();
getchar();
//masukkan 0 di depan
connector = head;
insert = (struct data*)malloc(sizeof(struct data));
insert->x=0;
insert->next=head;
head=insert;
connector = head;
print();
//masukkan 5 di paling akhir
insert= (struct data*)malloc(sizeof(struct data));
insert->x = 5;
insert->next = 0;
insert->prev=tail;
tail->next=insert;
tail=tail->next;
connector = head;
print();
getchar();
return 0;
}
Posted March 17th, 2014 by michaelwijaya96
TM 02
- Copy constructor suatu klas dieksekusi jika obyek klas di-copy dengan mekanisme di bawah ini kecuali
a. direct assignment b. initialization
c. passing by value c. return by value
- Fungsi anggota yang otomatis di-create oleh kompilator meskipun ia tidak secara eksplisit ditulis oleh pemrogram dalam definisi klas adalah opsi-opsi di bawah ini kecuali
a. default constructor b. copy constructor
c. destructor d. overloaded constructor
- Level akses utility function atau helper function suatu klas adalah
a. public b. protected c. private d. inline
- Untuk class X, sintaks copy constructor adalah
a. X(& X) b. X(const X&)
c. X(const &X) d. X(X &)
- C++ class mempunyai
- satu konstruktor dan satu destructor
- lebih dari satu konstruktor dan satu destructor
- satu konstruktor dan lebih dari satu destructor
- lebih dari satu konstruktor dan lebih dari satu destructor
- Apa keluaran dari penggalan program berikut ini:
class Rational {
public:
Rational() { cout << “OBYEK LAHIR.\n”; }
~Rational() { cout << “OBYEK MATI. \n”; }
private:
int num, den;
};
main() {
{ Rational x;
cout << “SEKARANG x HIDUP.\n”;
}
cout << “ANTAR BLOK.\n”;
{ Rational y;
cout << “SEKARANG y HIDUP.\n”;
}
}
- Uraikan apa yang kamu ketahui tentang constructor, user defined constructor, default constructor, parameterized constructor, constructor initialization list, copy constructor dan destructor.
- Uraikan apa yang kamu ketahui tentang default arguments di C++. Sebutkan apa saja yang dapat digunakan sebagai devalut value. Mengapa nilai constant tidak dapat digunakan sebagai default value untuk reference variable?
- Apa yang dimaksud dengan function overloading? Kriteria apa yang digunakan untuk menyatakan bahwa dua fungsi dengan nama yang sama adalah berbeda satu sama lain.
- Banyak penulis buku menyatakan bahwa untuk class X paling sedikit mempunyai satu constructor yaitu default constructor dengan prototype X(). Tetapi John Hubbard dalam bukunya Programming with C++ menyatakan bahwa setiap class X paling sedikit mempunyai dua constructor yaitu default X() dan copy constructor yang prototipe sintaksnya adalah X (const X & ), fungsi anggota dengan satu parameter dan pass by constant reference.
Tugas Anda:
a. Kapan copy constructor dieksekusi?
b. Untuk penggalan kode berikut berapa kali copy constructor dieksekusi?
class Rational {
public : Rational(int n, int d) : num(n), den (d) { }
Rational(const Rational & r) : num(r.num), den(r.den)
{ cout << “COPY CONSTRUCTOR CALLED\n”;}
private: int num, den;
};
Rational f(Rational r) {
Rational s = r;
return s;
}
main() {
Rational(22,7);
Rational y(x);
f(y);
}
I AM PROUD AS A BINUSIAN
6. OBYEK LAHIR.
SEKARANG x HIDUP
OBYEK MATI
ANTAR BLOK
OBYEK LAHIR
SEKARANG y HIDUP
OBYEK MATI
7. – Constructor adalah fungsi yang muncul ketika kita memanggil suatu class.
– User defined constructor adalah constructor yang dibuat oleh user itu sendiri.
– Default constructor adalah constructor yang sudah disediakan oleh program tersebut dan isinya kosong
– Parameterized constructor adalah constructor yang memiliki parameter.
– Constructor initialization list adalah fasilitas untuk membuat objek dari suatu class dengan sekaligus menyatakan ukuran objek tersebut.
– Copy constructor adalah constructor yang disalin dari constructor sebelumnya.
– Copy destructor adalah destructor yang disalin dari destructor sebelumnya.
8. Default arguments dalam C++ adalah argumentasi terhadap suatu fungsi yang pemrogram tidak perlu untuk menspesifikasinya.
Contoh :
int my_func(int a, int b, int c=12);
result = my_func(1, 2, 3);
result = my_func(1, 2)
Nilai int c yang ada parameter tersebut akan otomatis ada sebagai default argument.
Default value : semua data bisa masuk dalam default value kecuali yang memiliki tipe const.
Karena nilai constant tidak dapat diubah sehingga data yang di kembalikan tidak akan berubah juga dan mengakibatkan kegagalan program.
9. Overloading function memperbolehkan menggunakan nama function yang sama, tetapi dengan kriteria :
- Nama fungsi sama
- Jumlah parameter yang berbeda
- Urutan parameter yang sesuai
10. a. Copy constructor di eksekusi saat kita menyatakan fungsi copy constructor. Atau secara tidak langsung saat kita sedang membutuhkan nya untuk variable lain.
b. Copy constructor di eksekusi sebanyak 1 kali.
Posted March 13th, 2014 by michaelwijaya96
#include <stdio.h>
#include <stdlib.h>
struct node{
int x;
struct node*next;
};
int main(){
struct node *root;
struct node *conductor;
int flag = 0;
root = (struct node*)malloc(sizeof(struct node));
root->next=0;
do{
printf(“Masukkan angka [1…100] :”);
scanf(“%d”,&root->x);fflush(stdin);
}while(root->x<0||root->x>100);
flag++;
while(flag<=10){
system(“cls”);
conductor=root;
printf(“%d”,conductor->x);
while(conductor->next!=0){
conductor=conductor->next;
printf(“->%d”,conductor->x);
}
if(flag==10)
{
break;
}
conductor->next=(struct node*)malloc(sizeof(struct node));
conductor=conductor->next;
conductor->next=0;
printf(“\n”);
do{
printf(“Masukkan angka [1…100] :”);
scanf(“%d”,&conductor->x);fflush(stdin);
}while(conductor->x<0||conductor->x>100);
flag++;
}
getchar();
return 0;
}
Posted March 10th, 2014 by michaelwijaya96
TM 01
- Ada tiga istilah yang saling berkaitan saat kita mulai mempelajari OOP yaitu ADT (Abstract Data Type), encapsulation dan class. Coba uraikan secara rinci apa yang dimaksud istilah-istilah tersebut. Selain itu berikan contoh-contohnya.
- Ada tiga karakteristik yang membedakan OOP dengan procedural programming yaitu ADT, inheritance dan dynamic binding, Dua topik teerakhir belum kita pelajari sehingga dalam soal ini kita hanya fokus pada ADT.
a. Apa yang dimaksud dengan ADT?
b. Apa yang dimaksud dengan propterties suatu ADT?
c. Mengapa kita memerlukan ADT?
d. Bagaimana suatu ADT berhubungan dengan ADT lain?
e. Apa yang dimaksud dengan ”…dalam ADT implementasi disembunyikan dari user…” Berikan contohnya.
- Esensinya tidak perbedaan mendasar antara struct dan class tetapi kita lebih suka menggunakna class daripada struct. Uraikan mengapa kita lebih suka menggunakan class daripada struct?
- Esensinya class dan struct adalah sama dalam C++. Perbedaan yang signifikan di antara mereka adalah
- default akses class adalah private sedangkan struct adalah private
- default akses class adalah private sedangkan struct adalah public
- default akses class adalah public sedangkan struct adalah private
- default akses class adalah public sedangkan struct adalah public
- Interface suatu class terdiri dari
a. data anggota b. prototipe fungsi anggota
c. implementasi fungsi anggota d. data anggota dan prototipe fungsi anggota
-d1030-
- ADT merupakan cara untuk enkapsulasi/pembungkusan data yang tipe datanya bisa berbeda menjadi suatu tipe data baru.
Enkapsulasi merupakan proses pemaketan pada sebuah data yang bertujuan untuk menyembunyikan informasi dari user/information hiding.
ADT pada OOP disebut dengan class. Class terdiri dari 3 bagian yaitu, class name, attribute/data member, dan method/function. Class adalah sebuah konsep OOP yang digunakan untuk enkapsulasi attribute dan method yang memiliki kesamaan behavior .
class Rectangle {
int width, height;
public:
void set_values (int,int);
int area()
{
return width*height;
}
};
- a. ADT(Abstract Data Type) merupakan penggabungan berbagai object dengan berbagai maca tipe data beserta dengan fungsinya untuk membentuk suatu tipe data baru. ADT dibuat untuk menghindari pemrograman yang kompleks dengan cara menyederhanakan proses pemrograman.
b. Properties merupakan bagian – bagian yang ada di dalam ADT
c. Kita memerlukan ADT karena ADT menyederhanakan proses pemrograman yang kompleks sehingga program yang kita buat terorganisir, dapat dimodifikasi, dan dapat dikompilasi secara terpisah. Selain itu, ADT yang mendukung information hiding dapat digunakan untuk menyembunyikan bagian-bagian penting yang tidak perlu diperlihatkan pada user.
d. Suatu ADT berhubungan dengan ADT lain menggunakan access modifier yang merupakan kata kunci yang digunakan untuk menentukan spesifikasi tingkat akses suatu attribute atau method. Kata kunci tersebut adalah private, protected, dan public.
e. Yang dimaksud adalah information hiding. Information hiding dalam ADT dapat dibagi menjadi 3 :
- Private(-), dimana attribute dan method hanya bisa diakses oleh class-nya sendiri.
- Protected(#), attribute dan method hanya bisa diakses oleh class itu sendiri dan turunannya.
- Public(+), attribute dan method bisa diakses oleh class-nya sendiri, class lain, atau pun dari lingkungan luar class.
- Kita lebih suka menggunakan class daripada struct karena penggunaan enkapsulasi pada class. Kita dapat memasukkan attribute bersamaan dengan method dalam satu kelas. Selain itu pada class terdapat constructor dan destructor yang berguna untuk dealokasi memory. Constructor merupakan method khusus yang dijalankan secara otomatis tanpa harus dipanggil saat instance dibuat. Constructor digunakan untuk inisialisasi nilai terhadap data-data yang terdapat pada kelas yang bersangkutan. Sedangkan destructor secara otomatis akan dipanggil oleh compiler ketika objek meninggalkan blok main().