Selasa, 20 Maret 2018

Sentimen Analisis pada Komentar Youtube Menggunakan Python

Sentimen Analisis pada Komentar Youtube Menggunakan Python



Opinion Mining / Sentiment Analysis (sebagian besar researcher menganggap dua istilah ini sama/interchangeable) merupakan sebuah cabang penelitian di domain Text Mining yang mulai booming pada awal tahun 2002-an. Riset-nya mulai marak semenjak paper dari B.Pang dan L.Lee [1] keluar. Secara umum, Sentiment analysis ini dibagi menjadi 2 kategori besar :
1.      Coarse-grained sentiment analysis
2.      Fined-grained sentiment analysis
Coarse-grained sentiment analysis - kita mencoba melakukan proses analysis pada level Dokumen. Singkatnya adalah kita mencoba mengklasifikasikan orientasi sebuah dokumen secara keseluruhan. Orientasi ini ada 3 jenih : Positif, Netral, Negatif. Akan tetapi, ada juga yang menjadikan nilai orientasi ini bersifat kontinu / tidak diskrit.
Fined-grained sentiment analysis - kategori kedua ini yang sedang Naik Daun sekarang. Maksudnya adalah para researcher sebagian besar fokus pada jenis ini. Obyek yang ingin diklasifikasi bukan berada pada level dokumen melainkan sebuah kalimat pada suatu dokumen.
Berikut dibawah ini merupakan tahapan dalam pembuatan sentiment analyst menggunakan Bahasa pemrograman python.
1.      Pada pembuatan program kali ini memakai python versi 3.6.4
2.      Berikut merupakan listing program nya.
import os
import sys
import time
import json
import requests
import argparse
import lxml.html
import re

from textblob import TextBlob
from lxml.cssselect import CSSSelector

YOUTUBE_COMMENTS_URL = 'https://www.youtube.com/watch?v={youtube_id}'
YOUTUBE_COMMENTS_AJAX_URL = 'https://www.youtube.com/comment_ajax'
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'

np = 0
nn = 0
n = 0

def clean_text(text_sel):
    return ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)", " ", text_sel).split())


def find_value(html, key, num_chars=2):
    pos_begin = html.find(key) + len(key) + num_chars
    pos_end = html.find('"', pos_begin)
    return html[pos_begin: pos_end]


def extract_comments(html):
    global np, n, nn
    tree = lxml.html.fromstring(html)
    item_sel = CSSSelector('.comment-item')
    text_sel = CSSSelector('.comment-text-content')
    time_sel = CSSSelector('.time')
    author_sel = CSSSelector('.user-name')
   
    for item in item_sel(tree):
        analysis = TextBlob(clean_text(text_sel(item)[0].text_content()))
        # set sentiment
        if analysis.sentiment.polarity > 0:
            result = 'positive'
            np += 1
        elif analysis.sentiment.polarity == 0:
            result = 'neutral'
            n += 1
        else:
            result = 'negative'
            nn += 1

        yield {'cid': item.get('data-cid'),
               'text': text_sel(item)[0].text_content(),
               'time': time_sel(item)[0].text_content().strip(),
               'author': author_sel(item)[0].text_content(),
               'result': result}


def extract_reply_cids(html):
    tree = lxml.html.fromstring(html)
    sel = CSSSelector('.comment-replies-header > .load-comments')
    return [i.get('data-cid') for i in sel(tree)]


def ajax_request(session, url, params, data, retries=10, sleep=20):
    for _ in range(retries):
        response = session.post(url, params=params, data=data)
        if response.status_code == 200:
            response_dict = json.loads(response.text)
            return response_dict.get('page_token', None), response_dict['html_content']
        else:
            time.sleep(sleep)


def download_comments(youtube_id, sleep=1):
    session = requests.Session()
    session.headers['User-Agent'] = USER_AGENT

    # Get Youtube page with initial comments
    response = session.get(YOUTUBE_COMMENTS_URL.format(youtube_id=youtube_id))
    html = response.text
    reply_cids = extract_reply_cids(html)

    ret_cids = []
    for comment in extract_comments(html):
        ret_cids.append(comment['cid'])
        yield comment

    page_token = find_value(html, 'data-token')
    session_token = find_value(html, 'XSRF_TOKEN', 4)

    first_iteration = True

    # Get remaining comments (the same as pressing the 'Show more' button)
    while page_token:
        data = {'video_id': youtube_id,
                'session_token': session_token}

        params = {'action_load_comments': 1,
                  'order_by_time': True,
                  'filter': youtube_id}

        if first_iteration:
            params['order_menu'] = True
        else:
            data['page_token'] = page_token

        response = ajax_request(session, YOUTUBE_COMMENTS_AJAX_URL, params, data)
        if not response:
            break

        page_token, html = response

        reply_cids += extract_reply_cids(html)
        for comment in extract_comments(html):
            if comment['cid'] not in ret_cids:
                ret_cids.append(comment['cid'])
                yield comment

        first_iteration = False
        time.sleep(sleep)

    # Get replies (the same as pressing the 'View all X replies' link)
    for cid in reply_cids:
        data = {'comment_id': cid,
                'video_id': youtube_id,
                'can_reply': 1,
                'session_token': session_token}

        params = {'action_load_replies': 1,
                  'order_by_time': True,
                  'filter': youtube_id,
                  'tab': 'inbox'}

        response = ajax_request(session, YOUTUBE_COMMENTS_AJAX_URL, params, data)
        if not response:
            break

        _, html = response

        for comment in extract_comments(html):
            if comment['cid'] not in ret_cids:
                ret_cids.append(comment['cid'])
                yield comment
        time.sleep(sleep)


def main(argv):
    global np, n, nn
    parser = argparse.ArgumentParser(add_help=False, description=('Download Youtube comments without using the Youtube API'))
    parser.add_argument('--help', '-h', action='help', default=argparse.SUPPRESS, help='Show this help message and exit')
    parser.add_argument('--youtubeid', '-y', help='ID of Youtube video for which to download the comments')
    parser.add_argument('--output', '-o', help='Output filename (output format is line delimited JSON)')
    parser.add_argument('--limit', '-l', type=int, help='Limit the number of comments')

    try:
        args = parser.parse_args(argv)

        youtube_id = args.youtubeid
        output = args.output
        limit = args.limit

        if not youtube_id or not output:
            parser.print_usage()
            raise ValueError('you need to specify a Youtube ID and an output filename')

        print('Downloading Youtube comments for video:', youtube_id)
        count = 0
        with open(output, 'w') as fp:
            for comment in download_comments(youtube_id):
                print(json.dumps(comment), file=fp)
                count += 1
                sys.stdout.write('Downloaded %d comment(s)\r' % count)
                sys.stdout.flush()
                if limit and count >= limit:
                    break

        print('\n\nPositive: ', float(np/(np+n+nn)*100), '%')
        print('Negative: ', float(nn/(np+n+nn)*100), '%')
        print('Neutral: ', float(n/(np+n+nn)*100), '%')
        print('\nDone!')


    except Exception as e:
        print('Error:', str(e))
        sys.exit(1)


if __name__ == "__main__":
    main(sys.argv[1:])


3.      Pastikan sudah menginstall packages untuk program diatas.
a.       pip install requests
b.      pip install lxml
c.       pip install cssselect
d.      pip install textblob

4.      Listing program dibawah ini digunakan untuk mendeklarasikan beberapa url yang akan diakses kedalam program dan beberapa variable untuk menampung nilai – nilai dalam program.
YOUTUBE_COMMENTS_URL = 'https://www.youtube.com/watch?v={youtube_id}'
YOUTUBE_COMMENTS_AJAX_URL = 'https://www.youtube.com/comment_ajax'
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'
np = 0 #persentase positif
nn = 0 #persentase negatif
n = 0 #persentase netral
5.    def extract_comments(html), berfungsi untuk mengambil data-data komentar seperti penulis, waktu, dan komentar itu sendiri berdasarkan response (html). Pada fungsi ini juga ditentukan apkah komentar itu positif, nagatif, atau netral dengan TextBlob.
6.      def extract_reply_cids(html), hampir sama dengan fungsi sebelumnya hanya mengambil id reply
7.      def download_comments(youtube_id, sleep=1), berfungsi untuk membuat request session ke alamat URL youtube dan setelah mendapat response, response tersebut dikirim ke fungsi extract_comments
8.      def main(argv), fungsi yang pertama kali dijalankan dengan beberapa argument, yaitu –youtubeid untuk meletakkan id youtube, --output untuk meletakkan komentar kedalam file, --limit untuk membatasi komentar yang didownload. Pada fungsi ini akan dijalankan fungsi download_comments yang nilai baliknya akan dimasukkan kedalam file yang telah didefinisikan pada saat menjalankan program ini (contoh: --output analisa.txt) , kemudian menghitung persentase komentar positif, negative, dan netral.

Hasil

Sumber :
https://www.geeksforgeeks.org/twitter-sentiment-analysis-using-python/
https://github.com/egbertbouman/youtube-comment-downloader
http://alfan-farizki.blogspot.co.id/2011/01/apa-itu-sentiment-analysis-opinion.html

Minggu, 10 Desember 2017

Apa saja yang membuat suatu perusahaan mampu bertahan ?

Hal – hal yang mempengaruhi suatu perusahaan dapat bertahan :


Berikut merupakan beberapa hal mengapa suatu perusahaan dapat bertahan berdasarkan pengamatan penulis:
  1. Perusahaa mampu menangkap kebutuhan konsumen atau target produksinya.
  2. Perusahaan Mampu berinovasi dan melakukan pengembangan serta fleksibel mengikuti perkembangan pasar sesuai dengan produk/jasa yang ada perusahaannya. Namun tidak terlalu fokus berlebihan karena inovasi lebih ditekankan.
  3. Perusahaan mampu mengatasi rasa takut berlebihan seperti bangkrut, ketakutan rugi, ketakutan tidak dapat melayani konsumen, ketakutan ketidakmampuan mengatasi masalah, semua itu wajar asal masih dalam porsinya. Namun, apabila ketakutan itu melebihi batas normal, kondisi tersebut harus diwaspadai karena akan menghambat kinerja perusahaan dan membawa kehancuran.
  4. Mampu mengamati pergerakan kompetitor. Hal ini yang membuat perusahaan memiliki daya saing sehingga dapat bertahan.
  5. Perusahaan mampu menyesuaikan harga dengan konsumen serta tidak merugikan dari sisi perusahaannya juga.
  6. Perusahaan mampu mempertahankan kualitas produk/jasa bagi konsumen.
  7. Anggota perusahaan mampu membangun komitmen yang kuat dan bekerja sama.
  8. Perusahaan mampu mengatasi keuangan tanpa terlilit hutang, atau perusahaan dapat menghindari hutang.
  9. Jika terjadi kesalahan manajemen perusahaan mampu bertindak cepat dalam mengatasi kesalahan tersebut.
  10. Perusahaan mampu mengimbangi antara pengeluaran perusahaan dan pemasukannya.

Semoga bermanfaat, jika ada penambahan bisa disampaikan lewat kolom komentar. Terima Kasih.

Minggu, 19 November 2017

NerdTech Educational Foundation


Nama yayasan                   : NerdTech Educational Foundation
Lokasi yayasan                  : Jl. Lebak No.99 Telp. 021 – 89787293 Cimanggis, Depok Jawa Barat
                                   email : nef@nerdtech.com Telp: (021) 8765767 Fax: (021) 8765767
Pendiri yayasan                :
1.       Fenton Martin
2.       Hasan El Jabir
3.       Ivan Fatkhurohman
4.       Krisna Mustikarani
5.       Mona Sarito Siagian
6.       Triswanto
Tanggal berdiri yayasan : 28 Oktober 2017
Latar Belakang :
Nerd Tech Educational Foundation adalah yayasan independen yang didirikan bersamaan dengan memperingati hari sumpah pemuda di Indonesia. Yayasan ini memberikan beasiswa pendidikan dan penelitian kepada pemuda-pemudi Indonesia dengan minimal jenjang pendidikan terakhir adalah S1.
Mengingat di Indonesia masih minimnya pengadaan penelitian dan terbatasnya jumlah penelitian yang didanai pemerintah serta ketertarikan masyarakat yang cukup rendah tentang penelitian dalam bidang teknologi, maka program yang kami sediakan adalah pembiyayaan penuh dalam penelitian dan pendidikan yang tahap awalnya dilakukan di Indonesia, selanjutnya penelitan akan dilakukan dinegara kemitraan yaitu Amerika Serikat. Program ini bertujuan untuk meningkatkan minat pemuda dan pemudi di Indonesia pada penelitian teknologi, dan tentu saja untuk mendorong munculnya trobosan-trobosan baru yang bermanfaat bagi masyarakat dalam bidang teknologi di Indonesia. Yayasan ini terdiri dari 6 pengurus dengan masa jabatan selama 5 tahun dan dapat diperpanjang, serta 1 pembina dan 1 pengawas.
Pembelajaran dan penelitian diluar negri akan difasilitasi melalui penyaluran dana yang telah dikomitmenkan para donatur mancanegara dan dalam negri. NerdTech Educational Foundation akan mulai beroperasi di 2018 dan dapat menerima pendanaan dari publik dan swasta. NerdTech Educational Foundation akan menerapkan standar tata kelola, mekanisme penjaminan, serta sistem pemantauan, pelaporan dan verifikasi (Monitoring, Reporting and Verification/MRV) untuk meyakinkan para donatur bahwa donasi mereka digunakan dengan benar.  
Moto      : “Committed to People, Commited to Technology, Committed to the Future”
Visi          :
Mewujudkan lembaga yang kredibel dan terkemuka dalam mewujudkan pendidikan dan penelitian berkualitas yang mampu mencetak generasi unggul sebagai pembawa kesejahteraan masyarakat dunia sehingga mempererat hubungan antar negara.
Misi       :
1.       Menyelenggarakan proses pendidikan dan penelitian berbidang teknologi dalam usaha mencerdaskan kehidupan bangsa
2.       Memberikan beasiswa pendidikan dan penelitian baik didalam maupun luar negeri dalam bidang teknologi
3.       Meningkatkan sumber daya manusia yang berkualitas sehingga mampu meningkatkan kesejahteraan masyarakat
4.       Mempererat hubungan antar negara melalui  teknologi.

Struktur Yayasan

Pembina              : Fenton Martin
Penasihat            : Prof. Dr. Muhajir Effendy, M.A.P
Ketua Umum     : Triswanto
Sekretaris            : Hasanto Martin Fadilah
Bendahara          : Hasan El Jabir
Div. Pendidikan                 : Ivan F.
Div. Kemitraan   : Krisna Mustikarani
Div. Publikasi      : Mona Siagian

Profile Pembina dan Pengurus Yayasan


Ketua Umum
Triswanto


            

Bendahara
Hasan El Jabir

           

Divisi Pendidikan
Ivan Fadilah

         
    
Divisi Kemitraan
Krisna Mustikarani

           

Divisi Publikasi
Mona Siagian

A.      Pendanaan dan Modal
Pendanaan Yayasan sebagai kekayaan awal Yayasan diperoleh dari kekayaan pribadi para pendiri NerdTech Educational Foundation. Jumlah kekayaan awal NerdTech Educational Foundation adalah senilai Rp850.000.000,- (Delapan Ratus Lima Puluh Juta Rupiah).
Jumlah kekayaan awal NerdTech Educational Foundation mengikuti jumlah minimal kekayaan awal Yayasan yang terdapat pada Pasal 6 PP No.63 Tahun 2008 tentang Pelaksanaan UU tentang Yayasan, yaitu senilai Rp10.000.000,00. Kekayaan awal tersebut dapat berbentuk uang maupun barang, baik barang bergerak maupun tidak bergerak.
Berikut rincian kekayaan awal NerdTech Educational Foundation beserta nama-nama pendiri juga selaku penanam modal.
Penanam Modal
Bentuk
Nilai
Triswanto
Uang
Rp35.000.000,-
Fenton Martin
Inventaris Gedung/Bangunan
Rp150.000.000,-
Hasan El Jabir
Gedung/Bangunan
Rp600.000.000,-
Ivan F.
Uang
Rp15.000.000,-
Krisna Mustikarani
Uang
Rp30.000.000,-
Mona Siagian
Uang
Rp20.000.000,-

Daftar Donatur dan sumbangan donatur
Donatur
Bentuk
Nilai
PT. Microsoft Indonesia
Uang
Rp 900.000.000,-
PT. Sale Stock Indonesia
Uang
Rp 700.000.000,-
PT. Datacomm Diangraha
Uang
Rp 800.000.000,-
PT. Google Indonesia
Uang
Rp 700.000.000,-
PT. Telekomunikasi Seluler (Telkomsel)
Uang
Rp 600.000.000,-

PT. Global Digital Niaga (Blibli.com)
Uang
Rp 800.000.000,-
PT. Mitrais Indosevices
Uang
Rp 800.000.000,-
PT. Indonesia Epson Industry
Uang
Rp 700.000.000,-
PT. Packet System Indonesia
Uang
Rp 600.000.000,-
Hewlett-Packard
Uang
$300.000.00
Dalam 1$= Rp13297.00
Rp 3.980.100.000,-
Lenovo
Uang
$200.000.00
Dalam 1$= Rp13297.00
Rp 2.659.400.000,-

Donasi dari dalam negri:
Rp 6.600.000.000,- (Enam miliar enam ratus juta rupiah)
Donasi dari luar negri:
Rp 6.639.500.000,- (Enam miliar enam ratus tigapuluh sembilan juta lima ratus rupiah)
Total donasi dari donatur tetap :
13.239.500.000,- (Tiga belas miliar dua ratus tiga puluh sembilan juta lima ratus ribu rupiah)
1.       Program Pendidikan
Kami sebagai yayasan penyalur pertukaran pelajar (Student Exchange) bagi pelajar di seluruh Indonesia. Memiliki program dimana para mahasiswa yang telah menempuh jenjang S1 (fresh graduate) dari seluruh Indonesia mendapatkan kesempatan yang sama agar dapat mempelajari teknologi dari negara luar yaitu Amerika Serikat serta mengadakan penelitian, dengan maksud ilmu yang dipelajari di negara luar tersebut dapat diimplementasikan di Indonesia serta mampu memajukan Indonesia dan dengan program ini juga dapat mempererat hubungan dengan negara luar.


1.1.                       Program Kerja
Dimana program kerja dari divisi pendidikan dapat dijelaskan seperti berikut:

1.1.1.        Jangka Pendek
Memberikan Beasiswa bagi para mahasiswa yang telah menempuh jenjang S1 (fresh graduate) dari seluruh Indonesia untuk dapat belajar pada bidang teknologi informasi di luar negeri serta mengadakan penelitian bersama, yang kemudia hasil tersebut akan dijadikan milik bersama dengan pihak luar.

1.1.2.        Jangka Menengah
Membantu para mahasiswa untuk mengetahui berbagai macam teknologi informasi yang sedang atau yang akan dikembangkan di negara luar. Dengan maksud para mahasiswa tersebut dapat mempelajari ilmu tersebut serta mengaplikasikannya langsung dengan membuat penelitian yang nantinya dapat digunakan di Indonesia.

1.1.3.        Jangka Panjang
Memajukan negara Indonesia pada bidang teknologi informasi melalui para mahasiswa yang telah belajar dan melakukan penelitian di negara luar, ilmu yang mereka dapatkan dari negara luar dapat diimplementasikan di Indonesia dengan pertimbangan sumber kekayaan di Indonesia dan ke efektifan ilmu tersebut yang dapat diterapkan di Indonesia. Serta meningkatkan semangat dan ketertarikan dalam mengembangkan teknologi di Indonesia.

1.2.                       Program Beasiswa
Para mahasiswa mendapatkan beasiswa sebagai bantuan bagi mereka untuk melaksanakan kegiatan belajar dan penelitian mereka di luar negeri, beasiswa ini bertujuan untuk mengatasi masalah kebutuhan hidup para mahasiswa ketika berada di luar negeri dan kebutuhan lainnya dalam rangka melakukan penelitian diluar negri.

Untuk mendapatkan beasiswa para mahasiswa harus melewati tiga tahap seleksi, tahap-tahap tersebut dijelaskan seperti berikut:

A.      Tahap seleksi berkas
Pada tahap ini semua mahasiswa yang menginginkan beasiswa mendaftarkan diri mereka dengan menyerahkan CV, surat aplikasi, transkrip, TOEFL dan Essay. Jika berkas yang diberikan sesuai dengan syarat pendaftaran maka mahasiswa melanjutkan ke tahap selanjutnya.

B.      Tahap tes akademik
Pada tahap ini semua mahasiswa yang lolos pada tahap sebelumnya melakukan tes akademik, tes TPA, dan tes kemampuan dalam bidang teknologi seperti pengembangan software, jaringan, data mining, dan lain-lain. Nilai hasil dari tes ini akan diberikan ke universitas negara luar yang akan dituju. Jika nilai ini lolos di univeersitas tersebut maka mahasiswa yang bersangkutan akan melanjutkan ke tahap selanjutnya.

C.      Tahap wawancara
Pada tahap ini semua mahasiswa yang telah lolos pada tahap-tahap sebelumnya akan dipanggil melalui surat undangan untuk menghadiri tes wawancara. Para mahasiswa akan dipertemukan dengan perwakilan dari yayasan untuk mengetes kecocokan mahasiswa tersebut untuk mendapatkan beasiswa dan dapat mengikuti program. Akan dipilih 5 orang setiap tahunnya untuk mengikuti program ini, dan kuota siswa akan dapat bertambah setiap tahunnya.

1.3.             Program Student Exchange
Bagi para mahasiswa yang telah berhasil mendapatkan beasiswa dan berhak untuk mengikuti program student exchange. Maka mahasiswa tersebut diharapkan untuk mengikuti program selama 2 tahun lamanya dengan ketentuan 1 tahun belajar di Indonesia dan 1 tahun belajar di universitas tujuan di Amerika Serikat.
Dan apabila mahasiswa tersebut tidak dapat mengikuti program sesuai dengan jangka waktunya maka mahasiswa tersebut akan dikenai denda yang besarnya akan ditentukan oleh yayasan.
Mahasiswa yang berhasil mengikuti program ini dengan baik maka akan diberikan sertifikat internasional bahwa mahasiswa tersebut telah mengikuti program ini, mendapat kesempatan untung mengembangkan penelitian lebih lanjut, kesempatan menjadi bagian dari perusahaan yang ada dibawah naungan yayasan, serta kesempatan melakukan penelitian lain di Indonesia dengan pendanaan dari yayasan.
2.       Publikasi
Tugas dan tanggung jawab:
A.      Mendampingi dan membantu Ketua Umum dalam melaksanakan tugas-tugas Yayasan sesuai dengan bidang kerjanya.
B.      Memimpin dan mengatur Divisi yang dipimpinnya, meliputi pelaksanaan program kerja, penggunaan budget dan mengatur/membina anggotanya.
C.      Bertanggung jawab dalam mengkoordinir program-program Yayasan yang berkaitan dengan hubungan komunikasi, baik internal maupun eksternal.
D.      Melakukan sosialisasi Yayasan dengan publikasi media apapun yang sifatnya tidak dilarang dan tidak melanggar aturan.
E.       Membangun jaringan kerja sama antar lembaga baik dengan pemerintah maupun non pemerintah.
F.       Menggantikan/mewakili Ketua Umum jika berhalangan sesuai dengan bidang tugasnya.
G.     Membantu Divisi Kemitraan sesuai dengan bidang kerjanya.
H.      Bertanggung jawab kepada Ketua Umum.
Program Kerja:
1.       Pembuatan dan pengelolaan website secara berkala
Tujuan:
·         media untuk memperkenalkan tentang Yayasan NerdTech Educational Foundation
·         media publikasi program beasiswa pendidikan yang ditawarkan oleh yayasan
·         media informasi tentang hal-hal yang sejalan dengan tujuan visi dan misi

2.       Pembuatan dan pengelolaan media sosial diantaranya instagram, facebook dan twitter secara berkala.
Tujuan:
·         media untuk memperkenalkan tentang Yayasan NerdTech Educational Foundation
·         media publikasi program beasiswa pendidikan yang ditawarkan
·         menjangkau masyarakat lebih luas lagi

3.       Keikutsertaan dalam kegiatan-kegiatan eksternal.
Tujuan:
·         sebagai sponsor ataupun peserta dalam kegiatan eksternal tersebut
·         memperkenalan yayasan secara langsung kepada masyarakat

4.        Pembuatan media cetak untuk sosialisai tentang yayasan
Tujuan:
·         media sosialisasi yayasan
·         menarik investor untuk bergabung

5.        Menjaga hubungan baik dengan masyarakat dan memberikan citra yang baik tentang yayasan
Tujuan:
·         menjaga nama baik yayasan

6.       Menganalisa strategi promosi dan program kerja yang telah dilakukan dalam jangka waktu tertentu
Tujuan:
·         memperbaiki strategi yang selama ini dijalankan
·         memambahkan kreativitas yang lebih dalam melakukan promosi.

3.       Kemitraan
Untuk kami, kemitraan adalah strategi utama karena program kami akan semakin kuat dampaknya jika didukung oleh kemitraan yang kokoh. Menyadari bahwa NerdTech Educational Foundation tidak bisa sendirian dalam melakukan semua kegiatan demi mencapai tujuan utama, kami merangkul mitra-mitra terbaik yang memiliki kesamaan visi.
Kami melihat bahwa kemitraan yang saling menguntungkan memberikan dampak baik di tingkat komunitas. Selain itu, ini merupakan cara yang dapat di replikasi di area-area dimana NerdTech Educational Foundation beroperasi sebagai bentuk peningkatan dan pembuatan kegiatan yang lebih besar lagi dampaknya bagi masyarakat Indonesia.
Yayasan kami bekerja sama dengan universitas-universitas dengan kreditasi terbaik dalam bidang pengembangan  IT  seperti Universitas Indonesia, Insitut Teknologi Bandung dan Universitas Gajah Mada sebagai sarana awal tempat pembekalan siswa-siswa beasiswa yang nantinya akan dikirim keluar negri untuk melanjutkan penelitian. Universitas-universitas tersebut yang nantinya akan menjadi titik awal dimulainya perancangan penelitian dan pembekalan saat melakukan penelitian diluar negri.
Selanjutnya untuk mitra diluar negri sebagai sarana penelitian utama, kami bekerja sama dengan Universitas-universitas bergengsi yang ada di Amerika Serikat seperti Colombia University, University of Washington, University of Michigan dan University of California.