Think Different [vokasi] Materi Pem. Web + Kisi UAS 12_MVC pada PHP

(1)

MVC Pada PHP

Aryo Pinandito, ST, M.MT Fajar Pradana, S.ST, M.Eng Issa Arwani, S.Kom, M.Sc

1. PENDAHULUAN 1.1 Pengantar 1.2 Tujuan 1.3 Definisi

2. Penerapan MVC pada PHP 2.1. Layer controller 2.2. Layer model 2.3. Layer view

3. MVC pada framework PHP

1. PENDAHULUAN

1.1 Pengantar

OOP (Object Oriented Programming) atau Pemorgraman Berbasis Objek telah berkembang pesat selaras dengan perkembangan PHP versi 5. Perkembangan PHP ke arah OOP mendorong perancangan web dengan php kearah model arsitektur MVC. Saat ini, arsitektur MVC adalah pola yang paling banyak digunakan untuk aplikasi web. Model ini yang awalnya digunakan untuk pertama kalinya di Smalltalk dan kemudian diadopsi dan dipopulerkan oleh

Java, saat ini ada lebih dari selusin kerangka (framework) web PHP berdasarkan pola MVC.

Model-View-Controller atau MVC adalah sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework dalam aplikasi website adalah berbasis arsitektur MVC. MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web.

1.2 Tujuan

Penguasaan materi dalam modul ini dirancang agar mahasiswa mampu untuk :  Menjelaskan dan memahami tentang definisi dan konsep penerapan

arsitektur MVC pada PHP.

 Penerapan masing-masing layer arsitektur MVC pada layer dengan contoh studi kasus.

 Menjelaskan dan memahami beberapa framework MVC dengan PHP.

Halaman 1

MODUL

12

SEL

F-PR

OP

AG

ATI

NG

EN

TRE

PR

EN

EU

RIA

L

ED

UC

ATI

ON

DE

VEL

OP

ME

NT


(2)

1.3 Konsep penerapan arsitektur MVC pada web

Ada beberapa model penerapan Arsitektur MVC dalam perancangan aplikasi berbasis web. Model yang paling sederhana adalah model server side MVC. Model ini biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan client side seperti Javascript, Java applet, flash

dan lain-lain. Server Side MVC menyerahkan keseluruhan proses bisnis pada server, aplikasi pada sisi pengguna hanya dapat menerima. MVC jenis ini kadang-kadang disebut juga dengan nama thin client.

Gambar 12.1 Arsitektur MVC client-server

Php merupakan salah satu bahasa pemrograman yang banyak digunakan untuk mengembangkan web bisa kita terapkan dalam model server side MVC. Secara umum tetap ada tiga layer yang akan dirancang yaitu;

1. Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.

2. View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web atau dalam pemrograman kita kenal dengan halaman tempat interaksi antara manusia dan komputer (User Interface).

3. Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.

Gambar 12.2 Proses MVC

Dalam Sequence Diagram MVC berikut dapat diamati aliran data selama permintaan.

Brawijaya University 2012

Pemrograman Web / MVC pada PHP


(3)

Gambar 12.3 Sequence Diagram MVC

2. Penerapan Arsitektur MVC pada PHP

Misal kita ingin membuat aplikasi web sederhana tentang data buku. Perancangan untuk kasus ini akan kita gunakan arsitektur MVC dengan php. Contoh aplikasi singkat ini memiliki struktur yang sederhana, menempatkan setiap modul MVC dalam satu folder:

Gambar 12.4 Struktur direktori Arsitektur MVC

2.1 Controller

Controller di sini berperan sebagai logic aspect dari suatu aplikasi / mengatur user flow. Controller akan merespon setiap inputan dari user

dengan melakukan pemanggilan terhadap model dan view yang sesuai sehingga request / permintaan dari user tersebut dapat terpenuhi dengan baik.

Kelas Controller yang kita rancang hanya memiliki satu fungsi dan konstruktor. Konstruktor akan membuat objek dari kelas model. Sesuai dengan diagram sequence diatas, ketika permintaan dilakukan, controller

memutuskan data yang diperlukan dari model. Kemudian memanggil kelas

model untuk mengambil data. Kode ini sangat sederhana. Perhatikan Halaman 3


(4)

bahwa controller tidak tahu apa-apa tentang database atau tentang bagaimana halaman yang akan dihasilkan. Berikut cohtoh dari kelas

controller yang dibuat.

include_once("model/Model.php"); class Controller {

     public $model;

     public function __construct()      {

      $this­>model = new Model();      } 

     public function invoke()      {

      if (!isset($_GET['book']))       {

  // no special book is requested, we'll show a list of all  available books

       $books = $this­>model­>getBookList();        include 'view/booklist.php';

      }       else       {

  // show the requested book

       $book = $this­>model­>getBook($_GET['book']);        include 'view/viewbook.php';

      }      } }

Untuk memanggil kelas controller, kita akan membuat file index.php. // index.php file

include_once("controller/Controller.php"); $controller = new Controller();

$controller­>invoke();

2.2 Model dan Entity Class

Pola arsitektur MVC memiliki layer yang disebut dengan Model yang merepresentasikan data yang digunakan oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain. Setiap kali method / function dari suatu aplikasi butuh untuk melakukan akses ke dalam suatu data, maka function / method tersebut tidak langsung berinteaksi dengan sumber data


(5)

tersebut melainkan harus melalui model terlebih dahulu. Dalam hal ini hanya model yang diijinkan untuk berinteraksi langsung dengan sumber data. Secara singkat, layer model ini menangani content dari aplikasi. Dalam contoh ini kita membuat model yang diwakili oleh 2 kelas: kelas "Model" dan kelas "Buku". Kelas "Buku" adalah kelas entitas. Kelas ini yang nantinya akan kita lempar ke view yang merupakan representasi data yang ada di model yang diambil dari database.

Contoh class model:

include_once("model/Book.php"); class Model {

public function getBookList() {

// here goes some hardcoded values to simulate the database return array(

"Jungle Book" => new Book("Jungle Book", "R. Kipling", "A  classic book."),

"Moonwalker" => new Book("Moonwalker", "J. Walker", ""), "PHP for Dummies" => new Book("PHP for Dummies", "Some Smart  Guy", "")

); }

public function getBook($title) {

// we use the previous function to get all the books and then  we return the requested one.

// in a real life scenario this will be done through a db  select command

$allBooks = $this­>getBookList(); return $allBooks[$title];

} }

Contoh class Buku:

class Book {

public $title; public $author; public $description;

public function __construct($title, $author,  $description)

    {

        $this­>title = $title;   $this­>author = $author;


(6)

  $this­>description = $description;     }

}

2.3 View (presentation)

View atau layer presentasi bertanggung jawab untuk pemformatan data yang diterima dari model dalam sebuah bentuk yang bisa diakses kepada pengguna. Sebisa mungkin, didalam View tidak berisi logika-logika kode tetapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. Di dalam view jangan pernah ada kode untuk melakukan koneksi ke basis data. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller.

Dalam contoh yang dipakai, ada dua view yang ditampilkan, satu untuk menampilkan satu buku dan yang lainnya untuk menampilkan sebuah daftar buku.

Contoh viewbook.php <html>

<head></head> <body>

<?php 

echo 'Title:' . $book­>title . '<br/>'; echo 'Author:' . $book­>author . '<br/>';

echo 'Description:' . $book­>description . '<br/>'; ?>

</body> </html>

Contoh booklist.php

<html>

<head></head> <body>

<table>

<tbody><tr><td>Title</td><td>Author</td><td>Description</td></ tr></tbody>

<?php 

foreach ($books as $title => $book) {


(7)

echo '<tr><td><a href="index.php?book='.$book­ >title.'">'.

$book­>title.'</a></td><td>'.$book­ >author.'</td><td>'.

$book­>description.'</td></tr>'; }

?> </table> </body> </html>

3. Arsitektur MVC pada framework PHP

Framework adalah sekumpulan fungsi, class, dan aturan-aturan. Berbeda dengan library yang sifatnya untuk tujuan tertentu saja, framework

bersifat menyeluruh mengatur bagaimana kita membangun aplikasi.

Framework memungkinkan kita membangun aplikasi dengan lebih cepat karena sebagai developer kita akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal penunjang lainnya seperti koneksi database, form validation, GUI, dan security; umumnya telah disediakan oleh framework. Disamping itu dengan aturan-aturan yang jelas dan harus dipatuhi, aplikasi kita lebih solid, more readable, dan kolabarasi dalam tim dapat lebih mudah dilaksanakan.

Kita sebagai seorang software developer bisa dianalogikan sebagai seorang tukang bangunan. Apabila anda perhatikan, seorang tukang bangunan bisa membuat sebuah rumah. Tidak akan menjadi masalah bila hanya untuk membangun rumah dengan satu atau dua lantai. Tetapi akan menjadi masalah apabila dia mendapatkan pekerjaan untuk membangun sebuah gedung bertingkat. Permasalahan akan menjadi semakin komplek, makin banyak pekerja dan material yang dilibatkan, belum lagi dengan jadwal yang ketat. Kita pun seperti itu. Membangun aplikasi kecil tentu tidak menjadi masalah. Namun bagaimana bagaimana apabila aplikasi kecil kita tersebut dengan makin lama makin bertambah requirementnya sejalan dengan kebutuhan user. Di sini lah peran penting sebuah framework dalam membangun aplikasi.


(8)

Gambar 12.5 Framework PHP yang menetapkan pola MVC Contoh Framework MVC pada PHP :

CakePHP yang bersifat open source ini juga mengadopsi konsep arsitektur MVC (Model View Controller) dan ORM (Object Relational Mapping), yang mendukung JavaScript, AJAX, RSS, Email dan XML yang sudah terintegrasi dalam core library-nya. Aplikasi ini bisa dijalankan di PHP4 maupun PHP5, serta mendukung berbagai

database populer seperti MySQL, SQLite, PostSQL, Oracle, MS SQL, dan DB 2. Dengan menggunakan modul tambahan seperti Security, Session, Access Control List (memungkinkan pengaturan user dan hak aksesnya dalam aplikasi yang kita kembangkan dengan sarana yang lebih mudah dipahami), Authentication memungkinkan kita membangun aplikasi dengan cepat dan mudah, serta Scaffolding

(fitur yang barangkali jarang dijumpai pada framework lain, fitur ini bisa mengenerate semua yang dibutuhkan untuk membuat aplikasi (create, read, update, delete) secara lengkap). Kekurangannya adalah pada bagian dokumentasi, dokumentasi yang disediakan kurang begitu bagus namun sudah lengkap. Struktur kerja MVC pada CakePHP yaitu, user melakukan request yang ditangani oleh

Controller, Controller memiliki banyak metode untuk menangani

request tersebut. Controller mengambil data pada database melalui

Model, Model tersebut memberikan data yang relevan ke dalam

Controller. Controller akan mengolah data dan memberikannya pada View (tampilan yang dipilih). View ini yang akan dilihat oleh

browser-nya.

Zend Framework merupakan pustaka berbasis PHP5 yang menggunakan arsitektur pemrograman Model-View-Controller

(MVC). Zend Framework dikembangkan oleh perorangan dari

developer yang berpengalaman dalam menangani aspek – aspek dari OOP yang lebih kompleks, lebih fleksibel untuk masalah hierarki direktori, lebih mudah digunakan dan dikembangkan karena tidak harus dipelajari semua untuk memakai sebagian saja. Fokus dari Zend Framework adalah untuk membangun aplikasi web 2.0 dan untuk memudahkan dalam mengakses API dari berbagai vendor seperti Google, Yahoo!, Flickr dan Amazon. Modul yang digunakan sangat spesifik untuk web 2.0 saja, seperti AJAX, Syndication, Web Services dan Search.


(9)

Symfony Project merupakan framework yang ditujukan untuk PHP5, serta menganut Model MVC. Dukungan AJAX juga tersedia, dokumentasi cukup baik serta kompatibel terhadap berbagai sistem

database. Kekurangan dari Symfony adalah proses instalasi dan konfigurasi yang cukup rumit.

Canvas (web framework) merupakan web aplikasi framework yang bersifat open source, dapat dijalankan pada PHP 5, dapat mendukung konsep ORM, serta menganut Model View Controller. Menggunakan MySQL sebagai default database relasionalnya dan Smarty sebagai default template sistemnya, tapi tetap memungkinkan untuk menggunakan database dan template sistem yang lainnya.

CodeIgniter juga mendukung PHP4 dan PHP5, mengadopsi arsitektur MVC namun tidak mendukung konsep ORM. Modul siap pakai yang disediakan seperti Session Management, Email Sending, Image Manipulation Library, File Uploading, XML-RPC, Calendaring. Berbeda dengan CakePHP, CodeIgniter ini tersedia dokumentasi yang sangat banyak dan terorganisir dengan baik.

Prado merupakan framework yang berbasis komponen dan Event-Driven, dengan konsep yang mirip seperti pemrograman di ASP.Net dan Delphi yang mendukung pemakaian database populer. Komponen di Prado merupakan gabungan dari file spesifikasi dalam format XML, template HTML dan PHP class. Kekurangan dari Prado sendiri, hanya mendukung PHP 5 saja.


(10)

REFERENSI

Wikipedia (http://wikipedia.org/wiki/Model-View-Controller)

J. Deitel, Paul. 2007, Java How To Program, 6th Edition, Prentice Hall.

Matt Zandstra, 2010, PHP Objects, Patters and Practice, 3rd Edition, Apress.

PROPAGASI

A. Latihan dan Diskusi (Propagasi Vertikal dan Horizontal)

1. Jelaskan konsep arsitektur MVC pada web.

2. Jelaskan bagaimana php bisa diterapkan menggunakan konsep arsitektur MVC. 3. Apa yang dimaksud dengan framework?

4. Jelaskan keuntungan jika membuat aplikasi berdasarkan framework.

5. Berikan contoh beberapa framework menggunakan php selain yang ada dalam modul ini.

A. Tugas (Evaluasi mandiri)

1. Implementasikan contoh kode MVC dengan PHP yang ada pada bab 12 di modul ini.

2. Implementasikan aplikasi yang dirancang dengan arsitektur MVC pada modul sebelumnya (modul 11) menggunakan PHP.


(1)

tersebut melainkan harus melalui model terlebih dahulu. Dalam hal ini hanya model yang diijinkan untuk berinteraksi langsung dengan sumber data. Secara singkat, layer model ini menangani content dari aplikasi. Dalam contoh ini kita membuat model yang diwakili oleh 2 kelas: kelas "Model" dan kelas "Buku". Kelas "Buku" adalah kelas entitas. Kelas ini yang nantinya akan kita lempar ke view yang merupakan representasi data yang ada di model yang diambil dari database.

Contoh class model:

include_once("model/Book.php"); class Model {

public function getBookList() {

// here goes some hardcoded values to simulate the database return array(

"Jungle Book" => new Book("Jungle Book", "R. Kipling", "A  classic book."),

"Moonwalker" => new Book("Moonwalker", "J. Walker", ""), "PHP for Dummies" => new Book("PHP for Dummies", "Some Smart  Guy", "")

); }

public function getBook($title) {

// we use the previous function to get all the books and then  we return the requested one.

// in a real life scenario this will be done through a db  select command

$allBooks = $this­>getBookList(); return $allBooks[$title];

} }

Contoh class Buku: class Book {

public $title; public $author; public $description;

public function __construct($title, $author,  $description)

    {

        $this­>title = $title;   $this­>author = $author;


(2)

  $this­>description = $description;     }

}

2.3 View (presentation)

View atau layer presentasi bertanggung jawab untuk pemformatan data yang diterima dari model dalam sebuah bentuk yang bisa diakses kepada pengguna. Sebisa mungkin, didalam View tidak berisi logika-logika kode tetapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. Di dalam view jangan pernah ada kode untuk melakukan koneksi ke basis data. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller.

Dalam contoh yang dipakai, ada dua view yang ditampilkan, satu untuk menampilkan satu buku dan yang lainnya untuk menampilkan sebuah daftar buku.

Contoh viewbook.php <html>

<head></head> <body>

<?php 

echo 'Title:' . $book­>title . '<br/>'; echo 'Author:' . $book­>author . '<br/>';

echo 'Description:' . $book­>description . '<br/>'; ?>

</body> </html>

Contoh booklist.php <html>


(3)

echo '<tr><td><a href="index.php?book='.$book­ >title.'">'.

$book­>title.'</a></td><td>'.$book­ >author.'</td><td>'.

$book­>description.'</td></tr>'; }

?> </table> </body> </html>

3. Arsitektur MVC pada framework PHP

Framework adalah sekumpulan fungsi, class, dan aturan-aturan. Berbeda dengan library yang sifatnya untuk tujuan tertentu saja, framework bersifat menyeluruh mengatur bagaimana kita membangun aplikasi. Framework memungkinkan kita membangun aplikasi dengan lebih cepat karena sebagai developer kita akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal penunjang lainnya seperti koneksi database, form validation, GUI, dan security; umumnya telah disediakan oleh framework. Disamping itu dengan aturan-aturan yang jelas dan harus dipatuhi, aplikasi kita lebih solid, more readable, dan kolabarasi dalam tim dapat lebih mudah dilaksanakan.

Kita sebagai seorang software developer bisa dianalogikan sebagai seorang tukang bangunan. Apabila anda perhatikan, seorang tukang bangunan bisa membuat sebuah rumah. Tidak akan menjadi masalah bila hanya untuk membangun rumah dengan satu atau dua lantai. Tetapi akan menjadi masalah apabila dia mendapatkan pekerjaan untuk membangun sebuah gedung bertingkat. Permasalahan akan menjadi semakin komplek, makin banyak pekerja dan material yang dilibatkan, belum lagi dengan jadwal yang ketat. Kita pun seperti itu. Membangun aplikasi kecil tentu tidak menjadi masalah. Namun bagaimana bagaimana apabila aplikasi kecil kita tersebut dengan makin lama makin bertambah requirementnya sejalan dengan kebutuhan user. Di sini lah peran penting sebuah framework dalam membangun aplikasi.


(4)

Gambar 12.5 Framework PHP yang menetapkan pola MVC Contoh Framework MVC pada PHP :

CakePHP yang bersifat open source ini juga mengadopsi konsep arsitektur MVC (Model View Controller) dan ORM (Object Relational Mapping), yang mendukung JavaScript, AJAX, RSS, Email dan XML yang sudah terintegrasi dalam core library-nya. Aplikasi ini bisa dijalankan di PHP4 maupun PHP5, serta mendukung berbagai database populer seperti MySQL, SQLite, PostSQL, Oracle, MS SQL, dan DB 2. Dengan menggunakan modul tambahan seperti Security, Session, Access Control List (memungkinkan pengaturan user dan hak aksesnya dalam aplikasi yang kita kembangkan dengan sarana yang lebih mudah dipahami), Authentication memungkinkan kita membangun aplikasi dengan cepat dan mudah, serta Scaffolding (fitur yang barangkali jarang dijumpai pada framework lain, fitur ini bisa mengenerate semua yang dibutuhkan untuk membuat aplikasi (create, read, update, delete) secara lengkap). Kekurangannya adalah pada bagian dokumentasi, dokumentasi yang disediakan kurang begitu bagus namun sudah lengkap. Struktur kerja MVC pada CakePHP yaitu, user melakukan request yang ditangani oleh Controller, Controller memiliki banyak metode untuk menangani request tersebut. Controller mengambil data pada database melalui Model, Model tersebut memberikan data yang relevan ke dalam Controller. Controller akan mengolah data dan memberikannya pada View (tampilan yang dipilih). View ini yang akan dilihat oleh browser-nya.

Zend Framework merupakan pustaka berbasis PHP5 yang menggunakan arsitektur pemrograman Model-View-Controller (MVC). Zend Framework dikembangkan oleh perorangan dari


(5)

Symfony Project merupakan framework yang ditujukan untuk PHP5, serta menganut Model MVC. Dukungan AJAX juga tersedia, dokumentasi cukup baik serta kompatibel terhadap berbagai sistem database. Kekurangan dari Symfony adalah proses instalasi dan konfigurasi yang cukup rumit.

Canvas (web framework) merupakan web aplikasi framework yang bersifat open source, dapat dijalankan pada PHP 5, dapat mendukung konsep ORM, serta menganut Model View Controller. Menggunakan MySQL sebagai default database relasionalnya dan Smarty sebagai default template sistemnya, tapi tetap memungkinkan untuk menggunakan database dan template sistem yang lainnya.

CodeIgniter juga mendukung PHP4 dan PHP5, mengadopsi arsitektur MVC namun tidak mendukung konsep ORM. Modul siap pakai yang disediakan seperti Session Management, Email Sending, Image Manipulation Library, File Uploading, XML-RPC, Calendaring. Berbeda dengan CakePHP, CodeIgniter ini tersedia dokumentasi yang sangat banyak dan terorganisir dengan baik.

Prado merupakan framework yang berbasis komponen dan Event-Driven, dengan konsep yang mirip seperti pemrograman di ASP.Net dan Delphi yang mendukung pemakaian database populer. Komponen di Prado merupakan gabungan dari file spesifikasi dalam format XML, template HTML dan PHP class. Kekurangan dari Prado sendiri, hanya mendukung PHP 5 saja.


(6)

REFERENSI

Wikipedia (http://wikipedia.org/wiki/ Model-View-Controller)

J. Deitel, Paul. 2007, Java How To Program, 6th Edition, Prentice Hall.

Matt Zandstra, 2010, PHP Objects, Patters and Practice, 3rd Edition, Apress.

PROPAGASI

A. Latihan dan Diskusi (Propagasi Vertikal dan Horizontal) 1. Jelaskan konsep arsitektur MVC pada web.

2. Jelaskan bagaimana php bisa diterapkan menggunakan konsep arsitektur MVC. 3. Apa yang dimaksud dengan framework?

4. Jelaskan keuntungan jika membuat aplikasi berdasarkan framework.

5. Berikan contoh beberapa framework menggunakan php selain yang ada dalam modul ini.

A. Tugas (Evaluasi mandiri)

1. Implementasikan contoh kode MVC dengan PHP yang ada pada bab 12 di modul ini.

2. Implementasikan aplikasi yang dirancang dengan arsitektur MVC pada modul sebelumnya (modul 11) menggunakan PHP.


Dokumen yang terkait

Analisis komparatif rasio finansial ditinjau dari aturan depkop dengan standar akuntansi Indonesia pada laporan keuanagn tahun 1999 pusat koperasi pegawai

15 355 84

Analisis korelasi antara lama penggunaan pil KB kombinasi dan tingkat keparahan gingivitas pada wanita pengguna PIL KB kombinasi di wilayah kerja Puskesmas Sumbersari Jember

11 241 64

ANALISIS PENGARUH PENERAPAN PRINSIP-PRINSIP GOOD GOVERNANCE TERHADAP KINERJA PEMERINTAH DAERAH (Studi Empiris pada Pemerintah Daerah Kabupaten Jember)

37 330 20

FREKWENSI PESAN PEMELIHARAAN KESEHATAN DALAM IKLAN LAYANAN MASYARAKAT Analisis Isi pada Empat Versi ILM Televisi Tanggap Flu Burung Milik Komnas FBPI

10 189 3

SENSUALITAS DALAM FILM HOROR DI INDONESIA(Analisis Isi pada Film Tali Pocong Perawan karya Arie Azis)

33 290 2

Analisis Sistem Pengendalian Mutu dan Perencanaan Penugasan Audit pada Kantor Akuntan Publik. (Suatu Studi Kasus pada Kantor Akuntan Publik Jamaludin, Aria, Sukimto dan Rekan)

136 695 18

DOMESTIFIKASI PEREMPUAN DALAM IKLAN Studi Semiotika pada Iklan "Mama Suka", "Mama Lemon", dan "BuKrim"

133 700 21

Representasi Nasionalisme Melalui Karya Fotografi (Analisis Semiotik pada Buku "Ketika Indonesia Dipertanyakan")

53 338 50

PENERAPAN MEDIA LITERASI DI KALANGAN JURNALIS KAMPUS (Studi pada Jurnalis Unit Aktivitas Pers Kampus Mahasiswa (UKPM) Kavling 10, Koran Bestari, dan Unit Kegitan Pers Mahasiswa (UKPM) Civitas)

105 442 24

DAMPAK INVESTASI ASET TEKNOLOGI INFORMASI TERHADAP INOVASI DENGAN LINGKUNGAN INDUSTRI SEBAGAI VARIABEL PEMODERASI (Studi Empiris pada perusahaan Manufaktur yang Terdaftar di Bursa Efek Indonesia (BEI) Tahun 2006-2012)

12 142 22