mvc framework java spring.docx

Upload: himawan-sutanto

Post on 30-Oct-2015

510 views

Category:

Documents


4 download

TRANSCRIPT

MVC Framework Java : Spring

MAKALAH

Diajukan Untuk Memenuhi Tugas Mata Kuliah Rekayasa Perangkat Lunak IIProgram Studi Teknik InformatikaFakultas Teknik Dan Ilmu KomputerUniversitas Komputer Indonesia

Dosen : Erlangga, S.Kom.

MACHMUD KHOIRUL BASARI 10109257HIMAWAN SUTANTO MS10109253

PROGRAM STUDI TEKNIK INFORMATIKAFAKULTAS TEKNIK DAN ILMU KOMPUTERUNIVERSITAS KOMPUTER INDONESIABANDUNG2013

KATA PENGANTAR

Segala puji dan syukur kami panjatkan kepada Tuhan Yang Maha Kuasa karena atas kasih karunia-Nya kami dapat menyelesaikan Makalah MVC Framework Java : Spring yang sebagaimana diajukan guna memenuhi tugas mata kuliah Keamanan Sistem Informasi oleh dosen Irawan Afrianto S.T, M.T.Kami mengucapkan terima kasih kepada semua pihak yang telah membantu sehingga makalah ini dapat diselesaikan sesuai dengan waktunya. Harapan kami semoga makalah dapat berguna untuk setiap pembacanya, sehingga visi kita semua untuk membangun dan mengembangkan ilmu pengetahuan di Indonesia ini dapat terlaksana dengan baik.Kami menyadari makalah ini masih jauh dari sempurna. Oleh karena itu, kami mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan makalah ini. Semoga makalah ini bermanfaat bagi kita semua, memberikan informasi bagi masyarakat dan bermanfaat untuk pengembangan ilmu pengetahuan terutama dibidang IT.

Bandung, Juni 2013

PEMBAHASAN

1. Definisi JavaJava adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.

2. Definisi FrameworkFramework adalah kerangka kerja. Framework juga dapat diartikan sebagai kumpulan script (terutama class dan function) yang dapat membantu developer/programmer dalam menangani berbagai masalah-masalah dalam pemrograman seperti koneksi ke database, pemanggilan variabel, file,dll sehingga developer lebih fokus dan lebih cepat membangun aplikasi. Bisa juga dikatakan Framework adalah komponen pemrorgaman yang siap re-use kapan saja, sehingga programmer tidak harus membuat skrip yang sama untuk tugas yang sama. Misalkan saat anda membuat aplikasi web berbasis ajax yang setiap kali harus melakukan XMLHttpRequest, maka Xajax telah mempurmudahnya untuk anda dengan menciptakan sebuah objek khusus yang siap digunakan untuk operasi Ajax berbasis PHP. Itu adalah salah satu contoh kecil, selebihnya Framework jauh lebih luas dari itu. Secara sederhana bisa dijelaskan bahwa framework adalah kumpulan fungsi (libraries), maka seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan library) dari awal, programmer tinggal memanggil kumpulan library atau fungsi yang sudah ada didalam framerwork, tentunya cara menggunakan fungsi-fungsi itu sudah ditentukan oleh framework. Beberapa contoh fungsi-fungsi standar yang telah tersedia dalam suatu frameworkadalah fungsi paging, enkripsi, email, SEO, session, security, kalender, bahasa, manipulasi gambar, grafik, tabel bergaya zebra, validasi, upload, captcha, proteksi terhadap XSS(XSS filtering), template, kompresi, XML dan lain-lain.

Macam-macam framework java sebagai berikut :a. Spring MVCb. Hibernate

3. Manfaat FrameworkBerikut beberapa manfaat dari penggunaan framework dalam membuat dan mengembangkan aplikasi berbasis web :1. Manfaatnya dapat membantu kerja developer/programmer dalam membangun aplikasi sehingga aplikasi bisa selesai dalam waktu yang singkat2. Penerapan Design Patterns memudahkan dalam rancangan, pengembangan dan pemeliharaan sistem3. Stability dan Reliability, aplikasi yang dibangun lebih stabil dan handal karena berbasis pada framework yang sudah teruji stabilitas dan kehandalannya4. Coding style konsisten, memudahkan dalam membaca code dan dalam menemukan bugs5. Security concert, framework mengantisipasi dan memasang perisai terhadap adanya berbagai masalah keamanan yang mungkin timbul6. Dokumentasi, framework dapat mendisiplinkan untuk menulis dokumentasi untuk apa yang ditulis4. Arsitektur MVCMVC adalah singkatan dari Model, View, Controller, yang merupakan sebuah arsitektur untuk membuat sebuah program. Arsitektur ini menekankan kepada pembagian dari komponen-komponen program menjadi tiga bagian utama yaitu Model, View, dan Controller. Diagram dalam Gambar 1.1 memberikan gambaran konseptual tentang arsitekturMVC.

Gambar 1.1 Diagram Arsitektur MVC

Interaksi user dengan program digambarkan dengan arah panah besar yang menuju View. Kemudian View memanggil Controller. Selanjutnya Controller akan membuat atau memanipulasi Model. Model ini akan diberikan kepada View untuk ditampilkan kepada user.Dengan demikian tugas View adalah menangani tampilan program dan interaksi antara user dengan program. Controller melakukan koordinasi antara View dan Model. Sedangkan Model adalah bagian yang bekerja di belakang layar untuk memenuhi permintaan user dalam sebuah interaksi. Tujuan dari pembagian program ke dalam tiga bagian besar ini adalah untuk memisahkan fokus perhatian, tanggung jawab, dan logic ke dalam bagian masing-masing. View hanya fokus kepada tampilan dan menangani interaksi dengan user. Model hanya fokus kepada manipulasi objek-objek non-visual dan logic di dalamnya untuk memenuhi skenario sebuah proses bisnis. Sedangkan Controller menerima input dari View,membuat dan memanipulasi Model, lalu memberikan Model kepada View untuk ditampilkan ke user. Cara mudah untuk memahami arsitektur MVC ini adalah dengan menggunakan analogi organisasi bisnis dan peran yang terdapat di dalamnya. Sebuah organisasi bisnis biasanya memiliki staf marketing, mandor, dan staf operasional. Staf marketing melakukan segala upaya untuk memikat calon pelanggan. Tugasnya adalah menjual produk kepada calon pelanggan. View dalam MVC ibarat staf marketing ini. Tugasnya adalah menjual dengan memberikan presentasi yang menarik kepada user. Peran lain yang terdapat dalam sebuah organisasi bisnis adalah staf produksi yang bekerja di belakang layar memenuhi target yang telah ditetapkan untuk bisa memenuhi permintaan pelanggan. Pekerjaan staf produksi tidak tampak oleh pelanggan itu sendiri. Staf produksi juga tidak bertanggung jawab untuk langsung bertemu dengan pelanggan. Model dalam MVC ibarat staf produksi ini. Tugasnya adalah bekerja dengan memberikan segala daya dan upayanya untuk memberikan hasil. Peran terakhir dalam sebuah organisasi bisnis adalah supervisor yang mengurusi manajemen antara staf marketing dan staf produksi. Berdasarkan masukan dari staf marketing, supervisor menetapkan target produksi yang kemudian akan dikerjakan oleh staf operasi. Supervisor kemudian mempertemukan antara staf produksi dan staf marketing untuk melakukan koordinasi sebelum produk-nya dipresentasikan kepada pelanggan. Setelah oke, supervisor kemudian memerintahkan staf marketing untuk melakukan presentasi produk kepada calon pelanggan. Controller dalam MVC ibarat supervisor. Tugasnya adalah melakukan manajemen dan koordinasi kerja antara View dan Model. Hubungan ketiga komponen Model, View, dan Controller menciptakan dependensi antar komponen. View bergantung kepada Model, tetapi Model tidak bergantung kepada View. Designer View perlu mengetahui bagaimana struktur data dari Model untuk bisa menampilkan Model tersebut dengan benar dalam View, sebaliknya developer yang mengembangkan Model tidak perlu tahu sama sekali bagaimana bentuk tampilan dari Model tersebut. Controller dan View saling bergantung satu sama lain. View memerlukan Controller untuk meneruskan input dari user ke Model, sedangkan Controller memerlukan View untuk meng-update tampilan setelah Model selesai dengan tugasnya. Controller bergantung kepada Model karena perlu memanggil Model dan memberikannya kepada View. Sebaliknya Model tidak bergantung kepada Controller. Dengan demikian, arsitektur MVC memberikan pemisahan tugas dan tanggung jawab yang jelas antara Model, View, dan Controller. Sehingga developer sesuai dengan keahliannya bisa memusatkan perhatian kepada logic proses bisnis di dalam Model. Designer yang mumpuni dalam grafik dan tampilan bisa fokus mengembangkan tampilan yang akan memikat user. Kedua komponen tersebut bisa bekerja dengan harmonis yang diatur oleh Controller. Pemisahan yang jelas ini juga akan memudahkan pengetesan terhadap masing-masing komponen.

5. Definisi SpringSpring adalah framework pengembangan aplikasi ysang dikembangkan oleh Rod Johnson, muncul karena spesifikasi EJB yang memaksakan pengembangan komponen harus mengikuti aturan EJB agar dapat berjalan dalam aplikasi server SJAS dan Jboss. Dengan Spring, pengembangan komponen dapat dilakukan dengan teknik pemrograman yang lebih sederhana.

6. Sejarah SpringSpring merupakan open source framework yang diciptakan oleh Rod Johnshon, Pada akhir tahun 1996, Sun menerbitkan spesifikasi Java Beans 1.00A. spesifikasi ini menjelaskan tentang peraturan peraturan coding java yang memperbolehkan suatu objek yang bisa menjadi komponen yang bisa dipakai berulang ulang ke dalam suatu aplikasi java yang lebih kompleks. selanjutnya pada tahun 1998, Sun kembali menerbitkan policiesnya tentang EJB(Enterprise Java Beans) yang merupakan elemen yang reusable namun dengan kelebihan kelebihan seperti server side dan menyediakan banyak kemampuan untuk enterprise service. EJB dibuat tentunya untuk mempermudah para developer untuk membuat aplikasi enterprise, namun para developer merasa tidak demikian. EJB sulit dan sangat rumit sehingga justru membuat para developer justru kehilangan minat terhadap EJB ini.Untungnya sekarang pemrograman JAVA lebih berkembang, seperti adanya AOP (Aspect Oriented Programming) dan IoC(Inversion of Control) sehingga memberikan Java Beans kekuatan yang lebih, dibandingkan EJB yang sangat rumit.

7. Keuntungan Springa) IoC Sebagai sebuah framework, spring menawarkan loosely coupling dengan teknik yang dinamakan IoC. jadi dengan menggunakan IoC, objek memberikan dependenciesnya saat pembuatan dengan menggunakan entity luar yang mengkoordinir setiap objek di system. Untuk lebih jelasnya akan dijelaskan pada bagian Dependency Injection.

b) AOP AOP merupakan salah satu paradigma pemrograman dengan tujuan untuk meningkatkan modularitas dengan memfokuskan pada pemisahan-pemisahan modul dengan tujuan-tujuan khusus yang biasa disebut dengan "Crosscutting Concerns".

c) Bersifat ContainerSpring juga merupakan sebuah Container yang mengatur daur hidup dan konfigurasi dari objek. Dalam spring Anda dapat mendeklarasi bagaimana setiap objek tersebut seharusnya dibuat, bagaimana seharusnya di konfigurasikan dan bagaimana objek tersebut dapat berasosiasi dengan yang lain.

d) Lightweight containerBeberapa container aplikasi seperti, EJB Container memaksa kita mengikuti suatu aturan (EJB-spec) untuk membuat komponen interface atau model. EJB merupakan standar pengembangan komponen dalam java yg berjalan disisi server dengan suatu kontrak terhadap aplikasi server seperti SJAS dan JBoss. Namun dengan konsep lightweight tidak diperlukan lagi suatu spesifikasi khusus dalam pembuatan komponen (POJO), berikut ciri lightweight container : POJO Life-cycle management Dependency Injection Consistent Configuration Service Attachment

e) Merupakan FrameworkSpring merupakan sebuah framework, maksudnya spring memungkinkan untuk membangun dan mengkonfigurasi sebuah aplikasi yang kompleks dari komponen-komponen yang sederhana. Dalam Spring, objek didefinisikan dalam file XML.

8. Dependency Injection (DI)Pada bagian sebelumnya telah diuraikan sedikit tentang IoC, dimana IoC merupakan nama lain dari Dependency Injection. Jadi dengan menggunakan IoC, objek memberikan dependenciesnya saat pembuatan dengan menggunakan entity luar yang mengkoordinir setiap objek di system. Jadi IoC ialah pembalikan tanggung jawab dengan memandang bagaimana sebuah objek mendapatkan references untuk mengumpulkan objek. jadi daripada objek melookup dependencies dari container, container justru memberikan dependenciesnya ke objek saat instansiasi tanpa menunggu untuk diminta.Pada IoC scenario, container membuat semua objek, kemudian me-wire semua objek tadi dengan cara mensetting properti property yang dibutuhkan, dan memanggilnya saat method getBean di panggil.

9. Aspect Oriented Programming (AOP)

Dalam pembuatan sebuah aplikasi kita harus memperhatikan 2 aspek utama, yaitu, core concern dan system-wide concern atau crosscutting concern, core concern merupakan fungsi fungsi utama dalam sebuah aplikasi, dalam hal ini adalah logika bisnis. Kemudian system-wide concern atau crosscutting concern merupakan fungsi fungsi yang tersebar di seluruh bagian software, fungsi fungsi ini bukan merupakan fungsi utama, fungsi ini bersifat pendukung, namun keberadaanya tetap diperlukan sebagai syarat untuk memenuhi criteria software yang baik, Contohnya adalah security, pooling, dan logging.Dalam pemrograman JAVA kita terbiasa dengan konsep pemrograman yang menyatukan crosscutting concern dengan core-concern, misalkan fungsi logging untuk debugging, dimana kita biasanya membuat fungsinya menyatu dengan logika bisnis dalam satu sistem, karena memang dalam metodologi OOP diharuskan seperti itu, penjelasan di atas jika diimplementasikan dalam bentuk code akan menjadi seperti di bawah ini :

public class MyAllInOneClass {public void superMethod() {// lakukan autorisasi// logging start business process// lakukan proses bisnis// logging end business process}public void save() {...}public void load() {...}}

Dalam AOP sebuah system yang terdiri dari beberapa concern disebut tangled. AOP (Aspect Oriented Programming) merupakan metodologi pemrograman yang memisahkan core concern dengan crosscutting concern dengan menggunakan modul yang disebut dengan aspect.Ada beberapa tahap yang diperlukan dalam membangun sebuah system, dengan menggunakan metodologi AOP, yaitu Aspectual Decomposition, Concern Implementation, dan Aspectual Recomposition, berikut adalah penjelasnya.

a. Aspectual DecompositionPada tahap ini kita melakukan decompose requirements untuk mengidentifikasi core concern dan crosscutting concern.b. Concern ImplementationPada tahap ini kita mengimplementasikan tiap concern secara independen. Perhatikan bahwa pada tahap ini masing-masing concern diimplementasikan pada modulnya sendiri, terpisah dengan modul lain. Dengan demikian kita bisa membuat modul per modul secara bertahap, tidak perlu memikirkan sekian banyak modul dalam satu waktu.c. Aspectual RecompositionPada tahap ini kita membuat recomposition rules dengan membuat modularization unit atau aspect. Proses recomposition disebut juga weaving atau integrating, dan akan membentuk sistem akhir berdasarkan aspect tersebut.

Modularisasi adalah pemecahan system yang kompleks menjadi sederhana dengan membaginya ke dalam class class.

10. Container BeanFactory dan ApplicationContext

Dalam Spring, objek tidak bertanggung jawab dalam mencari atau membuat objek lain. Sebaliknya, mereka di beri referensi ke objek yang akan bergabung oleh sebuah container. Tindakan menciptakan keterhubungan antar objek-objek merupakan esensi dari Dependency Injection (DI) atau yang lebih umumnya disebut sebagai wiring.Dalam aplikasi berbasis Spring, objek-objek aplikasi akan aktif didalam container-container Spring. Seperti digambarkan pada gambar 1.1, container akan membuat objek-objek dan akan dihubungkan satu sama lain, mengkonfigurasi objek-objek tersebut, dan mengatur daur hidup objek-objek itu dari awal instansiasi sampai menghancurkan objek tersebut.Container merupakan inti dari Framework Spring. Container Spring menggunakan Dependency Injection (DI) untuk mengatur komponen-komponen yang menyusun aplikasi. Termasuk juga dalam mengasosiasikan kolaborasi antar komponen-komponen tersebut. Dengan demikian, objek-objek ini akan lebih mudah untuk dipahami, dapat di gunakan kembali, dan mudah dalam melakukan unit testing.Spring memiliki beberapa container yang dapat di kategorikan kedalam jenis yang berbeda. Antara lain, BeanFactory (yang didefinisikan dalam kelas org.springframework.beans.factory.BeanFactory) merupakan container paling sederhana yang menyediakan dukungan dasar untuk DI. ApplicationContext (didefinisikan dalam kelas org.springframework. context. ApplicationContext ) yang akan membangun pengertian antar bean factory dengan menyediakan layanan framework aplikasi, seperti kemamupan untuk memecahkan pesan tekstual dari properti file dan kemampuan untuk mempublikasikan event kepada event listener.

Gambar 1.2 Dalam aplikasi Spring, Objek-objek dibuat, dihubungkan satu sama lain,aktif dalam container Spring.

Container BeanFactorySeperti namanya, BeanFactory merupakan implementasi dari Factory Design pattern. Artinya, ini adalah kelas yang bertanggung jawab untuk menciptakan dan membagikan objek bean. Akan tetapi,tidak seperti implementasi dari pola Factory lainnya, yang sering membagikan sebuah tipe objek, namun bean factory merupakan factory dengan tujuan umum, seperti menciptakan dan memberikan banyak tipe dari bean.Ada beberapa implementasi BeanFactory di Spring. Tapi yang paling sering digunakan adalah org.springframework. beans. factory. xml. XmlBean-Factory, yang akan mengisi objek bean berdasarkan definisi yang berada pada sebuah file XML.Untuk membuat kelas XmlBeanFactory, Anda harus melewati objek dari org.springframework.core.io.Resource ke konstruktor. Objek Kelas Resource akan menyediakan XML ke factory. Misalnya, potongan kode berikut menggunakan FileSystemResource untuk menciptakan definisi bean XmlBeanFactory yang dibaca dari file XML dalam sistem file: BeanFactory factory = new XmlBeanFactory(new FileSystemResource("c:/beans.xml")); Pada baris kode diatas, memberi tahu bean factory untuk membaca pendefinisian dari file XML. Namun, bean factory tersebut tidak langsung menginstansiasi, melainkan hanya memuat definsi-definisi dari bean dan baru menginstansiasi sampai bean tersebut dibutuhkan. Untuk mengambil objek bean dari BeanFactory, cukup memanggil method getBean(), melalui ID dari objek bean yang akan dipanggil.

MyBean myBean = (MyBean) factory.getBean("myBean"); Ketika method getBean() dipanggil, factory akan instantiasi bean dan mengatur properties dari bean menggunakan DI. Dan disinilah daur hidup objek bean dimulai di dalam container Spring.

Container Application Context.Container bean factory akan lancar berjalan pada aplikasi sederhana. Namun, untuk mendapatkan manfaat yang lebih besar dari Framework Spring, anda dapat menggunakan container yang lebih handal yang disebut application context. Pada dasarnya Application Context memiliki kesamaan dengan BeanFactory. Keduanya meminta definisi dari bean, menghubungkan satu sama lain, dan memberikan bean terebut kepada yang meminta. Tapi Application Context menawarkan layanan yang lebih dari itu, antara lain : ApplicationContext menyediakan cara untuk memcahkan pesan teks, termasuk dukungan untuk internasionalisasi ( I18N ) dari pesan tersebut. ApplicationContext menyediakan cara yang umum untuk memanggil file-file sumber berupa gambar. ApplicationContext dapat menyebarluaskan event ke bean yang mendaftarkan diri sebagai pengguna event tersebut.

Karena menyediakan fungsionalitas tambahan, sebuah Application Context lebih disukai daripada BeanFactory di hampir semua aplikasi. Di antara banyak implementasi dari ApplicationContext, ada tiga yang umum digunakan: ClassPathXmlApplicationContext Memanggil file XML yang berada pada ClassPath FileSystemXmlApplicationContext Memanggil file XML yang berada pada File System XmlWebApplicationContext Memanggil file XML yang tersimpan dalam aplikasi web

Memuat application context dari file system atau pun dari classpath sama artinya dengan bagaimana caranya memuat bean kedalam bean factory. Berikut adalah cara memuat dengan FileSystemApplicationContext :ApplicationContext context =new FileSystemXmlApplicationContext("c:/foo.xml");

Begitu juga ketika kita ingin memuat application context dengan menggunakan kelas ClassPathXmlApplicationContext :

ApplicationContext context =new ClassPathXmlApplicationContext("foo.xml");Perbedaan antara penggunaan FileSystemXmlApplicationContext dan ClassPathXmlApplicationContext yaitu kalau FileSystemXmlApplicationContext akan mencari file XML yang terletak pada file system (media penyimpanan). Sedangkan ClassPathXmlApplicationContext, akan mencari file XML dalam ClassPath.Selain dari fungsi tambahan yang ditawarkan oleh application context, satu lagi perbedaan besar antara application context dan bean factory adalah bagaimana satu bean di-muat. Sebuah bean factory tidak akan memuat semua objek bean sampai method getBean() dipanggil. Sedangkan application context bekerja lebih cerdas yaitu dengan melakukan preload terlebih dahulu untuk semua bean tunggal . Dengan melakukan preload dari bean, itu berarti memastikan bahwa mereka akan siap untuk digunakan ketika dibutuhkan.

11. Constructor dan Setter Injection

Injection of Control ( IoC ) IoC adalah sebuah teknik dalam spring untuk melakukan inversi terhadap kontrol. IoC sering diidentikan dengan terminologi Holywood Don't call us, because we will call you. IoC adalah sebuah teknik yang membuat programmer Java Enterprise dapat memfokuskan diri kepada business logic

Mengapa ioC penting ? Permasalahan 1 : Pemrograman masa kini semakin kompleks dan rumit dan tidak hanya bergantung kepada tingkat penguasaan syntax pada bahasa pemrograman tertentu. Permasalahan 2: Pemrograman masa kini memiliki trend kolaborasi, yang juga berarti kita akan tidak hanya menggunakan libarary atau fungsi-fungsi standar yang telah ada namun juga dari programmer-programmer lain yang memiliki solusi dari permasalahan yang kita hadapi. Solusi : Salah satu cara terbaik untuk mengatasi ketergantungan antar kode pemrograman adalah dengan IoC.

Tipe IoC:Dependency Injection(DI) Setter Injection Constructor Injection

Setter Injection Konfigurasi dilakukan melalui JavaBean properties Properties yang harus ada dan merepresentasikan writable(method setter) Properties yang optional dan merepresentasikan readable(method getter) Penamaan dan konvensi yang terdapat pada spesifikasi JavaBeanscontoh property roda yang akan menghasilkanMethod getter getRodaMethod setter setRodapublic class LayananTaksi implements Taksi{private ArgoTaksi argoTaksi;public void setArgoTaksi(ArgoTaksi argoTaksi){this.argoTaksi=argoTaksi; } //diikuti method getter dan method yg merepresentasian bisnis}