Upside Down Piramid

public class Piramida {
    
     public Piramida(int w) {

       for (int i = 0; i < w / 1 + 1; i++) {

            for (int j = 0; j < w; j++) {

                if (i == 0) {

                    System.out.print("*");

                } else {
                    
                    if (j < i||j > w - i - 2){

                        System.out.print(" ");

                    } else {

                        System.out.print("*");

                    }

                }

            }

            System.out.println("*");

        }

    }

    public static void main (String...  args){
        Piramida piramida = new Piramida(10);

    }

}

Output:

run-single:

********************

 ****************** 

  ****************  

   **************   

    ************    

     **********     

      ********      

       ******       

        ****        

         **         

                    

BUILD SUCCESSFUL (total time: 0 seconds)

Sorting

Soal latihan :
 – buat class Sorting
 – declare field List data
 – inisialisasi data pada constructor dengan data Random data sejumlah 100 data
 – buat method untuk menampilkan data ke browser
    public Sorting() {

        data = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < 100; i++) {
            data.add(random.nextInt());
        }
        for (int i = 0; i < data.size(); i++) {

            System.out.println("data ke " + (i + 1) + " = " + data.get(i));

        }
    }

    public static void main(String[] args) {
        Sorting sorting = new Sorting();

    }
}

Jawaban untuk Pertanyaan dan Latihan: Konsep Pemrograman Berorientasi Objek

Jawaban untuk Pertanyaan

  1. Objek dunia nyata mengandung state dan behavior.
  2. Sebuah negara objek perangkat lunak disimpan dalam fields.
  3. Perilaku Sebuah objek perangkat lunak terkena melalui methods.
  4. Menyembunyikan data internal dari dunia luar, dan mengakses hanya melalui metode terekspos publik dikenal sebagai encapsulation data.
  5. Sebuah cetak biru untuk objek perangkat lunak yang disebut class.
  6. Perilaku umum dapat didefinisikan dalam superclass dan diwariskan ke subclass menggunakan kata kunci extends.
  7. Sebuah kumpulan metode tanpa implementasi yang disebut interface.
  8. Sebuah namespace yang menyelenggarakan kelas dan interface dengan fungsi disebut package.
  9. API Istilah singkatan dari Application Programming Interface.

Jawaban untuk Latihan

  1. Jawaban Anda akan bervariasi tergantung pada objek dunia nyata yang Anda pemodelan.
  2. Jawaban Anda akan bervariasi di sini juga, tetapi pesan kesalahan khusus akan daftar metode yang diperlukan yang belum dilaksanakan.

http://docs.oracle.com/javase/tutorial/java/concepts/QandE/answers.html

Pertanyaan dan Latihan: Konsep Pemrograman Berorientasi Objek

Pertanyaan

  1. Objek dunia nyata mengandung ___ dan ___.
  2. Sebuah negara objek perangkat lunak disimpan dalam ___.
  3. Perilaku Sebuah objek perangkat lunak terkena melalui ___.
  4. Menyembunyikan data internal dari dunia luar, dan mengakses hanya melalui metode terekspos publik dikenal sebagai ___ data.
  5. Sebuah cetak biru untuk objek perangkat lunak disebut ___ a.
  6. Perilaku umum dapat didefinisikan dalam ___ dan diwariskan ke ___ menggunakan kata kunci ___.
  7. Sebuah kumpulan metode tanpa implementasi disebut ___.
  8. Sebuah namespace yang menyelenggarakan kelas dan interface dengan fungsi disebut ___ a.
  9. API Istilah singkatan ___?

Latihan

  1. Membuat kelas baru untuk setiap objek dunia nyata yang diamati pada awal jejak ini. Lihat ke kelas sepeda jika Anda lupa sintaks yang diperlukan.
  2. Untuk setiap kelas baru yang telah Anda buat di atas, membuat sebuah interface yang mendefinisikan perilakunya, kemudian memerlukan kelas Anda untuk menerapkannya. Menghilangkan satu atau dua metode dan coba kompilasi. Apa kesalahan terlihat seperti?

Periksa jawaban Anda.

Source : http://docs.oracle.com/javase/tutorial/java/concepts/QandE/questions.html

Apa Package?

Sebuah paket adalah namespace yang menyelenggarakan set kelas terkait dan interface. Secara konseptual dapat Anda pikirkan paket sebagai mirip dengan folder yang berbeda pada komputer Anda. Anda mungkin menyimpan halaman HTML dalam satu folder, gambar di tempat lain, dan skrip atau aplikasi di lain. Karena perangkat lunak yang ditulis dalam bahasa pemrograman Java dapat terdiri dari ratusan atau ribuan kelas individu, masuk akal untuk menjaga hal-hal terorganisir dengan menempatkan kelas terkait dan interface ke dalam paket.

Platform Java menyediakan perpustakaan kelas besar (satu set paket) cocok untuk digunakan dalam aplikasi Anda sendiri. Perpustakaan ini dikenal sebagai “Application Programming Interface”, atau “API” singkatnya. Paket yang merupakan tugas yang paling sering dikaitkan dengan tujuan umum pemrograman. Sebagai contoh, sebuah String objek berisi negara dan perilaku untuk karakter string, sebuah File objek memungkinkan programmer untuk dengan mudah membuat, menghapus, memeriksa, membandingkan, atau memodifikasi file pada filesystem, sebuah Socket objek memungkinkan untuk penciptaan dan penggunaan soket jaringan ; berbagai objek GUI kontrol tombol dan kotak centang dan hal lain yang berhubungan dengan antarmuka pengguna grafis. Ada ribuan kelas untuk memilih dari. Hal ini memungkinkan Anda, programmer, untuk fokus pada desain aplikasi tertentu, daripada infrastruktur yang diperlukan untuk membuatnya bekerja.

The Java Platform API Spesifikasi berisi daftar lengkap untuk semua paket, interface, kelas, bidang, dan metode yang disediakan oleh platform Java SE. Memuat halaman dalam browser Anda dan penunjuk itu. Sebagai seorang programmer, itu akan menjadi satu bagian yang paling penting dari dokumentasi referensi.

Source : http://docs.oracle.com/javase/tutorial/java/concepts/package.html

Apakah Interface?

Seperti yang telah Anda pelajari, benda mendefinisikan interaksi mereka dengan dunia luar melalui metode yang mereka mengekspos. Metode membentuk interface objek dengan dunia luar, tombol di bagian depan pesawat televisi Anda, misalnya, adalah antarmuka antara Anda dan kabel listrik di sisi lain dari casing plastik. Anda menekan tombol “power” tombol untuk menyalakan televisi dan mematikan.

Dalam bentuk yang paling umum, sebuah antarmuka adalah sekelompok metode terkait dengan tubuh kosong. Perilaku Sebuah sepeda itu, jika ditetapkan sebagai interface, mungkin muncul sebagai berikut:

 interface Bicycle {

    //  wheel revolutions per minute
    void changeCadence(int newValue);

    void changeGear(int newValue);

    void speedUp(int increment);

    void applyBrakes(int decrement);
}

Untuk mengimplementasikan interface ini, nama kelas Anda akan berubah (untuk merek tertentu sepeda, misalnya, seperti ACMEBicycle ), dan Anda akan menggunakan implements kata kunci dalam deklarasi kelas:

 class ACMEBicycle implements Bicycle {

    // remainder of this class 
    // implemented as before
}

Menerapkan antarmuka memungkinkan kelas untuk menjadi lebih formal tentang perilaku menjanjikan untuk memberikan. Antarmuka membentuk kontrak antara kelas dan dunia luar, dan kontrak ini diberlakukan pada waktu pembangunan oleh kompilator. Jika kelas Anda klaim untuk mengimplementasikan interface, semua metode yang didefinisikan oleh interface yang harus muncul dalam kode sumber sebelum kelas akan berhasil mengkompilasi.


Catatan: Untuk benar-benar mengkompilasi ACMEBicycle kelas, Anda harus menambahkan public kata kunci ke awal metode antarmuka diimplementasikan. Anda akan mempelajari alasan untuk ini nanti dalam pelajaran di Classes and Objects dan Interfaces and Inheritance.

Source : http://docs.oracle.com/javase/tutorial/java/concepts/interface.html

Apa Warisan?

Berbagai jenis benda sering memiliki sejumlah kesamaan dengan satu sama lain. Sepeda gunung, sepeda jalan, dan tandem sepeda, misalnya, semua berbagi karakteristik sepeda (kecepatan arus, irama pedal saat ini, gigi saat). Namun masing-masing juga mendefinisikan fitur tambahan yang membuat mereka berbeda: tandem sepeda memiliki dua kursi dan dua set setang, sepeda jalan memiliki penurunan setang, beberapa sepeda gunung memiliki cincin rantai tambahan, memberi mereka rasio gigi yang lebih rendah.

Pemrograman berorientasi obyek memungkinkan kelas untuk mewarisi umum digunakan negara dan perilaku dari kelas lain. Dalam contoh ini, Bicycle sekarang menjadi superclass dari MountainBike , RoadBike , dan TandemBike . Dalam bahasa pemrograman Java, setiap kelas diperbolehkan untuk memiliki satu superclass langsung, dan setiap superclass memiliki potensi untuk jumlah yang tidak terbatas subclass:

Sebuah diagram kelas dalam suatu hirarki.

Sebuah hierarki kelas sepeda.

Sintaks untuk menciptakan subclass sederhana. Pada awal deklarasi kelas Anda, gunakan extends kata kunci, diikuti oleh nama kelas untuk mewarisi dari:

class MountainBike extends Bicycle {

    // new fields and methods defining 
    // a mountain bike would go here

}

Ini memberikan MountainBike semua bidang dan metode yang sama seperti Bicycle , namun memungkinkan kode untuk secara eksklusif memfokuskan pada fitur yang membuatnya unik. Hal ini membuat kode untuk subclass Anda mudah dibaca. Namun, Anda harus berhati-hati untuk benar dokumen negara dan perilaku bahwa setiap superclass mendefinisikan, karena kode yang tidak akan muncul dalam file sumber masing-masing subclass.

Source : http://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html

Apa itu Class?

Dalam dunia nyata, Anda akan sering menemukan banyak objek individu semua jenis yang sama. Mungkin ada ribuan sepeda lain dalam keberadaan, semua merek yang sama dan model. Setiap sepeda dibangun dari set yang sama cetak biru dan karena itu mengandung komponen yang sama. Dalam istilah berorientasi obyek, kita katakan bahwa sepeda adalah sebuah instance dari the class of objects yang dikenal sebagai sepeda.

Berikut ini Bicycle class satu implementasi kemungkinan sepeda :

<pre>class Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;

    void changeCadence(int newValue) {
         cadence = newValue;
    }

    void changeGear(int newValue) {
         gear = newValue;
    }

    void speedUp(int increment) {
         speed = speed + increment;   
    }

    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }

    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }
}

Sintaks dari bahasa pemrograman Java akan terlihat baru bagi Anda, tetapi desain kelas ini didasarkan pada pembahasan sebelumnya benda sepeda. Bidang cadence , speed , dan gear merupakan negara objek, dan metode ( changeCadence , changeGear , speedUp dll) mendefinisikan interaksi dengan dunia luar.

Anda mungkin telah memperhatikan bahwa Bicycle kelas tidak mengandung main metode. Itu karena itu bukan aplikasi yang lengkap, melainkan hanya cetak biru untuk sepeda yang dapat digunakan dalam sebuah aplikasi. Tanggung jawab menciptakan dan menggunakan baru Bicycle benda milik beberapa kelas lain dalam aplikasi Anda.

Berikut adalah BicycleDemo kelas yang menciptakan dua terpisah Bicycle objek dan memanggil metode mereka:


<pre>class BicycleDemo {
    public static void main(String[] args) {

        // Create two different 
        // Bicycle objects
        Bicycle bike1 = new Bicycle();
        Bicycle bike2 = new Bicycle();

        // Invoke methods on 
        // those objects
        bike1.changeCadence(50);
        bike1.speedUp(10);
        bike1.changeGear(2);
        bike1.printStates();

        bike2.changeCadence(50);
        bike2.speedUp(10);
        bike2.changeGear(2);
        bike2.changeCadence(40);
        bike2.speedUp(10);
        bike2.changeGear(3);
        bike2.printStates();
    }
}

Output dari tes ini mencetak berakhir pedal irama, kecepatan, dan peralatan untuk dua sepeda:

cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3

Source : http://docs.oracle.com/javase/tutorial/java/concepts/class.html

Pelajaran: Konsep Pemrograman Berorientasi Objek

Jika Anda belum pernah menggunakan bahasa pemrograman berorientasi objek sebelumnya, Anda akan perlu belajar beberapa konsep dasar sebelum Anda dapat mulai menulis kode apapun. Pelajaran ini akan memperkenalkan Anda ke objek, kelas, pewarisan, antarmuka, dan paket. Setiap diskusi berfokus pada bagaimana konsep-konsep berhubungan dengan dunia nyata, sementara secara bersamaan memberikan pengenalan sintaks dari bahasa pemrograman Java.

Apa Obyek?

Sebuah objek adalah bundel software negara dan perilaku terkait. Objek perangkat lunak yang sering digunakan untuk memodelkan benda dunia nyata yang Anda temukan dalam kehidupan sehari-hari. Pelajaran ini menjelaskan bagaimana negara dan perilaku diwakili dalam suatu objek, memperkenalkan konsep enkapsulasi data, dan menjelaskan manfaat dari merancang perangkat lunak Anda dengan cara ini.

Apa itu Class?

Kelas adalah cetak biru atau prototipe dari objek yang diciptakan. Bagian ini mendefinisikan kelas yang model negara dan perilaku dari objek dunia nyata. Ini sengaja berfokus pada dasar-dasar, menunjukkan bagaimana bahkan kelas sederhana bersih dapat model negara dan perilaku.

Apa Warisan?

Warisan menyediakan mekanisme yang kuat dan alami untuk mengatur dan penataan perangkat lunak Anda. Bagian ini menjelaskan bagaimana kelas mewarisi negara dan perilaku dari superclasses mereka, dan menjelaskan bagaimana untuk mendapatkan satu kelas dari yang lain menggunakan sintaks sederhana yang disediakan oleh bahasa pemrograman Java.

Apakah Interface?

Sebuah antarmuka adalah kontrak antara kelas dan dunia luar. Ketika kelas mengimplementasikan interface, menjanjikan untuk memberikan perilaku diterbitkan oleh interface tersebut. Bagian ini mendefinisikan antarmuka yang sederhana dan menjelaskan perubahan yang diperlukan untuk setiap kelas yang mengimplementasikannya.

Apa Package?

Sebuah paket adalah namespace untuk mengatur kelas dan interface secara logis. Menempatkan kode Anda ke dalam paket membuat proyek software besar lebih mudah untuk mengelola. Bagian ini menjelaskan mengapa hal ini berguna, dan memperkenalkan Anda ke Application Programming Interface (API) yang disediakan oleh platform Java.

Pertanyaan dan Latihan: Konsep Pemrograman Berorientasi Objek

Gunakan pertanyaan dan latihan yang disajikan dalam bagian ini untuk menguji pemahaman Anda tentang obyek, kelas, pewarisan, antarmuka, dan paket.

Source : http://docs.oracle.com/javase/tutorial/java/concepts/class.html

Apa Obyek?

Obyek adalah kunci untuk memahami teknologi berorientasi objek. Lihatlah ke sekeliling sekarang dan Anda akan menemukan banyak contoh benda dunia nyata: anjing Anda, meja Anda, pesawat televisi, sepeda Anda.

Objek dunia nyata berbagi dua karakteristik: Mereka semua memiliki negara dan perilaku. Anjing memiliki negara (nama, warna, jenis, lapar) dan perilaku (menggonggong, mengambil, menggoyangkan ekor). Sepeda juga memiliki negara (gigi saat, irama pedal saat ini, kecepatan arus) dan perilaku (mengubah gigi, mengubah irama pedal, menerapkan rem). Mengidentifikasi negara dan perilaku untuk objek dunia nyata adalah cara yang bagus untuk mulai berpikir dalam hal pemrograman berorientasi obyek.

Luangkan waktu sebentar sekarang untuk mengamati benda dunia nyata yang berada di daerah dekat Anda. Untuk setiap objek yang Anda lihat, tanyakan pada diri sendiri dua pertanyaan: “Apa yang mungkin negara dapat objek ini berada di?” dan “Apa kemungkinan perilaku dapat objek ini melakukan?”. Pastikan untuk menuliskan pengamatan Anda. Seperti yang Anda lakukan, Anda akan melihat bahwa benda-benda dunia nyata bervariasi dalam kompleksitas, lampu desktop Anda mungkin hanya memiliki dua kemungkinan negara (on dan off) dan dua perilaku yang mungkin (menghidupkan, mematikan), tetapi radio desktop Anda mungkin memiliki tambahan negara (on, off, volume saat ini, stasiun saat ini) dan perilaku (menghidupkan, mematikan, meningkatkan volume, penurunan volume, mencari, memindai, dan lagu). Anda juga dapat melihat bahwa beberapa benda, pada gilirannya, akan juga mengandung benda-benda lainnya. Observasi ini dunia nyata semua diterjemahkan ke dalam dunia pemrograman berorientasi obyek.

Sebuah lingkaran dengan lingkaran dalam diisi dengan item, dikelilingi oleh wedges abu-abu mewakili metode yang memungkinkan akses ke lingkaran dalam.Sebuah objek perangkat lunak.

Objek perangkat lunak secara konseptual mirip dengan objek dunia nyata: mereka juga terdiri dari perilaku negara dan terkait. Sebuah objek menyimpan negara dalam bidang (variabel dalam beberapa bahasa pemrograman) dan mengekspos perilakunya melalui metode (fungsi dalam beberapa bahasa pemrograman). Metode beroperasi pada keadaan internal obyek dan berfungsi sebagai mekanisme utama untuk komunikasi objek-to-objek. Menyembunyikan keadaan internal dan mengharuskan semua interaksi harus dilakukan melalui metode obyek dikenal sebagai enkapsulasi data – prinsip dasar pemrograman berorientasi obyek.

Pertimbangkan sepeda, misalnya:

Sebuah gambar dari sebuah objek, dengan metode bibycle dan variabel instan.Sebuah sepeda dimodelkan sebagai objek perangkat lunak.

Dengan menghubungkan negara (kecepatan arus, irama pedal saat ini, dan gigi saat) dan menyediakan metode untuk mengubah keadaan itu, objek tetap mengendalikan bagaimana dunia luar diperbolehkan untuk menggunakannya. Sebagai contoh, jika sepeda hanya memiliki 6 gigi, sebuah metode untuk mengubah gigi bisa menolak nilai apapun yang kurang dari 1 atau lebih besar dari 6.

Bundling kode ke objek perangkat lunak individu menyediakan sejumlah manfaat, termasuk:

  1. Modularitas: Kode sumber untuk sebuah objek dapat ditulis dan dipelihara secara independen dari kode sumber untuk objek lain. Setelah dibuat, obyek dapat dengan mudah diedarkan dalam sistem.
  2. Informasi-bersembunyi: Dengan berinteraksi hanya dengan metode obyek, rincian implementasi internal tetap tersembunyi dari dunia luar.
  3. Kode menggunakan kembali: Jika suatu benda sudah ada (mungkin ditulis oleh pengembang perangkat lunak lain), Anda dapat menggunakan objek dalam program Anda. Hal ini memungkinkan spesialis untuk melaksanakan / menguji / men-debug kompleks, benda-tugas tertentu, yang kemudian dapat percaya untuk berjalan dalam kode Anda sendiri.
  4. Pluggability dan debugging mudah: Jika suatu objek tertentu ternyata bermasalah, Anda hanya dapat menghapusnya dari aplikasi Anda dan pasang di objek yang berbeda sebagai penggantinya. Hal ini analog dengan memperbaiki masalah mekanis di dunia nyata. Jika sebuah istirahat baut, Anda menggantinya, bukan seluruh mesin.

Source : http://docs.oracle.com/javase/tutorial/java/concepts/object.html