{"id":1404,"date":"2013-12-18T21:33:40","date_gmt":"2013-12-18T14:33:40","guid":{"rendered":"http:\/\/www.sulhansetiawan.com\/?p=1404"},"modified":"2013-12-18T21:33:40","modified_gmt":"2013-12-18T14:33:40","slug":"class-have-descendant","status":"publish","type":"post","link":"https:\/\/sulhansetiawan.com\/id\/class-have-descendant\/","title":{"rendered":"Class punya keturunan yang mewarisi sifat-sifatnya"},"content":{"rendered":"<p><\/p>\n<div style=\"width: 96px; margin-left: auto; margin-right: auto;\"><a href=\"\/id\/?p=1403\"><img decoding=\"async\" title=\"Apakah Class itu?\" alt=\"\" src=\"https:\/\/sulhansetiawan.com\/_wordpress_\/2013\/12\/arrowleft_green_32.png\" \/><\/a><a href=\"\/id\/?p=1379\"><img decoding=\"async\" title=\"Tutorial Delphi\" alt=\"\" src=\"https:\/\/sulhansetiawan.com\/_wordpress_\/2013\/12\/home_green_32.png\" \/><\/a><a href=\"\/id\/?p=1405\"><img decoding=\"async\" title=\"Turunan bisa memiliki method yang berbeda aksinya dengan leluhurnya\" alt=\"\" src=\"https:\/\/sulhansetiawan.com\/_wordpress_\/2013\/12\/arrowright_green_32.png\" \/><\/a><\/div>\n<p>Class monyet memiliki batasan-batasan seperti punya dua tangan, dua kaki, dua mata, dua lubang hidung, dua telinga, suka makan, tidak bisa berbicara, bisa membuat orang tertawa, dan lain-lain. Thole adalah obyek dari class monyet. Oleh karena itu Thole juga memiliki dua tangan, dua kaki, dua mata, dua lubang hidung, dua telinga, suka makan, tidak bisa berbicara, dan bisa membuat orang tertawa.<\/p>\n<p>Jika kita perhatikan antara batasan-batasan yang dimiliki oleh class manusia dengan batasan-batasan yang dimiliki oleh class monyet, maka ada beberapa batasan yang dimiliki bersama.<\/p>\n<p>Jika ada dua class atau lebih yang memiliki beberapa batasan yang dimiliki bersama, maka class tersebut bisa dibuat secara bertingkat sehingga ada sebuah class dasar yang batasan-batasannya merupakan batasan gabungan dari class-class tersebut. Sebagai contoh kita dapat membuat sebuah class dasar untuk menggabungkan antara class manusia dengan class monyet. Sebut saja class gabungan ini dengan nama Primata Berdiri. Class primata berdiri memiliki batasan-batasan seperti punya dua tangan, dua kaki, dua mata, dua lubang hidung, dua telinga, dan suka makan.<\/p>\n<p>Dengan adanya class primata berdiri, maka class manusia bisa dibuat menjadi keturunan dari class primata berdiri yang mewarisi batasan-batasan yang dimiliki oleh primata berdiri ditambah sifat yang dimiliki sendiri yaitu sifat bisa berbicara dan tertawa jika mendengar cerita lucu.<\/p>\n<p>Class monyet juga merupakan keturunan dari class primata berdiri dengan sifat tambahan tidak bisa berbicara dan bisa membuat orang tertawa.<p><\/p>\nSekarang antara primata berdiri, monyet, dan manusia mempunyai hubungan yang bisa digambarkan sebagai berikut:<\/p>\n<figure style=\"width: 447px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/sulhansetiawan.com\/_wordpress_\/2013\/12\/monyetmanusia.png\"><img loading=\"lazy\" decoding=\"async\" class=\" \" alt=\"Hubungan antara Primata berdiri, Manusia, dan Monyet\" src=\"https:\/\/sulhansetiawan.com\/_wordpress_\/2013\/12\/monyetmanusia.png\" width=\"447\" height=\"314\" \/><\/a><figcaption class=\"wp-caption-text\">Hubungan antara Primata berdiri, Manusia, dan Monyet<\/figcaption><\/figure>\n<h3>Class turunan dalam program<\/h3>\n<p>Untuk membuat class turunan dalam progam, maka kita menambahkan nama class leluhurnya di dalam kurung seperti contoh berikut:<\/p>\n<pre class='brush: delphi'>  TManusia=class(TPrimataBerdiri)\r\n  ....\r\n  end;<\/pre>\n<p>Contoh di atas mendefinisikan TManusia sebagai class turunan dari TPrimataBerdiri.<\/p>\n<p>Sekarang kita akan membuat contoh progam yang menggunakan class dasar dan class turunan. Class dasar adalah TGambar yang memiliki variabel Posisi dengan tipe TPoint. Untuk selanjutnya variabel yang dimiliki oleh class (atau object dan record) kita sebut dengan field. Sedangkan TPoint sendiri adalah tipe record dengan field X dan Y yang tipenya adalah integer. Selain field, TGambar juga memiliki prosedur dengan nama GambarObyek. Untuk selanjutnya prosedure atau fungsi yang dimiliki oleh class (atau object) kita sebut dengan method.<\/p>\n<p>Class turunan dari TGambar salah satunya adalah TLingkaran yang memiliki tambahan field berupa Jari2 dengan tipe integer. Turunan yang lain adalah TKotak dengan tambahan field Panjang dan Lebar dengan tipe integer.<\/p>\n<p>Contoh programnya adalah sebagai berikut:<\/p>\n<pre class='brush: delphi'>program Turunan;\r\n{$APPTYPE CONSOLE}\r\ntype\r\n\r\n  TPoint=record\r\n    X,Y:integer;\r\n  end;\r\n\r\n  TGambar=class\r\n    Posisi:TPoint;\r\n    procedure GambarObyek;\r\n  end;\r\n\r\n  TLingkaran=class(TGambar)\r\n    Jari2:integer;\r\n  end;\r\n\r\n  TKotak=class(TGambar)\r\n    Panjang:integer;\r\n    Lebar:integer;\r\n  end;\r\n\r\n  procedure TGambar.GambarObyek;\r\n  begin\r\n    Writeln('Menggambar obyek');\r\n  end;\r\n\r\nvar\r\n  Gambar:TGambar;\r\n  Lingkaran:TLingkaran;\r\n  Kotak:TKotak;\r\n\r\nbegin\r\n\/\/membuat obyek\r\n  Gambar:=TGambar.Create;\r\n  Lingkaran:=TLingkaran.Create;\r\n  Kotak:=TKotak.Create;\r\n\/\/memanggil method\r\n  Gambar.GambarObyek;\r\n  Lingkaran.GambarObyek;\r\n  Kotak.GambarObyek;\r\n\/\/membuang obyek\r\n  Gambar.Free;\r\n  Lingkaran.Free;\r\n  Kotak.Free;\r\n\r\n  Writeln('Tekan Enter');\r\n  Readln;\r\nend.<\/pre>\n<p>Jika program dijalankan, keluarannya akan tampak seperti berikut:<\/p>\n<pre>Menggambar obyek\r\nMenggambar obyek\r\nMenggambar obyek\r\nTekan Enter\r\n\r\n<\/pre>\n<p>Perhatikan bahwa kita tidak membuat definisi method  GambarObyek untuk TLingkaran maupun TKotak, akan tetapi kedua class turunan tersebut telah mewarisi method GambarObyek dari TGambar.<\/p>\n<div style=\"width: 96px; margin-left: auto; margin-right: auto;\"><a href=\"\/id\/?p=1403\"><img decoding=\"async\" title=\"Apakah Class itu?\" alt=\"\" src=\"https:\/\/sulhansetiawan.com\/_wordpress_\/2013\/12\/arrowleft_green_32.png\" \/><\/a><a href=\"\/id\/?p=1379\"><img decoding=\"async\" title=\"Tutorial Delphi\" alt=\"\" src=\"https:\/\/sulhansetiawan.com\/_wordpress_\/2013\/12\/home_green_32.png\" \/><\/a><a href=\"\/id\/?p=1405\"><img decoding=\"async\" title=\"Turunan bisa memiliki method yang berbeda aksinya dengan leluhurnya\" alt=\"\" src=\"https:\/\/sulhansetiawan.com\/_wordpress_\/2013\/12\/arrowright_green_32.png\" \/><\/a><\/div>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Class monyet memiliki batasan-batasan seperti punya dua tangan, dua kaki, dua mata, dua lubang hidung, dua telinga, suka makan, tidak bisa berbicara, bisa membuat orang tertawa, dan lain-lain. Thole adalah obyek dari class monyet. Oleh karena itu Thole juga memiliki dua tangan, dua kaki, dua mata, dua lubang hidung, dua telinga, suka makan, tidak bisa&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[105,104,96,145],"tags":[106],"class_list":["post-1404","post","type-post","status-publish","format-standard","hentry","category-delphi-lazarus","category-programming","category-all","category-tutorial","tag-delphi"],"_links":{"self":[{"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/posts\/1404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/comments?post=1404"}],"version-history":[{"count":0,"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/posts\/1404\/revisions"}],"wp:attachment":[{"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/media?parent=1404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/categories?post=1404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sulhansetiawan.com\/id\/wp-json\/wp\/v2\/tags?post=1404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}