Global CSS

Dalam pembuatan website pasti ada css yang kita gunakan berulang-ulang, hal ini biasa saya sebut dengan global CSS. Apa itu global css definisi dari saya adalah css yang bisa kita gunakan di setiap project. Berikut kode global css yang saya gunakan selama menjadi web developer


body{overflow-x:hidden;}
/*the basic*/
.lebar_full{width: 100%;}
.lebar_90{width: 90%;}
.lebar_85{width: 85%;}
.lebar_80{width: 80%;}
.lebar_75{width: 75%;}
.lebar_70{width: 70%;}
.lebar_65{width: 65%;}
.lebar_60{width: 60%;}
.lebar_55{width: 55%;}
.lebar_50{width: 50%;}
.lebar_45{width: 45%;}
.lebar_40{width: 40%;}
.lebar_35{width: 35%;}
.lebar_30{width: 30%;}
.lebar_27_5{width: 27.5%;}
.lebar_25{width: 25%;}
.lebar_20{width: 20%;}
.lebar_10{width: 10%;}
.lebar_5{width: 5%;}


.padding_left_1{padding-left: 1%;}
.padding_left_2{padding-left: 2%;}
.padding_left_2_5{padding-left: 2.5%;}
.padding_left_5{padding-left: 5%;}
.padding_left_10{padding-left: 10%;}
.padding_left_12_5{padding-left: 12.5%;}
.padding_left_15{padding-left: 15%;}
.padding_left_20{padding-left: 20%;}
.padding_left_25{padding-left: 25%;}
.padding_left_30{padding-left: 30%;}
.padding_left_40{padding-left: 40%;}
.padding_left_50{padding-left: 50%;}
.padding_left_60{padding-left: 60%;}
.padding_left_70{padding-left: 70%;}
.padding_left_80{padding-left: 80%;}
.padding_left_90{padding-left: 90%;}

.padding_right_1{padding-right: 1%;}
.padding_right_2_5{padding-right: 2.5%;}
.padding_right_5{padding-right: 5%;}
.padding_right_10{padding-right: 10%;}
.padding_right_12_5{padding-right: 12.5%;}
.padding_right_15{padding-right: 15%;}
.padding_right_20{padding-right: 20%;}
.padding_right_25{padding-right: 25%;}
.padding_right_30{padding-right: 30%;}
.padding_right_40{padding-right: 40%;}
.padding_right_50{padding-right: 50%;}
.padding_right_60{padding-right: 60%;}
.padding_right_70{padding-right: 70%;}
.padding_right_80{padding-right: 80%;}
.padding_right_90{padding-right: 90%;}

.padding_top_1{padding-top: 1%;}
.padding_top_1_5{padding-top: 1.5%;}
.padding_top_2_5{padding-top: 2.5%;}
.padding_top_3_5{padding-top: 3.5%;}
.padding_top_5{padding-top: 5%;}
.padding_top_7{padding-top: 7%;}
.padding_top_10{padding-top: 10%;}
.padding_top_12_5{padding-top: 12.5%;}
.padding_top_15{padding-top: 15%;}
.padding_top_20{padding-top: 20%;}
.padding_top_25{padding-top: 25%;}
.padding_top_30{padding-top: 30%;}
.padding_top_40{padding-top: 40%;}
.padding_top_45{padding-top: 45%;}
.padding_top_50{padding-top: 50%;}
.padding_top_60{padding-top: 60%;}
.padding_top_70{padding-top: 70%;}
.padding_top_80{padding-top: 80%;}
.padding_top_90{padding-top: 90%;}

.padding_bot_0_5{padding-bottom: 0.5%;}
.padding_bot_1{padding-bottom: 1%;}
.padding_bot_1_5{padding-bottom: 1.5%;}
.padding_bot_2_5{padding-bottom: 2.5%;}
.padding_bot_5{padding-bottom: 5%;}
.padding_bot_10{padding-bottom: 10%;}
.padding_bot_15{padding-bottom: 15%;}
.padding_bot_20{padding-bottom: 20%;}
.padding_bot_25{padding-bottom: 25%;}
.padding_bot_30{padding-bottom: 30%;}
.padding_bot_40{padding-bottom: 40%;}
.padding_bot_50{padding-bottom: 50%;}
.padding_bot_60{padding-bottom: 60%;}
.padding_bot_70{padding-bottom: 70%;}
.padding_bot_80{padding-bottom: 80%;}
.padding_bot_90{padding-bottom: 90%;}

.margin_5{margin:5%;}
.margin_10{margin:10%;}
.margin_15{margin:15%;}
.margin_20{margin:20%;}
.margin_25{margin:25%;}
.margin_30{margin:30%;}
.margin_40{margin:40%;}
.margin_50{margin:50%;}
.margin_60{margin:60%;}
.margin_70{margin:70%;}
.margin_80{margin:80%;}
.margin_90{margin:90%;}

.margin_left_5{margin-left: 5%;}
.margin_left_10{margin-left: 10%;}
.margin_left_15{margin-left: 15%;}
.margin_left_20{margin-left: 20%;}
.margin_left_25{margin-left: 25%;}
.margin_left_30{margin-left: 30%;}
.margin_left_35{margin-left: 35%;}
.margin_left_40{margin-left: 40%;}
.margin_left_45{margin-left: 45%;}
.margin_left_50{margin-left: 50%;}
.margin_left_60{margin-left: 60%;}
.margin_left_70{margin-left: 70%;}
.margin_left_80{margin-left: 80%;}
.margin_left_90{margin-left: 90%;}

.margin_top_2{margin-top: 2%;}
.margin_top_2_5{margin-top: 2.5%;}
.margin_top_5{margin-top: 5%;}
.margin_top_10{margin-top: 10%;}
.margin_top_12_5{margin-top: 12.5%;}
.margin_top_15{margin-top: 15%;}
.margin_top_20{margin-top: 20%;}
.margin_top_25{margin-top: 25%;}
.margin_top_30{margin-top: 30%;}
.margin_top_40{margin-top: 40%;}
.margin_top_45{margin-top: 45%;}
.margin_top_50{margin-top: 50%;}
.margin_top_60{margin-top: 60%;}
.margin_top_70{margin-top: 70%;}
.margin_top_80{margin-top: 80%;}
.margin_top_90{margin-top: 90%;}

.margin_bot_2_5{margin-bottom: 2.5%;}
.margin_bot_5{margin-bottom: 5%;}
.margin_bot_10{margin-bottom: 10%;}
.margin_bot_15{margin-bottom: 15%;}
.margin_bot_20{margin-bottom: 20%;}
.margin_bot_25{margin-bottom: 25%;}
.margin_bot_30{margin-bottom: 30%;}
.margin_bot_40{margin-bottom: 40%;}
.margin_bot_50{margin-bottom: 50%;}
.margin_bot_60{margin-bottom: 60%;}
.margin_bot_70{margin-bottom: 70%;}
.margin_bot_80{margin-bottom: 80%;}
.margin_bot_90{margin-bottom: 90%;}

.margin_right_2_5{margin-right: 2.5%;}
.margin_right_5{margin-right: 5%;}
.margin_right_10{margin-right: 10%;}
.margin_right_15{margin-right: 15%;}
.margin_right_20{margin-right: 20%;}
.margin_right_25{margin-right: 25%;}
.margin_right_30{margin-right: 30%;}
.margin_right_35{margin-right: 35%;}
.margin_right_40{margin-right: 40%;}
.margin_right_50{margin-right: 50%;}
.margin_right_60{margin-right: 60%;}
.margin_right_70{margin-right: 70%;}
.margin_right_80{margin-right: 80%;}
.margin_right_90{margin-right: 90%;}

.margin_2_5{margin:0 2.5% !important;}
.margin_5{margin:0 5% !important;}
.margin_7_5{margin:0 7.5% !important;}
.margin_10{margin:0 10% !important;}
.margin_12_5{margin:0 12.5% !important;}
.margin_15{margin:0 15% !important;}
.margin_17_5{margin:0 7.5% !important;}
.margin_20{margin:0 20% !important;}
.margin_25{margin:0 25% !important;}
.margin_30{margin:0 30% !important;}
.margin_35{margin:0 35% !important;}
.margin_40{margin:0 40% !important;}
.margin_45{margin:0 45% !important;}
.margin_50{margin:0 50% !important;}
.margin_55{margin:0 55% !important;}
.margin_60{margin:0 60% !important;}
.margin_65{margin:0 65% !important;}
.margin_70{margin:0 70% !important;}
.margin_75{margin:0 75% !important;}
.margin_80{margin:0 80% !important;}
.margin_85{margin:0 85% !important;}
.margin_90{margin:0 90% !important;}


.margin_tengah{margin:0 auto !important;}
.absolute{position: absolute;}
.relative{position: relative;}
.left{float: left;}
.right{float:right;}
.bottom{bottom:5px;}
.cursor{cursor: pointer; cursor: hand;}
.putih{color: #ffffff;}
.hitam{color:#000000;}


Kode di atas bisa anda tambahkan sesuai dengan keinginan dan kebutuhan anda. Kode di atas tidak harus anda gunakan. Jika anda tidak terlalu membutuhkan anda bisa menggunakan referensi yang lain.

Soal-soal Ujian Masuk Programmer Perusahaan 2015(Part 1)

Dalam Artikel ini bahasa yang saya gunakan campuran di karenakan ada beberapa kalimat atau kata yang kurang familiar jika di terjemahkan ke dalam bahasa indonesia.

1.Perbedaan antara include dan required
Perbedaan antara include dan required tidak begitu banyak hanya Jika anda menggunakan include dan tidak ada filenya hanya menampilkan error code selanjutnya tetap di jalankan.
Sedangkan Require jika terjadi error menampilkan error dan kode selanjutnya tidak di jalankan.

2.Perbedaaan accessing a class method via -> and via :: ? example: SampleClass->doFunction(); and SampleClass::doFunction();

-> mengacu kepada member object atau sub class
:: mengacu kepada static,constant, atau overriden properti

Refference:
3.Perbedaan htmlentities() and htmlspecialchars()?

htmlentities() adalah mengubah semua entitas ke dalam html
htmlspecialchars() adalah mengubah semua entitas termasuk special karakter (&,'',"",>,<) kedalam html

4.Perbedaan empty dan isset dan is_null dan apa itu unset dan implode

Secara lengkap perbedaan antara isset dan empty ada di table di bawah

Expressiongettype()empty()is_null()isset()boolean : if($x)
$x = "";stringTRUEFALSETRUEFALSE
$x = null;NULLTRUETRUEFALSEFALSE
var $x;NULLTRUETRUEFALSEFALSE
$x is undefinedNULLTRUETRUEFALSEFALSE
$x = array();arrayTRUEFALSETRUEFALSE
$x = false;booleanTRUEFALSETRUEFALSE
$x = true;booleanFALSEFALSETRUETRUE
$x = 1;integerFALSEFALSETRUETRUE
$x = 42;integerFALSEFALSETRUETRUE
$x = 0;integerTRUEFALSETRUEFALSE
$x = -1;integerFALSEFALSETRUETRUE
$x = "1";stringFALSEFALSETRUETRUE
$x = "0";stringTRUEFALSETRUEFALSE
$x = "-1";stringFALSEFALSETRUETRUE
$x = "php";stringFALSEFALSETRUETRUE
$x = "true";stringFALSEFALSETRUETRUE
$x = "false";stringFALSEFALSETRUETRUE
unset adalah menhilangkan variable secara spesific
<?phpfunction destroy_foo()
{
    global 
$foo;
    unset(
$foo);
}
$foo 'bar';destroy_foo();
echo 
$foo;?>

hasilny adalah  bar jadi variable global yang di deklarasi di awal di hancurkan dan di ganti dengan bar.

implode adalah fungsi untuk menjoin elemen dengan string
<!DOCTYPE html>
<html>
<body>

<?php
$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr)."<br>";
echo implode("+",$arr)."<br>";
echo implode("-",$arr)."<br>";
echo implode("X",$arr);
?>

</body>
</html>

Hasilnya adalah:
Hello World! Beautiful Day!
Hello+World!+Beautiful+Day!
Hello-World!-Beautiful-Day!
HelloXWorld!XBeautifulXDay!


Refference:

5.Bagaimana Anda biasanya mendebug  PHP Application ?
Untuk debugging biasa menggunakan ini_set('display_errors',1);
atau anda bisa menggunakan error_reporting(-1)   ==Report all php errors
atau anda bisa menggunakan error_reporting(E_ALL & ~E_NOTICE)

6.Jika variable $a sama dengan 5 dan variable $b sama dengan variable a, maka nilai dari $$b 
$$b meaning of $a=5 & $b=$a so $$b=5;  $$ atau biasa di sebut double dollar di php pada prinsipnya ada mengoveride variable contoh $a='hello'; $hello='word'; $$a menjadi 'word' hal ini di karenakan $$a sama dengan echo $a $hello

Reference:

  1. double-dollar-sign-php
  2. language.variables.variable.php
7.How do you create sub domains using PHP ?
Saya belum pernah mencoba di php. Tapi anda bisa mencobanya dengan melihat referensi di bawah ini

Refference:



note: Cleaning url

-Bagaimana mendisplay domain menggunakan regex(regular expression)

input:http://oto.detik.com/read/2013/06/07/155216/2267246/1207/bmw-320d-miliki-konsumsi-bbm-227-km-liter
Output: the domain is detik.com
$url=http://oto.detik.com/read/2013/06/07/155216/2267246/1207/bmw-320d-miliki-konsumsi-bbm-227-km-liter;
$info=$parse_url

$host=$info['host'];

$host_names = explode(".", $host);

 $bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1];
Refference:

  1. parsing-domain-from-url-in-php
  2. get-domain-name-not-subdomain-in-php

9.Perbedaan Class dan Object
Kelas merupakan blue print dari objek sedangkan Object adalah bukti nyata dari blue print Class tersebut
Reference:



10.What is Callback?
Callback adalah balasan data dari sebuah fungsi callback bisa berupa success,fail,abort,always.

Reference:



11. Apa itu singleton?
Singleton adalah design pattern dimana satu kelas hanya memiliki satu instance dan dapat di akses secara global.

Keadaan dimana singleton itu diterapkan adalah:

  • Logger Classes-->singleton biasa di gunakan dalam membuat log. class log dapat di akses secara global namun hanya memiliki satu instance. Dengan membuat class log anda tidak harus membuat object setiap kali melakukan log
  • Configuration Classes --> Salah satu penerapan dalam singleton ialah untuk configurasi class. selain dapat di akses global singleton juga membuat configurasi sebagai object yang berbentuk caching. Dengan begitu untuk pemanggilan configurasi ini akan lebih mudah.
  • Accesing resources in shared mode -->Jika ada aplikasi yang membutuhkan port serial singleton sangatlah cocok di aplikasikan. Terdapat banyak class yang bekerja secara multi-threading namun harus menggunakan port serial. Tugas singleton adalah mengelola semua operasi pada port serial tersebut.
  • Factories implemented as Singletons -->Untuk pembuatan factori ada baiknya menggunakan singleton. Jika ada kasus jika dalam factori membuat satu id(product dengan id) menggunakan dua benang yang berbeda ada kemungkinan tumpang tindih id. ada baiknya jika menggunakan singleton untuk menghindari hal ini. Menggabungkan Abstrak Pabrik atau Pabrik Metode dan Singleton Pattern adalah praktek umum.


Reference:



12.Apa itu dependency injection
Dependency injection dalam bahasa simplenya jika suatu class tidak bisa berjalan jika tidak ada class lain maka terjadilah dependency. Class yang di butuhkan/diinject tidak hanya bisa membuat object namun juga prilakunya.
Dependency injection dapat dilakukan dengan 3 hal:Constractor injection,setter injection,dan Interface injection.

Refference:



13.Apa itu Lambda &Eclosure
Lambda adalah anonymous function yang bisa di assign ke sebuah variable
sebagai contoh:
//define function
$halo= function (){

return "Hello World !!!!";
};

//function call
echo $halo();
Lambda sebagai argumen/parameter untuk fungsi lain
//function call
hello(function(){

return "Hello world";
});

Closure sama seperti lambda akan tetapi closure bisa mengakses variable di luar scopenya
$nama ="Ganjar";

$akses = function() use($nama){

echo $nama;
};

//function call
$akses();

Closure juga banyak di gunakan di laravel, slimframework, dan framework lain. untuk lebih lengkapnya anda bisa melihat di link di bawah.

Refference:



14.Perbedaan $_POST dan $_GET?
GET

  1. Parameter masih melekat di browser history, adalah bagian dari URL
  2. Bisa di bookmark
  3. Tidak di gunakan untuk mengirim password informasi sensitif lainnya
  4. 7607 karakter maksimum
  5. URL Example:page.php?ada_aja=ini_ada_aja
POST
  1. Parameter tidak di save di browser history
  2. Tidak bisa di bookmark
  3. Digunakan untuk mengirim password dan informasi sensitif lain
  4. 8MB size maksimum
  5. Url Example:page.php

Refference:


16.mengubah 10000 menjadi 10.000 menggunakan php.

gunakan fungsi thousand_sep(thousand separator).

number_format(float number, int decimal, string decimal, string thousand)

Refference:



17. php for reading xml

Untuk hal ini saya belum ada kesempatan mencobanya anda bisa mencoba mengikuti refference di bawah.

Reffernce:




18.Sending data to another application using json
$data = array(
    'userID'      => 'a7664093-502e-4d2b-bf30-25a2b26d6021',
    'itemKind'    => 0,
    'value'       => 1,
    'description' => 'Boa saudaƁ„o.',
    'itemID'      => '03e76d0a-8bab-11e0-8250-000c29b481aa'
);

$json = json_encode($data);

$client = new Zend_Http_Client($uri);
$client->setRawData($json, 'application/json')->request('POST');
Refference:



19.Associative Array
 Array di bagi 3 yaitu numeric array, assosiative array, dan multidimensional array.

  1. Numeric array =array dengan numeric index.Nilai di store dan di akses dengan linier fashion
  2. Associative array= array dengan string sebagai index. Nilai di store sebagai associative dengan key value daripada strict linear index order
  3. Multidimensional array =array yang menampung satu atau lebih array lain dan nilai di akses menggunakan multiple index.

Refference:


 20.Regular Expresion(Regex)
Regular Expression adalah string teks khusus untuk menggambarkan pola pencarian. Anda dapat menganggap regular expresion sebagai wildcard pada steroid.

Brackets([])


[0-9]
It matches any decimal digit from 0 through 9.
[a-z]
It matches any character from lowercase a through lowercase z
[A-Z]
It matches any character from uppercase A through uppercase Z.
[a-Z]
It matches any character from lowercase a through uppercase Z.

Quantifier(+,*,?,{ing range},and $flag)

p+ It matches any string containing at least one p.
p* It matches any string containing zero or more p's.
p? It matches any string containing zero or more p's. This is just an alternative way to use p*.
p{N} It matches any string containing a sequence of N p's
p{2,3} It matches any string containing a sequence of two or three p's.
p{2, } It matches any string containing a sequence of at least two p's.
p$ It matches any string with p at the end of it.
^p It matches any string with p at the beginning of it.

Contoh di bawah akan membuat anda mengerti konsep maching character.

[^a-zA-Z]It matches any string not containing any of the characters ranging from a through z and A through Z.
p.pIt matches any string containing p, followed by any character, in turn followed by another p.
^.{2}$It matches any string containing exactly two characters.
<b>(.*)</b>It matches any string enclosed within <b> and </b>.
p(hp)*It matches any string containing a p followed by zero or more instances of the sequence hp.

Predifine Character Range
[[:alpha:]]It matches any string containing alphabetic characters aA through zZ.
[[:digit:]]It matches any string containing numerical digits 0 through 9.
[[:alnum:]]It matches any string containing alphanumeric characters aA through zZ and 0 through 9.
[[:space:]]It matches any string containing a space.


PHP Regex POSIX Function
ereg()The ereg() function searches a string specified by string for a string specified by pattern, returning true if the pattern is found, and false otherwise.
ereg_replace()The ereg_replace() function searches for string specified by pattern and replaces pattern with replacement if found.
eregi()The eregi() function searches throughout a string specified by pattern for a string specified by string. The search is not case sensitive.
eregi_replace()The eregi_replace() function operates exactly like ereg_replace(), except that the search for pattern in string is not case sensitive.
split()The split() function will divide a string into various elements, the boundaries of each element based on the occurrence of pattern in string.
spliti()The spliti() function operates exactly in the same manner as its sibling split(), except that it is not case sensitive.
sql_regcase()The sql_regcase() function can be thought of as a utility function, converting each character in the input parameter string into a bracketed expression containing two characters.

Metacharacter
Character  Description
. a single character
\s a whitespace character (space, tab, newline)
\S non-whitespace character
\d a digit (0-9)
\D a non-digit
\w a word character (a-z, A-Z, 0-9, _)
\W a non-word character
[aeiou] matches a single character in the given set
[^aeiou] matches a single character outside the given set
(foo|bar|baz) matches any of the alternatives specified

Modifiers
Modifier Description
i Makes the match case insensitive
m Specifies that if the string has newline or carriage
return characters, the ^ and $ operators will now
match against a newline boundary, instead of a
string boundary
o Evaluates the expression only once
s Allows use of . to match a newline character
x Allows you to use white space in the expression for clarity
g Globally finds all matches
cg Allows a search to continue even after a global match fails

PHP Regex PERL Compatible Function
preg_match()The preg_match() function searches string for pattern, returning true if pattern exists, and false otherwise.
preg_match_all()The preg_match_all() function matches all occurrences of pattern in string.
preg_replace()The preg_replace() function operates just like ereg_replace(), except that regular expressions can be used in the pattern and replacement input parameters.
preg_split()The preg_split() function operates exactly like split(), except that regular expressions are accepted as input parameters for pattern.
preg_grep()The preg_grep() function searches all elements of input_array, returning all elements matching the regexp pattern.
preg_ quote()Quote regular expression characters

Refference:




21. Apa itu unit testing
Unit Testing adalah software development proses di mana  smallest testable parts of an application, yang disebut unit, secara  individually and independently  diteliti untuk proper operation. Unit pengujian sering otomatis tetapi juga dapat dilakukan secara manual. Modus pengujian ini adalah komponen dari Extreme Programming (XP), metode pragmatis pengembangan perangkat lunak yang mengambil pendekatan teliti untuk membangun produk dengan cara pengujian terus menerus dan revisi.

Refference:



22. Apa itu SOAP
SOAP adalah singkatan dari kepanjangan Simple Object Access Protocol. Simplenya adalah antara komputer bertukar informasi menggunakan XML-Based.
Contoh: Operator, Bank.

Berikut ini poin-poin tentang SAP:

  1. SOAP adalah komunikasi protokol yang di design untuk berkomunikasi via internet
  2. SOAP dapat mengextend HTML untuk XML Messaging
  3. SOAP menyediakan data transport untuk web service
  4. SOAP dapat exchange complete dokument atau hanya remote prosedur
  5. SOAP dapat digunakan untuk membroadcast message
  6. SOAP adalah platform dan language independent
  7. SOAP memungkinkan aplikasi client untuk dengan mudah terhubung ke remote service dan invoke remote method

Refference:



23. Apa itu API
API singkatan dari Application Programming Interface dalam pengetiannya adalah contract provided by one piece of computer software to another.

RESTful API singkatan dari Representational state transfer software gaya arsitektur untuk membangun layanan web scalable. REST memberikan coordinated set of constraints to the design of components dalam  distributed hypermedia system yang menyebabkan higher performer and more maintainable architecture

Refference:



24.  Apa itu caching dan kapan menggunakannya
Cache adalah high-speed access area yang mereserve section di main area atau di storage device

Cache,Internet Browser Cache , temporary Internet Files
Internet browser cache digunakan untuk meringankan beban load ketika mengakses komputer.web page biasanya di simpan dalam bentuk browser temporary cache in hardrive.

Disk Caching
di gunakan untuk mengakses data yang umum diakses. dibandingkan menggunakan High Speed SRAM disk cache menggunakan convensional main memori

Server cache adalah  komputer atau network device yang di setup untuk mensave untuk men-store web page yang di akses user di network.

Refference:

  1. jargon/c/cache.htm
  2. how caching work
  3. what-is-caching-and-where-is-it-used
  4. what-is-caching
25.Apa itu proxy
Sebuah proxy atau server proxy pada dasarnya adalah komputer lain yang berfungsi sebagai hub di mana permintaan internet diproses. Dengan menghubungkan melalui salah satu server ini, komputer Anda mengirimkan permintaan Anda ke server proxy yang kemudian memproses permintaan Anda dan mengembalikan apa yang Anda ingin.

Jika bahasa diatas sulit di cerna angap saja anda duduk di kelas di depan anda ada teman anda dan di depannya ada orang yang anda suka. Anda membuat surat kenapa teman yang anda suka dan mempassnya melalui teman anda dan mengharapkan sebuah jawaban. Setelah itu anda mendapatkan jawaban yang anda inginkan dari wanita yang anda suka. Begitulah prinsip proxy, jadi orang yang anda suka tidak mengetahui siapa yang menyukai dia karena ada pembatas yaitu teman anda.

Refferece: