Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Mengoptimalkan Property Object di Aplikasi Web dari PHPMaker
Mari Mengenal Object di Kode yang Dihasilkan oleh PHPMaker
Mudahnya Mencegah User Tertentu Login di Aplikasi Web dari PHPMaker

Mudahnya Mengoptimalkan Property Object di Aplikasi Web dari PHPMaker

Kam, 29 Januari 2015 oleh Masino Sinaga 6 Komentar

Salah satu dari begitu banyaknya alasan dan fitur yang saya suka dari PHPMaker adalah pemakaian OOP (Object Oriented Programming) di dalam file script dari Aplikasi Web yang dihasilkannya. Seperti yang sudah kita ketahui, OOP merupakan gaya penulisan kode program yang berorientasikan kepada Object. Artinya, setiap sebuah entitas di dalam sistem akan diwakili oleh sebuah Object, dan setiap Object pasti memiliki beberapa Property dan Method di dalamnya.

Kelebihan utama dari OOP ini adalah kemudahan dalam penggunaan ulang sebuah Class yang sama, tapi dapat menghasilkan Object yang berbeda. Caranya bisa dengan meng-extend (mengembangkan) Class yang sudah ada, atau bisa juga dengan membuat instansiasi baru dari Class yang sudah ada. Tujuan akhirnya adalah supaya Programmer dapat mengekspos atau mengoptimalkan Property dan/atau Method yang terdapat di sebuah Object.

Istilah Property di dalam sebuah Object sering disamakan dengan istilah Sesuatu yang Dimiliki oleh Object itu. Bisa juga diartikan dengan Item Pengaturan yang nilainya bisa digunakan untuk menghasilkan fitur tertentu.

Sedangkan istilah Method di dalam sebuah Object sering disamakan dengan function yang ketika dipanggil akan melakukan aksi tertentu sesuai dengan kebutuhan.

Contoh, object Table yang merupakan instansiasi dari class cTable sudah barang tentu memiliki property berupa Field. Selain property Field, object Table juga memilik property dan method lainnya yang terdapat di dalamnya. Nah, Object Field itu sendiri pun sebenarnya berasal dari Class cField yang di dalamnya juga memiliki property dan method tertentu.

Di atas tadi kita menyebutkan istilah extends. Nah, kode PHP yang dihasilkan oleh PHPMaker mengenai hal ini bisa Anda lihat dalam file *info.php. Contoh, ketika Anda membuka file ordersinfo.php dengan aplikasi Text Editor seperti Notepad++, maka Anda akan melihat kode:

//
// Table class for orders
//
class corders extends cTable {

Itu artinya, PHPMaker membuat class yang bernama corders, di mana class tersebut sebenarnya merupakan pengembangan (extends) dari class cTable.

Lalu jika Anda buka file orderslist.php dengan Notepad++, maka Anda akan melihat kode seperti ini:

class corders_list extends corders {

Itu artinya, PHPMaker membuat class yang bernama corders_list yang juga merupakan pengembangan (extends) dari class corders yang sebelumnya sudah dibuat pada file ordersinfo.php di atas.

Dengan kata lain, sebuah Class bisa merupakan hasil extends beberapa kali dari class-class sebelumnya. Mudah-mudahan gak bingung jika melihat contoh di atas tadi, ya?!

Sekarang mari kita kembali kepada manfaat dari sebuah Object. Tujuan utamanya adalah agar kita sebagai Web Developer dapat dengan mudah memanfaatkan Property dan Method yang terdapat di dalamnya. Nah, pertanyaannya adalah, bagaimana cara Web Developer mengetahui Property apa saja yang terdapat di dalam sebuah Object?

Jawabannya sangat mudah. Anda cukup menggunakan fungsi var_dump() yang artinya menge-dump semua variable yang terdapat di dalam sebuah Object tertentu. Panggil fungsi ini dari server event yang dapat mengekspos Property di dalamnya.

Contoh, kita ingin mengetahui Property apa saja yang dimiliki oleh Field Trademark yang terdapat di dalam table cars, maka Anda sebagai Web Developer cukup memanggil function var_dump() tadi dari server event Row_Rendered:

var_dump($this->Trademark);

maka Anda akan melihat hasilnya seperti ini:

object(cField)[6]
  public 'TblName' => string 'cars' (length=4)
  public 'TblVar' => string 'cars' (length=4)
  public 'FldName' => string 'Trademark' (length=9)
  public 'FldVar' => string 'x_Trademark' (length=11)
  public 'FldExpression' => string '`Trademark`' (length=11)
  public 'FldBasicSearchExpression' => string '`Trademark`' (length=11)
  public 'FldIsVirtual' => boolean true
  public 'FldVirtualExpression' => string '`EV__Trademark`' (length=15)
  public 'FldForceSelection' => boolean true
  public 'FldVirtualSearch' => boolean true
  public 'FldDefaultErrMsg' => string 'Incorrect integer' (length=17)
  public 'VirtualValue' => string '' (length=0)
  public 'TooltipValue' => string '' (length=0)
  public 'TooltipWidth' => int 0
  public 'FldType' => int 3
  public 'FldDataType' => int 1
  public 'FldBlobType' => null
  public 'FldViewTag' => string 'FORMATTED TEXT' (length=14)
  public 'FldIsDetailKey' => boolean false
  public 'AdvancedSearch' => 
    object(cAdvancedSearch)[7]
      public 'TblVar' => string 'cars' (length=4)
      public 'FldVar' => string 'x_Trademark' (length=11)
      public 'SearchValue' => null
      public 'SearchOperator' => null
      public 'SearchCondition' => null
      public 'SearchValue2' => null
      public 'SearchOperator2' => null
      public 'SearchValueDefault' => string '' (length=0)
      public 'SearchOperatorDefault' => string '' (length=0)
      public 'SearchConditionDefault' => string '' (length=0)
      public 'SearchValue2Default' => string '' (length=0)
      public 'SearchOperator2Default' => string '' (length=0)
      private '_Prefix' => string 'demo11_cars_advsrch_' (length=20)
      private '_Suffix' => string '_Trademark' (length=10)
  public 'Upload' => null
  public 'FldDateTimeFormat' => int -1
  public 'CssStyle' => string '' (length=0)
  public 'CssClass' => string '' (length=0)
  public 'ImageAlt' => null
  public 'ImageWidth' => int 0
  public 'ImageHeight' => int 0
  public 'ImageResize' => boolean false
  public 'ResizeQuality' => int 100
  public 'IsBlobImage' => boolean false
  public 'ViewCustomAttributes' => string '' (length=0)
  public 'EditCustomAttributes' => string '' (length=0)
  public 'LinkCustomAttributes' => string '' (length=0)
  public 'Count' => null
  public 'Total' => null
  public 'TrueValue' => string '1' (length=1)
  public 'FalseValue' => string '0' (length=1)
  public 'Visible' => boolean true
  public 'Disabled' => null
  public 'ReadOnly' => boolean false
  public 'TruncateMemoRemoveHtml' => null
  public 'CustomMsg' => string '' (length=0)
  public 'CellCssClass' => string '' (length=0)
  public 'CellCssStyle' => string '' (length=0)
  public 'CellCustomAttributes' => string '' (length=0)
  public 'MultiUpdate' => null
  public 'OldValue' => null
  public 'ConfirmValue' => null
  public 'CurrentValue' => string '8' (length=1)
  public 'ViewValue' => string 'Mercedes-Benz' (length=13)
  public 'EditValue' => string '' (length=0)
  public 'EditValue2' => null
  public 'HrefValue' => string 'http://www.mercedes.com' (length=23)
  public 'HrefValue2' => null
  public 'FormValue' => null
  public 'QueryStringValue' => null
  public 'DbValue' => string '8' (length=1)
  public 'Sortable' => boolean true
  public 'UploadPath' => string 'upload/' (length=7)
  public 'OldUploadPath' => string 'upload/' (length=7)
  public 'UploadAllowedFileExt' => string 'gif,jpg,jpeg,bmp,png,doc,xls,pdf,zip' (length=36)
  public 'UploadMaxFileSize' => int 2000000
  public 'UploadMaxFileCount' => int 0
  public 'UploadMultiple' => boolean false
  public 'UseColorbox' => boolean true
  public 'CellAttrs' => 
    array (size=0)
      empty
  public 'EditAttrs' => 
    array (size=0)
      empty
  public 'ViewAttrs' => 
    array (size=0)
      empty
  public 'LinkAttrs' => 
    array (size=1)
      'target' => string '_blank' (length=6)
  public 'DisplayValueSeparator' => string ', ' (length=2)
  public 'PlaceHolder' => string 'Trademark' (length=9)
  public 'AutoFillOriginalValue' => boolean false
  public 'ReqErrMsg' => string 'Please enter required field - %s' (length=32)
  public 'Caption' => string '' (length=0)
  public 'Exportable' => boolean true

Tentu saja jika Anda membuka halaman List dari menu Cars atau carslist.php, maka Anda akan melihat output kode di atas sebanyak jumlah Record yang sedang ditampilkan di halaman List tadi. Jadi, jangan kaget Anda melihatnya, mengapa informasi tadi seperti diulang-ulang terus.

Bandingkan jika Anda membuka halaman carsview.php yang hanya menampilkan sebuah Record, maka hanya satu kali output kode di atas yang ditampilkan.

Nah, dari output kode hasil var_dump($this->Trademark) di atas, maka itu artinya kita sudah mengetahui Property apa saja yang terdapat di dalam object Field. Artinya lagi, kita bisa menggunakan atau bahkan mengganti nilai yang terdapat di dalamnya (tergantung kemampuan yang disediakan di setiap Property).

Contoh, saya bisa mengubah Caption dari sebuah Field di halaman yang menampilkan data Caption seperti di halaman List, Add, Edit, Search, dan sebagainya, cukup dengan menggunakan kode berikut di dalam server event Row_Rendered:

	if ($this->Trademark->ViewValue == "BMW") {
		$this->Trademark->Caption = "My Trademark";
	} else {
		$this->Trademark->Caption = $this->Trademark->FldName;
	}

Dalam contoh kode barusan, kita dapat mengganti nilai Caption atau label dari field Trademark hanya jika nilai data yang ditampilkan di field itu sama dengan BMW. Selain itu, maka nilai Caption field menggunakan nilai dari property FldName.

Saya sarankan agar Anda melakukan eksperimen dengan cara mengekspos setiap Property di atas, supaya Anda tahu perbedaan dan kemampuan dari setiap Property tadi.

Perlu diingat juga, bahwa pastikan Anda sudah menonaktifkan kode var_dump() tadi jika Aplikasi Web Anda sudah dalam mode Production. Jangan sampai Pengguna akhir Aplikasi Web Anda mengetahui dalamannya, hehehe… 😀

Mudah sekali, bukan? Luar biasa memang PHPMaker! 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:PHPMaker Indonesia, Row_Rendered, Tutorial PHPMaker, var_dump

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Mari Mengenal Object di Kode yang Dihasilkan oleh PHPMaker
Mudahnya Mencegah User Tertentu Login di Aplikasi Web dari PHPMaker

Komentar

  1. Rijal mengatakan

    Ming, 26 Februari 2017 pada 7:00 am

    Pak, kalo merubah Size dari sebuah Field apa bisa juga ?
    jadi misal di Halaman Add size Field ‘Nama Customer’ = 30 (Default)
    tetapi ketika di halaman Grid Add Size nya diubah menjadi 18,

    Balas
    • Masino Sinaga mengatakan

      Sel, 28 Februari 2017 pada 10:55 pm

      Pakai jQuery untuk mengeset style atau CSS dari field tersebut berdasarkan ID elemennya.

      Balas
  2. Fikri Alimuddin mengatakan

    Sen, 29 Mei 2017 pada 10:41 am

    Pak, maaf saya mau bertanya
    Bisakah kita menambahkan class css untuk field tertentu?
    jadi ketika row itu bertambah otomatis maker akan menambahkan class css untuk field itu(Kasus detail row ketika add master detail)

    Balas
    • Masino Sinaga mengatakan

      Sen, 29 Mei 2017 pada 11:02 am

      Tidak perlu menambahkan class css ke row pada bagian grid detail. Anda cukup mengoptimalkan property data-table dan data-field milik control yang bertalian dari bagian Client Scripts. Gunakan jQuery code untuk mengaksesnya.

      Balas

Trackbacks

  1. Memanggil Javascript untuk Event Field Tertentu di Aplikasi Web dari PHPMaker – Masino Sinaga berkata:
    Sen, 2 Februari 2015 pukul 5:39 pm

    […] Jika Anda ingin melihat Property lainnya dari sebuah Field, silahkan baca artikel ini. […]

    Balas
  2. Bagaimana Cara Mengetahui Class dan Object di PHPMaker? – Masino Sinaga berkata:
    Ming, 31 Mei 2015 pukul 7:41 pm

    […] Sedangkan untuk mengetahui object apa saja yang terdapat di Aplikasi Web yang dihasilkan oleh PHPMaker, maka silahkan baca kembali artikel yang sudah saya tulis berjudul Mari Mengenal Object di Kode yang Dihasilkan oleh PHPMaker. Setelah mengenal object-object apa saja yang terdapat di PHPMaker, maka langkah selanjutnya Anda perlu mengetahi bagaimana cara mengoptimalkan penggunaan property yang terdapat di dalam suatu object. Untuk itu, silahkan baca artikel saya yang berjudul Mudahnya Mengoptimalkan Property Object di Aplikasi Web dari PHPMaker. […]

    Balas

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Masino Extensions for PHPMaker 2025 Now Changed!
  • Begini Mudahnya Mengurangi Lebar Combobox pada PHPMaker 2025
  • Mudahnya Mengubah Nilai Delay Auto Hide Success Message di PHPMaker 2025
  • Mudahnya Berpindah Layout dari Table ke Cards di Halaman List lewat PHPMaker 2025
  • Jangan Lupa Pakai AdjustSql Saat Insert atau Update Data Lewat ExecuteStatement

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Charly pada PHPMaker: PHP Code Generator + PHP Framework
  • Masino Sinaga pada PHPMaker: PHP Code Generator + PHP Framework
  • Masino Sinaga pada PHPMaker: PHP Code Generator + PHP Framework
  • Charly pada PHPMaker: PHP Code Generator + PHP Framework
  • Charly pada PHPMaker: PHP Code Generator + PHP Framework

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2025 | WordPress | Catat masuk | Kembali ke atas