Sunday 5 January 2020

Odoo 11 - Create a new sample module

How To Create or Develop a Custom Module in Odoo 11


In this blog, we‘ll be focusing on how we can create or develop a custom module in odoo. Moreover, we'll also discuss how we can design the view in this module.

In Odoo Development, Odoo Modules can either add brand new business logic to an Odoo System or alter and extend existing business logic. A module can be created to add your country’s accounting rules to Odoo’s generic accounting support, while the next module adds support for real-time visualization of a bus fleet.

Everything in Odoo thus starts and ends with modules.

Structure of a Module:


An Odoo module can contain many elements like:

Objects/Models: Declared as Python classes, these resources are automatically persisted by Odoo based on their configuration

View Files: XML or CSV files declaring metadata (views or reports), configuration data (modules parameterization), demonstration data and more

Controllers: Are used to handling requests from web browsers

Static Web Data: Images, CSS or JavaScript files used by the web interface or website

In this case, we‘ll be focusing on how to generate a simple custom module using python models & XML views. So, let us start first by naming our custom module.

We can name this custom module whatever we want, but it should be related to the functioning of the module so that, it is user-friendly as well.

In this case, we will create a simple book module. So, let us name this folder as sample_book:

Now we need to create some sub-folders and sub-files inside this module. The final structure will be like this:
  • models
    • __init__.py
    • sample_book.py
  • views
    • sample_book_view.xml
  • __init__.py
  • __manifest__.py


Inside each file, type it like this:
  • models/__init__.py
  • models/sample_book.py
  • views/sample_book_view.xml
  • __init__.py
  • __manifest__.py

thats all we need, now start the server and the Book module is now ready to install. :D

Friday 6 July 2018

Pemrograman Berorientasi Object: Java

Ada tiga karakteristik yang dimiliki pemrograman object oriented :
  1. Encapsulation (pembungkusan)
  2. Inheritance (pewarisan)
  3. Polymorphism (mempunyai banyak bentuk)

Class dan Objek

  • Objek merupakan suatu bentuk atau model yang tergantung dari cara pandang objek dimaksud.
  • Setiap objek memiliki atribut (state) dan method (behaviour)
  • Atribut merupakan segala sesuatu yang berhubungan dengan karakteristik objek seperti : tipe, warna
  • Method adalah fungsi atau segala sesuatu yang dapat dilakukan objek, seperti melindungi dari panas, hujan.
  • Class adalah prototipe yang mendefinisikan variabel-variabel dan method-method secara umum.
  • Objek merupakan instansiasi dari class.

Encasulaption

  • Encapsulation = pembungkusan. Maksudnya adalah pembungkusan atribut juga method oleh class.
  • Setiap anggota class (atribut, method) pada pemrograman object oriented seluruhnya dideklarasikan didalam class. Tidak ada satu kode pun yang ditulis diluar kelas.

Penentu akses : public dan private

  • Public berarti pengaksesan suatu variabel instan atau metode dapat dilakukan dari luar kelas
  • Private berarti pengaksesan suatu variabel instan atau metode hanya dapat dilakukan di dlm kelas, tidak bisa dari luar kelas.

Java class package

  • Paket merupakan pengelompokan sejumlah kelas yang terkait ke dlm sebuah unit.
  • Java memiliki beragam paket yang didalamnya terdapat kelas-kelas dengan beragam fungsi
  • Java lang, Java AWT, Java swing, Java Util, java Math adalah diantara contoh paket yang jumlahnya sangat banyak karena lengkapnya library java

Contoh Source Code:
import javax.swing.JOptionPane;

public class Welcome2
{
 public static void main (String args []) 
 {
  JOptionPane.showMessageDialog (null, 
   "Hello\nWorld!");
  System.exit (0);
 }
}

Hasil:



Inheritance

  • Inheritance: Pewarisan seluruh anggota class (atribut, method) yang dimiliki oleh superclass (kelas induk/parent) ke subclass (kelas anak).
  • Superclass: class yang letaknya di atas class tertentu di dalam hierarki.
  • Subclass: class yang letaknya di bawah class tertentu di dalam hierarki.

Polymorphism

  • Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.
  • polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.

Friday 11 May 2018

Java: Percabangan dan Perulangan

Flow Control / Kontrol Alur:

  • Digunakan untuk mengatur alur eksekusi program sesuai dengan kondisi yang telah ditentukan.
  • Dalam Java ada 3 macam kontrol alur:
    • Selection (Percabangan/Seleksi)
    • Iterasi (Perulangan/Looping)
    • Jump

Selection
  • Terdapat 2 kata kunci dalam Java untuk melakukan seleksi: if dan switch
  • Sama-sama digunakan untuk menentukan alur eksekusi program mana yang akan dijalankan pada suatu percabangan.

If ... Else ...
  • Jika kondisi di dalam if bernilai True, maka statement(s) di dalam blok if yang akan dieksekusi dan mengabaikan statement(s) yang ada di dalam blok else.
  • Demikian juga sebaliknya, jika kondisi pada if bernilai False, maka statement(s) di dalam blok if tidak dieksekusi dan statements(s) yang ada di blok else yang akan dieksekusi.
Contoh source code:
public class TestSeleksi {
    public static void main(String[] args) {
        int a, b;
        a = 20;
        b = a / 2;
        if (b < 5) {
            System.out.println("Statement(s) dalam blok if dieksekusi");
        } else {
            System.out.println("Statement(s) dalam blok else dieksekusi");
        }
    }
}
Hasil:

If ... Else ... Bertingkat
  • Pada prinsipnya sama saja, hanya kita dapat mengkombinasikan penggunaannya menjadi bertingkat.

  • if(kondisi1) {
           pernyataan1;
    }
    else if(kondisi2) { 
           pernyataan2;
    }
    else if(kondisi3) {
           pernyataan3;
    }
    else {
           pernyataan default;
    }
    Contoh source code:
    public class IfElseIf {
        public static void main(String[] args) {
            int bulan = 3;
            if (bulan >= 1 && bulan <= 3) {
                System.out.println("Kuartal 1");
            } else if (bulan >= 4 && bulan <= 6) {
                System.out.println("Kuartal 2");
            } else if (bulan >= 7 && bulan <= 9) {
                System.out.println("Kuartal 3");
            } else {
                System.out.println("Kuartal 4");
            }
        }
    }
    
    Hasil:



    Switch Case
    • Penggunaan switch case mirip dengan penggunaan if bertingkat, di mana kita dapat menggunakannya untuk percabangan yang lebih dari satu.
    • Dapat dijadikan alternatif terbaik dibandingkan if bertingkat.
    Contoh source code:
    public class CaseJava {
        public static void main(String[] args) {
            int fakultas = 68;
            switch (fakultas) {
                case 67:
                    System.out.println("TI");
                    break;
                case 68:
                    System.out.println("SI");
                    break;
                case 69:
                    System.out.println("DKV");
                    break;
                default:
                    System.out.println("Bukan FTI");
                    break;
            }
            System.out.println("Baris perintah berikutnya");
        }
    }
    
    Hasil:

    Iterasi atau Perulangan
    • Java memiliki 3 jenis iterasi yang dapat digunakan untuk mengulang sejumlah statement(s) yang sama tanpa menulis statement(s) tersebut secara berulang, yaitu:
      • for
      • while
      • do - while
    public class ForJava {
        public static void main(String[] args) {
            int row, col;
            int input = 5;
            for (row = 1; row <= input; row++) {
                for (col = 1; col <= input - row; col++) {
                    System.out.println(" ");
                }
                for (col = 1; col < 2 * row; col++) {
                    System.out.println("*");
                }
                System.out.println("");
            }
        }
    }
    
    Hasil:

    Jump
    • Java mengenal 3 buah perintah untuk memindahkan alur eksekusi program ke bagian lain dalam program.
      • break
      • continue
      • return

    Java: Type Casting (Conversion)

    Ciri-ciri:

    • ASCII karakter '0' s/d '9'
    • '0' -> 48
    • '1' -> 49
    • '9' -> 57
    • Konversi karakter ke bilangan -> dikurangi nilai 48
    • Konversi bilangan ke karakter -> ditambahi nilai 48

    Contoh source code:
    public class CastingChar {
        public static void main(String[] args) {
            char huruf = '8';
            int angka = huruf;
            
            System.out.println("Huruf \'"+huruf+"\' memiliki nilai "+angka);
            angka = huruf-48; 
            System.out.println("Huruf \'"+huruf+"\' setelah dikonversi ke bilangan bernilai "+angka);
            System.out.println();
            
            angka = 2;
            huruf = (char)angka; 
            System.out.println("Nilai  "+angka+" pada ASCII adalah "+huruf);
            huruf = (char)(angka+48); 
            System.out.println("Nilai  "+angka+" setelah dikonversi ke huruf bernilai "+huruf);
        }
    }
    

    Hasil dari source code di atas adalah sebagai berikut:

    Thursday 10 May 2018

    Java: Kelas

    Konsep Kelas

    • Kelas adalah persepsi untuk objek tertentu, kita dapat menggunakan definisi class untuk membuat objek dari tipe kelas
    • Kelas memiliki peran penting dalam paradigma pemrograman berorientasi objek. Kelas bagaikan sebuah pabrik yang siap memproduksi objek-objek yang kita butuhkan. Untuk dapat menciptakan sebuah objek, kita harus menciptakan kelasnya. Kelas inilah yang dalam runtime program akan menciptakan objek yang inginkan. Singkatnya kelas adalah cetak biru bagi objek yang ingin kita ciptakan.
    • Perlu diperhatikan bahwa umumnya tidak ada batasan jumlah objek yang dapat diciptakan melalui sebuah kelas. Namun terkadang ada kelas-kelas yang memang dirancang untuk menciptakan tidak lebih dari satu objek.
    • Objek-objek yang tercipta dari sebuah kelas disebut instans dari kelas tersebut. Instans ini akan mempunyai variabel dan metode yang disebut variabel instans dan metode instans. Namun ada juga variabel kelas yang berlaku bagi kelas itu sendiri sehingga akan berlaku juga untuk semua instans dari kelas tersebut.


    Nama dan Sintaks

    Kegunaan

    public

    Kelas dapat diakses oleh kelas apa saja. Jika kosong, maka kelas dapat diakses hanya oleh kelas-kelas dalam package yang sama.

    abstract

    Kelas tidak dapat diinstansiasi. Jika kosong, berarti kelas bukan abstrak.

    final

    Kelas tidak dapat dijadikan sebagai superkelas, artinya tidak dapat dibuat subkelas dari kelas ini. Jika kosong, berarti kelas bukan final.

    class nama kelas

    Nama dari kelas yang dibuat

    extends superkelas

    Nama superkelas, hanya boleh ada satu superkelas.

    implements nama interface

    Interface yang diimplemen, bisa lebih dari satu interface.

    { // isi kelas }

    Isi kelas

    Deklarasi Kelas:
    class SuperHero {
        String superPowers[];
        void setSuperPowers(String superPowers[])  {
            this.superPowers = superPowers;
        }
        void printSuperPowers() {
            for (int i = 0; i < superPowers.length; i++) {
                System.out.println(superPowers[i]);
           }
        }
    }
    

    Java: ASCII

    Pengenalan:

    • ASCII merupakan singkatan dari American Standard Code for Information Interchange
    • Memiliki 7-bit, 128 karakter (000 s/d 127)
    • Berupa: uppercase/lowercase letters, digits, punctuation marks, dan control characters
    • Perkembangan lanjut dari ASCII -> Unicode (terdiri dari 1,112,064 karakter)

    Contoh source code:
    public class ASCII {
        public static void main(String[] args) { 
            System.out.println("ASCII 36 = " +(char)36);
            System.out.println("ASCII 48 = " +(char)48);
            System.out.println("ASCII 49 = " +(char)49);
            System.out.println("ASCII 65 = " +(char)65);
            System.out.println("ASCII 97 = " +(char)97);
            System.out.println("ASCII 126 = "+(char)126);
        }
    }
    

    Hasil dari source code di atas adalah sebagai berikut:

    Input ASCII pada Java:
    import java.util.Scanner;
    
    
    public class InputASCII {
        public static void main(String[] args) {
            
            Scanner input = new Scanner(System.in);
            String str;
            char kar;
            
            System.out.println("Masukkan sebuah huruf/angka/tanda baca : ");
            str = input.next();
            kar = str.charAt(0);
            System.out.println("ASCII dari "+kar+" bernilai "+(int)kar);
        }
    }
    

    Hasil dari source code di atas adalah sebagai berikut:

    Java: Operator dalam Java

    Beberapa Operator pada Java diantaranya:

    • Operator Aritmatika
      • +
      • -
      • *
      • /
      • %

      Contoh source code:
      public class Aritmatika {
          public static void main(String[] args) {
              int x;
              int y;
              x = 15;
              y = 4;
              System.out.println("Nilai x+y : "+(x+y));
              System.out.println("Nilai x-y : "+(x-y));
              System.out.println("Nilai x/y : "+(x/y));
              System.out.println("Nilai x*y : "+(x*y));
          }
      }
      

      Hasil dari source code di atas adalah sebagai berikut:

    • Operator Increment and Decrement
      • ++a
      • a++
      • --a
      • a--

      Contoh source code:
      public class Increment {
          public static void main(String[] args) {
              int a=4;
              System.out.println("Nilai a = "+a);
              
              System.out.println("Nilai a menjadi = "+ (a++));
              System.out.println("Nilai a menjadi = "+ (++a));
              
              System.out.println ();
              System.out.println("Nilai a menjadi = "+ (a--));
              System.out.println("Nilai a menjadi = "+ (--a));
          }
      }
      

      Hasil dari source code di atas adalah sebagai berikut:

    • Operator Relasi
      • ==
      • !=
      • <
      • <=
      • >
      • >=

      Contoh source code:
      public class Relasi {
          public static void main(String[] args) { 
              int a = 10;
              int b = 4;
              System.out.println("Operator Logika");
              System.out.println("a > b = " +(a>b));
              System.out.println("a < b = " +(a<b));
              System.out.println("a = b = " +(a==b));
              System.out.println("a != b = " +(a!=b));
          }
      }
      

      Hasil dari source code di atas adalah sebagai berikut:

    • Operator Logika
      • &&
      • ||
      • !

      Contoh source code:
      public class LogicalOperatorsDemo {
          public static void main(String[] args) {
              
              boolean  x = true;
              boolean y = false;
              
              System.out.println("x & y : " + (x & y));
              System.out.println("x && y : " + (x && y));
              System.out.println("x | y : " + (x | y));
              System.out.println("x || y : " + (x || y));
              System.out.println("x ^ y : " + (x ^ y));
              System.out.println("!x : " + (!x));
          }
      }
      

      Hasil dari source code di atas adalah sebagai berikut:

    Odoo 11 - Create a new sample module

    How To Create or Develop a Custom Module in Odoo 11 In this blog, we‘ll be focusing on how we can create or develop a custom mo...