Minggu, 13 November 2016

Pembuatan Garis Vertikal, Horizontal dan Diagonal Menggunakan OpenGL


OpenGL (Open Graphics Library) adalah spesifikasi standar yang mendefinisikan sebuah lintas-bahasa, lintas platform API untuk mengembangkan aplikasi yang menghasilkan grafis komputer 2D maupun3D. Antarmuka terdiri dari lebih dari 250 panggilan fungsi yang berbeda yang dapat digunakan untuk menggambar tiga dimensi yang adegan-adegan kompleks dari bentuk-bentuk primitif sederhana. OpenGL dikembangkan oleh Silicon Graphics Inc (SGI) pada tahun 1992 [2] dan secara luas digunakan dalam CAD, realitas maya, visualisasi ilmiah, visualisasi informasi, dan simulasi penerbangan. Hal ini juga digunakan dalam video game, di mana bersaing dengan Direct3D on Microsoft Windows platform (lihat vs OpenGL Direct3D). OpenGL dikelola oleh sebuah teknologi konsorsium nirlaba yaitu Khronos Group. 
➧Untuk melihat panduan bagaimana cara pembuatan program tersebut klik, Disini

➧Untuk melihat hasil output program tersebut, klik Disini

Kamis, 03 November 2016

Pencarian Terbimbing (Heuristic Search)


Berbeda dengan blind search, heuristic search mempunyai informasi tentang cost/biaya untuk mencapai goal state dari current state. Dengan informasi tersebut, heuristic search dapat melakukan pertimbangan untuk mengembangkan atau memeriksa node-node yang mengarah ke goal state. Misalnya pada pencarian rute pada suatu peta, bila kita berangkat dari kota A ke kota tujuan B yang letaknya di Utara kota A, dengan heuristic search, pencarian akan lebih difokuskan ke arah Utara (dengan informasi cost ke goal), sehingga secara umum, heuristic search lebih efisien daripada blind search.

Heuristic search untuk menghitung (perkiraan) cost ke goal state, digunakan fungsi heuristic. Fungsi heuristic berbeda daripada algoritma, dimana heuristic lebih merupakan perkiraan untuk membantu algoritma, dan tidak harus valid setiap waktu. Meskipun begitu, semakin bagus fungsi heuristic yang dipakai, semakin cepat dan akurat pula solusi yang didapat. Menentukan heuristic yang tepat untuk kasus dan implementasi yang ada juga sangat berpengaruh terhadap kinerja algoritma pencarian. Aplikasi yang menggunakan fungsi heuristic : Google, Deep Blue Chess Machine

Beberapa contoh algoritma pencarian yang menggunakan metode heuristic search adalah Generate and Test Best First Search, Greedy Search, A* (A Star) Search, dan Hill Climbing Search.

PEMBANGKITAN dan PENGUJIAN (Generate and Test)

-Metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal.
Algoritma :

1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu tititk tertentu atau lintasan tertentu dari keadaan awal).
2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan cara membandingkan node terebut atau node akhir dari suatu lintasan yang  dipilih dengan kumpulan tujuan yang diharapkan.
3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama.


Contoh : “Travelling Salesman Problem (TSP)”

*) Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui ruter terpendek dimana setaip kota hanya  boleh dikkunjungi tepat 1 kali. Misalkan ada 4 kota  dengan jarak antara tiap-tiap kota seperti berikut ini :

Alur pencarian dengan Generate and Test

Pencarian ke-
Lintasan
Panjang Lintasan
Lintasan terpilih
Panjang Lintasan terpilih
1
ABCD
19
ABCD
19
2
ABDC
18
ABDC
18
3
ACBD
12
ACBD
12
4
ACDB
13
ACBD
12
5
ADBC
16
ACBD
12
Dst…..


PENDAKIAN BUKIT (Hill Climbing)
Metode ini hampir sama dengan metode pembangkitan dan pengujian, hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristic. Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnyayang mungkin.
Algoritma:

1. Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
a) Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang : Cari operator yang belum digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
b) Evaluasi keadaan baru tersebut :
– Jika keadaan baru merupakan tujuan, keluar
– Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang.
– Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.

Contoh: TSP dengan Simple Hill Climbing

Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak 6 kombinasi. Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi.




Source
viska.web.id/wp-content/uploads/2012/03/Modul-Pertemuan-2-7.pdf
cs.unsyiah.ac.id/~irvanizam/teaching/ai/INF303-04.pdf
dir.unikom.ac.id/s1-final-project/fakultas...dan...pdf/pdf/4-unikom-d-i.pdf
hendrik.staff.gunadarma.ac.id/Downloads/files/23065/teknik-pencarian-heuristik.pdf


Pencarian Buta (Blind Search)


Blind Search adalah pencarian solusi tanpa adanya informasi yang dapat mengarahkan pencarian untuk mencapai goal state dari current state (keadaan sekarang). Informasi yang ada hanyalah definisi goal state itu sendiri, sehingga algoritma dapat mengenali goal state bila menjumpainya.

Dengan ketiadaan informasi, maka blind search dalam kerjanya memeriksa/mengembangkan node-node secara tidak terarah dan kurang efisien untuk kebanyakan kasus karena banyaknya node yang dikembangkan.

Beberapa contoh algoritma yang termasuk blind seacrh  antara lain adalah

Breadth First Search, Uniform Cost Search, Depth First Search, Depth Limited Search, Iterative Deepening Search, dan Bidirectional Search.



BreadthFirst Search

Semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level 1 dari kiri ke kanan, kemudian berpindah ke level berikutnya dari kiri ke kanan hingga solusi ditemukan.


Keuntungan :

-     tidak akan menemui jalan buntu, menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti yang paling baik
-     jika ada 1 solusi, maka breadth – first search akan menemukannya,jika ada lebih dari 1 solusi, maka solusi minimum akan ditemukan.
-      Kesimpulan : complete dan optimal
Kelemahan :
-    membutuhkan memori yang banyak, karena harus menyimpan semua simpul yang pernah dibangkitkan. Hal ini harus dilakukan agar BFS dapat melakukan penelusuran simpul-simpul sampai di level bawah
-        membutuhkan waktu yang cukup lama


CONTOH KASUS:




1.    Padametode ini diperiksa setiap node pada level yang sama sebelum mengolah ke level berikutnya yang lebih dalam.

2.     Pencariandilakukan pada semua simpul dalam setiap level secara berurutan dari kiri ke kanan.

3.     jikapada satu level belum ditemukan solusinya, maka pencarian dilanjutkan pada level berikutnya.

Depth – First Search

Pencarian dilakukan pada suatu simpul dalam setiap level dari yang paling kiri.
Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari memori.
Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.

Keuntungan :

-       membutuhkan memori relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan
-       Secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan, jadi jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya dengan cepat Ã† waktu cepat
Kelemahan :
-    Memungkinkan tidak ditemukannya tujuan yang diharapkan, karena jika pohon yang dibangkitkan mempunyai level yang sangat dalam (tak terhingga) Ã† tidak complete karena tidak ada jaminan menemukan solusi
-     Hanya mendapat 1 solusi pada setiap pencarian, karena jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka DFS tidak menjamin untuk menemukan solusi yang paling baik Ã† tidak optimal.

CONTOH KASUS:



1.     Pencariandilakukan pada suatu simpul dalam setiap level dari yang paling kiri.

2.    Jikapada level yang terdalam, solusi belum ditemukan, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari memori

3.  Jikapada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya.

4.     Demikian seterusnya sampai ditemukan solusi

Source
viska.web.id/wp-content/uploads/2012/03/Modul-Pertemuan-2-7.pdf
cs.unsyiah.ac.id/~irvanizam/teaching/ai/INF303-04.pdf
dir.unikom.ac.id/s1-final-project/fakultas...dan...pdf/pdf/4-unikom-d-i.pdf

Minggu, 02 Oktober 2016

Expert System



Ketika hendak membuat suatu keputusan yang komplek atau memecahkan masalah, seringkali kita meminta nasehat atau berkonsultasi dengan seorang pakar atau ahli. Seorang pakaradalah seseorang yang mempunyai pengetahuan dan pengalaman spesifik dalam suatu bidang; misalnya pakar komputer, pakar uji tak merusak, pakar politik dan lain-lain. Semakin tidak terstruktur situasinya, semakin mengkhusus (dan mahal) konsultasi yang dibutuhkan.

Sistem Pakar (Expert System) adalah usaha untuk menirukan seorang pakar. Biasanya Sistem Pakar berupa perangkat lunak pengambil keputusan yang mampu mencapai tingkat performa yang sebanding seorang pakar dalam bidang problem yang khusus dan sempit. Ide dasarnya adalah: kepakaran ditransfer dari seorang pakar (atau sumber kepakaran yang lain) ke komputer, pengetahuan yang ada disimpan dalam komputer, dan pengguna dapat berkonsultasi pada komputer itu untuk suatu nasehat, lalu komputer dapat mengambil inferensi (menyimpulkan, mendeduksi, dll.) seperti layaknya seorang pakar, kemudian menjelaskannya ke pengguna tersebut, bila perlu dengan alasan-alasannya. Sistem Pakar malahan terkadang lebih baik unjuk kerjanya daripada seorang pakar manusia!

Kepakaran (expertise) adalah pengetahuan yang ekstensif (meluas) dan spesifik yang diperoleh melalui rangkaian pelatihan, membaca, dan pengalaman. Pengetahuan membuat pakar dapat mengambil keputusan secara lebih baik dan lebih cepat daripada non-pakar dalam memecahkan problem yang kompleks. Kepakaran mempunyai sifat berjenjang, pakar top memiliki pengetahuan lebih banyak daripada pakar junior.
Tujuan Sistem Pakar adalah untuk mentransfer kepakaran dari seorang pakar ke komputer, kemudian ke orang lain (yang bukan pakar). Proses ini tercakup dalam rekayasa pengetahuan (knowledge engineering) yang akan dibahas kemudian.

Manfaat dan Keterbatasan Sistem Pakar

Manfaat Sistem Pakar

Mengapa Sistem Pakar menjadi sangat populer? Hal ini disebabkan oleh sangat banyaknya kemampuan dan manfaat yang diberikan oleh Sistem Pakar, di antaranya:

a.  Meningkatkan output dan produktivitas, karena Sistem Pakar dapat bekerja lebih cepat dari manusia.
b.  Meningkatkan kualitas, dengan memberi nasehat yang konsisten dan mengurangi kesalahan.
c.  Mampu menangkap kepakaran yang sangat terbatas.
d.  Dapat beroperasi di lingkungan yang berbahaya. 
e.  Memudahkan akses ke pengetahuan. 
f. Handal. Sistem Pakar tidak pernah menjadi bosan dan kelelahan atau sakit. Sistem Pakar juga secara konsisten melihat semua detil dan tidak akan melewatkan informasi yang relevan dan solusi yang potensial.
g. Meningkatkan kapabilitas sistem terkomputerisasi yang lain. Integrasi Sistem Pakar dengan sistem komputer lain membuat lebih efektif, dan mencakup lebih banyak aplikasi .
h.  Mampu bekerja dengan informasi yang tidak lengkap atau tidak pasti. Berbeda dengan sistem komputer konvensional, Sistem Pakar dapat bekerja dengan inofrmasi yang tidak lengkap. Pengguna dapat merespon dengan: “tidak tahu” atau “tidak yakin” pada satu atau lebih pertanyaan selama konsultasi, dan Sistem Pakar tetap akan memberikan jawabannya.
i.  Mampu menyediakan pelatihan. Pengguna pemula yang bekerja dengan Sistem Pakar akan menjadi lebih berpengalaman. Fasilitas penjelas dapat berfungsi sebagai guru.
j.   Meningkatkan kemampuan problem solving, karena mengambil sumber pengetahuan dari banyak pakar.
k.  Meniadakan kebutuhan perangkat yang mahal.
l.    Fleksibel.

Keterbatasan Sistem Pakar

Metodologi Sistem Pakar yang ada tidak selalu mudah, sederhana dan efektif. Berikut adalah keterbatasan yang menghambat perkembangan Sistem Pakar:

a.     Pengetahuan yang hendak diambil tidak selalu tersedia.

b.     Kepakaran sangat sulit diekstrak dari manusia.

c.    Pendekatan oleh setiap pakar untuk suatu situasi atau problem bisa berbeda-beda, meskipun sama-sama benar
d.   Adalah sangat sulit bagi seorang pakar untuk mengabstraksi atau menjelaskan langkah mereka dalam menangani masalah
e.   Pengguna Sistem Pakar mempunyai batas kognitif alami, sehingga mungkin tidak bisa memanfaatkan sistem secara maksimal.
f.     Sistem Pakar bekerja baik untuk suatu bidang yang sempit.

g.   Banyak pakar yang tidak mempunyai jalan untuk mencek apakah kesimpulan mereka benar dan masuk akal.
h.   Istilah dan jargon yang dipakai oleh pakar dalam mengekspresikan fakta seringkali terbatas dan tidak mudah dimengerti oleh orang lain.
i.    Pengembangan Sistem Pakar seringkali membutuhkan perekayasa pengetahuan (knowledge engineer) yang langka dan mahal.

j.      Kurangnya rasa percaya pengguna menghalangi pemakaian Sistem Pakar.

k.     Transfer pengetahuan dapat bersifat subyektif dan bias.

Contoh Aplikasi Sistem Pakar

Aplikasi Sederhana: Sistem Pakar Bengkel Mobil

Ini adalah contoh Sistem Pakar sederhana, yang bertujuan untuk mencari apa yang salah sehingga mesin mobil pelanggan yang tidak mau hidup, dengan memberikan gejala-gejala yang teramati. Anggap Sistem Pakar kita memiliki aturan-aturan berikut:

1.  JIKA mesin_mendapatkan_bensin DAN starter_dapat_dihidupkan
MAKA ada_masalah_dengan_pengapian

2.  JIKA TIDAK BENAR starter_dapat_dihidupkan DAN TIDAK BENAR lampu_menyala

MAKA ada_masalah_dengan_aki

3.  JIKA TIDAK BENAR starter_dapat_dihidupkan DAN lampu_menyala
MAKA ada_masalah_dengan_starter

4.  JIKA ada_bensin_dalam_tangki_bahan_bakar MAKA mesin_mendapatkan_bensin

Terdapat 3 masalah yang mungkin, yaitu:

ada_masalah_dengan_aki dan ada_masalah_dengan_starter. Dengan sistem terarah-tujuan (goal-driven), kita hendak membuktikan keberadaan setiap masalah tadi.

Pertama, Sistem Pakar berusaha untuk membuktikan kebenaran ada_masalah_dengan_pengapian. Di sini, aturan 1 dapat digunakan, sehingga Sistem Pakar akan menset goal baru untuk membuktikan apakah sertastarter_dapat_dihidupkan. Untuk membuktikannya, aturan 4 dapat digunakan, dengan goal baru untuk membuktikan mesin_mendapatkan_bensin. Karena tidak ada aturan lain yang dapat digunakan menyimpulkannya, sedangkan sistem belum memperoleh solusinya, maka Sistem Pakar kemudian bertanya kepada pelanggan: “Apakah ada bensin dalam tangki bahan bakar?”. Sekarang, katakanlah jawaban klien adalah “Ya”, jawaban ini kemudian dicatat, sehingga klien tidak akan ditanyai lagi dengan pertanyaan yang sama.

Nah, karena sistem sekarang sudah dapat membuktikan bahwa mesin mendapatkan bensin, maka sistem sekarang berusaha mengetahui apakah starter_dapat_dihidupkan. Karena sistem belum tahu mengenai hal ini, sementara tidak ada aturan lagi yang dapat menyimpulkannya, maka Sistem Pakar bertanya lagi ke klien: “Apakah starter dapat dihidupkan?”. Misalkan jawabannya adalah “Tidak”, maka tidak ada lagi aturan yang dapat membuktikanada_masalah_dengan_pengapian, sehingga Sistem Pakar berkesimpulan bahwa hal ini bukanlah solusi dari problem yang ada, dan kemudian melihat hipotesis berikutnya:ada_masalah_dengan_aki. Sudah diketahui (dibuktikan) bahwa mesin tidak dapat distarter, sehingga yang harus dibuktikan adalah bahwa lampu tidak menyala. Sistem Pakar kemudian bertanya: “Apakah lampu menyala?”. Misalkan jawabannya adalah “Tidak”, maka sudah terbukti bahwa ada masalah dengan aki.
Sistem ini mungkin berhenti sampai di sini, tetapi biasanya ada kemungkinan terdapat lebih dari satu solusi (misalnya terdapat lebih dari satu kerusakan), atau ada kemungkinan terdapat solusi lain yng lebih tepat, sehingga biasanya semua hipotesis diperiksa kebenarannya. Sistem Pakar ini kemudian mencoba membuktikan bahwa ada_masalah_dengan_starter, namun dari fakta yang sudah diperoleh, yaitu lampu tidak menyala, maka pembuktiannya menjadi gagal. Dengan demikian solusi yang diberikan oleh Sistem Pakar adalah ada masalah dengan aki.

Secara lengkap, interaksi antara Sistem Pakar dengan klien mungkin seperti ini:

System Pakar:  Apakah ada bensin dalam tangki bahan bakar?
Klien:                 Ya
System Pakar:  Apakah starter dapat dihidupkan?
Klien:                 Tidak
System Pakar:  Apakah lampu menyala?
Klien:                 Tidak
System Pakar:  Saya berkesimpulan bahwa ada masalah dengan aki

Fasilitas Penjelasan

Kebanyakan Sistem Pakar mempunyai fasilitas penjelasan yang mengijinkan klien untuk bertanya mengapa dia diberi suatu pertanyaan atau bagaimana dapat mencapai suatu kesimpulan. Pertanyaan dari klien tersebut dijawab dengan mengacu pada goal, aturan yang dipakai, dan data-data yang ada. Contoh pemakaian fasilitas penjelas dalam Sistem Pakar di atas dapat dilihat pada percakapan berikut:

System Pakar:  Apakah ada bensin dalam tangki bahan bakar?
Klien:                   Ya
System Pakar:  Apakah starter dapat dihidupkan?
Klien:                   Tidak
System Pakar:  Apakah lampu menyala?
Klien:                   Mengapa?
System Pakar:  Saya mencoba membuktikan bahwa ada masalah dengan aki.
                        Sudah ditunjukkan, tidak benar starter dapat dihidupkan.
                        Sehingga jika tidak benar bahwa lampu menyala, maka ada
                        masalah dengan aki.
                       Apakah lampu menyala? 
Klien:                   Tidak
System Pakar:  Saya berkesimpulan bahwa ada masalah dengan aki
Klien:                   Bagaimana bisa?
System Pakar:  Hal ini sesuai dengan aturan no 2:
JIKA TIDAK BENAR starter_dapat_dihidupkan DAN TIDAK BENAR lampu_menyala MAKA ada_masalah_dengan_aki bahwa tidak benar starter_dapat_dihidupkan sudah dijawab, bahwa tidak benar lampu_menyala sudah dijawab, sehingga dapat disimpulkan bahwa ada_masalah_dengan_aki.

Fasilitas penjelasan berhubungan dengan pencatatan aturan apa saja yang digunakan untuk mengambil kesimpulan, dan menggunakan catatan tersebut untuk menyusun penjelasan. Pembangkitan penjelasan sederhana seperti contoh di atas bukanlah persoalan yang sulit, namun pemahaman klien terhadap penjelasan tersebut tidaklah sama, sehingga seringkali klien tetap tidak mengerti maksudnya. Hal ini karena biasanya penjelasan hanya meliputi pengetahuan yang dangkal atau hanya permukaan saja sebagaimana tercantum dalam autran yang dipunyai, bukannya pengetahuan yang mendalam yang mendasari aturan tersebut. Dalam contoh di atas, Sistem Pakar hanya mengatakan bahwa hal ini sesuai dengan aturan no 2, tetapi tidak menjelaskan secara lebih detil mengenai aturan 2 tersebut. Mungkin klien perlu diberi pengertian bahwa lampu dan starter dua-duanya menggunakan aki untuk menyalakannya. Hal penting lain adalah ketika klien gagal mengerti atau menerima penjelasan yang diberikan, biasanya Sistem Pakar tidak dapat memberi penjelasan dengan cara lain (tidak begitu halnya dengan seorang pakar yang mampu menggunakan kalimat yang lain untuk mencoba menjelaskannya).

Eliza

Eliza adalah salah satu Sistem Pakar yang paling awal dikembangkan. Ini adalah program komputer terapis yang dibuat oleh Joseph Weizenbaum di MIT. Pengguna berkomunikasi dengannya sebagaimana sedang berkonsultasi dengan seorang terapis. Berikut ini adalah contoh percakapan antara Eliza dengan seorang klien:

Eliza:     Hello. I am ELIZA. How can I help you?

Klien:     My name is Balza.
Eliza:     I have told you before, I do not care about names.
Klien:     I don’t have any money. That’s my problem.
Eliza:     Why do you say your problem?
Klien:     Because you asked me.
Eliza:     Do any other reasons not come to mind?
Klien:     No.
Eliza:     You are being a bit negative.
Klien:     Why?
Eliza:     Please go on.
Klien:     OK. I am bankrupt.

Eliza:     How long have you been bankrupt?
Klien:     A year.
Eliza:     Please go on.
Klien:     So, what should I do?
Eliza:     Does that question interest you?
Klien:     Yes, how can I make big money?
Eliza:     You are sure?
Klien:     Of course I’m sure.
...

Parry

Parry adalah Sistem Pakar yang juga paling awal dikembangkan di Stanford University oleh seorang psikiater, Kenneth Colby, yang mensimulasikan seorang paranoid. Berikut ini contoh respon Parry terhadap pertanyaan seorang psikiater yang menginterviunya.

Psikiater:     Why are you in the hospital?

Parry:          I shouldn't be here.
Psikiater:     Who brought you here?
Parry:          The police.
Psikiater:     What trouble did you have with the police?
Parry:          Cops don't do their job.
Psikiater:     What do they do instead?
Parry:          Cops arrest the wrong people.
Psikiater:     They arrest the right ones sometimes

Parry:          The law should get those Italian crooks.
Psikiater:     Are you Italian?
Parry:          My background is British but I was born in this country.
Psikiater:     Do you know any Italian crooks?
Parry:          I try to avoid the underworld.

...

Sumber yang saya dapatkan berupa e-book yang telah saya rangkum sedemikian rupa, jika ingin mengetahui sumber tersebut, Anda dapat klik link yang saya berikan dibawah ini: